diff options
-rw-r--r-- | frontend/check.icl | 11 | ||||
-rw-r--r-- | frontend/checksupport.icl | 10 |
2 files changed, 14 insertions, 7 deletions
diff --git a/frontend/check.icl b/frontend/check.icl index e9b2e69..d3f19cc 100644 --- a/frontend/check.icl +++ b/frontend/check.icl @@ -1050,7 +1050,10 @@ create_icl_to_dcl_index_table MK_Main icl_sizes icl_global_function_range main_d = (No,No,modules,fun_defs) create_icl_to_dcl_index_table _ icl_sizes icl_global_function_range main_dcl_module_n old_conversions modules fun_defs # (size_icl_functions,fun_defs) = usize fun_defs - # icl_sizes = {{icl_sizes.[i] \\ i<-[0..cMacroDefs-1]} & [cFunctionDefs]=size_icl_functions} + # icl_sizes = make_icl_sizes + with + make_icl_sizes :: *{#Int} + make_icl_sizes => {{icl_sizes.[i] \\ i<-[0..cMacroDefs-1]} & [cFunctionDefs]=size_icl_functions} # (dcl_mod,modules) = modules![main_dcl_module_n] # dictionary_info=dcl_mod.dcl_dictionary_info # (Yes conversion_table) = old_conversions @@ -1901,6 +1904,7 @@ check_module1 {mod_type,mod_name,mod_imports,mod_imported_objects,mod_defs = cde -> ({ pre_def_symbols & [predef_index] = { mod_symb & pds_module = cs_x.x_main_dcl_module_n, pds_def = mod_entry.ste_index }}, symbol_table) _ -> (pre_def_symbols, symbol_table) + add_modules_to_symbol_table [mod : mods] mod_index cs # (mod_sizes_and_defs,dcl_macro_defs,cs) = add_module_to_symbol_table mod mod_index cs (mods, macro_defs, cs) = add_modules_to_symbol_table mods (inc mod_index) cs @@ -2032,6 +2036,9 @@ check_module2 mod_name mod_modification_time mod_imported_objects mod_imports mo heaps = { heaps & hp_expression_heap=hp_expression_heap } + icl_imported + = { el \\ el<-dcls_import_list } + icl_imported = { el \\ el<-dcls_import_list } (_,icl_common, dcl_modules, hp_type_heaps, hp_var_heap, cs) @@ -2158,7 +2165,7 @@ check_module2 mod_name mod_modification_time mod_imported_objects mod_imports mo = (first_free_index, modules, icl_functions, var_heap, type_var_heap, expr_heap) collect_specialized_functions_in_dcl_module _ first_free_index main_dcl_module_n modules icl_functions var_heap type_var_heap expr_heap # (dcl_mod, modules) = modules![main_dcl_module_n] - # {dcl_specials,dcl_functions,dcl_common,dcl_conversions} = dcl_mod + # {dcl_specials,dcl_functions,dcl_common} = dcl_mod # (icl_functions, last_index, (var_heap, type_var_heap, expr_heap)) = collect_specialized_functions dcl_specials.ir_from dcl_specials.ir_to dcl_functions (icl_functions, first_free_index, (var_heap, type_var_heap, expr_heap)) diff --git a/frontend/checksupport.icl b/frontend/checksupport.icl index d63ade8..79d4669 100644 --- a/frontend/checksupport.icl +++ b/frontend/checksupport.icl @@ -519,9 +519,9 @@ where remove_macro_defs_from_symbol_table level from_index to_index defs symbol_table | from_index == to_index = (defs, symbol_table) - #! def = defs.[module_index,from_index] - id_info = (toIdent def).id_info - entry = sreadPtr id_info symbol_table + # (def,defs) = defs![module_index,from_index] + id_info = (toIdent def).id_info + (entry,symbol_table) = readPtr id_info symbol_table | level == entry.ste_def_level = remove_macro_defs_from_symbol_table level (inc from_index) to_index defs (symbol_table <:= (id_info, entry.ste_previous)) = remove_macro_defs_from_symbol_table level (inc from_index) to_index defs symbol_table @@ -533,8 +533,8 @@ where remove_fun_defs_from_symbol_table level from_index to_index defs symbol_table | from_index == to_index = (defs, symbol_table) - #! def = defs.[from_index] - id_info = (toIdent def).id_info + # (def,defs) = defs![from_index] + id_info = (toIdent def).id_info # (entry, symbol_table) = readPtr id_info symbol_table | level == entry.ste_def_level = remove_fun_defs_from_symbol_table level (inc from_index) to_index defs (symbol_table <:= (id_info, entry.ste_previous)) |