Commit 39df58ee authored by John van Groningen's avatar John van Groningen
Browse files

import module _SystemDynamic instead of StdCleanTypes if -dynamics is used,

don't generate type representation in TD; functions,
use TypeCodeConstructor and TD_ constructors instead of TypeCodeConstructor.. functions
parent 2aa61e9f
...@@ -2109,7 +2109,6 @@ check_module1 cdefs icl_global_function_range fun_defs optional_dcl_mod optional ...@@ -2109,7 +2109,6 @@ check_module1 cdefs icl_global_function_range fun_defs optional_dcl_mod optional
<=< adjust_predefined_module_symbol PD_StdStrictLists <=< adjust_predefined_module_symbol PD_StdStrictLists
<=< adjust_predefined_module_symbol PD_StdDynamic <=< adjust_predefined_module_symbol PD_StdDynamic
<=< adjust_predefined_module_symbol PD_StdGeneric <=< adjust_predefined_module_symbol PD_StdGeneric
<=< adjust_predefined_module_symbol PD_CleanTypes
<=< adjust_predefined_module_symbol PD_StdMisc <=< adjust_predefined_module_symbol PD_StdMisc
<=< adjust_predefined_module_symbol PD_PredefinedModule <=< adjust_predefined_module_symbol PD_PredefinedModule
= ([], [], { cs & cs_predef_symbols = cs_predef_symbols, cs_symbol_table = cs_symbol_table}) = ([], [], { cs & cs_predef_symbols = cs_predef_symbols, cs_symbol_table = cs_symbol_table})
...@@ -3139,8 +3138,10 @@ where ...@@ -3139,8 +3138,10 @@ where
<=< adjustPredefSymbol PD_Dyn_UnificationEnvironment mod_index STE_Type <=< adjustPredefSymbol PD_Dyn_UnificationEnvironment mod_index STE_Type
<=< adjust_predef_symbols PD_Dyn_TypeScheme PD_Dyn__TypeFixedVar mod_index STE_Constructor <=< adjust_predef_symbols PD_Dyn_TypeScheme PD_Dyn__TypeFixedVar mod_index STE_Constructor
<=< adjust_predef_symbols PD_Dyn_initial_unification_environment PD_Dyn_normalise mod_index STE_DclFunction <=< adjust_predef_symbols PD_Dyn_initial_unification_environment PD_Dyn_normalise mod_index STE_DclFunction
<=< adjust_predef_symbols PD_Dyn_TypeCodeConstructorInt PD_Dyn_TypeCodeConstructor_UnboxedArray mod_index STE_DclFunction <=< adjustPredefSymbol PD_Dyn__to_TypeCodeConstructor mod_index STE_DclFunction
<=< adjustPredefSymbol PD_Dyn__to_TypeCodeConstructor mod_index STE_DclFunction) <=< adjustPredefSymbol PD_TypeCodeConstructor mod_index STE_Type
<=< adjust_predef_symbols PD_TC_Int PD_TC__UnboxedArray mod_index STE_Constructor
)
# (pre_mod, cs_predef_symbols) = cs_predef_symbols![PD_StdGeneric] # (pre_mod, cs_predef_symbols) = cs_predef_symbols![PD_StdGeneric]
# type_bimap = predefined_idents.[PD_TypeBimap] # type_bimap = predefined_idents.[PD_TypeBimap]
| pre_mod.pds_def == mod_index | pre_mod.pds_def == mod_index
...@@ -3157,18 +3158,6 @@ where ...@@ -3157,18 +3158,6 @@ where
= (class_members, class_instances, fun_types, { cs & cs_predef_symbols = cs_predef_symbols} = (class_members, class_instances, fun_types, { cs & cs_predef_symbols = cs_predef_symbols}
<=< adjustPredefSymbol PD_abort mod_index STE_DclFunction <=< adjustPredefSymbol PD_abort mod_index STE_DclFunction
<=< adjustPredefSymbol PD_undef mod_index STE_DclFunction) <=< adjustPredefSymbol PD_undef mod_index STE_DclFunction)
# (pre_mod, cs_predef_symbols) = cs_predef_symbols![PD_CleanTypes]
| pre_mod.pds_def == mod_index
= (class_members, class_instances, fun_types, { cs & cs_predef_symbols = cs_predef_symbols}
<=< adjustPredefSymbol PD_CTTypeDef mod_index STE_Type
<=< adjustPredefSymbol PD_CTAlgType mod_index STE_Constructor
<=< adjustPredefSymbol PD_CTRecordType mod_index STE_Constructor
<=< adjustPredefSymbol PD_CTSynType mod_index STE_Constructor
<=< adjustPredefSymbol PD_CTPredefined mod_index STE_Constructor
<=< adjustPredefSymbol PD_CTConsDef mod_index STE_Type
<=< adjustPredefSymbol PD__CTToCons mod_index STE_DclFunction
<=< adjustPredefSymbol PD_CTFieldDef mod_index STE_Type )
= (class_members, class_instances, fun_types, { cs & cs_predef_symbols = cs_predef_symbols}) = (class_members, class_instances, fun_types, { cs & cs_predef_symbols = cs_predef_symbols})
where where
unused unused
......
...@@ -20,13 +20,14 @@ import type_io; ...@@ -20,13 +20,14 @@ import type_io;
} }
:: DynamicRepresentation = :: DynamicRepresentation =
{ dr_type_ident :: SymbIdent !{ dr_type_ident :: SymbIdent
, dr_dynamic_type :: Global Index , dr_dynamic_type :: Global Index
, dr_dynamic_symbol :: Global DefinedSymbol , dr_dynamic_symbol :: Global DefinedSymbol
, dr_type_code_constructor_symb_ident :: SymbIdent
} }
:: ConversionInput = :: ConversionInput =
{ cinp_dynamic_representation :: DynamicRepresentation { cinp_dynamic_representation :: !DynamicRepresentation
, cinp_st_args :: ![FreeVar] , cinp_st_args :: ![FreeVar]
, cinp_subst_var :: !BoundVar , cinp_subst_var :: !BoundVar
} }
...@@ -507,7 +508,6 @@ convertTypeCode pattern _ (TCE_TypeTerm var_info_ptr) (has_var, binds, ci=:{ci_v ...@@ -507,7 +508,6 @@ convertTypeCode pattern _ (TCE_TypeTerm var_info_ptr) (has_var, binds, ci=:{ci_v
# (expr, ci) = createTypePatternVariable ci # (expr, ci) = createTypePatternVariable ci
# ci = {ci & ci_var_heap = writePtr var_info_ptr (VI_TypeCodeVariable (TCI_TypePatternVar expr)) ci.ci_var_heap} # ci = {ci & ci_var_heap = writePtr var_info_ptr (VI_TypeCodeVariable (TCI_TypePatternVar expr)) ci.ci_var_heap}
-> (expr, (True, binds, ci)) -> (expr, (True, binds, ci))
convertTypeCode pattern cinp (TCE_App t arg) (has_var, binds, ci) convertTypeCode pattern cinp (TCE_App t arg) (has_var, binds, ci)
# (typeapp_symb, ci) # (typeapp_symb, ci)
= getSymbol PD_Dyn_TypeApp SK_Constructor 2 ci = getSymbol PD_Dyn_TypeApp SK_Constructor 2 ci
...@@ -518,7 +518,7 @@ convertTypeCode pattern cinp (TCE_App t arg) (has_var, binds, ci) ...@@ -518,7 +518,7 @@ convertTypeCode pattern cinp (TCE_App t arg) (has_var, binds, ci)
= (App {app_symb = typeapp_symb, = (App {app_symb = typeapp_symb,
app_args = [typecode_t, typecode_arg], app_args = [typecode_t, typecode_arg],
app_info_ptr = nilPtr}, st) app_info_ptr = nilPtr}, st)
convertTypeCode pattern cinp (TCE_Constructor cons []) (has_var, binds, ci) convertTypeCode pattern {cinp_dynamic_representation} (TCE_Constructor cons []) (has_var, binds, ci)
# (typecons_symb, ci) # (typecons_symb, ci)
= getSymbol PD_Dyn_TypeCons SK_Constructor 1 ci = getSymbol PD_Dyn_TypeCons SK_Constructor 1 ci
# (constructor, ci) # (constructor, ci)
...@@ -536,62 +536,50 @@ where ...@@ -536,62 +536,50 @@ where
typeConstructor (GTT_PredefTypeConstructor {glob_object=type_index}) ci typeConstructor (GTT_PredefTypeConstructor {glob_object=type_index}) ci
| PD_Arity2TupleTypeIndex <= type_index && type_index <= PD_Arity32TupleTypeIndex | PD_Arity2TupleTypeIndex <= type_index && type_index <= PD_Arity32TupleTypeIndex
# arity = type_code_constructor_expression (type_index + (PD_TC__Tuple2 - PD_Arity2TupleTypeIndex)) ci
= type_index - PD_Arity2TupleTypeIndex + 2
# (tuple_symb, ci)
= getSymbol PD_Dyn_TypeCodeConstructor_Tuple SK_Function 1 ci
= (App {app_symb = tuple_symb, app_args = [BasicExpr (BVInt arity)], app_info_ptr = nilPtr}, ci)
// otherwise // otherwise
# predef_type_index # predef_type_index = type_index + FirstTypePredefinedSymbolIndex
= type_index + FirstTypePredefinedSymbolIndex = case predef_type_index of
= constructorExp (predefinedTypeConstructor predef_type_index) SK_Function 0 ci PD_ListType
-> type_code_constructor_expression PD_TC__List ci
PD_StrictListType
-> type_code_constructor_expression PD_TC__StrictList ci
PD_UnboxedListType
-> type_code_constructor_expression PD_TC__UnboxedList ci
PD_TailStrictListType
-> type_code_constructor_expression PD_TC__TailStrictList ci
PD_StrictTailStrictListType
-> type_code_constructor_expression PD_TC__StrictTailStrictList ci
PD_UnboxedTailStrictListType
-> type_code_constructor_expression PD_TC__UnboxedTailStrictList ci
PD_LazyArrayType
-> type_code_constructor_expression PD_TC__LazyArray ci
PD_StrictArrayType
-> type_code_constructor_expression PD_TC__StrictArray ci
PD_UnboxedArrayType
-> type_code_constructor_expression PD_TC__UnboxedArray ci
typeConstructor (GTT_Constructor fun_ident) ci typeConstructor (GTT_Constructor fun_ident) ci
# type_fun # type_fun
= App {app_symb = fun_ident, app_args = [], app_info_ptr = nilPtr} = App {app_symb = fun_ident, app_args = [], app_info_ptr = nilPtr}
# (to_tc_symb, ci) = (App {app_symb = cinp_dynamic_representation.dr_type_code_constructor_symb_ident, app_args = [type_fun], app_info_ptr = nilPtr}, ci)
= getSymbol PD_Dyn__to_TypeCodeConstructor SK_Function 2 ci
= (App {app_symb = to_tc_symb, app_args = [type_fun], app_info_ptr = nilPtr}, ci)
typeConstructor (GTT_Basic basic_type) ci typeConstructor (GTT_Basic basic_type) ci
= constructorExp (basicTypeConstructor basic_type) SK_Function 0 ci #! predefined_TC_basic_type
= case basic_type of
BT_Int -> PD_TC_Int
BT_Char -> PD_TC_Char
BT_Real -> PD_TC_Real
BT_Bool -> PD_TC_Bool
BT_Dynamic -> PD_TC_Dynamic
BT_File -> PD_TC_File
BT_World -> PD_TC_World
= type_code_constructor_expression predefined_TC_basic_type ci
typeConstructor GTT_Function ci typeConstructor GTT_Function ci
= constructorExp PD_Dyn_TypeCodeConstructor_Arrow SK_Function 0 ci = type_code_constructor_expression PD_TC__Arrow ci
basicTypeConstructor BT_Int type_code_constructor_expression predefined_TC_type ci
= PD_Dyn_TypeCodeConstructorInt # (cons_TC_Char, ci) = constructorExp predefined_TC_type SK_Constructor 0 ci
basicTypeConstructor BT_Char = (App {app_symb = cinp_dynamic_representation.dr_type_code_constructor_symb_ident, app_args = [cons_TC_Char], app_info_ptr = nilPtr}, ci)
= PD_Dyn_TypeCodeConstructorChar
basicTypeConstructor BT_Real
= PD_Dyn_TypeCodeConstructorReal
basicTypeConstructor BT_Bool
= PD_Dyn_TypeCodeConstructorBool
basicTypeConstructor BT_Dynamic
= PD_Dyn_TypeCodeConstructorDynamic
basicTypeConstructor BT_File
= PD_Dyn_TypeCodeConstructorFile
basicTypeConstructor BT_World
= PD_Dyn_TypeCodeConstructorWorld
predefinedTypeConstructor predef_type_index
| predef_type_index == PD_ListType
= PD_Dyn_TypeCodeConstructor_List
| predef_type_index == PD_StrictListType
= PD_Dyn_TypeCodeConstructor_StrictList
| predef_type_index == PD_UnboxedListType
= PD_Dyn_TypeCodeConstructor_UnboxedList
| predef_type_index == PD_TailStrictListType
= PD_Dyn_TypeCodeConstructor_TailStrictList
| predef_type_index == PD_StrictTailStrictListType
= PD_Dyn_TypeCodeConstructor_StrictTailStrictList
| predef_type_index == PD_UnboxedTailStrictListType
= PD_Dyn_TypeCodeConstructor_UnboxedTailStrictList
| predef_type_index == PD_LazyArrayType
= PD_Dyn_TypeCodeConstructor_LazyArray
| predef_type_index == PD_StrictArrayType
= PD_Dyn_TypeCodeConstructor_StrictArray
| predef_type_index == PD_UnboxedArrayType
= PD_Dyn_TypeCodeConstructor_UnboxedArray
// otherwise
= fatal "predefinedType" "TC code from predef"
convertTypeCode pattern cinp (TCE_Constructor cons args) st convertTypeCode pattern cinp (TCE_Constructor cons args) st
# curried_type # curried_type
= foldl TCE_App (TCE_Constructor cons []) args = foldl TCE_App (TCE_Constructor cons []) args
...@@ -751,10 +739,11 @@ create_dynamic_and_selector_idents common_defs predefined_symbols ...@@ -751,10 +739,11 @@ create_dynamic_and_selector_idents common_defs predefined_symbols
= ({ dr_type_ident = undef = ({ dr_type_ident = undef
, dr_dynamic_type = undef , dr_dynamic_type = undef
, dr_dynamic_symbol = undef , dr_dynamic_symbol = undef
, dr_type_code_constructor_symb_ident = undef
},predefined_symbols) },predefined_symbols)
// otherwise // otherwise
# ({pds_module=pds_module1, pds_def=pds_def1} , predefined_symbols) = predefined_symbols![PD_Dyn_DynamicTemp] # ({pds_module=pds_module1, pds_def=pds_def1} , predefined_symbols) = predefined_symbols![PD_Dyn_DynamicTemp]
# {td_rhs=RecordType {rt_constructor,rt_fields}} = common_defs.[pds_module1].com_type_defs.[pds_def1] # {td_rhs=RecordType {rt_constructor}} = common_defs.[pds_module1].com_type_defs.[pds_def1]
# dynamic_defined_symbol # dynamic_defined_symbol
= {glob_module = pds_module1, glob_object = rt_constructor} = {glob_module = pds_module1, glob_object = rt_constructor}
...@@ -765,8 +754,13 @@ create_dynamic_and_selector_idents common_defs predefined_symbols ...@@ -765,8 +754,13 @@ create_dynamic_and_selector_idents common_defs predefined_symbols
symb_ident = rt_constructor.ds_ident symb_ident = rt_constructor.ds_ident
, symb_kind = SK_Constructor {glob_module = pds_module1, glob_object = rt_constructor.ds_index} , symb_kind = SK_Constructor {glob_module = pds_module1, glob_object = rt_constructor.ds_index}
} }
# ({pds_module=pds_module2, pds_def=pds_def2}, predefined_symbols) = predefined_symbols![PD_TypeCodeConstructor]
# {td_rhs=RecordType {rt_constructor}} = common_defs.[pds_module2].com_type_defs.[pds_def2]
# type_code_constructor_symb_ident
= {symb_ident = rt_constructor.ds_ident, symb_kind = SK_Constructor {glob_module = pds_module2, glob_object = rt_constructor.ds_index}}
= ({ dr_type_ident = dynamic_temp_symb_ident = ({ dr_type_ident = dynamic_temp_symb_ident
, dr_dynamic_type = dynamic_type , dr_dynamic_type = dynamic_type
, dr_dynamic_symbol = dynamic_defined_symbol , dr_dynamic_symbol = dynamic_defined_symbol
, dr_type_code_constructor_symb_ident = type_code_constructor_symb_ident
}, predefined_symbols) }, predefined_symbols)
...@@ -98,9 +98,6 @@ frontEndInterface options mod_ident search_paths cached_dcl_modules cached_dcl_m ...@@ -98,9 +98,6 @@ frontEndInterface options mod_ident search_paths cached_dcl_modules cached_dcl_m
// # (td_infos, th_vars, error_admin) = analyseTypeDefs ti_common_defs type_groups td_infos type_heaps.th_vars error_admin // # (td_infos, th_vars, error_admin) = analyseTypeDefs ti_common_defs type_groups td_infos type_heaps.th_vars error_admin
({com_type_defs}, ti_common_defs) = replace ti_common_defs main_dcl_module_n icl_common ({com_type_defs}, ti_common_defs) = replace ti_common_defs main_dcl_module_n icl_common
| support_dynamics && not (sanityCheckTypeFunctions main_dcl_module_n icl_common dcl_mods fun_defs)
= abort "frontend: sanityCheckTypeFunctions failed"
# hp_var_heap = heaps.hp_var_heap # hp_var_heap = heaps.hp_var_heap
#! n_types_with_type_functions = size ti_common_defs.[main_dcl_module_n].com_type_defs #! n_types_with_type_functions = size ti_common_defs.[main_dcl_module_n].com_type_defs
#! n_constructors_with_type_functions = size ti_common_defs.[main_dcl_module_n].com_cons_defs #! n_constructors_with_type_functions = size ti_common_defs.[main_dcl_module_n].com_cons_defs
......
...@@ -1483,7 +1483,7 @@ qualified_ident_to_import_declaration IC_Selector ident ...@@ -1483,7 +1483,7 @@ qualified_ident_to_import_declaration IC_Selector ident
reorganiseDefinitionsAndAddTypes mod_ident support_dynamics icl_module defs ca reorganiseDefinitionsAndAddTypes mod_ident support_dynamics icl_module defs ca
| support_dynamics | support_dynamics
# clean_types_module_ident # clean_types_module_ident
= predefined_idents.[PD_CleanTypes] = predefined_idents.[PD_StdDynamic]
# clean_types_module = # clean_types_module =
{ import_module = clean_types_module_ident { import_module = clean_types_module_ident
, import_symbols = ImportSymbolsAll , import_symbols = ImportSymbolsAll
......
...@@ -160,121 +160,145 @@ PD_Dyn_initial_unification_environment :== 172 ...@@ -160,121 +160,145 @@ PD_Dyn_initial_unification_environment :== 172
PD_Dyn_bind_global_type_pattern_var :== 173 PD_Dyn_bind_global_type_pattern_var :== 173
PD_Dyn_unify :== 174 PD_Dyn_unify :== 174
PD_Dyn_normalise :== 175 PD_Dyn_normalise :== 175
// predefined type code constructor (expressions)
PD_Dyn_TypeCodeConstructorInt :== 176
PD_Dyn_TypeCodeConstructorChar :== 177
PD_Dyn_TypeCodeConstructorReal :== 178
PD_Dyn_TypeCodeConstructorBool :== 179
PD_Dyn_TypeCodeConstructorDynamic :== 180
PD_Dyn_TypeCodeConstructorFile :== 181
PD_Dyn_TypeCodeConstructorWorld :== 182
PD_Dyn_TypeCodeConstructor_Arrow :== 183
PD_Dyn_TypeCodeConstructor_List :== 184
PD_Dyn_TypeCodeConstructor_StrictList :== 185
PD_Dyn_TypeCodeConstructor_UnboxedList :== 186
PD_Dyn_TypeCodeConstructor_TailStrictList :== 187
PD_Dyn_TypeCodeConstructor_StrictTailStrictList :== 188
PD_Dyn_TypeCodeConstructor_UnboxedTailStrictList :== 189
PD_Dyn_TypeCodeConstructor_Tuple :== 190
PD_Dyn_TypeCodeConstructor_LazyArray :== 191
PD_Dyn_TypeCodeConstructor_StrictArray :== 192
PD_Dyn_TypeCodeConstructor_UnboxedArray :== 193
/* Generics */ /* Generics */
PD_StdGeneric :== 194 PD_StdGeneric :== 176
// Generics types // Generics types
PD_TypeBimap :== 195 PD_TypeBimap :== 177
PD_TypeUNIT :== 196 PD_TypeUNIT :== 178
PD_TypeEITHER :== 197 PD_TypeEITHER :== 179
PD_TypePAIR :== 198 PD_TypePAIR :== 180
// for constructor info // for constructor info
PD_TypeCONS :== 199 PD_TypeCONS :== 181
PD_TypeFIELD :== 200 PD_TypeFIELD :== 182
PD_TypeOBJECT :== 201 PD_TypeOBJECT :== 183
PD_GenericInfo :== 202 PD_GenericInfo :== 184
PD_TGenericConsDescriptor :== 203 //PD_TGenericConsDescriptor :== 184
PD_TGenericFieldDescriptor :== 204 PD_TGenericFieldDescriptor :== 185
PD_TGenericTypeDefDescriptor :== 205 PD_TGenericTypeDefDescriptor :== 186
PD_TGenConsPrio :== 206 PD_TGenConsPrio :== 187
PD_TGenConsAssoc :== 207 PD_TGenConsAssoc :== 188
PD_TGenType :== 208 PD_TGenType :== 189
PD_TypeGenericDict :== 209 PD_TypeGenericDict :== 190
// Generics fields // Generics fields
PD_map_to :== 210 PD_map_to :== 191
PD_map_from :== 211 PD_map_from :== 192
// Generics expressions // Generics expression
PD_ConsBimap :== 212 PD_ConsBimap :== 193
PD_ConsUNIT :== 213 PD_ConsUNIT :== 194
PD_ConsLEFT :== 214 PD_ConsLEFT :== 195
PD_ConsRIGHT :== 215 PD_ConsRIGHT :== 196
PD_ConsPAIR :== 216 PD_ConsPAIR :== 197
// for constructor info // for constructor info
PD_ConsCONS :== 217 PD_ConsCONS :== 198
PD_ConsFIELD :== 218 PD_ConsFIELD :== 199
PD_ConsOBJECT :== 219 PD_ConsOBJECT :== 200
PD_NoGenericInfo :== 220 PD_NoGenericInfo :== 201
PD_GenericConsInfo :== 221 PD_GenericConsInfo :== 202
PD_GenericFieldInfo :== 222 PD_GenericFieldInfo :== 203
PD_GenericTypeInfo :== 223 PD_GenericTypeInfo :== 204
PD_CGenericConsDescriptor :== 224 PD_CGenericConsDescriptor :== 205
PD_CGenericFieldDescriptor :== 225 PD_CGenericFieldDescriptor :== 206
PD_CGenericTypeDefDescriptor :== 226 PD_CGenericTypeDefDescriptor :== 207
PD_CGenConsNoPrio :== 227 PD_CGenConsNoPrio :== 208
PD_CGenConsPrio :== 228 PD_CGenConsPrio :== 209
PD_CGenConsAssocNone :== 229 PD_CGenConsAssocNone :== 210
PD_CGenConsAssocLeft :== 230 PD_CGenConsAssocLeft :== 211
PD_CGenConsAssocRight :== 231 PD_CGenConsAssocRight :== 212
PD_CGenTypeCons :== 232 PD_CGenTypeCons :== 213
PD_CGenTypeVar :== 233 PD_CGenTypeVar :== 214
PD_CGenTypeArrow :== 234 PD_CGenTypeArrow :== 215
PD_CGenTypeApp :== 235 PD_CGenTypeApp :== 216
PD_bimapId :== 236 PD_bimapId :== 217
PD_GenericBimap :== 237 PD_GenericBimap :== 218
PD_FromS :== 238 PD_FromS :== 219
PD_FromTS :== 239 PD_FromTS :== 220
PD_FromSTS :== 240 PD_FromSTS :== 221
PD_FromU :== 241 PD_FromU :== 222
PD_FromUTS :== 242 PD_FromUTS :== 223
PD_FromO :== 243 PD_FromO :== 224
PD_FromThenS :== 244 PD_FromThenS :== 225
PD_FromThenTS :== 245 PD_FromThenTS :== 226
PD_FromThenSTS :== 246 PD_FromThenSTS :== 227
PD_FromThenU :== 247 PD_FromThenU :== 228
PD_FromThenUTS :== 248 PD_FromThenUTS :== 229
PD_FromThenO :== 249 PD_FromThenO :== 230
PD_FromToS :== 250 PD_FromToS :== 231
PD_FromToTS :== 251 PD_FromToTS :== 232
PD_FromToSTS :== 252 PD_FromToSTS :== 233
PD_FromToU :== 253 PD_FromToU :== 234
PD_FromToUTS :== 254 PD_FromToUTS :== 235
PD_FromToO :== 255 PD_FromToO :== 236
PD_FromThenToS :== 256 PD_FromThenToS :== 237
PD_FromThenToTS :== 257 PD_FromThenToTS :== 238
PD_FromThenToSTS :== 258 PD_FromThenToSTS :== 239
PD_FromThenToU :== 259 PD_FromThenToU :== 240
PD_FromThenToUTS :== 260 PD_FromThenToUTS :== 241
PD_FromThenToO :== 261 PD_FromThenToO :== 242
/* Clean Type introspection */ PD_Dyn__to_TypeCodeConstructor :== 243
PD_CleanTypes :== 262 PD_TypeCodeConstructor :== 244
PD_CTTypeDef :== 263
PD_CTAlgType :== 264 PD_TC_Int :== 245
PD_CTRecordType :== 265 PD_TC_Char :== 246
PD_CTSynType :== 266 PD_TC_Real :== 247
PD_CTPredefined :== 267 PD_TC_Bool :== 248
PD_CTConsDef :== 268 PD_TC_Dynamic :== 249
PD__CTToCons :== 269 PD_TC_File :== 250
PD_CTFieldDef :== 270 PD_TC_World :== 251
PD_Dyn__to_TypeCodeConstructor :== 271 PD_TC__Arrow :== 252
PD_NrOfPredefSymbols :== 272 PD_TC__List :== 253
PD_TC__StrictList :== 254
PD_TC__UnboxedList :== 255
PD_TC__TailStrictList :== 256
PD_TC__StrictTailStrictList :== 257
PD_TC__UnboxedTailStrictList :== 258
PD_TC__Tuple2 :== 259
PD_TC__Tuple3 :== 260
PD_TC__Tuple4 :== 261
PD_TC__Tuple5 :== 262
PD_TC__Tuple6 :== 263
PD_TC__Tuple7 :== 264
PD_TC__Tuple8 :== 265
PD_TC__Tuple9 :== 266
PD_TC__Tuple10 :== 267
PD_TC__Tuple11 :== 268
PD_TC__Tuple12 :== 269
PD_TC__Tuple13 :== 270
PD_TC__Tuple14 :== 271
PD_TC__Tuple15 :== 272
PD_TC__Tuple16 :== 273
PD_TC__Tuple17 :== 274
PD_TC__Tuple18 :== 275
PD_TC__Tuple19 :== 276
PD_TC__Tuple20 :== 277
PD_TC__Tuple21 :== 278
PD_TC__Tuple22 :== 279
PD_TC__Tuple23 :== 280
PD_TC__Tuple24 :== 281
PD_TC__Tuple25 :== 282
PD_TC__Tuple26 :== 283
PD_TC__Tuple27 :== 284
PD_TC__Tuple28 :== 285
PD_TC__Tuple29 :== 286
PD_TC__Tuple30 :== 287
PD_TC__Tuple31 :== 288
PD_TC__Tuple32 :== 289
PD_TC__LazyArray :== 290
PD_TC__StrictArray :== 291
PD_TC__UnboxedArray :== 292
PD_NrOfPredefSymbols :== 293
GetTupleConsIndex tup_arity :== PD_Arity2TupleSymbol + tup_arity - 2 GetTupleConsIndex tup_arity :== PD_Arity2TupleSymbol + tup_arity - 2
GetTupleTypeIndex tup_arity :== PD_Arity2TupleType + tup_arity - 2 GetTupleTypeIndex tup_arity :== PD_Arity2TupleType + tup_arity - 2
......
...@@ -112,26 +112,61 @@ predefined_idents ...@@ -112,26 +112,61 @@ predefined_idents
[PD_Dyn_unify] = i "_unify", [PD_Dyn_unify] = i "_unify",
[PD_Dyn_normalise] = i "_normalise", [PD_Dyn_normalise] = i "_normalise",
[PD_Dyn_TypeCodeConstructorInt] = i "TypeCodeConstructorInt",
[PD_Dyn_TypeCodeConstructorChar] = i "TypeCodeConstructorChar",
[PD_Dyn_TypeCodeConstructorReal] = i "TypeCodeConstructorReal",
[PD_Dyn_TypeCodeConstructorBool] = i "TypeCodeConstructorBool",
[PD_Dyn_TypeCodeConstructorDynamic] = i "TypeCodeConstructorDynamic",
[PD_Dyn_TypeCodeConstructorFile] = i "TypeCodeConstructorFile",
[PD_Dyn_TypeCodeConstructorWorld] = i "TypeCodeConstructorWorld",
[PD_Dyn_TypeCodeConstructor_Arrow] = i "TypeCodeConstructor_Arrow",
[PD_Dyn_TypeCodeConstructor_List] = i "TypeCodeConstructor_List",
[PD_Dyn_TypeCodeConstructor_StrictList] = i "TypeCodeConstructor_StrictList",
[PD_Dyn_TypeCodeConstructor_UnboxedList] = i "TypeCodeConstructor_UnboxedList",
[PD_Dyn_TypeCodeConstructor_TailStrictList] = i "TypeCodeConstructor_TailStrictList",
[PD_Dyn_TypeCodeConstructor_StrictTailStrictList] = i "TypeCodeConstructor_StrictTailStrictList",
[PD_Dyn_TypeCodeConstructor_UnboxedTailStrictList] = i "TypeCodeConstructor_UnboxedTailStrictList",
[PD_Dyn_TypeCodeConstructor_Tuple] = i "TypeCodeConstructor_Tuple",
[PD_Dyn_TypeCodeConstructor_LazyArray] = i "TypeCodeConstructor_LazyArray",
[PD_Dyn_TypeCodeConstructor_StrictArray] = i "TypeCodeConstructor_StrictArray",
[PD_Dyn_TypeCodeConstructor_UnboxedArray] = i "TypeCodeConstructor_UnboxedArray",
[PD_Dyn__to_TypeCodeConstructor] = i "_to_TypeCodeConstructor", [PD_Dyn__to_TypeCodeConstructor] = i "_to_TypeCodeConstructor",
[PD_TypeCodeConstructor] = i "TypeCodeConstructor",
[PD_TC_Int] = i "TC_Int",
[PD_TC_Char] = i "TC_Char",
[PD_TC_Real] = i "TC_Real",
[PD_TC_Bool] = i "TC_Bool",
[PD_TC_Dynamic] = i "TC_Dynamic",
[PD_TC_File] = i "TC_File",
[PD_TC_World] = i "TC_World",
[PD_TC__Arrow] = i "TC__Arrow",
[PD_TC__List] = i "TC__List",
[PD_TC__StrictList] = i "TC__StrictList",
[PD_TC__UnboxedList] = i "TC__UnboxedList",
[PD_TC__TailStrictList] = i "TC__TailStrictList",
[PD_TC__StrictTailStrictList] = i "TC__StrictTailStrictList",
[PD_TC__UnboxedTailStrictList] = i "TC__UnboxedTailStrictList",
[PD_TC__Tuple2] = i "TC__Tuple2",
[PD_TC__Tuple3] = i "TC__Tuple3",
[PD_TC__Tuple4] = i "TC__Tuple4",
[PD_TC__Tuple5] = i "TC__Tuple5",
[PD_TC__Tuple6] = i "TC__Tuple6",
[PD_TC__Tuple7] = i "TC__Tuple7",
[PD_TC__Tuple8] = i "TC__Tuple8",
[PD_TC__Tuple9] = i "TC__Tuple9",