1 #include "nit__nith.main.0.h"
2 struct nitni_global_ref_list_t
*nitni_global_ref_list
;
3 void initialize_nitni_global_refs() {
4 nitni_global_ref_list
= (struct nitni_global_ref_list_t
*)nit_alloc(sizeof(struct nitni_global_ref_list_t
));
5 nitni_global_ref_list
->head
= NULL
;
6 nitni_global_ref_list
->tail
= NULL
;
9 void nitni_global_ref_add( struct nitni_ref
*ref
) {
10 if ( nitni_global_ref_list
->head
== NULL
) {
11 nitni_global_ref_list
->head
= ref
;
14 nitni_global_ref_list
->tail
->next
= ref
;
15 ref
->prev
= nitni_global_ref_list
->tail
;
17 nitni_global_ref_list
->tail
= ref
;
22 void nitni_global_ref_remove( struct nitni_ref
*ref
) {
23 if ( ref
->prev
== NULL
) {
24 nitni_global_ref_list
->head
= ref
->next
;
26 ref
->prev
->next
= ref
->next
;
29 if ( ref
->next
== NULL
) {
30 nitni_global_ref_list
->tail
= ref
->prev
;
32 ref
->next
->prev
= ref
->prev
;
36 extern void nitni_global_ref_incr( struct nitni_ref
*ref
) {
37 if ( ref
->count
== 0 ) /* not registered */
40 nitni_global_ref_add( ref
);
46 extern void nitni_global_ref_decr( struct nitni_ref
*ref
) {
47 if ( ref
->count
== 1 ) /* was last reference */
49 /* remove from list */
50 nitni_global_ref_remove( ref
);
60 void sig_handler(int signo
){
61 PRINT_ERROR("Caught signal : %s\n", strsignal(signo
));
62 show_backtrace(signo
);
64 void show_backtrace (int signo
) {
67 int main(int argc
, char** argv
) {
69 signal(SIGABRT
, sig_handler
);
70 signal(SIGFPE
, sig_handler
);
71 signal(SIGILL
, sig_handler
);
72 signal(SIGINT
, sig_handler
);
73 signal(SIGTERM
, sig_handler
);
74 signal(SIGSEGV
, sig_handler
);
75 signal(SIGPIPE
, sig_handler
);
76 glob_argc
= argc
; glob_argv
= argv
;
77 initialize_gc_option();
78 initialize_nitni_global_refs();
79 var
= NEW_standard__Sys(&type_standard__Sys
);
82 ((void (*)(val
* self
))(var
->class->vft
[COLOR_standard__kernel__Object__init
]))(var
) /* init on <var:Sys>*/;
85 ((void (*)(val
* self
))(var
->class->vft
[COLOR_standard__kernel__Sys__run
]))(var
) /* run on <var:Sys>*/;
89 const char FILE_nit__nith
[] = "nith.nit";
90 const char FILE_nit__modelize
[] = "modelize/modelize.nit";
91 const char FILE_nit__modelize_property
[] = "modelize/modelize_property.nit";
92 const char FILE_nit__modelize_class
[] = "modelize/modelize_class.nit";
93 const char FILE_nit__modelbuilder
[] = "modelbuilder.nit";
94 const char FILE_nit__loader
[] = "loader.nit";
95 const char FILE_nit__modelbuilder_base
[] = "modelbuilder_base.nit";
96 const char FILE_nit__model
[] = "model/model.nit";
97 const char FILE_nit__mmodule
[] = "model/mmodule.nit";
98 const char FILE_nit__location
[] = "location.nit";
99 const char FILE_standard
[] = "../lib/standard/standard.nit";
100 const char FILE_standard__posix
[] = "../lib/standard/posix.nit";
101 const char FILE_standard__string
[] = "../lib/standard/string.nit";
102 const char FILE_standard__math
[] = "../lib/standard/math.nit";
103 const char FILE_standard__kernel
[] = "../lib/standard/kernel.nit";
104 const char FILE_standard__collection
[] = "../lib/standard/collection/collection.nit";
105 const char FILE_standard__range
[] = "../lib/standard/collection/range.nit";
106 const char FILE_standard__abstract_collection
[] = "../lib/standard/collection/abstract_collection.nit";
107 const char FILE_standard__list
[] = "../lib/standard/collection/list.nit";
108 const char FILE_standard__array
[] = "../lib/standard/collection/array.nit";
109 const char FILE_standard__sorter
[] = "../lib/standard/collection/sorter.nit";
110 const char FILE_standard__hash_collection
[] = "../lib/standard/collection/hash_collection.nit";
111 const char FILE_standard__union_find
[] = "../lib/standard/collection/union_find.nit";
112 const char FILE_standard__environ
[] = "../lib/standard/environ.nit";
113 const char FILE_standard__file
[] = "../lib/standard/file.nit";
114 const char FILE_standard__stream
[] = "../lib/standard/stream.nit";
115 const char FILE_standard__ropes
[] = "../lib/standard/ropes.nit";
116 const char FILE_standard__error
[] = "../lib/standard/error.nit";
117 const char FILE_standard__string_search
[] = "../lib/standard/string_search.nit";
118 const char FILE_standard__time
[] = "../lib/standard/time.nit";
119 const char FILE_standard__gc
[] = "../lib/standard/gc.nit";
120 const char FILE_standard__exec
[] = "../lib/standard/exec.nit";
121 const char FILE_standard__bitset
[] = "../lib/standard/bitset.nit";
122 const char FILE_standard__queue
[] = "../lib/standard/queue.nit";
123 const char FILE_standard__numeric
[] = "../lib/standard/numeric.nit";
124 const char FILE_standard__re
[] = "../lib/standard/re.nit";
125 const char FILE_nit__mproject
[] = "model/mproject.nit";
126 const char FILE_nit__model_base
[] = "model/model_base.nit";
127 const char FILE_more_collections
[] = "../lib/more_collections.nit";
128 const char FILE_poset
[] = "../lib/poset.nit";
129 const char FILE_nit__mdoc
[] = "model/mdoc.nit";
130 const char FILE_ordered_tree
[] = "../lib/ordered_tree.nit";
131 const char FILE_nit__toolcontext
[] = "toolcontext.nit";
132 const char FILE_opts
[] = "../lib/opts.nit";
133 const char FILE_nit__version
[] = "version.nit";
134 const char FILE_template
[] = "../lib/template/template.nit";
135 const char FILE_nit__parser
[] = "parser/parser.nit";
136 const char FILE_nit__parser_prod
[] = "parser/parser_prod.nit";
137 const char FILE_nit__lexer
[] = "parser/lexer.nit";
138 const char FILE_nit__parser_nodes
[] = "parser/parser_nodes.nit";
139 const char FILE_nit__lexer_work
[] = "parser/lexer_work.nit";
140 const char FILE_nit__tables
[] = "parser/tables.nit";
141 const char FILE_nit__parser_work
[] = "parser/parser_work.nit";
142 const char FILE_nit__phase
[] = "phase.nit";
143 const char FILE_nit__annotation
[] = "annotation.nit";
144 const char FILE_nit__literal
[] = "literal.nit";
145 const char FILE_nit__mmodule_data
[] = "model/mmodule_data.nit";
146 const char FILE_nit__transform
[] = "transform.nit";
147 const char FILE_nit__astbuilder
[] = "astbuilder.nit";
148 const char FILE_nit__typing
[] = "semantize/typing.nit";
149 const char FILE_nit__local_var_init
[] = "semantize/local_var_init.nit";
150 const char FILE_nit__flow
[] = "semantize/flow.nit";
151 const char FILE_nit__scope
[] = "semantize/scope.nit";
152 const char FILE_nit__astvalidation
[] = "astvalidation.nit";
153 const char FILE_nit__semantize
[] = "semantize/semantize.nit";
154 const char FILE_nit__auto_super_init
[] = "semantize/auto_super_init.nit";
155 const char FILE_nit__rapid_type_analysis
[] = "rapid_type_analysis.nit";
156 const char FILE_csv
[] = "../lib/csv/csv.nit";
157 const char FILE_nit__separate_erasure_compiler
[] = "compiler/separate_erasure_compiler.nit";
158 const char FILE_nit__separate_compiler
[] = "compiler/separate_compiler.nit";
159 const char FILE_nit__abstract_compiler
[] = "compiler/abstract_compiler.nit";
160 const char FILE_nit__platform
[] = "platform/platform.nit";
161 const char FILE_nit__parser_util
[] = "parser_util.nit";
162 const char FILE_nit__c_tools
[] = "c_tools.nit";
163 const char FILE_nit__mixin
[] = "mixin.nit";
164 const char FILE_nit__coloring
[] = "compiler/coloring.nit";
165 void gc_finalize (void *obj
, void *client_data
) {
166 val
* var
/* : Finalizable */;
169 ((void (*)(val
* self
))(var
->class->vft
[COLOR_standard__gc__Finalizable__finalize
]))(var
) /* finalize on <var:Finalizable>*/;