CVS: sml-dist notes,1.1.2.4,1.1.2.5
David MacQueen <[email protected]> Tue, 20 Jun 2006 15:15:27 -0700
| Newsgroups | gmane.comp.lang.sml.smlnj.commits |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/smlnj/sml-dist
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv6779
Modified Files:
Tag: primop-branch-2
notes
Log Message:
further primop changes
Index: notes
===================================================================
RCS file: /cvsroot/smlnj/sml-dist/Attic/notes,v
retrieving revision 1.1.2.4
retrieving revision 1.1.2.5
diff -C2 -d -r1.1.2.4 -r1.1.2.5
*** notes 20 Jun 2006 01:27:59 -0000 1.1.2.4
--- notes 20 Jun 2006 22:15:23 -0000 1.1.2.5
***************
*** 28,33 ****
4. Why do CONpats (see CONpat case of patType in typecheck.sml) need
! the "insts" value? What do they have to do with primops? Where is this
! information used?
5. Catalogue of primops:
--- 28,34 ----
4. Why do CONpats (see CONpat case of patType in typecheck.sml) need
! the "insts" value? Similarly for CONexps. What do they have to do with
! primops? Where is this information used? Is this related to the
! special role of ref?
5. Catalogue of primops:
***************
*** 61,64 ****
--- 62,74 ----
available in ElabData/types/TypesUtil.
+ We've merged these into a single module InlInfo. This depends on PrimOp.
+ This caused the sigmatch functor to be moved to Semant/modules.
+
+
+ 8. Dynamic access and inline info. Are these mutually exclusive (i.e.
+ something has a dynamic value accessed via the access info, or it is
+ a primop accessed via the inline info), or to they both work in parallel
+ (i.e. a primop also has a function closure representation stored in
+ a slot in the dynamic vector for its home structure)?
***************
*** 253,257 ****
This uses ii2ty (passed as a parameter to the TypeCheckingFn, but uniquely
! defined to be InlInfo.pureInfo in Semant/types/typecheck.sml) to extract
a type from the info field, if possible (i.e. when the VALvar is associated
with a primop).
--- 263,267 ----
This uses ii2ty (passed as a parameter to the TypeCheckingFn, but uniquely
! defined to be InstantiateParam.ii2ty in Semant/types/typecheck.sml) to extract
a type from the info field, if possible (i.e. when the VALvar is associated
with a primop).
***************
*** 267,271 ****
Relevant Files and Modules
!
Primitive Types
--- 277,281 ----
Relevant Files and Modules
! --------------------------
Primitive Types
***************
*** 295,300 ****
PrimEnv: PRIM_ENV (Semant/statenv/prim.sml)
! define static env primEnv, containing primitive types (PrimTypes),
! primops (InLine), and unrolled lists (UnrolledList)
defs: PRIM_ENV, PrimEnv: PRIM_ENV
--- 305,311 ----
PrimEnv: PRIM_ENV (Semant/statenv/prim.sml)
! define static env primEnv, containing module bindings for
! primitive types (PrimTypes), primops (InLine), and unrolled
! lists (UnrolledList)
defs: PRIM_ENV, PrimEnv: PRIM_ENV
***************
*** 305,308 ****
--- 316,320 ----
the types (primop, etc.) used to represent primops and their
attributes. There are no type specs in these primop representations.
+ PrimOp imports CTypes, which are defined in MLRISC! (MLRISC/c-calls/ctype.sml)
PrimEnv (Semant/statenv/prim.sml)
***************
*** 337,340 ****
simplified, eliminating the exn hack. Interface function names have
bin changed (e.g. pureInfo => isPrimCast). ii2ty has been added with
! new name primopTy.]
--- 349,363 ----
simplified, eliminating the exn hack. Interface function names have
bin changed (e.g. pureInfo => isPrimCast). ii2ty has been added with
! new name primopTy (moved from InstantiateParam).]
!
!
! Semant
+ ElabData and Elaborate CM groups cannot refernce FLINT and MLRISC stuff,
+ which are part of the Core group. Therefore places where the front end
+ depend on FLINT (e.g. PrimOp, PLambdaType (in InstantiateParam)) have to
+ be in Semant, which is part of Core group.
+
+ This means that many of the elaboration modules are functorized, ultimately
+ on PrimOp related values (former TypeCheckFn) or on PLambdaType stuff
+ (InstantiateFn in Elaborate requires parameter InstantiateParam from Semant).