Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] View of /sml/trunk/src/compiler/FLINT/CHANGES
ViewVC logotype

View of /sml/trunk/src/compiler/FLINT/CHANGES

Parent Directory Parent Directory | Revision Log Revision Log


Revision 21 - (download) (annotate)
Thu Mar 12 00:49:41 1998 UTC (22 years ago) by monnier
File size: 3705 byte(s)
Initial revision
==========================================================================
I. MAIN CHANGES MADE TO FLINT VERSION 1.1

02/02/1998 
  Merged Version 1.1 with SML/Nj 110.0.3 to create 1.1+
 
02/04/1998
  Changed FLINT IL and LTYKERNEL in the following way:

     flint/flintil.sig
     flint/flintil.sml
       New fkind, no more return result type for fundec
       no more type bindings in tfundec.

     flint/ltykernel.sig
     flint/ltykernel.sml
       TK_TYC and TK_TBX now renamed as TK_MONO and TK_BOX
       new raw field to indicate if a TC_ARROW is cooked or raw
       LT_FCT now takes  multiple arguments as well.

  Reorganize the files a little bit, and propagate all of the
  above changes to the other files.

02/05/1998
  Directory reorganizations

02/06/1998
  To eliminate references to LtyEnv from transmodules.sml
  To eliminate references to LtyKernel from translate.sml
  To eliminate references to LtyEnv from translate.sml
  Then to reformat PLambdaType to support exactly what is 
  required by the trans and mcomp directories.

==========================================================================
II. IMPLEMENTATION NOTES: 

flint.sig
flint.sml

   * fkind could be a list of attributes
   * rkind --- tyc is only used empty vector, we could introduce
               a new construct called RK_VECTOR0 of tyc ? 
               then the tyc can go away.
   * RK_RECORD could contain a list of labels, however, we could add
     it later, it should not impact the rest of the code much
   * type dcon --- conrep should go away once we have the full 
       type information about datatypes
   * funtions will be divided into two categories: raw vs. cooked
       raw refers to those whose calling conventions have been fixed.
       cooked means those whose calling conventions are being determined;
       most likely, they depend on what kind of argument and result types
       they have.
   * EXNC and EXNF should be merged, we should only provide one construct,
     that is, the etag primop which takes a string or string ref and 
     returns a 'a etag value. Non-value carrying exceptions are considered 
     as exceptions that carry unit value. Similarly, CON and SWITCH on 
     exceptions should be replaced by Harper & Stone's "tag" and "iftagof"
     construct. 

ltykernel.sig
ltykernel.sml

   * LT_PST is used for avoiding writing down huge type information
     for imported modules; we can get rid of this if we change the
     the list of import ids into a list of import access paths.
   * TC_NVAR and TC_ABS are not used for the time being
   * TC_CONT and LT_CNT are used for the cps/convert.sml only; the 
     source-level cont type is denoted as a TC_PRIM tyc.
   * TC_BOX should become a primtiive tyc if wrap and unwrap become
     primitive operators. 
   * TC_SUM and TC_FIX require clean-up. Do we need to distinguish
     between enumeration types and other arbitrary datatypes ? 

flinttype.sig
  
   * Get rid of tcc_unit as it ought to be just RECORD []. 



==========================================================================
III. PAST NOTES:

  FILES CHANGED TO MIGRATE TO THE NEW FLINT

    a. main working directories: new and nopt
       convert.sml and switch.sml are now in the nopt directories also.
    b. directories such type and opt and cps/conv will become
       obsolete in the future.

  FILES CHANGED TO SUPPORT NEW FORM of SWITCH statement in PLambda

    mcomp/matchcomp.sml
    opt/normalize.sml
    plambda/chkplexp.sml
    plambda/plambda.sig
    plambda/plambda.sml  
    plambda/pplexp.sml
    trans/literals.sml
    trans/pequal.sml
==========================================================================


root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0