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

SCM Repository

[smlnj] Diff of /sml/trunk/HISTORY
ViewVC logotype

Diff of /sml/trunk/HISTORY

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

revision 761, Sat Dec 23 05:37:37 2000 UTC revision 975, Wed Oct 31 20:22:44 2001 UTC
# Line 11  Line 11 
11  Date:  Date:
12  Tag: <post-commit CVS tag>  Tag: <post-commit CVS tag>
13  Description:  Description:
14    
15    ----------------------------------------------------------------------
16    Name: Matthias Blume
17    Date: 2001/10/31 15:25:00 EST
18    Tag: blume-20011031-pgraph
19    Description:
20    
21    CKIT:
22    * Changed the "Function" constructor of type Ast.ctype to carry optional
23      argument identifiers.
24    * Changed the return type of TypeUtil.getFunction accordingly.
25    * Type equality ignores the argument names.
26    * TypeUtil.composite tries to preserve argument names but gives up quickly
27      if there is a mismatch.
28    
29    installation script:
30    * attempts to use "curl" if available (unless "wget" is available as well)
31    
32    CM:
33    * has an experimental implementation of "portable graphs" which I will
34      soon propose as an implementation-independent library format
35    * there are also new libraries $/pgraph.cm and $/pgraph-util.cm
36    
37    NLFFI-LIB:
38    * some cleanup (all cosmetic)
39    
40    NLFFIGEN:
41    * temporarily disabled the mechanism that suppresses ML output for
42      C definitions whose identifiers start with an underscore character
43    * generate val bindings for enum constants
44    * user can request that only one style (light or heavy) is being used;
45      default is to use both (command-line arguments: -heavy and -light)
46    * fixed bug in handling of function types involving incomplete pointers
47    * generate ML entry points that take record arguments (i.e., using
48      named arguments) for C functions that have a prototype with named
49      arguments
50      (see changes to CKIT)
51    
52    ----------------------------------------------------------------------
53    Name: Allen Leung
54    Date: 2001/10/27 20:34:00 EDT
55    Tag: leunga-20011027-x86-fast-fp-call
56    Description:
57    
58       Fixed the bug described in blume-20010920-slowfp.
59    
60       The fix involves
61          1. generating FCOPYs in FSTP in ia32-svid
62          2. marking a CALL with the appropriate annotation
63    
64    ----------------------------------------------------------------------
65    Name: Matthias Blume
66    Date: 2001/10/16 11:32:00 EDT
67    Tag: blume-20011016-netbsd
68    Description:
69    
70    Underscore patch from Chris Richards (fixing problem with compiling
71    runtime system under recent NetBSD).
72    
73    ----------------------------------------------------------------------
74    Name: Allen Leung
75    Date: 2001/10/12 17:18:32 EDT 2001
76    Tag: leung-20011012-x86-printflowgraph
77    Description:
78    
79    X86RA now uses a valid (instead of dummy) PrintFlowgraph module.
80    
81    ----------------------------------------------------------------------
82    Name: Lal George
83    Date: 2001/10/11 23:51:34 EDT
84    Tag: george-20011011-too-many-instrs
85    Description:
86    
87    The representation of a program point never expected to see more
88    than 65536 instructions in a basic block!
89    
90    ----------------------------------------------------------------------
91    Name: Lal George
92    Date: 2001/10/09 09:41:37 EDT
93    Tag: george-20011008-mlrisc-labels
94    Description:
95    
96    Changed the machine description files to support printing of
97    local and global labels in assembly code, based on host assembler
98    conventions.
99    
100    ----------------------------------------------------------------------
101    Name: Matthias Blume
102    Date: 2001/09/25 15:25:00 EDT
103    Tag: blume-20010925-exninfo
104    Description:
105    
106    I provided a non-hook implementation of exnName (at the toplevel) and
107    made the "dummy" implementation of exnMessage (at the toplevel) more
108    useful: if nothing gets "hooked in", then at least you are going to
109    see the exception name and a message indicating why you don't see more.
110    
111    [For the time being, programs that need exnMessage and want to use
112    ml-build should either use General.exnMessage (strongly recommended) or
113    refer to structure General at some other point so that CM sees a
114    static dependency.]
115    
116    [Similar remarks go for "print" and "use":  If you want to use their
117    functionality in stand-alone programs generated by ml-build, then use
118    TextIO.output and Backend.Interact.useFile (from $smlnj/compiler.cm).]
119    
120    ----------------------------------------------------------------------
121    Name: Matthias Blume
122    Date: 2001/09/20 17:28:00 EDT
123    Tag: blume-20010920-slowfp
124    Description:
125    
126    Allen says that x86-fast-fp is not safe yet, so I turned it off again...
127    
128    ----------------------------------------------------------------------
129    Name: Matthias Blume
130    Date: 2001/09/20 17:20:00 EDT
131    Tag: blume-20010920-canonicalpaths
132    Description:
133    
134    0. Updated the BOOT file (something that I forgot to do earlier).
135    
136    1. Small internal change to CM so that it avoids "/../" in filenames
137       as much as possible (but only where it is safe).
138    
139    2. Changed config/_run-sml (resulting in a changed bin/.run-sml) so
140       that arguments that contain delimiters are passed through correctly.
141       This change also means that all "special" arguments of the form
142       @SMLxxx... must come first.
143    
144    3. Changed install script to put relative anchor names for tool commands
145       into pathconfig.
146    
147    ----------------------------------------------------------------------
148    Name: Matthias Blume
149    >>>>>>> 1.169
150    Date: 2001/09/18 15:35:00 EDT
151    Tag: blume-20010918-readme11036
152    Description:
153    
154    Added README files.
155    
156    ----------------------------------------------------------------------
157    Name: Matthias Blume
158    Date: 2001/09/18 11:45:00 EDT
159    Tag: Release_110_36 (retag)
160    Description:
161    
162    Fixed mistake in config/preloads. Retagged as 110.36.
163    
164    ----------------------------------------------------------------------
165    Name: Matthias Blume
166    Date: 2001/09/18 09:40:00 EDT
167    Tag: Release_110_36_orig (tag changed)
168    Description:
169    
170    New version (110.36).  New bootfiles.
171    
172    ----------------------------------------------------------------------
173    Name: Matthias Blume
174    Date: 2001/09/14 16:15:00 EDT
175    Tag: blume-20010914-x86fastfp
176    Description:
177    
178    John committed some changes that Allen made, in particular a (hopefully)
179    correctly working version of the x86-fp module.
180    
181    I changed the default setting of the Control.MLRISC.getFlag "x86-fast-fp"
182    flag to "true".  Everything seems to compile to a fixpoint ok, and
183    "mandelbrot" speeds up by about 15%.
184    
185    ----------------------------------------------------------------------
186    Name: Matthias Blume
187    Date: 2001/09/13 11:20:00 EDT
188    Tag: blume-20010913-minimal
189    Description:
190    
191    1. Stefan Monnier's patch to fix a miscompilation problem that
192       was brought to light by John Reppy's work on Moby.
193    
194    2. Implemented a minimal "structure Compiler" that contains just
195       "version" and "architecture".  The minimal version will be
196       available when the full version is not.  This is for backward-
197       compatibility with code that wants to test Compiler.version.
198    
199    ----------------------------------------------------------------------
200    Name: Matthias Blume
201    Date: 2001/08/28 14:03:00 EDT
202    Tag: blume-20010828-ml-lex
203    Description:
204    
205    Fix for bug 1581, received from Neophytos Michael.
206    
207    ----------------------------------------------------------------------
208    Name: Matthias Blume
209    Date: 2001/08/27 11:20:00 EDT
210    Tag: blume-20010827-readme11035
211    Description:
212    
213    Fleshed out the README file for 110.35.
214    
215    ----------------------------------------------------------------------
216    Name: Matthias Blume
217    Date: 2001/08/24 17:10:00 EDT
218    Tag: Release_110_35
219    Description:
220    
221    New version number (110.35).  New bootfiles.
222    
223    ----------------------------------------------------------------------
224    Name: Lal George
225    Date: 2001/08/24 13:47:18 EDT 2001
226    Tag: george-20010824-MLRISC-graphs
227    Description:
228    
229     removed clusters from MLRISC completely and replaced with graphs.
230    
231    ----------------------------------------------------------------------
232    Name: Matthias Blume
233    Date: 2001/08/23 17:50:00 EDT
234    Tag: blume-20010823-toplevel
235    Description:
236    
237    - some reorganization of the code that implements various kinds of
238      environments in the compiler (static, dynamic, symbolic, combined)
239    - re-implemented the EnvRef module so that evalStream works properly
240      (if the stream contains references to "use", "CM.make", etc.)
241    - cleaned up evalloop.sml and interact.sml (but they need more cleaning)
242    
243    ----------------------------------------------------------------------
244    Name: Matthias Blume
245    Date: 2001/08/20 15:50 EDT
246    Tag: blume20010820-slipup
247    Description:
248    
249    I forgot to commit a few files.  Here they are...
250    
251    ----------------------------------------------------------------------
252    Name: Matthias Blume
253    Date: 2001/08/20 15:35:00 EDT
254    Tag: blume-20010820-debugprof
255    Description:
256    
257    !!!! NEW BOOTFILES !!!!
258    
259    This is another round of reorganizing the compiler sources.  This
260    time the main goal was to factor out all the "instrumentation"
261    passes (for profiling and backtracing) into their own library.
262    The difficulty was to do it in such a way that it does not depend
263    on elaborate.cm but only on elabdata.cm.
264    
265    Therefore there have been further changes to both elaborate.cm and
266    elabdata.cm -- more "generic" things have been moved from the former
267    to the latter.  As a result, I was forced to split the assignment
268    of numbers indicating "primtyc"s into two portions: SML-generic and
269    SML/NJ-specific.  Since it would have been awkward to maintain,
270    I bit the bullet and actually _changed_ the mapping between these
271    numbers and primtycs.  The bottom line of this is that you need
272    a new set of bin- and bootfiles.
273    
274    I have built new bootfiles for all architectures, so doing a fresh
275    checkout and config/install.sh should be all you need.
276    
277    The newly created library's name is
278    
279        $smlnj/viscomp/debugprof.cm
280    
281    and its sources live under
282    
283        src/compiler/DebugProf
284    
285    ----------------------------------------------------------------------
286    Name: Matthias Blume
287    Date: 2001/08/15 17:15:00 EDT
288    Tag: blume-20010815-compreorg
289    Description:
290    
291    This is a first cut at reorganizing the CM libraries that make up the
292    core of the compiler.  The idea is to separate out pieces that could
293    be used independently by tools, e.g., the parser, the typechecker, etc.
294    
295    The current status is a step in this direction, but it is not quite
296    satisfactory yet.  Expect more changes in the future.
297    
298    Here is the current (new) organization...
299    
300        What used to be $smlnj/viscomp/core.cm is now divided into
301        six CM libraries:
302    
303             $smlnj/viscomp/basics.cm
304                           /parser.cm
305                           /elabdata.cm
306                           /elaborate.cm
307                           /execute.cm
308                           /core.cm
309    
310        The CM files for these libraries live under src/system/smlnj/viscomp.
311        All these libraries are proxy libraries that contain precisely
312        one CM library component.  Here are the locations of the components
313        (all within the src/compiler tree):
314    
315             Basics/basics.cm
316             Parse/parser.cm
317             ElabData/elabdata.cm
318             Elaborator/elaborate.cm
319             Execution/execute.cm
320             core.cm
321    
322         [This organization is the same that has been used already
323         for a while for the architecture-specific parts of the visible
324         compiler and for the old version of core.cm.]
325    
326         As you will notice, many source files have been moved from their
327         respective original locations to a new home in one of the above
328         subtrees.
329    
330         The division of labor between the new libraries is the following:
331    
332             basics.cm:
333                - Simple, basic definitions that pertain to many (or all) of
334                  the other libraries.
335             parser.cm:
336                - The SML parser, producing output of type Ast.dec.
337                - The type family for Ast is also defined and exported here.
338             elabdata.cm:
339                - The datatypes that describe input and output of the elaborator.
340                  This includes types, absyn, and static environments.
341             elaborator.cm:
342                - The SML/NJ type checker and elaborator.
343                  This maps an Ast.dec (with a given static environment) to
344                  an Absyn.dec (with a new static environment).
345                - This libraries implements certain modules that used to be
346                  structures as functors (to remove dependencies on FLINT).
347             execute.cm:
348                - Everything having to do with executing binary code objects.
349                - Dynamic environments.
350             core.cm:
351                - SML/NJ-specific instantiations of the elaborator and MLRISC.
352                - Top-level modules.
353                - FLINT (this should eventually become its own library)
354    
355    Notes:
356    
357    I am not 100% happy with the way I separated the elaborator (and its
358    data structures) from FLINT.  Two instances of the same problem:
359    
360        1. Data structures contain certain fields that carry FLINT-specific
361           information.  I hacked around this using exn and the property list
362           module from smlnj-lib.  But the fact that there are middle-end
363           specific fields around at all is a bit annoying.
364    
365        2. The elaborator calculates certain FLINT-related information.  I tried
366           to make this as abstract as I could using functorization, but, again,
367           the fact that the elaborator has to perform calculations on behalf
368           of the middle-end at all is not nice.
369    
370        3. Having to used exn and property lists is unfortunate because it
371           weakens type checking.  The other alternative (parameterizing
372           nearly *everything*) is not appealing, though.
373    
374    I removed the "rebinding =" warning hack because due to the new organization
375    it was awkward to maintain it.  As a result, the compiler now issues some of
376    these warnings when compiling init.cmi during bootstrap compilation. On
377    the plus side, you also get a warning when you do, for example:
378       val op = = Int32.+
379    which was not the case up to now.
380    
381    I placed "assign" and "deref" into the _Core structure so that the
382    code that deals with the "lazy" keyword can find them there.  This
383    removes the need for having access to the primitive environment
384    during elaboration.
385    
386    ----------------------------------------------------------------------
387    Name: Matthias Blume
388    Date: 2001/08/13
389    Tag: blume-20010813-closures
390    Description:
391    
392    This fix was sent to us by Zhong Shao.  It is supposed to improve the
393    performance of certain loops by avoiding needless closure allocation.
394    
395    ----------------------------------------------------------------------
396    Name: Lal George
397    Date: 2001/07/31 10:03:23 EDT 2001
398    Tag: george-20010731-x86-fmalloc
399    Description: Fixed bug in x86 calls
400    
401        There was a bug where call instructions would mysteriously
402        vanish. The call instruction had to be one that returned
403        a floating point value.
404    
405    ----------------------------------------------------------------------
406    Name: Lal George
407    Date: 2001/07/19 16:36:29 EDT 2001
408    Tag: george-20010719-simple-cells
409    Description:
410    
411    I have dramatically simplified the interface for CELLS in MLRISC.
412    
413    In summary, the cells interface is broken up into three parts:
414    
415      1. CellsBasis : CELLS_BASIS
416    
417            CellsBasis is a top level structure and common for all
418            architectures.  it contains the definitions of basic datatypes
419            and utility  functions over these types.
420    
421      2. functor Cells() : CELLS
422    
423            Cells generates an interface for CELLS that incorporates the
424            specific resources on the target architecture, such as the
425            presence of special register classes, their number and size,
426            and various useful substructures.
427    
428      3. <ARCH>CELLS
429    
430            e.g. SparcCells: SPARCCELLS
431    
432            <ARCH>CELLS usually contains additional bindings for special
433            registers  on the architecture, such as:
434    
435                    val r0 : cell           (* register zero *)
436                    val y : cell            (* Y register *)
437                    val psr : cell          (* processor status register *)
438                    ...
439    
440            The structure returned by applying the Cells functor is opened
441            in this interface.
442    
443    The main implication of all this is that the datatypes for cells is
444    split between CellsBasis and CELLS -- a fairly simple change for user
445    code.
446    
447    In the old scheme the CELLS interface had a definitional binding of
448    the form:
449    
450            signature CELLS = sig
451    
452               structure CellsBasis = CellsBasis
453    
454               ...
455    
456            end
457    
458    With all the sharing constraints that goes on in MLRISC, this old
459    design  quickly leads to errors such as:
460    
461            "structure definition spec inside of sharing ... "
462    
463    
464    and appears to require an unacceptable amount of sharing and where
465    constraint hackery.
466    
467    I think this error message (the interaction of definitional specs and
468    sharing) requires more explanation on our web page.
469    
470    ----------------------------------------------------------------------
471    Name: Matthias Blume
472    Date: 2001/07/19 15:00:00 EDT
473    Tag: blume-20010719-libreorg
474    Description:
475    
476    This update puts together a fairly extensive but straightforward change
477    to the way the libraries that implement the interactive system are
478    organized:
479    
480       The biggest change is the elimination of structure Compiler.  As a
481       replacement for this structure, there is now a CM library
482       (known as $smlnj/compiler.cm or $smlnj/compiler/current.cm)
483       that exports all the substructures of the original structure Compiler
484       directly.  So instead of saying Compiler.Foo.bar one now simply
485       says Foo.bar.  (The CM libraries actually export a collection of
486       structures that is richer than the collection of substructures of
487       structure Compiler.)
488    
489       To make the transition smooth, there is a separate library called
490       $smlnj/compiler/compiler.cm which puts together and exports the
491       original structure Compiler (or at least something very close to it).
492    
493       There are five members of the original structure Compiler
494       that are not exported directly but which instead became members
495       of a new structure Backend (described by signature BACKEND).  These are:
496       structure Profile (: PROFILE), structure Compile (: COMPILE), structure
497       Interact (: INTERACT), structure Machine (: MACHINE), and val
498       architecture (: string).
499    
500       Structure Compiler.Version has become structure CompilerVersion.
501    
502       Cross-compilers for alpha32, hppa, ppc, sparc, and x86 are provided
503       by $smlnj/compiler/<arch>.cm where <arch> is alpha32, hppa, ppc, sparc,
504       or x86, respectively.
505       Each of these exports the same frontend structures that
506       $smlnj/compiler.cm exports.  But they do not have a structure Backend
507       and instead export some structure <Arch>Backend where <Arch> is Alpha32,
508       Hppa, PPC, Sparc, or X86, respectively.
509    
510       Library $smlnj/compiler/all.cm exports the union of the exports of
511       $smlnj/compiler/<arch>.cm
512    
513       There are no structures <Arch>Compiler anymore, use
514       $smlnj/compiler/<arch>.cm instead.
515    
516       Library host-compiler-0.cm is gone.  Instead, the internal library
517       that instantiates CM is now called cm0.cm.  Selection of the host
518       compiler (backend) is no longer done here but. (Responsibility for it
519       now lies with $smlnj/compiler/current.cm.  This seems to be more
520       logical.)
521    
522       Many individual files have been moved or renamed.  Some files have
523       been split into multiple files, and some "dead" files have been deleted.
524    
525    Aside from these changes to library organization, there are also changes
526    to the way the code itself is organized:
527    
528       Structure Binfile has been re-implemented in such a way that it no
529       longer needs any knowledge of the compiler.  It exclusively deals
530       with the details of binfile layout.  It no longer invokes the
531       compiler (for the purpose of creating new prospective binfile
532       content), and it no longer has any knowledge of how to interpret
533       pickles.
534    
535       Structure Compile (: COMPILE) has been stripped down to the bare
536       essentials of compilation.  It no longer deals with linking/execution.
537       The interface has been cleaned up considerably.
538    
539       Utility routines for dealing with linking and execution have been
540       moved into their own substructures.
541    
542       (The ultimate goal of these changes is to provide a light-weight
543       binfile loader/linker (at least for, e.g., stable libraries) that
544       does not require CM or the compiler to be present.)
545    
546    CM documentation has been updated to reflect the changes to library
547    organization.
548    
549    ----------------------------------------------------------------------
550    Name: Matthias Blume
551    Date: 2001/07/10 17:30:00 EDT
552    Tag: Release_110_34
553    Description:
554    
555    Minor tweak to 110.34 (re-tagged):
556    
557      - README.html file added to CVS repository
558      - runtime compiles properly under FreeBSD 3.X and 4.X
559    
560    ----------------------------------------------------------------------
561    Name: Matthias Blume
562    Date: 2001/07/10 17:30:00 EDT
563    Tag: Release_110_34
564    Description:
565    
566    New version number (110.34). New bootfiles.
567    
568    ----------------------------------------------------------------------
569    Name: Matthias Blume
570    Date: 2001/07/09 16:00:00 EDT
571    Tag: blume-20010709-more-varargs
572    Description:
573    
574    I changed the handling of varargs in ml-nlffigen again:
575    The ellipsis ... will now simply be ignored (with an accompanying warning).
576    
577    The immediate effect is that you can actually call a varargs function
578    from ML -- but you can't actually supply any arguments beyond the ones
579    specified explicitly.  (For example, you can call printf with its format
580    string, but you cannot pass additional arguments.)
581    
582    This behavior is only marginally more useful than the one before, but
583    it has the advantage that a function or, more importantly, a function
584    type never gets dropped on the floor, thus avoiding follow-up problems with
585    other types that refer to the offending one.
586    
587    ----------------------------------------------------------------------
588    Name: Matthias Blume
589    Date: 2001/07/09 11:25:00 EDT
590    Tag: blume-20010709-varargs
591    Description:
592    
593    1. ckit-lib.cm now exports structure Error
594    2. ml-nlffigen reports occurences of "..." (i.e., varargs function types)
595       with a warning accompanied by a source location.  Moreover, it
596       merely skips the offending function or type and proceeds with the
597       rest of its work.u  As a result, one can safely feed C code containing
598       "..." to ml-nlffigen.
599    3. There are some internal improvements to CM, providing slightly
600       more general string substitutions in the tools subsystem.
601    
602    ----------------------------------------------------------------------
603    Name: Matthias Blume
604    Date: 2001/06/27 15:10:00 EDT
605    Tag: blume-20010627-concur
606    Description:
607    
608    Fixed a small bug in CM's handling of parallel compilation.
609    (You could observe the bug by Control-C-interrupting an ordinary
610    CMB.make or CM.stabilize and then attaching some compile servers.
611    The result was that all of a sudden the previously interrupted
612    compilation would continue on its own.  This was because of
613    an over-optimization: CM did not bother to clean out certain queues
614    when no servers were attached "anyway", resulting in the contents
615    of these queues to grab control when new servers did get attached.)
616    
617    There is also another minor update to the CM manual.
618    
619    ----------------------------------------------------------------------
620    Name: Matthias Blume
621    Date: 2001/06/26 16:15:00 EDT
622    Tag: blume-20010626-cmdoc
623    Description:
624    
625    Minor typo fixed in CM manual (syntax diagram for libraries).
626    
627    ----------------------------------------------------------------------
628    Name: Matthias Blume
629    Date: 2001/06/25 22:55:00 EDT
630    Tag: blume-20010625-x86pc
631    Description:
632    
633    Fixed a nasty bug in the X86 assembly code that caused signal
634    handlers to fail (crash) randomly.
635    
636    ----------------------------------------------------------------------
637    Name: Matthias Blume
638    Date: 2001/06/25 12:05:00 EDT
639    Tag: blume-20010625-nlffigen
640    Description:
641    
642    This update fixes a number of minor bugs in ml-nlffigen as reported by
643    Nick Carter <nbc@andrew.cmu.edu>.
644    
645      1. Silly but ok typedefs of the form "typedef void myvoid;" are now accepted.
646      2. Default names for generated files are now derived from the name of
647         the C file *without its directory*.  In particular, this causes generated
648         files to be placed locally even if the C file is in some system directory.
649      3. Default names for generated signatures and structures are also derived
650         from the C file name without its directory.  This avoids silly things
651         like "structure GL/GL".
652         (Other silly names are still possible because ml-nlffigen does not do
653          a thorough check of whether generated names are legal ML identifiers.
654          When in doubt, use command line arguments to force particular names.)
655    
656    ----------------------------------------------------------------------
657    Name: Matthias Blume
658    Date: 2001/06/21 12:25:00 EDT
659    Tag: blume-20010621-eXene
660    Description:
661    
662    eXene now compiles and (sort of) works again.
663    
664    The library name (for version > 110.33) is $/eXene.cm.
665    
666    I also added an new example in src/eXene/examples/nbody.  See the
667    README file there for details.
668    
669    ----------------------------------------------------------------------
670    Name: Matthias Blume
671    Date: 2001/06/20 16:40:00 EDT
672    Tag: blume-20010620-cml
673    Description:
674    
675    CML now compiles and works again.
676    
677    Libraries (for version > 110.33):
678    
679      $cml/cml.cm            Main CML library.
680      $cml/basis.cm          CML's version of $/basis.cm.
681      $cml/cml-internal.cm   Internal helper library.
682      $cml/core-cml.cm       Internal helper library.
683      $cml-lib/trace-cml.cm  Tracing facility.
684      $cml-lib/smlnj-lib.cm  CML's version of $/smlnj-lib.cm
685    
686    The installer (config/install.sh) has been taught how to properly
687    install this stuff.
688    
689    ----------------------------------------------------------------------
690    Name: Matthias Blume
691    Date: 2001/06/19 17:55:00 EDT
692    Tag: blume-20010619-instantiate
693    Description:
694    
695    This un-breaks the fix for bug 1432.
696    (The bug was originally fixed in 110.9 but I broke it again some
697    time after that.)
698    
699    ----------------------------------------------------------------------
700    Name: Matthias Blume
701    Date: 2001/06/19 17:25:00 EDT
702    Tag: blume-20010619-signals
703    Description:
704    
705    This should (hopefully) fix the long-standing signal handling bug.
706    (The runtime system was constructing a continuation record with an
707    incorrect descriptor which would cause the GC to drop data on the floor...)
708    
709    ----------------------------------------------------------------------
710    Name: Matthias Blume
711    Date: 2001/06/15 15:05:00 EDT
712    Tag: blume-20010615-moresparc
713    Description:
714    
715    Here is a short late-hour update related to Sparc c-calls:
716    
717     -- made handling of double-word arguments a bit smarter
718    
719     -- instruction selection phase tries to collapse certain clumsily
720        constructed ML-Trees; typical example:
721    
722            ADD(ty,ADD(_,e,LI d1),LI d2)  ->  ADD(ty,e,LI(d1+d2))
723    
724        This currently has no further impact on SML/NJ since mlriscGen does
725        not seem to generate such patterns in the first place, and c-calls
726        (which did generate them in the beginning) has meanwhile been fixed
727        so as to avoid them as well.
728    
729    ----------------------------------------------------------------------
730    Name: Matthias Blume
731    Date: 2001/06/15 15:05:00 EDT
732    Tag: blume-20010615-sparc
733    Description:
734    
735    The purpose of this update is to provide an implementation of NLFFI
736    on Sparc machines.
737    
738    Here are the changes in detail:
739    
740       * src/MLRISC/sparc/c-calls/sparc-c-calls.sml is a new file containing
741       the Sparc implementation of the c-calls API.
742       * The Sparc backend of SML/NJ has been modified to uniformely use %fp
743       for accessing the ML frame.  Thus, we have a real frame pointer and
744       can freely modify %sp without need for an omit-frame-ptr phase.
745       The vfp logic in src/compiler/CodeGen/* has been changed to accomodate
746       this case.
747       * ml-nlffigen has been taught to produce code for different architectures
748       and calling conventions.
749       * In a way similar to what was done in the x86 case, the Sparc
750       backend uses its own specific extension to mltree.  (For example,
751       it needs to be able to generate UNIMP instructions which are part
752       of the calling convention.)
753       * ml-nlffi-lib was reorganized to make it more modular (in particular,
754       to make it easier to plug in new machine- and os-dependent parts).
755    
756    There are some other fairly unrelated bug fixes and cleanups as well:
757    
758       * I further hacked the .cm files for MLRISC tools (like MDLGen) so
759       that they properly share their libraries with existing SML/NJ libraries.
760       * I fixed a minor cosmetic bug in CM, supressing certain spurious
761       follow-up error messages.
762       * Updates to CM/CMB documentation.
763    
764    TODO items:
765    
766       * MLRISC should use a different register as its asmTemp on the Sparc.
767         (The current %o2 is a really bad choice because it is part of the
768         calling conventions, so things might interfere in unexpected ways.)
769    
770    ----------------------------------------------------------------------
771    Name: Matthias Blume
772    Date: 2001/06/07
773    Tag: blume-20010607-calls
774    Description:
775    
776    A number of internal changes related to C calls and calling conventions:
777    
778    1. ML-Tree CALL statements now carry a "pops" field.  It indicates the
779       number of bytes popped implicitly (by the callee).  In most cases
780       this field is 0 but on x86/win32 it is some non-zero value.  This
781       is information provided for the benefit of the "omit-frameptr" pass.
782    2. The CALL instruction on the x86 carries a similar "pops" field.
783       The instruction selection phase copies its value from the ML-Tree
784       CALL statement.
785    3. On all other architectures, the instruction selection phase checks
786       whether "pops=0" and complains if not.
787    4. The c-calls implementation for x86 now accepts two calling conventions:
788       "ccall" and "stdcall".  When "ccall" is selected, the caller cleans
789       up after the call and pops is set to 0.  For "stdcall", the caller
790       does nothing, leaving the cleanup to the callee; pops is set to
791       the number of bytes that were pushed onto the stack.
792    5. The cproto decoder (compiler/Semant/types/cproto.sml) now can
793       distinguish between "ccall" and "stdcall".
794    6. The UNIMP instruction has been added to the supported Sparc instruction
795       set. (This is needed for implementing the official C calling convention
796       on this architecture.)
797    7. I fixed some of the .cm files under src/MLRISC/Tools to make them
798       work with the latest CM.
799    
800    ----------------------------------------------------------------------
801    Name: Matthias Blume
802    Date: 2001/06/05 15:10:00 EDT
803    Tag: blume-20010605-cm-index
804    Description:
805    
806    0. The "lambdasplit" parameter for class "sml" in CM has been documented.
807    
808    1. CM can now generate "index files".  These are human-readable files
809       that list on a per-.cm-file basis each toplevel symbol defined or
810       imported.  The location of the index file for
811       <p>/<d>.cm is <p>/CM/INDEX/<d>.cm.
812       To enable index-file generation, set CM.Control.generate_index to true
813       or export an environment-symbol: export CM_GENERATE_INDEX=true.
814    
815       The CM manual has been updated accordingly.
816    
817    2. I made some slight modifications to the c-calls API in MLRISC.
818    
819         a) There is now a callback to support saving/restoring of
820            dedicated but caller-save registers around the actual call
821            instruction.
822         b) One can optionally specify a comment-annotation for the
823            call instruction.
824    
825    3. SML/NJ (mlriscGen.sml) uses this new API for the rawccall primop.
826       (For example, the comment annotation shows the C prototype of
827        the function being called.)
828    
829    ----------------------------------------------------------------------
830    Name: Matthias Blume
831    Date: 2001/06/01 13:30:00 EDT
832    Tag: blume-20010601-nlffi-cleanup
833    Description:
834    
835    This is mostly a cleanup of MLFFI stuff:
836    
837       - some signature files have been put into a more exposed place
838       - the ugly 'f type parameter is gone (simplifies types tremendously!)
839       - ml-nlffigen changed accordingly
840       - tutorial updated
841    
842    Other changes:
843    
844       - author's affiliation in CM manual(s) updated
845       - some more recognized keywords added to Allen's sml.sty
846    
847    ----------------------------------------------------------------------
848    Name: Matthias Blume
849    Date: 2001/05/25 15:30:00 EDT
850    Tag: blume-20010525-iptr
851    Description:
852    
853      - put the official 110.33-README (as it appears on the ftp server) under
854        CVS
855      - fixed a small bug related to incomplete pointer types in
856        ml-nlffigen
857      - small cosmetic change to the ml-nlffi-lib's "arr" type constructor
858        (it does not need the 'f type parameter)
859    
860    ----------------------------------------------------------------------
861    Name: Matthias Blume
862    Date: 2001/05/23 14:30:00 EDT
863    Tag: Release_110_33
864    Description:
865    
866    New version number (110.33).  New bootfiles.
867    
868    ----------------------------------------------------------------------
869    Name: Matthias Blume
870    Date: 2001/05/22 18:06:00 EDT
871    Tag: blume-20010522-targets
872    Description:
873    
874    Made install.sh use file config/targets.customized if it exists, falling
875    back to config/targets if it doesn't.  This way one can have a customized
876    version of the targets file without touching the "real thing", thus
877    eliminating the constant fear of accidentally checking something bogus
878    back into the CVS repository...  (File config/targets.customized must
879    not be added to the repository!)
880    
881    ----------------------------------------------------------------------
882    Name: Matthias Blume
883    Date: 2001/05/22 16:30:00 EDT
884    Tag: blume-20010522-minitut
885    Description:
886    
887    1. Bug fix in ml-nlffigen; now (hopefully) correctly handling
888       struct returns.
889    2. Added src/ml-nlffi-lib/Doc/mini-tutorial.txt.  This is some very
890       incomplete, preliminary documentation for NLFFI.
891    
892    ----------------------------------------------------------------------
893    Name: Matthias Blume
894    Date: 2001/05/14 11:30:00 EDT
895    Tag: blume-20010514-script
896    Description:
897    
898    Some bugs in install script fixed.
899    
900    In addition to that I also made a slight change to the NLFFI API:
901    Functors generated by ml-nlffigen now take the dynamic library as a
902    straight functor argument, not as a suspended one.  (The original
903    functor code used to force the suspension right away anyway, so there
904    was nothing gained by this complication of the interface.)
905    
906    ----------------------------------------------------------------------
907    Name: Matthias Blume
908    Date: 2001/05/11 14:35:00 EDT
909    Tag: blume-20010511-ml-nlffi
910    Description:
911    
912    I finally took the plunge and added my new FFI code to the main
913    repository.  For x86-linux it is now ready for prime-time.
914    
915    There are two new subdirectories of "src":
916    
917      - ml-nlffi-lib:
918           The utility library for programs using the FFI interface.
919           Here is the implementation of $/c.cm and its associated low-level
920           partners $/c-int.cm and $/memory.cm.
921      - ml-nlffigen:
922           A stand-alone program for generating ML glue code from C source
923           code.
924    
925    Building ml-nlffigen requires $/ckit-lib.cm.
926    
927    The config/install.sh script has been updates to do the Right Thing
928    (hopefully).
929    
930    Notice that the source tree for the C-Kit will not be put under "src"
931    but directly under the installation root directory.  (This is the
932    structure that currently exists on the CVS server when you check out
933    module "sml".)  Fortunately, config/install.sh knows about this oddity.
934    
935    Bugs: No documentation yet.
936    
937    ----------------------------------------------------------------------
938    Name: Matthias Blume
939    Date: 2001/05/09 16:35:00 EDT
940    Tag: blume-20010509-cpscontract
941    Description:
942    
943    Fixed a bug in the accounting code in cpsopt/contract.sml.  (The
944    wrapper/unwrapper elimination did not decrement usage counts and some
945    dead variables got overlooked by the dead-up logic.)
946    
947    ----------------------------------------------------------------------
948    Name: Lal George
949    Date: 2001/05/08  17:26:09 EDT
950    Tag: george-20010508-omit-frameptr
951    Description:
952    
953    Changes to implement the omit-frame-pointer optimization to support
954    raw C calls. For now, there is only support on the Intel x86, but
955    other architectures will follow as more experience is gained with this.
956    
957    
958    ----------------------------------------------------------------------
959    Name: Matthias Blume
960    Date: 2001/05/07 14:40:00 EDT
961    Tag: blume-20010507-proxies
962    Description:
963    
964    I made into "proxy libraries" all libraries that qualify for such a
965    change.  (A qualifying library is a library that has another library or
966    groups as its sole member and repeats that member's export list
967    verbatim.  A proxy library avoids this repetition by omitting its export
968    list, effectively inheriting the list that its (only) member exports.
969    See the CM manual for more explanation.)
970    The main effect is that explicit export lists for these libraries
971    do not have to be kepts in sync, making maintenance a bit easier.
972    
973    I also added copyright notices to many .cm-files.
974    
975    Last but not least, I made a new set of bootfiles.
976    
977    ----------------------------------------------------------------------
978    Name: Matthias Blume
979    Date: 2001/05/04 17:00:00 EDT
980    Tag: blume-20010504-cm-lsplit
981    Description:
982    
983    0. John merged pending changes to $/smlnj-lib.cm
984    
985    1. Allen's previous change accidentally backed out of one of Lal's
986       earlier changes.  I undid this mistake (re-introducing Lal's change).
987    
988    2. I used the new topOrder' function from graph-scc.sml (from $/smlnj-lib.cm)
989       within the compiler where applicable.  There is some code simplification
990       because of that.
991    
992    3. The "split" phase (in FLINT) is now part of the default list of phases.
993       Compiler.Control.LambdaSplitting.* can be used to globally control the
994       lambda-splitting (cross-module-inlining) engine.  In addition to that,
995       it can now also be controlled on a per-source basis: CM has been taught
996       a new tool parameter applicable to ML source files.
997    
998       - To turn lambda-splitting off completely:
999            local open Compiler.Control.LambdaSplitting in
1000                val _ = set Off
1001            end
1002       - To make "no lambda-splitting" the global default (but allow per-source
1003         overriding); this is the initial setting:
1004            local open Compiler.Control.LambdaSplitting in
1005                val _ = set (Default NONE)
1006            end
1007       - To make "lambda-splitting with aggressiveness a" the global default
1008         (and allow per-source overriding):
1009            local open Compiler.Control.LambdaSplitting in
1010                val _ = set (Default (SOME a))
1011            end
1012    
1013       - To turn lambda-splitting off for a given ML souce file (say: a.sml)
1014         write (in the respective .cm-file):
1015            a.sml (lambdasplitting:off)
1016       - To turn lambda-splitting for a.sml on with minimal aggressiveness:
1017            a.sml (lambdasplitting:on)
1018       - To turn lambda-splitting for a.sml on with aggressiveness <a> (where
1019         <a> is a decimal non-negative integer):
1020            a.sml (lambdasplitting:<a>)
1021       - To turn lambda-splitting for a.sml on with maximal aggressiveness:
1022            a.sml (lambdasplitting:infinity)
1023       - To use the global default for a.sml:
1024            a.sml (lambdasplitting:default)
1025         or simply
1026            a.sml
1027    
1028    ----------------------------------------------------------------------
1029    Name: Allen Leung
1030    Date: 2001/05/04 01:57:00 EDT
1031    Tag: leunga-20010504-sync
1032    Description:
1033    
1034      MLRISC features.
1035    
1036      1. Fix to CMPXCHG instructions.
1037      2. Changed RA interface to allow annotations in callbacks.
1038      3. Added a new method to the stream interface to allow annotations updates.
1039    
1040    ----------------------------------------------------------------------
1041    Name: Matthias Blume
1042    Date: 2001/05/01 11:45:00 EDT
1043    Tag: blume-20010501-pcedittmp
1044    Description:
1045    
1046    Changed install.sh to use the current working directory instead of
1047    /usr/tmp for a temporary file (pcedittmp).  The previous choice
1048    of /usr/tmp caused trouble with MacOS X because of file premission
1049    problems.
1050    
1051    ----------------------------------------------------------------------
1052    Name: Matthias Blume
1053    Date: 2001/04/20 11:10:00 EDT
1054    Tag: blume-20010420-inMLflag
1055    Description:
1056    
1057     - added vp_limitPtrMask to vproc-state.h
1058       (for use by the raw-C-calls mechanism to implement proper interrupt
1059        handling)
1060     - made the ML compiler aware of various data-structure offsets so it
1061       can generate code for accessing the vp_inML flag and vp_limitPtrMask
1062     - tweaked mlriscGen.sml to have it emit interrupt-handling code for
1063       raw C-calls
1064    
1065    ----------------------------------------------------------------------
1066    Name: Lal George
1067    Date: 2001/04/20 09:15:28 EDT
1068    Tag: george-20010420-macosX
1069    Description:
1070    
1071     - Changes to port to Mac OS X; Darwin.
1072    
1073     - In the process I found that sqrt was broken on the PPC, because the
1074       fsqrt instruction is not implemented.
1075    
1076    ----------------------------------------------------------------------
1077    Name: Matthias Blume
1078    Date: 2001/04/18 12:45:00 EDT
1079    Tag: blume-20010418-ccalls
1080    Description:
1081    
1082     - fixed two off-by-4 errors in the x86-specific c-calls implementation
1083       (this bug prevented structure arguments containing pointers from being
1084        passed correctly)
1085     - changed the raw-C-call code in mlriscGen.sml in such a way that
1086       structure arguments are represented as a pointer to the beginning
1087       of the structure (instead of having a series of synthesized arguments,
1088       one for each structure member)
1089    
1090     - made makeml script's verbosity level configurable via environment
1091       variable (MAKEML_VERBOSITY)
1092    
1093     - eliminated placeholder implementations for f32l, w16s, i16s, and f32s
1094       in rawmem-x86.sml; we are now using the real thing
1095    
1096    ----------------------------------------------------------------------
1097    Name: Matthias Blume
1098    Date: 2001/03/22 16:25:00 EST
1099    Tag: blume-20010322-bootfiles
1100    Description:
1101    
1102    Created a new set of bootfiles (for your automatic installation convenience).
1103    
1104    ----------------------------------------------------------------------
1105    Name: Matthias Blume
1106    Date: 2001/03/22 15:10:00 EST
1107    Tag: blume-20010322-rawmem-parcm
1108    Description:
1109    
1110    1. All "raw memory access" primitives for the new FFI are implemented now
1111       (at least on the x86).
1112    2. Some further cleanup of CM's parallel make mechanism.
1113    
1114    ----------------------------------------------------------------------
1115    Name: Matthias Blume
1116    Date: 2001/03/19 17:53:00 EST
1117    Tag: blume-20010319-parallel
1118    Description:
1119    
1120    Parallel make (using compile servers) now works again.
1121    
1122    To this end, CM.stabilize and CMB.make have been modified to work in
1123    two passes when compile servers are attached:
1124       1. Compile everything, do not perform stabilization; this pass
1125          uses compile servers
1126       2. Stabilize everything; this pass does not use compile servers
1127    If there are no compile servers, the two passes are combined into one
1128    (as before).  Splitting the passes increases the inherent parallelism
1129    in the dependency graph because the entire graph including all
1130    libraries is available at the same time.  This, in turn, improves
1131    server utilization.  The downside is that the master process will
1132    have to do some extra work after compilation is done (because for
1133    technical reasons it must re-read all the binfiles during stabilization).
1134    
1135    ----------------------------------------------------------------------
1136    Name: Matthias Blume
1137    Date: 2001/03/16 12:22:00 EST
1138    Tag: blume-20010316-bootfiles
1139    Description:
1140    
1141    Created a new set of bootfiles (for your automatic installation convenience).
1142    
1143    ----------------------------------------------------------------------
1144    Name: Matthias Blume
1145    Date: 2001/03/16 11:00:00 EST
1146    Tag: blume-20010316-MLTREE-fixup
1147    Description:
1148    
1149    This is a minor fixup for an (untagged) earlier commit by Allen.
1150    (A file was missing).
1151    
1152    ----------------------------------------------------------------------
1153    Name: Allen Leung
1154    Date: Mon Mar  5 18:54:57 EST 2001
1155    Tag: leunga-20010305-cut-support
1156    
1157    1. New support for alternative control-flow in MLTREE.
1158       Currently we support
1159    
1160          FLOW_TO(CALL ...., [k1,...,kn])
1161    
1162       This is needed for 'cuts to' in C-- and try/handle-like constructs
1163       in Moby
1164    
1165       New assembler flag "asm-show-cutsto" to turn on control-flow debugging.
1166    
1167    2. Register Allocator
1168    
1169       Changes in interface [from Fermin, John]
1170    
1171    3. Alpha 8-bit SLL support [Fermin]
1172    
1173    4. All architectures
1174    
1175       A new module (ClusterExpandCopies) for expanding parallel copies.
1176    
1177    ----------------------------------------------------------------------
1178    Name: Allen Leung
1179    Date: 2001/02/27 23:07:00 EST
1180    Tag: leunga-20010227-minor-stuff
1181    
1182    1. Alpha bug fix for CMOVNE
1183    2. Handle mltree COND(..,FCMP ...,...)
1184    3. Bug fix in simplifier
1185    
1186    ----------------------------------------------------------------------
1187    Name: Matthias Blume
1188    Date: 2001/01/30 17:50:00 EST
1189    Tag: blume-20010130-sync
1190    Description:
1191    
1192    This is just a minor update to sync my devel branch with the main brach.
1193    The only visible change is the addition of some README files.
1194    
1195    ----------------------------------------------------------------------
1196    Name: Matthias Blume
1197    Date: 2001/01/12 23:30:00 JST
1198    Tag: blume-20010112-bootfiles
1199    Description:
1200    
1201    Made a new set of bootfiles that goes with the current state of the
1202    repository.
1203    
1204    ----------------------------------------------------------------------
1205    Name: Matthias Blume
1206    Date: 2001/01/12 21:20:00 JST
1207    Tag: blume-20010112-sync
1208    Description:
1209    
1210    I am just flushing out some minor changes that had accumulated in
1211    my private branch in order to sync with the main tree.  (This is
1212    mainly because I had CVS trouble when trying to merge _into_ my
1213    private branch.)
1214    
1215    Most people should be completely unaffected by this.
1216    
1217    ----------------------------------------------------------------------
1218    Name: Allen Leung
1219    Date: Thu Jan 11 21:03:00 EST 2001
1220    Tag: leunga-20010111-labexp=mltree
1221    Description:
1222    
1223    1.  Removed the type LabelExp and replace it by MLTree.
1224    2.  Rewritten mltree-simplify with the pattern matcher tool.
1225    3.  There were some bugs in alpha code generator which would break
1226        64-bit code generation.
1227    4.  Redo the tools to generate code with the
1228    5.  The CM files in MLRISC (and in src/system/smlnj/MLRISC)
1229        are now generated by perl scripts.
1230    
1231    ----------------------------------------------------------------------
1232    Name: Matthias Blume
1233    Date: 2001/01/10 21:55:00 JST
1234    Tag: blume-20010110-rcc
1235    Description:
1236    
1237    The RCC stuff now seems to work (but only on the x86).
1238    This required hacking of the c-calls interface (and -implementation) in
1239    MLRISC.
1240    
1241    Normal compiler users should be unaffected.
1242    
1243    ----------------------------------------------------------------------
1244    Name: Matthias Blume
1245    Date: 2001/01/09 01:20:00 JST
1246    Tag: blume-20010109-rcc
1247    Description:
1248    
1249    This is a fairly big patch, flushing out a large number of pending
1250    changes that I made to my development copy over the last couple of days.
1251    
1252    Of practical relevance at this moment is a workaround for a pickling
1253    bug that Allen ran into the other day.  The cause of the bug itself is
1254    still unknown and it might be hard to fix it properly, but the
1255    workaround has some merits of its own (namely somewhat reducing pickling
1256    overhead for certain libraries).  Therefore, I think this solution should
1257    be satisfactory at this time.
1258    
1259    The rest of the changes (i.e., the vast majority) has to do with my
1260    ongoing efforts of providing direct support for C function calls from
1261    ML.  At the moment there is a new primop "RAW_CCALL", typing magic
1262    in types/cproto.sml (invoked from FLINT/trans/translate.sml), a new
1263    case in the FLINT CPS datatype (RCC), changes to cps/convert.sml to
1264    translate uses of RAW_CCALL into RCC, and changes to mlriscGen.sml to
1265    handle RCC.
1266    
1267    The last part (the changes to mlriscGen.sml) are still known to be
1268    wrong on the x86 and not implemented on all other architectures.  But
1269    the infrastructure is in place. I had to change a few functor
1270    signatures in the backend to be able to route the CCalls interface
1271    from MLRISC there, and I had to specialize the mltree type (on the
1272    x86) to include the necessary extensions. (The extensions themselves
1273    were already there and redy to go in MLRISC/x86).
1274    
1275    Everything should be very happy as soon as someone helps me with
1276    mlriscGen.sml...
1277    
1278    In any case, nothing of this should matter to anyone as long as the
1279    new primop is not being used (which is going to be the case unless you
1280    find it where I hid it :). The rest of the compiler is completely
1281    unaffected.
1282    
1283    ----------------------------------------------------------------------
1284    Name: Matthias Blume
1285    Date: 2001/01/05 00:30:00 JST
1286    Tag: blume-20010105-primops
1287    Description:
1288    
1289    Added some experimental support for work that I am doing right now.
1290    These changes mostly concern added primops, but there is also a new
1291    experimental C library in the runtime system (but currently not enabled
1292    anywhere except on Linux/X86).
1293    
1294    In the course of adding primops (and playing with them), I discovered that
1295    Zhong's INL_PRIM hack (no type info for certain primops) was, in fact, badly
1296    broken.  (Zhong was very right he labeled this stuff as "major gross hack".)
1297    To recover, I made type information in INL_PRIM mandatory and changed
1298    prim.sml as well as built-in.sml accordingly.  The InLine structure now
1299    has complete, correct type information (i.e., no bottom types).
1300    
1301    Since all these changes mean that we need new binfiles, I also bumped the
1302    version number to 110.32.1.
1303    
1304    ----------------------------------------------------------------------
1305    Name: Matthias Blume
1306    Date: 2000/12/30 22:10:00 JST
1307    Tag: blume-20001230-various
1308    Description:
1309    
1310    Added proxy libraries for MLRISC and let MLRISC libraries refer
1311    to each other using path anchors.  (See CM manual for explanation.)
1312    
1313    Updated CM documentation.
1314    
1315    Fixed some bugs in CM.
1316    
1317    Implemented "proxy" libraries (= syntactic sugar for CM).
1318    
1319    Added "-quiet" option to makeml and changed runtime system accordingly.
1320    
1321    Added cleanup handler for exportML to reset timers and compiler stats.
1322    
1323  ----------------------------------------------------------------------  ----------------------------------------------------------------------
1324  Name: Lal George  Name: Lal George
1325  Date: 2000/12/22 22:22:58 EST 2000  Date: 2000/12/22 22:22:58 EST 2000
# Line 22  Line 1331 
1331    
1332  ----------------------------------------------------------------------  ----------------------------------------------------------------------
1333  Name: Matthias Blume  Name: Matthias Blume
 Date: 2000/12/22 21:20:00 JST  
 Tag: blume-20001222-anchorenv  
 Description:  
 ----------------------------------------------------------------------  
 Name: Matthias Blume  
1334  Date: 2000/12/22 23:16:00 JST  Date: 2000/12/22 23:16:00 JST
1335  Tag: blume-20001222-warn  Tag: blume-20001222-warn
1336  Description:  Description:
# Line 36  Line 1340 
1340    
1341  ----------------------------------------------------------------------  ----------------------------------------------------------------------
1342  Name: Matthias Blume  Name: Matthias Blume
1343    Date: 2000/12/22 21:20:00 JST
1344    Tag: blume-20001222-anchorenv
1345    Description:
1346    
1347    Fixed CM's handling of anchor environments in connection with CMB.make.
1348    
1349    ----------------------------------------------------------------------
1350    Name: Matthias Blume
1351  Date: 2000/12/22 13:15:00 JST  Date: 2000/12/22 13:15:00 JST
1352  Tag: blume-20001222-cleanup  Tag: blume-20001222-cleanup
1353  Description:  Description:
# Line 1811  Line 3123 
3123       elaborator). There were a lot of changes during my "linkpath" trials       elaborator). There were a lot of changes during my "linkpath" trials
3124       that could have been reverted to their original state but weren't.       that could have been reverted to their original state but weren't.
3125       Please, don't be too harsh on me for messing with this code a bit more       Please, don't be too harsh on me for messing with this code a bit more
3126       than what was strictly necessary...  (I _did_ resist the tempation       than what was strictly necessary...  (I _did_ resist the temptation
3127       of doing any "global reformatting" to avoid an untimely death at       of doing any "global reformatting" to avoid an untimely death at
3128       Dave's hands. :)       Dave's hands. :)
3129    

Legend:
Removed from v.761  
changed lines
  Added in v.975

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