X-Git-Url: http://nitlanguage.org diff --git a/c_src/nitc__nith.main.1.c b/c_src/nitc__nith.main.1.c index 5666c84..7953c12 100644 --- a/c_src/nitc__nith.main.1.c +++ b/c_src/nitc__nith.main.1.c @@ -62,6 +62,7 @@ extern void nitni_global_ref_decr( struct nitni_ref *ref ) { int glob_argc; char **glob_argv; val *glob_sys; +struct catch_stack_t catchStack; static void show_backtrace(void) { #ifndef NO_STACKTRACE char* opt = getenv("NIT_NO_STACK"); @@ -90,10 +91,16 @@ free(procname); #endif /* NO_STACKTRACE */ } void sig_handler(int signo){ +#ifdef _WIN32 +PRINT_ERROR("Caught signal : %s\n", signo); +#else PRINT_ERROR("Caught signal : %s\n", strsignal(signo)); +#endif show_backtrace(); signal(signo, SIG_DFL); +#ifndef _WIN32 kill(getpid(), signo); +#endif } void fatal_exit(int status) { show_backtrace(); @@ -101,7 +108,7 @@ exit(status); } int main(int argc, char** argv) { val* var /* : Sys */; -#ifndef ANDROID +#if !defined(__ANDROID__) && !defined(TARGET_OS_IPHONE) signal(SIGABRT, sig_handler); signal(SIGFPE, sig_handler); signal(SIGILL, sig_handler); @@ -109,8 +116,11 @@ signal(SIGINT, sig_handler); signal(SIGTERM, sig_handler); signal(SIGSEGV, sig_handler); #endif +#ifndef _WIN32 signal(SIGPIPE, SIG_IGN); +#endif glob_argc = argc; glob_argv = argv; +catchStack.cursor = -1; initialize_gc_option(); initialize_nitni_global_refs(); var = NEW_core__Sys(&type_core__Sys); @@ -132,6 +142,8 @@ const char FILE_nitc__loader[] = "./loader.nit"; const char FILE_nitc__modelbuilder_base[] = "./modelbuilder_base.nit"; const char FILE_nitc__model[] = "./model/model.nit"; const char FILE_nitc__mmodule[] = "./model/mmodule.nit"; +const char FILE_nitc__mpackage[] = "./model/mpackage.nit"; +const char FILE_nitc__model_base[] = "./model/model_base.nit"; const char FILE_nitc__location[] = "./location.nit"; const char FILE_core[] = "../lib/core/core.nit"; const char FILE_core__posix[] = "../lib/core/posix.nit"; @@ -151,7 +163,9 @@ const char FILE_core__circular_array[] = "../lib/core/collection/circular_array. const char FILE_core__sorter[] = "../lib/core/collection/sorter.nit"; const char FILE_core__hash_collection[] = "../lib/core/collection/hash_collection.nit"; const char FILE_core__union_find[] = "../lib/core/collection/union_find.nit"; +const char FILE_core__fixed_ints[] = "../lib/core/fixed_ints.nit"; const char FILE_core__string_search[] = "../lib/core/text/string_search.nit"; +const char FILE_core__fixed_ints_text[] = "../lib/core/text/fixed_ints_text.nit"; const char FILE_core__environ[] = "../lib/core/environ.nit"; const char FILE_core__file[] = "../lib/core/file.nit"; const char FILE_core__stream[] = "../lib/core/stream.nit"; @@ -160,6 +174,7 @@ const char FILE_core__bytes[] = "../lib/core/bytes.nit"; const char FILE_core__codecs[] = "../lib/core/codecs/codecs.nit"; const char FILE_core__codec_base[] = "../lib/core/codecs/codec_base.nit"; const char FILE_core__utf8[] = "../lib/core/codecs/utf8.nit"; +const char FILE_core__iso8859_95d1[] = "../lib/core/codecs/iso8859_1.nit"; const char FILE_core__time[] = "../lib/core/time.nit"; const char FILE_core__gc[] = "../lib/core/gc.nit"; const char FILE_core__exec[] = "../lib/core/exec.nit"; @@ -167,9 +182,6 @@ const char FILE_core__bitset[] = "../lib/core/bitset.nit"; const char FILE_core__queue[] = "../lib/core/queue.nit"; const char FILE_core__numeric[] = "../lib/core/numeric.nit"; const char FILE_core__re[] = "../lib/core/re.nit"; -const char FILE_core__fixed_ints[] = "../lib/core/fixed_ints.nit"; -const char FILE_nitc__mpackage[] = "./model/mpackage.nit"; -const char FILE_nitc__model_base[] = "./model/model_base.nit"; const char FILE_more_collections[] = "../lib/more_collections.nit"; const char FILE_serialization[] = "../lib/serialization/serialization.nit"; const char FILE_poset[] = "../lib/poset.nit"; @@ -183,6 +195,7 @@ const char FILE_nitc__parser[] = "./parser/parser.nit"; const char FILE_nitc__parser_prod[] = "./parser/parser_prod.nit"; const char FILE_nitc__lexer[] = "./parser/lexer.nit"; const char FILE_nitc__parser_nodes[] = "./parser/parser_nodes.nit"; +const char FILE_console[] = "../lib/console.nit"; const char FILE_nitc__lexer_work[] = "./parser/lexer_work.nit"; const char FILE_nitc__tables[] = "./parser/tables.nit"; const char FILE_nitc__parser_work[] = "./parser/parser_work.nit";