diff --git a/cli/loader_lib.c b/cli/loader_lib.c index b56a4893ea66f..2f596ac27202d 100644 --- a/cli/loader_lib.c +++ b/cli/loader_lib.c @@ -196,9 +196,9 @@ JL_DLLEXPORT int jl_load_repl(int argc, char * argv[]) { #endif // Load the repl entrypoint symbol and jump into it! - int (*entrypoint)(int, char **) = (int (*)(int, char **))lookup_symbol(libjulia_internal, "repl_entrypoint"); + int (*entrypoint)(int, char **) = (int (*)(int, char **))lookup_symbol(libjulia_internal, "jl_repl_entrypoint"); if (entrypoint == NULL) { - jl_loader_print_stderr("ERROR: Unable to find `repl_entrypoint()` within libjulia-internal!\n"); + jl_loader_print_stderr("ERROR: Unable to find `jl_repl_entrypoint()` within libjulia-internal!\n"); exit(1); } return entrypoint(argc, (char **)argv); diff --git a/src/init.c b/src/init.c index 05d7690cd47b0..7ed1a200eb2a5 100644 --- a/src/init.c +++ b/src/init.c @@ -628,7 +628,7 @@ static void restore_fp_env(void) } } -void _julia_init(JL_IMAGE_SEARCH rel) +JL_DLLEXPORT void julia_init(JL_IMAGE_SEARCH rel) { jl_init_timing(); // Make sure we finalize the tls callback before starting any threads. diff --git a/src/jl_exported_funcs.inc b/src/jl_exported_funcs.inc index 8a23a0f5e9b65..07f783d36439c 100644 --- a/src/jl_exported_funcs.inc +++ b/src/jl_exported_funcs.inc @@ -273,8 +273,8 @@ XX(jl_idtable_rehash) \ XX(jl_infer_thunk) \ XX(jl_init_restored_modules) \ - XX(jl_init__threading) \ - XX(jl_init_with_image__threading) \ + XX(jl_init) \ + XX(jl_init_with_image) \ XX(jl_install_sigint_handler) \ XX(jl_instantiate_type_in_env) \ XX(jl_instantiate_unionall) \ @@ -538,4 +538,5 @@ XX(jl_vexceptionf) \ XX(jl_vprintf) \ XX(jl_wakeup_thread) \ - XX(jl_yield) + XX(jl_yield) \ + XX(jl_print_backtrace) diff --git a/src/jlapi.c b/src/jlapi.c index d27f7e03d958c..a0ca896aa0ed0 100644 --- a/src/jlapi.c +++ b/src/jlapi.c @@ -500,8 +500,7 @@ static int exec_program(char *program) jl_load(jl_main_module, program); } JL_CATCH { - // TODO: It is possible for this output - // to be mangled due to `jlbacktrace` + // TODO: It is possible for this output to be mangled due to `jl_print_backtrace` // printing directly to STDERR_FILENO. int shown_err = 0; jl_printf(JL_STDERR, "error during bootstrap:\n"); @@ -520,32 +519,13 @@ static int exec_program(char *program) jl_static_show((JL_STREAM*)STDERR_FILENO, exc); jl_printf((JL_STREAM*)STDERR_FILENO, "\n"); } - jlbacktrace(); // written to STDERR_FILENO + jl_print_backtrace(); // written to STDERR_FILENO jl_printf((JL_STREAM*)STDERR_FILENO, "\n"); return 1; } return 0; } -#ifdef JL_GF_PROFILE -static void print_profile(void) -{ - size_t i; - void **table = jl_base_module->bindings.table; - for(i=1; i < jl_base_module->bindings.size; i+=2) { - if (table[i] != HT_NOTFOUND) { - jl_binding_t *b = (jl_binding_t*)table[i]; - if (b->value != NULL && jl_is_function(b->value) && - jl_is_gf(b->value)) { - jl_printf(JL_STDERR, "%d\t%s\n", - jl_gf_mtable(b->value)->ncalls, - jl_gf_name(b->value)->name); - } - } - } -} -#endif - static NOINLINE int true_main(int argc, char *argv[]) { jl_set_ARGS(argc, argv); @@ -573,9 +553,9 @@ static NOINLINE int true_main(int argc, char *argv[]) } } - ios_puts("WARNING: Base._start not defined, falling back to economy mode repl.\n", ios_stdout); + jl_printf(JL_STDOUT, "WARNING: Base._start not defined, falling back to economy mode repl.\n"); if (!jl_errorexception_type) - ios_puts("WARNING: jl_errorexception_type not defined; any errors will be fatal.\n", ios_stdout); + jl_printf(JL_STDOUT, "WARNING: jl_errorexception_type not defined; any errors will be fatal.\n"); while (!ios_eof(ios_stdin)) { char *volatile line = NULL; @@ -597,7 +577,7 @@ static NOINLINE int true_main(int argc, char *argv[]) jl_printf(JL_STDOUT, "\n"); free(line); line = NULL; - uv_run(jl_global_event_loop(),UV_RUN_NOWAIT); + jl_process_events(); } JL_CATCH { if (line) { @@ -607,7 +587,7 @@ static NOINLINE int true_main(int argc, char *argv[]) jl_printf((JL_STREAM*)STDERR_FILENO, "\nparser error:\n"); jl_static_show((JL_STREAM*)STDERR_FILENO, jl_current_exception()); jl_printf((JL_STREAM*)STDERR_FILENO, "\n"); - jlbacktrace(); // written to STDERR_FILENO + jl_print_backtrace(); // written to STDERR_FILENO } } return 0; @@ -665,7 +645,7 @@ static void rr_detach_teleport(void) { #endif } -JL_DLLEXPORT int repl_entrypoint(int argc, char *argv[]) +JL_DLLEXPORT int jl_repl_entrypoint(int argc, char *argv[]) { // no-op on Windows, note that the caller must have already converted // from `wchar_t` to `UTF-8` already if we're running on Windows. diff --git a/src/julia.expmap b/src/julia.expmap index d9d255cc8c547..5f03eccbfcad6 100644 --- a/src/julia.expmap +++ b/src/julia.expmap @@ -37,7 +37,6 @@ _IO_stdin_used; __ZN4llvm23createLowerSimdLoopPassEv; LLVMExtra*; - repl_entrypoint; /* freebsd */ environ; diff --git a/src/julia.h b/src/julia.h index 1e0d96af669c7..8ec461e77126b 100644 --- a/src/julia.h +++ b/src/julia.h @@ -1639,10 +1639,6 @@ typedef enum { JL_IMAGE_JULIA_HOME = 1, //JL_IMAGE_LIBJULIA = 2, } JL_IMAGE_SEARCH; -// this helps turn threading compilation mismatches into linker errors -#define julia_init julia_init__threading -#define jl_init jl_init__threading -#define jl_init_with_image jl_init_with_image__threading JL_DLLEXPORT const char *jl_get_libdir(void); JL_DLLEXPORT void julia_init(JL_IMAGE_SEARCH rel); @@ -1965,7 +1961,8 @@ JL_DLLEXPORT jl_value_t *jl_stdout_obj(void) JL_NOTSAFEPOINT; JL_DLLEXPORT jl_value_t *jl_stderr_obj(void) JL_NOTSAFEPOINT; JL_DLLEXPORT size_t jl_static_show(JL_STREAM *out, jl_value_t *v) JL_NOTSAFEPOINT; JL_DLLEXPORT size_t jl_static_show_func_sig(JL_STREAM *s, jl_value_t *type) JL_NOTSAFEPOINT; -JL_DLLEXPORT void jlbacktrace(void) JL_NOTSAFEPOINT; +JL_DLLEXPORT void jl_print_backtrace(void) JL_NOTSAFEPOINT; +JL_DLLEXPORT void jlbacktrace(void) JL_NOTSAFEPOINT; // deprecated // Mainly for debugging, use `void*` so that no type cast is needed in C++. JL_DLLEXPORT void jl_(void *jl_value) JL_NOTSAFEPOINT; diff --git a/src/julia_internal.h b/src/julia_internal.h index 43617b17dbefe..d6170a9d56719 100644 --- a/src/julia_internal.h +++ b/src/julia_internal.h @@ -676,8 +676,6 @@ void jl_init_int32_int64_cache(void); void jl_teardown_codegen(void); -void _julia_init(JL_IMAGE_SEARCH rel); - void jl_set_base_ctx(char *__stk); extern ssize_t jl_tls_offset; diff --git a/src/stackwalk.c b/src/stackwalk.c index a00980fdf81ec..d117b7146fe77 100644 --- a/src/stackwalk.c +++ b/src/stackwalk.c @@ -774,6 +774,11 @@ JL_DLLEXPORT void jlbacktracet(jl_task_t *t) } } +JL_DLLEXPORT void jl_print_backtrace(void) JL_NOTSAFEPOINT +{ + jlbacktrace(); +} + #ifdef __cplusplus } #endif diff --git a/src/task.c b/src/task.c index 4d38d30f5cc56..54aaf5fdc530f 100644 --- a/src/task.c +++ b/src/task.c @@ -312,11 +312,6 @@ NOINLINE static void record_backtrace(jl_ptls_t ptls, int skip) JL_NOTSAFEPOINT ptls->bt_size = rec_backtrace(ptls->bt_data, JL_MAX_BT_SIZE, skip + 1); } -JL_DLLEXPORT void julia_init(JL_IMAGE_SEARCH rel) -{ - _julia_init(rel); -} - JL_DLLEXPORT void jl_set_next_task(jl_task_t *task) JL_NOTSAFEPOINT { jl_get_ptls_states()->next_task = task;