-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtycons-ptnums.txt
More file actions
68 lines (56 loc) · 2.54 KB
/
Copy pathtycons-ptnums.txt
File metadata and controls
68 lines (56 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
tycons and ptnums and FLINT primtycs
In 110.81 FLINT has identifying "ptnum" values assigned to PRIMITIVE
tycons (e.g. intTycon). These are used as intermediaries in the
translation of front-end primitive tycons to FLINT's primitive type
constructors (ptyc and primtyc in FLINT/kernel/primtyc.sml).
Files:
ElabData/basics/core-ptnum.sml (* obsolete, deleted *)
Elaborator/basics/ptnum.sml (* obsolete, deleted *)
ElabData/types/core-basictypes.sml (* merged into basictypes.sml and deleted *)
Elaborator/types/basictypes.sml
FLINT/kernel/primtyc.{sig,sml} (* mapping from primtycnum to primtyc *)
Integer ptnums are defined in ElabData/basics/core-ptnum.sml and
Elaborator/basics/ptnum.sml. These are associated with particular
primitive tycons (as the parameter to the PRIMITIVE constructor) when
these are defined in ElabData/types/core-basictypes.sml or
Elaborator/types/basictypes.sml. The ptnums are then mapped to
FLINT's version of primitive types in FLINT/kernel/primtyc.sml.
(* mappings defined in (core-)basictypes.sml and primtyc.sml *)
[[tycon => ptnum: int => PrimTyc.ptyc]]
arrowTycon => ptn_arrow => PT_ARROW
intTycon => ptn_int31 => PT_INT31
word32Tycon => ptn_int32 => PT_INT32
intinfTycon => ptn_intinf => PT_INTINF
realTycon => ptn_real => PT_REAL
wordTycon => ptn_int31 => PT_INT31
word8Tycon => ptn_int31 => PT_INT31
stringTycon => ptn_string => PT_STRING
charTycon => ptn_int31 => PT_INT31
exnTycon => ptn_exn => PT_EXN
contTycon => ptn_cont => PT_CONT
ccontTycon => ptn_ccont => PT_CCONT
arrayTycon => ptn_array => PT_ARRAY
vectorTycon => ptn_vector => PT_VECTOR
objectTycon => ptn_obj => PT_OBJ
c_functionTycon => ptn_cfun => PT_CFUN
word8arrayTycon => ptn_barray => PT_BARRAY
real64arrayTycon => ptn_rarray => PT_RARRAY
spin_lockTycon => ptn_slock => PT_SLOCK
(datatypes with "psuedo" ptns)
refTycon => ptn_ref => PT_REF - in FLINT/trans/transtypes.sml
listTycon (=> ptn_list => PT_LIST; not used)
optionTycon (=> ptn_option => PT_OPTION; not used)
(special ptns; used, but no associated primitive tycons)
_ => ptn_void => PT_VOID
(unused ptns and their FLINT ptycs)
_ => ptn_etag => PT_ETAG
_ => ptn_boxed => PT_BOXED
_ => ptn_tgd => PT_TGD
_ => ptn_utgd => PT_UTGD
_ => ptn_tnsp => PT_TNSP
_ => ptn_dyn => PT_DYN
110.82 Changes
--------------
In 110.82, ptnums have been eliminated and primtyc.sml now maps
directly from front-end tycons to primtyc constructors in the
function pt_fromtyc defined in FLINT/kernel/primtyc.sml.