CVS: sml-dist CHANGE-LOG,NONE,1.1.2.1
David MacQueen <[email protected]> Sun, 30 Jul 2006 14:04:37 -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-serv16541
Added Files:
Tag: primop-branch-2
CHANGE-LOG
Log Message:
adding CHANGE-LOG
--- NEW FILE: CHANGE-LOG ---
Change Log for primop-branch-2
------------------------------
Unless otherwise specified, file paths are relative to sml-dist/src/compiler.
[dbm: 7/30/06]
New files:
sml-dist/primop-list
Catalog of all "environmental" primops included in the InLine structure
defined in Semant/statenv/prim.sml.
Semant/statenv/primoptypemap.sml
FLINT/trans/primopmap.sml
These files create new tables (accessed using PrimOpTypeMap.primopTypeMap,
and PrimOpMap.primopMap) mapping the (environmental) primop names to
their intrinsic types and primop definitions, respectively.
ElabData/basics/primop.{sig,sml}
Defines the new representation of primop info used in the front end. Primops
are now identified by their names alone, and their types and primop defns
are given by the maps mentioned above. The primop property of simple variables
has the type PrimOpId.primId, while structure primop info is of type
PrimOpId.strPrimInfo, which is a strPrimElem list. This provides more accurate
type differentiation between variable and structure primop properties.
Obsolete files:
ElabData/basics/ii.sml
Semant/basics/inlinfo.{sig,sml}
Both superceded by ElabData/basics/primop.sml.
Semant/types/typecheck.sml
Changed files:
Semant/statenv/prim.sml
This now depends on PrimOpTypeMap (Semant/statenv/primoptypemap.sml), but not
on PrimOp (FLINT/kernel/primop.{sig,sml}). This removes one of the dependencies
of the front end on FLINT. The primop definitions are now contained in
the PrimOpMap structure (PrimOpMap.primopMap).
ElabData/basics/varcon.{sig,sml}
The info field is now renamed "prim", and its type is PrimOpId.primId.
Elaborator/types/typecheck.sml
The type checker module is no longer a functor (Typecheck replaces TypecheckFn).
The code for typing VARexp's captures the generic type variables of instantiation
of its environmental polytype, and through them the "occurrence" type of the
variable. But it doesn't try to relate the occurrence type to the primop intrinsic
type in the case that the variable is a primop, leaving this to the translate
phase.
Elaborator/modules/sigmatch.sml
Primop properties of value elements are preserved as before, but the comparison
of prematched type to postmatch signature type is simplified, and uses a
one-way type match rather than unification. The functions absEqvTy and eqvTnspTy
have been replaced by a function matchTypes, defined in terms of a new utility
function TypesUtil.matchInstTypes.
FLINT/trans/translate.sml
Now determines parameters of instantiation of primop intrinsic types by simple
matching against the variable occurrence type.
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV