Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Tracker SCM

SCM Repository

[smlnj] Diff of /sml/trunk/src/system/smlnj/init/init.cmi
ViewVC logotype

Diff of /sml/trunk/src/system/smlnj/init/init.cmi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 592, Mon Apr 3 07:04:12 2000 UTC revision 643, Fri May 12 08:29:15 2000 UTC
# Line 1  Line 1 
1  #  #
2  # spec.cmi  # init.cmi
3  #  #
4  #  (C) 2000 Lucent Technologies, Bell Laboratories  #  (C) 2000 Lucent Technologies, Bell Laboratories
5  #  #
6  # Author: Matthias Blume (blume@kurims.kyoto-u.ac.jp)  # Author: Matthias Blume (blume@kurims.kyoto-u.ac.jp)
7  #  #
8  # This is the specification for how to build the "init group".  # This is the specification for how to build the "init library".
9  # The main purpose of the init group is to tie in the runtime system  # The main purpose of the init library is to tie in the runtime system
10  # and to build the pervasive environment.  The pervasive enviroment  # and to build the pervasive environment.  The pervasive enviroment
11  # must contain a binding of the "special" structure named "_Core".  # must contain a binding of the "special" structure named "_Core".
12  # Because of its special nature, the init group cannot be described as  # Because of its special nature, the init library cannot be described as
13  # an ordinary CM library.  Instead, it is built from the DAG description  # an ordinary CM library.  Instead, it is built from the DAG description
14  # in this file.  The bootstrap compiler turns the init group into an  # in this file.  The bootstrap compiler turns the init library into an
15  # ordinary stable group.  The boot process fetches the pervasive  # ordinary stable library.  The boot process fetches the pervasive
16  # environment from that stable library.  # environment from that stable library.
17  #  #
18  # In addition to the pervasive environments, the init group can (and does)  # In addition to the pervasive environments, the init library can (and does)
19  # also export additional definitions.  These can be accessed by client code  # also export additional definitions.  These can be accessed by client code
20  # (such as the implementation of the Basis library) by simply listing  # (such as the implementation of the Basis library) by simply listing
21  # "init.cmi : cm" in their respective library description files.  (Since CM  # "init.cmi : cm" in their respective library description files.  (Since CM
# Line 51  Line 51 
51  #    It must specify at least one environment name, namely the one that is  #    It must specify at least one environment name, namely the one that is
52  #    used as the system-wide "pervasive" environment.  #    used as the system-wide "pervasive" environment.
53  #    For any additional name n the exports of the module that was bound  #    For any additional name n the exports of the module that was bound
54  #    (by "bind") to n are added to the exports of the init group.  #    (by "bind") to n are added to the exports of the init library.
55  #    These exports can be accessed by clients that explicitly list init.cmi  #    These exports can be accessed by clients that explicitly list init.cmi
56  #    in their own description files.  #    in their own description files.
57  #    Note: Since some clients need direct access to the core environment,  #    Note: Since some clients need direct access to the core environment,
# Line 63  Line 63 
63  #  #
64  # Note that a binding for structure _Core is necessary ALMOST EVERYWHERE.  # Note that a binding for structure _Core is necessary ALMOST EVERYWHERE.
65  # Therefore, it is necessary that the pervasive environment has such a  # Therefore, it is necessary that the pervasive environment has such a
66  # binding.  For files of this initial group (which do not yet have the  # binding.  For files of this initial library (which do not yet have the
67  # benefit of being able to access the pervasive environment), a trivial  # benefit of being able to access the pervasive environment), a trivial
68  # member "xcore" is used to supply _Core.  # member "xcore" is used to supply _Core.
69    
# Line 89  Line 89 
89  bind core = core.sml (rts, asig, primitive)  bind core = core.sml (rts, asig, primitive)
90    
91  # Now we make the binding for structure _Core for use by the remaining  # Now we make the binding for structure _Core for use by the remaining
92  # members of the init group. (Everybody else in the world gets access to  # members of the init library. (Everybody else in the world gets access to
93  # _Core via the pervasive env.)  # _Core via the pervasive env.)
94  # The "bind-core" line says that its first argument ("xCore") should be  # The "bind-core" line says that its first argument ("xCore") should be
95  # re-written as "_Core" before compilation. This rewriting is done  # re-written as "_Core" before compilation. This rewriting is done

Legend:
Removed from v.592  
changed lines
  Added in v.643

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