// First argument is the usr/lib directory where libjulia is, or NULL to guess. // if that doesn't work, try the full path to the "lib" directory that // contains lib/julia/sys.ji // Second argument is the path of a system image file (*.ji) relative to the // first argument path, or relative to the default julia home dir. The default // is something like ../lib/julia/sys.ji DLLEXPORT void jl_init_with_image(const char *julia_home_dir, const char *image_relative_path) { if (jl_is_initialized()) return; libsupport_init(); jl_options.julia_home = julia_home_dir; if (image_relative_path != NULL) jl_options.image_file = image_relative_path; julia_init(JL_IMAGE_JULIA_HOME); jl_exception_clear(); }
// argument is the usr/lib directory where libjulia is, or NULL to guess. // if that doesn't work, try the full path to the "lib" directory that // contains lib/julia/sys.ji DLLEXPORT void jl_init(char *julia_home_dir) { if (jl_is_initialized()) return; libsupport_init(); char *image_file = jl_locate_sysimg(julia_home_dir, JL_SYSTEM_IMAGE_PATH); julia_init(image_file); jl_set_const(jl_core_module, jl_symbol("JULIA_HOME"), jl_cstr_to_string(julia_home)); jl_module_export(jl_core_module, jl_symbol("JULIA_HOME")); jl_eval_string("Base.reinit_stdio()"); jl_eval_string("Base.Random.librandom_init()"); jl_eval_string("Base.init_sched()"); jl_eval_string("Base.init_head_sched()"); jl_eval_string("Base.init_load_path()"); }
// First argument is the usr/lib directory where libjulia is, or NULL to guess. // if that doesn't work, try the full path to the "lib" directory that // contains lib/julia/sys.ji // Second argument is the path of a system image file (*.ji) relative to the // first argument path, or relative to the default julia home dir. The default // is something like ../lib/julia/sys.ji DLLEXPORT void jl_init_with_image(const char *julia_home_dir, const char *image_relative_path) { if (jl_is_initialized()) return; libsupport_init(); jl_compileropts.julia_home = julia_home_dir; if (image_relative_path != NULL) jl_compileropts.image_file = image_relative_path; julia_init(JL_IMAGE_JULIA_HOME); //TODO: these should be part of Multi.__init__() //currently, we have them here since we may not want them //getting unconditionally set from Base.__init__() jl_eval_string("Base.init_parallel()"); jl_eval_string("Base.init_bind_addr(ARGS)"); jl_eval_string("Base.init_head_sched()"); jl_exception_clear(); }
// First argument is the usr/lib directory where libjulia is, or NULL to guess. // if that doesn't work, try the full path to the "lib" directory that // contains lib/julia/sys.ji // Second argument is the path of a system image file (*.ji) relative to the // first argument path, or relative to the default julia home dir. The default // is something like ../lib/julia/sys.ji DLLEXPORT void jl_init_with_image(char *julia_home_dir, char *image_relative_path) { if (jl_is_initialized()) return; libsupport_init(); if (image_relative_path == NULL) image_relative_path = JL_SYSTEM_IMAGE_PATH; char *image_file = jl_locate_sysimg(julia_home_dir, image_relative_path); julia_init(image_file); jl_set_const(jl_core_module, jl_symbol("JULIA_HOME"), jl_cstr_to_string(julia_home)); jl_module_export(jl_core_module, jl_symbol("JULIA_HOME")); jl_eval_string("Base.early_init()"); jl_eval_string("Base.init_head_sched()"); jl_eval_string("Base.init_load_path()"); jl_exception_clear(); }