1 
2 enum {
3 
4   /* Compiled bytecode elements: */
5   scheme_toplevel_type,                 /* 0 */
6   scheme_static_toplevel_type,          /* 1 */
7   scheme_local_type,                    /* 2 */
8   scheme_local_unbox_type,              /* 3 */
9   scheme_application_type,              /* 4 */
10   scheme_application2_type,             /* 5 */
11   scheme_application3_type,             /* 6 */
12   scheme_sequence_type,                 /* 7 */
13   scheme_branch_type,                   /* 8 */
14   scheme_lambda_type,                   /* 9 */
15   scheme_let_value_type,                /* 10 */
16   scheme_let_void_type,                 /* 11 */
17   scheme_letrec_type,                   /* 12 */
18   scheme_let_one_type,                  /* 13 */
19   scheme_with_cont_mark_type,           /* 14 */
20 
21   scheme_define_values_type,            /* 15 */
22   scheme_set_bang_type,                 /* 16 */
23   scheme_boxenv_type,                   /* 17 */
24   scheme_begin0_sequence_type,          /* 18 */
25   scheme_varref_form_type,              /* 19 */
26   scheme_apply_values_type,             /* 20 */
27   scheme_with_immed_mark_type,          /* 21 */
28   scheme_case_lambda_sequence_type,     /* 22 */
29   scheme_inline_variant_type,           /* 23 */
30 
31   _scheme_values_types_,                /* 24 */
32   /* All following types are values at run time */
33 
34   scheme_linklet_type,                  /* 25 */
35 
36   /* Replacements for some of the above as the
37      compiler's intermediate representation for
38      optimization: */
39   scheme_ir_local_type,                 /* 26 */
40   scheme_ir_lambda_type,                /* 27 */
41   scheme_ir_let_value_type,             /* 28 */
42   scheme_ir_let_header_type,            /* 29 */
43   scheme_ir_toplevel_type,              /* 30 */
44 
45   scheme_quote_compilation_type, /* used while writing, only */
46 
47   /* Generated in the compiler front-end, but
48      registered in the prefix table instead of
49      used directly as an "expression": */
50   scheme_variable_type,                 /* 32 */
51 
52   _scheme_ir_values_types_,             /* 33 */
53   /* All of the following are literal values from the
54      perspective of the compiler */
55 
56   scheme_linklet_bundle_type,           /* 34 */
57   scheme_instance_type,                 /* 35 */
58 
59   /* procedure types */
60   scheme_prim_type,                     /* 36 */
61   scheme_closed_prim_type,              /* 37 */
62   scheme_closure_type,                  /* 38 */
63   scheme_case_closure_type,             /* 39 */
64   scheme_cont_type,                     /* 40 */
65   scheme_escaping_cont_type,            /* 41 */
66   scheme_proc_struct_type,              /* 42 */
67   scheme_native_closure_type,           /* 43 */
68   scheme_proc_chaperone_type,           /* 44 */
69 
70   scheme_chaperone_type,                /* 45 */
71 
72   /* structure type (plus one above for procs) */
73   scheme_structure_type,                /* 46 */
74 
75   /* number types (must be together) */
76   scheme_integer_type,                  /* 47 */
77   scheme_bignum_type,                   /* 48 */
78   scheme_rational_type,                 /* 49 */
79   scheme_float_type,                    /* 50 */
80   scheme_double_type,                   /* 51 */
81   scheme_complex_type,                  /* 52 */
82 
83   /* other eqv?-able values (must be with numbers) */
84   scheme_char_type,                     /* 53 */
85   scheme_long_double_type,              /* 54 */
86 
87   /* other values */
88   scheme_char_string_type,              /* 55 */
89   scheme_byte_string_type,              /* 56 */
90   scheme_unix_path_type,                /* 57 */
91   scheme_windows_path_type,             /* 58 */
92   scheme_symbol_type,                   /* 59 */
93   scheme_keyword_type,                  /* 60 */
94   scheme_null_type,                     /* 61 */
95   scheme_pair_type,                     /* 62 */
96   scheme_mutable_pair_type,             /* 63 */
97   scheme_vector_type,                   /* 64 */
98   scheme_inspector_type,                /* 65 */
99   scheme_input_port_type,               /* 66 */
100   scheme_output_port_type,              /* 67 */
101   scheme_eof_type,                      /* 68 */
102   scheme_true_type,                     /* 69 */
103   scheme_false_type,                    /* 70 */
104   scheme_void_type,                     /* 71 */
105   scheme_primitive_syntax_type,         /* 72 */
106   scheme_macro_type,                    /* 73 */
107   scheme_box_type,                      /* 74 */
108   scheme_thread_type,                   /* 75 */
109   scheme_cont_mark_set_type,            /* 76 */
110   scheme_sema_type,                     /* 77 */
111 
112   /* hash table types (must be together for hash?
113    * implementation */
114   scheme_hash_table_type,               /* 78 */
115   scheme_hash_tree_type,                /* 79 */
116   scheme_eq_hash_tree_type,             /* 80 */
117   scheme_eqv_hash_tree_type,            /* 81 */
118   scheme_hash_tree_subtree_type,        /* 82 */
119   scheme_hash_tree_collision_type,      /* 83 */
120   scheme_hash_tree_indirection_type,    /* 84 */
121   scheme_bucket_type,                   /* 85 */
122   scheme_bucket_table_type,             /* 86 */
123 
124   scheme_cpointer_type,                 /* 87 */
125   scheme_prefix_type,                   /* 88 */
126   scheme_weak_box_type,                 /* 89 */
127   scheme_ephemeron_type,                /* 90 */
128   scheme_struct_type_type,              /* 91 */
129   scheme_set_macro_type,                /* 92 */
130   scheme_listener_type,                 /* 93 */
131   scheme_env_type,                      /* 94 */
132   scheme_startup_env_type,              /* 95 */
133   scheme_config_type,                   /* 96 */
134   scheme_stx_type,                      /* 97 */
135   scheme_will_executor_type,            /* 98 */
136   scheme_custodian_type,                /* 99 */
137   scheme_random_state_type,             /* 100 */
138   scheme_regexp_type,                   /* 101 */
139   scheme_subprocess_type,               /* 102 */
140   scheme_eval_waiting_type,             /* 103 */
141   scheme_tail_call_waiting_type,        /* 104 */
142   scheme_undefined_type,                /* 105 */
143   scheme_struct_property_type,          /* 106 */
144   scheme_chaperone_property_type,       /* 107 */
145   scheme_multiple_values_type,          /* 108 */
146   scheme_placeholder_type,              /* 109 */
147   scheme_table_placeholder_type,        /* 110 */
148   scheme_svector_type,                  /* 111 */
149   scheme_resolve_prefix_type,           /* 112 */
150   scheme_security_guard_type,           /* 113 */
151   scheme_indent_type,                   /* 114 */
152   scheme_udp_type,                      /* 115 */
153   scheme_udp_evt_type,                  /* 116 */
154   scheme_tcp_accept_evt_type,           /* 117 */
155   scheme_id_macro_type,                 /* 118 */
156   scheme_evt_set_type,                  /* 119 */
157   scheme_wrap_evt_type,                 /* 120 */
158   scheme_handle_evt_type,               /* 121 */
159   scheme_replace_evt_type,              /* 122 */
160   scheme_active_replace_evt_type,       /* 123 */
161   scheme_nack_guard_evt_type,           /* 124 */
162   scheme_semaphore_repost_type,         /* 125 */
163   scheme_channel_type,                  /* 126 */
164   scheme_channel_put_type,              /* 127 */
165   scheme_thread_resume_type,            /* 128 */
166   scheme_thread_suspend_type,           /* 129 */
167   scheme_thread_dead_type,              /* 130 */
168   scheme_poll_evt_type,                 /* 131 */
169   scheme_nack_evt_type,                 /* 132 */
170   scheme_thread_set_type,               /* 133 */
171   scheme_string_converter_type,         /* 134 */
172   scheme_alarm_type,                    /* 135 */
173   scheme_thread_recv_evt_type,          /* 136 */
174   scheme_thread_cell_type,              /* 137 */
175   scheme_channel_syncer_type,           /* 138 */
176   scheme_write_evt_type,                /* 139 */
177   scheme_always_evt_type,               /* 140 */
178   scheme_never_evt_type,                /* 141 */
179   scheme_progress_evt_type,             /* 142 */
180   scheme_place_dead_type,               /* 143 */
181   scheme_already_comp_type,             /* 144 */
182   scheme_readtable_type,                /* 145 */
183   scheme_thread_cell_values_type,       /* 146 */
184   scheme_global_ref_type,               /* 147 */
185   scheme_cont_mark_chain_type,          /* 148 */
186   scheme_raw_pair_type,                 /* 149 */
187   scheme_prompt_type,                   /* 150 */
188   scheme_prompt_tag_type,               /* 151 */
189   scheme_continuation_mark_key_type,    /* 152 */
190   scheme_delay_syntax_type,             /* 153 */
191   scheme_cust_box_type,                 /* 154 */
192   scheme_logger_type,                   /* 155 */
193   scheme_log_reader_type,               /* 156 */
194   scheme_noninline_proc_type,           /* 157 */
195   scheme_future_type,                   /* 158 */
196   scheme_flvector_type,                 /* 159 */
197   scheme_extflvector_type,              /* 160 */
198   scheme_fxvector_type,                 /* 161 */
199   scheme_place_type,                    /* 162 */
200   scheme_place_object_type,             /* 163 */
201   scheme_place_async_channel_type,      /* 164 */
202   scheme_place_bi_channel_type,         /* 165 */
203   scheme_once_used_type,                /* 166 */
204   scheme_serialized_symbol_type,        /* 167 */
205   scheme_serialized_keyword_type,       /* 168 */
206   scheme_serialized_structure_type,     /* 169 */
207   scheme_fsemaphore_type,               /* 170 */
208   scheme_serialized_tcp_fd_type,        /* 171 */
209   scheme_serialized_file_fd_type,       /* 172 */
210   scheme_port_closed_evt_type,          /* 173 */
211   scheme_proc_shape_type,               /* 174 */
212   scheme_struct_prop_proc_shape_type,   /* 175 */
213   scheme_struct_proc_shape_type,        /* 176 */
214   scheme_phantom_bytes_type,            /* 177 */
215   scheme_environment_variables_type,    /* 178 */
216   scheme_filesystem_change_evt_type,    /* 179 */
217   scheme_ctype_type,                    /* 180 */
218   scheme_plumber_type,                  /* 181 */
219   scheme_plumber_handle_type,           /* 182 */
220   scheme_deferred_expr_type,            /* 183 */
221   scheme_unquoted_printing_string_type, /* 184 */
222   scheme_will_be_lambda_type,           /* 185 */
223   scheme_thunk_for_continue_type,       /* 186 */
224 
225 #ifdef MZTAG_REQUIRED
226   _scheme_last_normal_type_,            /* 187 */
227 
228   /* The remaining tags exist for GC tracing (in non-conservative
229      mode), but they are not needed for run-time tag tests */
230 
231   scheme_rt_weak_array,                 /* 188 */
232 
233   scheme_rt_comp_env,                   /* 189 */
234   scheme_rt_constant_binding,           /* 190 */
235   scheme_rt_resolve_info,               /* 191 */
236   scheme_rt_unresolve_info,             /* 192 */
237   scheme_rt_optimize_info,              /* 193 */
238   scheme_rt_cont_mark,                  /* 194 */
239   scheme_rt_saved_stack,                /* 195 */
240   scheme_rt_reply_item,                 /* 196 */
241   scheme_rt_ir_lambda_info,             /* 197 */
242   scheme_rt_overflow,                   /* 198 */
243   scheme_rt_overflow_jmp,               /* 199 */
244   scheme_rt_meta_cont,                  /* 200 */
245   scheme_rt_dyn_wind_cell,              /* 201 */
246   scheme_rt_dyn_wind_info,              /* 202 */
247   scheme_rt_dyn_wind,                   /* 203 */
248   scheme_rt_dup_check,                  /* 204 */
249   scheme_rt_thread_memory,              /* 205 */
250   scheme_rt_input_file,                 /* 206 */
251   scheme_rt_input_fd,                   /* 207 */
252   scheme_rt_oskit_console_input,        /* 208 */
253   scheme_rt_tested_input_file,          /* 209 */
254   scheme_rt_tested_output_file,         /* 210 */
255   scheme_rt_indexed_string,             /* 211 */
256   scheme_rt_output_file,                /* 212 */
257   scheme_rt_pipe,                       /* 213 */
258   scheme_rt_system_child,               /* 214 */
259   scheme_rt_tcp,                        /* 215 */
260   scheme_rt_write_data,                 /* 216 */
261   scheme_rt_tcp_select_info,            /* 217 */
262   scheme_rt_param_data,                 /* 218 */
263   scheme_rt_will,                       /* 219 */
264   scheme_rt_finalization,               /* 220 */
265   scheme_rt_finalizations,              /* 221 */
266   scheme_rt_cpp_object,                 /* 222 */
267   scheme_rt_cpp_array_object,           /* 223 */
268   scheme_rt_stack_object,               /* 224 */
269   scheme_thread_hop_type,               /* 225 */
270   scheme_rt_srcloc,                     /* 226 */
271   scheme_rt_evt,                        /* 227 */
272   scheme_rt_syncing,                    /* 228 */
273   scheme_rt_comp_prefix,                /* 229 */
274   scheme_rt_user_input,                 /* 230 */
275   scheme_rt_user_output,                /* 231 */
276   scheme_rt_compact_port,               /* 232 */
277   scheme_rt_read_special_dw,            /* 233 */
278   scheme_rt_regwork,                    /* 234 */
279   scheme_rt_rx_lazy_string,             /* 235 */
280   scheme_rt_buf_holder,                 /* 236 */
281   scheme_rt_parameterization,           /* 237 */
282   scheme_rt_print_params,               /* 238 */
283   scheme_rt_read_params,                /* 239 */
284   scheme_rt_native_code,                /* 240 */
285   scheme_rt_native_code_plus_case,      /* 241 */
286   scheme_rt_jitter_data,                /* 242 */
287   scheme_rt_module_exports,             /* 243 */
288   scheme_rt_delay_load_info,            /* 244 */
289   scheme_rt_marshal_info,               /* 245 */
290   scheme_rt_unmarshal_info,             /* 246 */
291   scheme_rt_runstack,                   /* 247 */
292   scheme_rt_sfs_info,                   /* 248 */
293   scheme_rt_validate_clearing,          /* 249 */
294   scheme_rt_lightweight_cont,           /* 250 */
295   scheme_rt_export_info,                /* 251 */
296   scheme_rt_cont_jmp,                   /* 252 */
297   scheme_rt_letrec_check_frame,         /* 253 */
298 #endif
299 
300   _scheme_last_type_
301 };
302