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/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

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

sml/trunk/HISTORY revision 1395, Fri Sep 26 21:03:26 2003 UTC sml/trunk/NOTES/HISTORY revision 2387, Sat Apr 7 13:30:41 2007 UTC
# Line 1  Line 1 
1  This is the HISTORY file for the Yale SML/NJ CVS repository.  This is the HISTORY file for the SML/NJ repository.
2    
3  An entry should be made for _every_ commit to the repository.  An entry should be made for _every_ commit to the repository.
4  The entries in this file will be used when creating the README  The entries in this file will be used when creating the README
# Line 7  Line 7 
7    
8  The form of an entry should be:  The form of an entry should be:
9    
10  Name:  
11    Name: Your Name (web page or e-mail)
12    Date: yyyy/mm/dd hh:mm:ss
13    Tag: cvs-tag-for-this-change
14    Description:
15    
16    ----------------------------------------------------------------------
17    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
18    Date: 2007/04/07
19    Description:
20    
21    More Basis fixes: the WORD signature was missing {to,from}Large.
22    Thanks to Andreas Rossberg.
23    
24    ----------------------------------------------------------------------
25    Name: Matthias Blume (http://www.tti-c.org/blume/)
26    Date: 2007/03/22 16:07:00 CDT
27    Tag: release-110.63
28    Description:
29    
30    Bumped version number to 110.63.
31    
32       !!!NEW BOOTFILES!!!
33    
34    ----------------------------------------------------------------------
35    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
36    Date: 2007/03/19
37    Description:
38    
39    Fixed bogus operand sizes in AMD64 instruction spilling.
40    
41    ----------------------------------------------------------------------
42    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
43    Date: 2007/03/19
44    Description:
45    
46    Fixed a number of inconsistencies between the Posix.TTY structure
47    and the Basis specification.  Thanks to Adam Chilpala.
48    
49    ----------------------------------------------------------------------
50    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
51    Date: 2007/02/26
52    Description:
53    
54    Added preliminary support in MLRISC for Staged Allocation, a technique
55    for specifying calling conventions (see
56    http://www.eecs.harvard.edu/~nr/pubs/staged-abstract.html).
57    Initially, we plan to use this code to generate C calls for the AMD64.
58    
59    The staged allocation code base resides in MLRISC/staged-allocation,
60    and specialized calling conventions go in MLRISC/ARCH/staged-allocation.
61    
62    ----------------------------------------------------------------------
63    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
64    Date: 2007/02/20
65    Description:
66    
67      Bug fix: when SaveCState was called with two values to save, a subsequent
68      GC could cause the RestoreCState to fail because the saved state had been
69      promoted to tagless pair.
70    
71    ----------------------------------------------------------------------
72    Name: Allen Leung (leunga (at) reservoir (dot) com)
73    Date: 2007/02/20 19:08:00 EST
74    Description:
75    
76        Bug triggered by:
77    
78        val a1 = Word8Array.array(a1, 0w0);
79        val _  = Word8Array.update(a1, 0, 0w128);
80    
81        x86MCEmitter crashed when the immediate operand to MOVB was outside
82    of the range -128 ... 127.  I've changed the code so that the range
83    check is disabled.   Only the low order 8 bits of the immediate operand
84    are now significant.
85    
86    
87    ----------------------------------------------------------------------
88    Name: Matthias Blume (http://www.tti-c.org/blume/)
89    Date: 2007/02/15 09:20:00 CST
90    Description:
91    
92    Eliminated any mention of lexgen.  (Lexgen was an early precursor
93    to ml-ulex.)
94    
95    You should update your admin directory, so the shell scripts for
96    maintaining your local copy of the repository reflect this change.
97    
98    ----------------------------------------------------------------------
99    Name: Matthias Blume (http://www.tti-c.org/blume/)
100    Date: 2007/02/14 15:45:00 CST
101    Description:
102    
103    Fixed bug in CM's parallel make facility that failed to have
104    the master re-link modules after letting slaves compile them.
105    
106    ----------------------------------------------------------------------
107    Name: Matthias Blume (http://www.tti-c.org/blume/)
108    Date: 2007/02/12 15:10:00 CST
109    Description:
110    
111    Fixed typo in ml-build script that prevented library anchors
112    from being registered.
113    
114    ----------------------------------------------------------------------
115    Name: Matthias Blume (http://www.tti-c.org/blume/)
116    Date: 2007/02/02 15:20:00 CST
117    Tag: release-110.62
118    Description:
119    
120    New working release (110.62).  NEW BOOTFILES!
121    
122    ----------------------------------------------------------------------
123    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
124    Date: 2007/01/31
125    Description:
126    
127    Brought ml-lpt manual up-to-date with the code.  Many minor
128    improvements to the tools, and a few minor bugfixes.  Prepared
129    ml-lpt-lib for integration with new UTF8 structure.  Changed
130    the interface for creating streams in ml-ulex (we now support
131    stream creation from several kinds of sources).  Overall, the
132    tools are now quite stable, and their interfaces are unlikely to
133    change in a way that would break compatibility.  More work,
134    however, is needed in the documentation.
135    
136    ----------------------------------------------------------------------
137    Name: Matthias Blume (http://www.tti-c.org/blume/)
138    Date: 2007/02/01 10:05:00 CST
139    Description:
140    
141    Implemented library installer.  Moved CM plugin code for
142    ml-burg, ml-lex, and ml-yacc out of CM source tree and into
143    their respective trees.  Implemented CM plugin for ml-ulex
144    and ml-antlr.  Used library installer for ml-burg, ml-ulex,
145    and ml-antlr.
146    
147    For ml-yacc and ml-lex we continue to have permanently "plugged-in"
148    CM tools.  (It turns out to be too messy to do otherwise because
149    there is too much code that during installation relies on the presence
150    of these tools -- resulting in a tricky ordering problem.)
151    
152    ----------------------------------------------------------------------
153    Name: Matthias Blume (http://www.tti-c.org/blume/)
154    Date: 2007/01/30 11:05:00 CST
155    Description:
156    
157    Added SMLofNJ.shiftArgs which is like a shell's "shift" command.
158    Modified CM's startup code to use shiftArgs as it processes
159    command line arguments.  This way, the init code in each .sml-file
160    or library that is mentioned at the top level will see only
161    those arguments that have not yet been processed at this point.
162    In other words, the init code can "seize control" and process the
163    remaining command line.
164    
165    ----------------------------------------------------------------------
166    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
167    Date: 2007/01/30
168    Description:
169    
170    Added fromList function to the ORD_SET interface and lookup to the
171    ORD_MAP interface.  See the SML/NJ Library CHANGES file for details.
172    
173    ----------------------------------------------------------------------
174    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
175    Date: 2007/01/28
176    Description:
177    
178    Added the UTF8 structure and signature from the Moby compiler to
179    the SML/NJ library (and the CML library).  These modules will replace
180    the version in the ml-lpt-lib.
181    
182    ----------------------------------------------------------------------
183    Name: Matthias Blume (http://www.tti-c.org/blume/)
184    Date: 2007/01/26 15:10:00 CST
185    Description:
186    
187    Added entries to handle ml-lpt-lib.cm in installer.
188    
189    ----------------------------------------------------------------------
190    Name: Matthias Blume (http://www.tti-c.org/blume/)
191    Date: 2006/12/15 11:10:00 CST
192    Tag: release-110.61
193    Description:
194    
195    New working release (110.61).  NEW BOOTFILES!
196    
197    This supersedes the pre-brown-paper-bug release (see below).
198    
199    ----------------------------------------------------------------------
200    Name: Matthias Blume (http://www.tti-c.org/blume/)
201    Date: 2006/12/15 11:00:00 CST
202    Description:
203    
204    Fixed brown-paper-bag bug with CM's pathname handling, which made
205    installation fail under Win32.
206    
207    ----------------------------------------------------------------------
208    Name: Matthias Blume (http://www.tti-c.org/blume/)
209    Date: 2006/12/14 12:00:00 CST
210    Description:
211    
212    Obsolete!
213    
214    [New working release (110.61).  NEW BOOTFILES!]
215    
216    ----------------------------------------------------------------------
217    Name: John Reppy (http://cs.uchicago.edu/~jhr)
218    Date: 2006/14/06 09:50:00 CST
219    Description:
220    
221    Fixed the code in runtime/c-libs/posix-tty/{tcgetattr,tcsetattr}.c to
222    get the c_cc termios data copied correctly.  Also moved the allocation
223    of the string to avoid problems if it caused a GC.
224    
225    Thanks to Timothy Bourke for the bug report and fix.
226    
227    ----------------------------------------------------------------------
228    Name: Matthias Blume (http://www.tti-c.org/blume)
229    Date: 2006/12/08 09:50:00 CST
230    Description:
231    
232    Added code to CM's "standard shell tool" implementation which
233    causes it to tolerate (with a warning) the situation where the shell
234    command fails (e.g., due to the shell command's non-existence)
235    as long as all target files exist.
236    
237    This makes it possible to, e.g., build ml-yacc from sources even if
238    svn checkout messed up the time stamps on files in such a way that
239    yacc.grm is younger than yacc.grm.sml or yacc.grm.sig.  (Ml-yacc would
240    be needed to re-process yacc.grm, but obviously it might not yet be
241    available at that time.)
242    
243    ----------------------------------------------------------------------
244    Name: John Reppy (http://cs.uchicago.edu/~jhr)
245    Date: 2006/12/06 12:06:00 CST
246    Description:
247    
248    Fixed the types of recvVecFrom, recvVecFrom', recvVecFromNB, and
249    recvVecFromNB' in the SOCKET signature.  This error is actually
250    in the SML Basis specification too.
251    
252    ----------------------------------------------------------------------
253    Name: Matthias Blume (http://www.tti-c.org/blume/)
254    Date: 2006/12/05 22:40:00 CST
255    Description:
256    
257    CM now reports undefined anchors as errors and aborts execution
258    rather than silently pressing on using bogus values.
259    
260    ----------------------------------------------------------------------
261    Name: Matthias Blume (http://www.tti-c.org/blume/)
262    Date: 2006/11/29 10:00:00 CST
263    Description:
264    
265    Use Say.vsay for printing the "[autoloading]" message, so
266    #set CM.Control.verbose false (or -Ccm.verbose=false) can be used
267    to suppress them.
268    
269    ----------------------------------------------------------------------
270    Name: Matthias Blume (http://www.tti-c.org/blume/)
271    Date: 2006/11/10 11:00:00 CST
272    Description:
273    
274    Fixed bug in CM where "with:" specifications that affect compilation
275    (as opposed to parsing) were ignored.
276    
277    ----------------------------------------------------------------------
278    Name: Matthias Blume (http://www.tti-c.org/blume/)
279    Date: 2006/11/09 14:30:00 CST
280    Tag: release-110.60
281    Description:
282    
283    New working release (110.60).  NEW BOOTFILES!
284    
285    This is the first subversion-hosted release.  There are also changes
286    to the directory layout.  Here is a table:
287    
288    (All pathnames are relative to the SML/NJ "root" directory.)
289    
290      config -> config
291    
292      src/cm -> base/cm
293      src/compiler -> base/compiler
294      src/runtime -> base/runtime
295      src/system -> base/system
296    
297      src/cm/pgraph -> pgraph
298    
299      src/READMES -> base/READMES
300      src/$notefile -> base/NOTES/$notefile
301         for <notefile> in BOOT CVSNOTES CYGWININSTALL HISTORY INSTALL
302                           MACOSXINSTALL WININSTALL
303    
304      src/smlnj-lib -> smlnj-lib
305      src/MLRISC -> MLRISC
306      ckit -> ckit
307      src/cml -> cml
308      src/eXene -> eXene
309      src/heap2asm -> heap2asm
310      src/lexgen -> lexgen
311      src/ml-burg -> ml-burg
312      src/ml-lex -> ml-lex
313      src/ml-yacc -> ml-yacc
314      src/ml-nlffi-lib -> nlffi/lib
315      src/ml-nlffigen -> nlffi/gen
316      src/smlnj-c -> smlnj-c
317      src/tools/TraceDebugProf -> trace-debug-profile
318    
319    In addition, there is also a new
320    
321      ml-lpt
322    
323    directory containing two new program generator tools: ml-ulex and
324    ml-antlr (a lexer generator that handles unicode and an ANTRL-inspired
325    LL(k) parser generator). These tools are currently "beta-quality"
326    
327    The latest versios of the sources can now be obtained anonymously
328    via subversion.  For this, it is useful to first check out
329    
330       svn://smlnj-gforge.cs.uchicago.edu/smlnj/admin
331    
332    and put the resulting directory on your shell's PATH.  This provides
333    access to three shell scripts: checkout-all.sh, stat-all.sh,
334    and refresh-all.sh.
335    
336    To create a freshly checked-out copy of the sources, do
337    
338       checkout-all.sh [dir]
339    
340    where dir is the optional SML/NJ root directory (default is ".").
341    
342    This creates the above directory layout.  Each subdirectory of
343    the root is under individual subversion control.  The stat-all.sh
344    and refresh-al.sh scripts apply "svn stat" or "svn update" to
345    each of these subtrees.
346    
347    ----------------------------------------------------------------------
348    Name: Matthias Blume (http://www.tti-c.org/blume/)
349    Date: 2006/11/02 12:20:00 CST
350    Description:
351    
352    Reorganized directory layout.
353    
354    This is a temporary solution, more reorganization is to come.
355    
356    The basic idea is to have a number of toplevel trees, each corresponding
357    to a well-defined part of the overall system.  Each part can be
358    maintained individually, even in separate source repositories,
359    although currently we still serve everything out of the main
360    smlnj-gforge tree.
361    
362    Installer and and scripts have been updated to reflect the new
363    layout.  The installer (base/src/system/smlnj/installer) is now
364    "scriptable" to avoid burning too much knowledge about the
365    layout into SML source code.  The main script used by the installer
366    is in config/actions.
367    
368    The main change is that many of the subdirectories of what used to
369    be known as "src" have moved to the toplevel.  The "src" directory
370    itself has moved down into a subtree called "base".  (We may eventually
371    get rid of the extra level of indirection represented by "src".)
372    
373    The layout is now as follows:
374    
375      toplevel tree name | default repository
376                         | (using gf=svn://smlnj-gforge.cs.uchicago.edu/smlnj)
377      -------------------+----------------------------------------------------
378      config             | $gf/config/trunk
379                         |
380      base               | $gf/sml/trunk
381                         |
382      smlnj-lib          | $gf/smlnj-lib/trunk
383      MLRISC             | $gf/MLRISC/trunk
384                         |
385      ml-yacc            | $gf/ml-yacc/trunk
386      ml-lex             | $gf/ml-lex/trunk
387      ml-burg            | $gf/ml-burg/trunk
388      lexgen             | $gf/lexgen/trunk
389      heap2asm           | $gf/heap2asm/trunk
390                         |
391      cml                | $gf/cml/trunk
392      eXene              | $gf/eXene/trunk
393      ckit               | $gf/ckit/trunk
394      nlffi              | $gf/nlffi/trunk
395                         |
396      smlnj-c            | $gf/smlnj-c/trunk
397    
398    In $gf/admin there are a few useful shell scripts for checking out
399    and maintaining the entire collection of trees:
400    
401       admin/checkout-all.sh [dir]
402          -- optionally creates dir and checks out all trees from their
403             default repositories; if dir is missing, checkout into .
404       admin/refresh-all.sh [dir]
405          -- looks at all trees (from the above list) in dir (default: .)
406             and runs "svn update" if the tree exists and is under
407             subversion control;
408             non-existing or non-subversion trees are skipped
409       admin/stat-all.sh [dir]
410          -- like refresh-all.sh, but runs "svn stat" instead
411    
412    ----------------------------------------------------------------------
413    Name: Matthias Blume (http://www.tti-c.org/blume/)
414    Date: 2006/10/05 11:30:00 CDT
415    Tag: blume-20061005-merge-amd64
416    Description:
417    
418    Merged code for AMD64 backend (Mike Rainey's work).
419    Everything is hooked up but untested.
420    
421    ----------------------------------------------------------------------
422    Name: Matthias Blume (http://www.tti-c.org/blume/)
423    Date: 2006/05/17 14:00:00 CST
424    Tag: Release_110_59
425    Description:
426    
427    New working version (110.59).  NEW BOOTFILES!
428    
429    I am freezing 110.59.  Changes other than the version-number increase:
430    
431      eXene:
432    
433         * committed changes to eXene from Alley Stoughton:
434             "fixed bugs in X authorization and resource handling, as well
435              as in the pile and viewport widgets"
436    
437      Runtime:
438        * fixed linking problem with NetBSD 3.x.
439    
440      Lexgen:
441        * lexgen tool handles non-ascii characters in 7-bit mode the same
442          way that ml-lex does
443    
444        * lexgen propagates exceptions the same way that ml-lex does
445    
446      CML:
447        * Fixed a bug in the SyncVar polling functions (iGetPoll,
448          mTakePoll, and mGetPoll) that could lead to livelock.
449    
450    ----------------------------------------------------------------------
451    Name: Matthias Blume (http://www.tti-c.org/blume/)
452    Date: 2006/05/12 15:20:00 CST
453    Tag: blume-20060515-makedepend
454    Description:
455    
456    Implemented ml-makedepend (i.e., CM.sources) in a better (more robust)
457    way.  This should hopefully fix the ml-makedepend problem permanently.
458    
459    ----------------------------------------------------------------------
460    Name: Matthias Blume (http://www.tti-c.org/blume/)
461    Date: 2006/05/12 15:15:00 CST
462    Tag: blume-20060512-makedepend
463    Description:
464    
465    Fixed long-standing bug with ml-makedepend where it would output a
466    spurious dependency to a non-existing file.  (This is a simple fix.
467    It might need further looking into.)
468    
469    ----------------------------------------------------------------------
470    Name: Matthias Blume (http://www.tti-c.org/blume/)
471    Date: 2006/04/20 10:30:00 CDT
472    Tag: blume-20060420-heap2exec
473    Description:
474    
475    Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)
476    that enable heap2exec under Linux and FreeBSD.
477    
478    ----------------------------------------------------------------------
479    Name: John Reppy
480    Date: 2006/04/14
481    Tag:
482    Description:
483    
484    MLRISC changes:
485      1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file.
486      2) added support for NOTB and XORB operators in pseudo-op expressions
487      3) added DarwinPseudoOp functor that supports Darwin's assembler syntax.
488      4) added support for 64-bit integer literals
489    
490    ----------------------------------------------------------------------
491    Name: Matthias Blume (http://www.tti-c.org/blume/)
492  Date: yyyy/mm/dd  Date: yyyy/mm/dd
493  Tag: <post-commit CVS tag>  Tag: Release_110_58
494    Description:
495    
496    New working version (110.58).  NEW BOOTFILES!
497    
498    ----------------------------------------------------------------------
499    Name: Matthias Blume (http://www.tti-c.org/blume/)
500    Date: 2006/03/01 22:15:00 CST
501    Tag: blume-20060301-lexgen
502    Description:
503    
504    Incorporated several bugfixes to lexgen.  Compiler now compiles to
505    fixpoint when using lexgen instead of ml-lex.
506    
507    ----------------------------------------------------------------------
508    Name: Matthias Blume (http://www.tti-c.org/blume/)
509    Date: 2006/02/28 22:45:00 CST
510    Tag: blume-20060228-lexgen
511    Description:
512    
513    Removed ml-flex and added lexgen instead, using Aaron Turon's newly
514    provided tarball.  The generated lexers still have problems.
515    
516    ----------------------------------------------------------------------
517    Name: Matthias Blume (http://www.tti-c.org/blume/)
518    Date: 2006/02/26 23:30:00 CST
519    Tag: blume-20060226-ml-flex
520    Description:
521    
522    Removed ml-flex' dependency on regexp-lib.cm.  Turned installation
523    of ml-flex on by default.
524    
525    ----------------------------------------------------------------------
526    Name: Matthias Blume (http://www.tti-c.org/blume/)
527    Date: 2006/02/24 16:30:00 CST
528    Tag: blume-20060224-ml-flex
529    Description:
530    
531    Added ml-flex sources.  Partially integrated, but should not be
532    turned on yet!  (Read: leave it commented-out in config/targets!)
533    
534    ----------------------------------------------------------------------
535    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
536    Date: 2006/02/23
537    Tag: jhr-20060223-x86-64
538    Description:
539    Changes to support building on x86-64 systems (using the 32-bit mode).
540    Also cleaned up signal handling on Linux.  Support for pre-2.2 Linux
541    kernels dropped.
542    
543    ----------------------------------------------------------------------
544    Name: Allen Leung (leunga (at) reservoir (dot) com)
545    Date: 2006/02/22 15:07:00 EST
546    Tag: leunga-20060222-mdl-gen
547    Description:
548    
549      CM has changed.  Updated the script for rebuilding the MLRISC generated
550    files.
551    
552    ----------------------------------------------------------------------
553    Name: Matthias Blume (http://www.tti-c.org/blume/)
554    Date: 2006/02/14 17:30:00 CST
555    Tag: blume-20060214-intel-mac
556    Description:
557    
558    Hooked code for Darwin-specific Intel ABI into main compiler.
559    (This is a temporary solution which relies on the fact that the
560    compiler itself does not use NLFFI.  Eventually we need to divorce
561    intel mac from generic x86 unix code and make separate sets of binaries.)
562    
563    ----------------------------------------------------------------------
564    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
565    Date: 2006/02/13
566    Tag: jhr-20060213-intel-mac
567    Description:
568    Changed MLRISC x86 CCalls for partial support of MacOS X ABI.
569    
570    ----------------------------------------------------------------------
571    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
572    Date: 2006/02/06
573    Tag: jhr-20060206-intel-mac
574    Description:
575    Changes to support MacOS X on Intel hardware.  The C-calls support in
576    MLRISC must also be updated to support the MacOS X ABI.
577    
578    ----------------------------------------------------------------------
579    Name: Matthias Blume (http://www.tti-c.org/blume/)
580    Date: 2005/12/16 00:15:00 CST
581    Tag: blume-20051216-cm
582    Description:
583    
584    Improved error reporting and handling in CM.
585    
586    ----------------------------------------------------------------------
587    Name: Matthias Blume (http://www.tti-c.org/blume/)
588    Date: 2005/11/21 14:00:00 CST
589    Tag: blume-20051121-html-lib
590    Description:
591    
592    Enabling $/html-lib.cm in config/preloads did not work.  This is fixed
593    now.  (Since the anchor mapping for html-lib.cm is not yet in effect
594    at the time when config/preloads is processed, the library has to
595    be referred to by another name.  In 110.57 this would be
596    $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm
597    to be valid as well.)
598    
599    Thanks to Todd Wilson (Fresno) for alerting me to this issue.
600    
601    ----------------------------------------------------------------------
602    Name: Matthias Blume (http://www.tti-c.org/blume/)
603    Date: 2005/11/19 13:45:00 CST
604    Tag: Release_110_57
605    Description:
606    
607    Moved release tag for 110.57.
608    
609    ----------------------------------------------------------------------
610    Name: Matthias Blume (http://www.tti-c.org/blume/)
611    Date: 2005/11/19 23:35:00 CST
612    Tag: blume-20051119-fish
613    Description:
614    
615    Fixed a problem in config/install.sh where it tries to "fish" the
616    name of the CM metadata directory from the wrong place (because
617    the physical location of basis.cm has changed).  Also, corrected the
618    path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out
619    these problems.)
620    
621    ----------------------------------------------------------------------
622    Name: Matthias Blume (http://www.tti-c.org/blume/)
623    Date: 2005/11/16 14:30:00 CST
624    Tag: blume-orig-110_57
625    Description:
626    
627    New working version (110.57).  NEW BOOTFILES!
628    
629    UPDATE: The release tag has been moved to include a fix for a brown-paper-
630            bag glitch (see above).
631    
632    ----------------------------------------------------------------------
633    Name: Matthias Blume (http://www.tti-c.org/blume/)
634    Date: 2005/11/16 10:25:00 CST
635    Tag: blume-22051116-btrace
636    Description:
637    
638    Fixed problem with bogus exception message when using back-trace
639    facility.
640    
641    ----------------------------------------------------------------------
642    Name: Matthias Blume (http://www.tti-c.org/blume/)
643    Date: 2005/11/15 22:35:00 CST
644    Tag: blume-22051115-array2copy
645  Description:  Description:
646    
647    Added simple implementation of Array2.copy.  (Warning: mostly untested.)
648    
649    ----------------------------------------------------------------------
650    Name: Matthias Blume (http://www.tti-c.org/blume/)
651    Date: 2005/11/15 21:35:00 CST
652    Tag: blume-22051115-versiontool
653    Description:
654    
655    Reversed change to src/system/smlnj/internals/versiontool.cm.  This
656    file gets loaded as a tool -- by the equivalent of CM.make during the
657    run of CMB.make.  Thus, CMB's path configuration is meaningless for
658    it.  Instead, it has the status of "user code", so it should use
659    $/basis.cm to refer to the Basis library.  (At least that's true for
660    the purpose of bootstrapping the previous change.  In the future it
661    might make sense to have versiontool.cm refer to
662    $smlnj/basis/basis.cm, i.e., the version of the Basis that the
663    compiler itself uses.)
664    
665    Also patched src/system/testml to have it activate those extra anchor
666    bindings in config/extrapathconfig.
667    
668    ----------------------------------------------------------------------
669    Name: Matthias Blume (http://www.tti-c.org/blume/)
670    Date: 2005/11/15 16:35:00 CST
671    Tag: blume-22051115-libraries
672    Description:
673    
674    This change affects the way the following libraries are tied into
675    the system:
676    
677       $/basis.cm
678       $/smlnj-lib.cm
679       $/pp-lib.cm
680       $/controls-lib.cm
681       $/html-lib.cm
682       $/ml-yacc-lib.cm
683    
684    These libraries are now internally (as seen from the source code
685    of the implementation itself) known by the following names:
686    
687       $smlnj/basis/basis.cm
688       $smlnj/smlnj-lib/smlnj-lib.cm
689       $smlnj/smlnj-lib/pp-lib.cm
690       $smlnj/smlnj-lib/controls-lib.cm
691       $smlnj/smlnj-lib/html-lib.cm
692       $smlnj/ml-yacc/ml-yacc-lib.cm
693    
694    This makes it possible to work with code that requires different
695    versions of these libraries, and which refers to these libraries using
696    their "default" names (i.e., the first set of names above).  In other
697    words, one can un-define or re-define those default names without
698    compromising the proper functioning of the compiler itself.
699    
700    A similar procedure had already been performed for several of the
701    MLRISC libraries that are linked into the compiler.  I did some
702    cleanup on this code.
703    
704    A new file in the config directory (named extrapathconfig) is
705    responsible for setting up path anchors that the compiler itself does
706    not need, but that are typically required by user code.
707    
708    ----------------------------------------------------------------------
709    Name: Matthias Blume
710    Date: 2005/11/07 17:05:00 CST
711    Tag: blume-20051107-slice
712    Description:
713    
714    Fixed erroneous out-of-bounds test in the "update" function of
715    various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing
716    out the problem.)
717    
718    Pushed some Basis changes through ML-Lex, CML, and eXene.
719    
720    ----------------------------------------------------------------------
721    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
722    Date: 2005/11/07
723    Description:
724    Fixed a Basis incompatibility: The depreciated function Substring.all
725    was removed (use Substring.full instead).
726    
727    ----------------------------------------------------------------------
728    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
729    Date: 2005/11/05
730    Description:
731    Tweaked interval set API in SML/NJ library; see the CHANGES file for details.
732    
733    ----------------------------------------------------------------------
734    Name: Matthias Blume (http://www.tti-c.org/blume/)
735    Date: 2005/11/02 16:25:00 CST
736    Tag: blume-20051102-hex
737    Description:
738    
739    * Runtime system bootstrap code now accepts hex digits in BOOTLIST
740      in either upper case or lower case format.
741    * Pushed changes to names of Pack<N>{Big,Little} structures through
742      CML and eXene.
743    
744    ----------------------------------------------------------------------
745    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
746    Date: 2005/11/02
747    Description:
748    Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should
749    be called PackWord<N>{Big,Little}.
750    
751    ----------------------------------------------------------------------
752    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
753    Date: 2005/10/28
754    Description:
755    Fixed a minor Basis incompatibility: hex digits should be upper case.
756    
757    ----------------------------------------------------------------------
758    Name: Matthias Blume (blume (at) tti - c (dot) org)
759    Date: 2005/10/25 16:00:00 CDT
760    Tag: Release_110_56
761    Description:
762    
763    New working version (110.56).  NEW BOOTFILES!
764    
765    ----------------------------------------------------------------------
766    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
767    Date: 2005/10/25
768    Description:
769    Added interval sets to utility library (signatures INTERVAL_DOMAIN
770    and INTERVAL_SET, and functor IntervalSetFn).
771    
772    ----------------------------------------------------------------------
773    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
774    Date: 2005/10/14
775    Description:
776    Add Zhong Shao's fix for datatype equality functions.
777    
778    ----------------------------------------------------------------------
779    Name: Allen Leung (leunga (at) reservoir (dot) com)
780    Date: 2005/10/14 12:30:00 EST
781    Tag: leunga-20051014-x86-spill
782    Description:
783    
784    Bug fix a bug found by Carl Hauser.
785    There was a typo in the reload code for FCMP in x86SpillInstr.sml.
786    
787    ----------------------------------------------------------------------
788    Name: Allen Leung (leunga (at) reservoir (dot) com)
789    Date: 2005/10/14 11:15:00 EST
790    Tag: leunga-20051014-x86-asm
791    Description:
792    
793    Removed some debugging code in file x86Asm.sml.
794    The function emit_operand was printing out debugging output.
795    
796    ----------------------------------------------------------------------
797    Name: John Reppy
798    Date: 2005/07/27
799    Tag:
800    Description:
801    
802    Fixed ml-lex to recognize "\r" as representing carriage return.
803    
804    ----------------------------------------------------------------------
805    Name: John Reppy
806    Date: 2005/07/27
807    Tag:
808    Description:
809    
810    Fixed ml-yacc to work on files with non-native end-of-line
811    encodings (e.g., Windows text file on a Unix system).
812    
813    ----------------------------------------------------------------------
814    Name: John Reppy
815    Date: 2005/07/20
816    Tag:
817    Description:
818    
819    Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
820    to support HPUX 11.
821    
822    ----------------------------------------------------------------------
823    Name: John Reppy
824    Date: 2005/07/06
825    Tag:
826    Description:
827    
828    Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.
829    
830    ----------------------------------------------------------------------
831    Name: Matthias Blume (blume (at) tti - c (dot) org)
832    Date: 2005/07/06 00:45:00 CDT
833    Tag: blume-20050706-slice-copy
834    Description:
835    
836    Fixed reversed logic for deciding whether to "copy up" or "copy down"
837    in *-array-slice.sml.
838    
839    ----------------------------------------------------------------------
840    Name: Allen Leung (leunga (at) reservoir (dot) com)
841    Date: 2005/05/31 17:00:00 EST
842    Tag: leunga-20050531-cygwin-fault-2
843    Description:
844    
845    A typo in the cygwin code fixed.
846    
847    ----------------------------------------------------------------------
848    Name: Allen Leung (leunga (at) reservoir (dot) com)
849    Date: 2005/05/31 16:47:00 EST
850    Tag: leunga-20050531-cygwin-fault
851    Description:
852    
853    Updated Cygwin's fault/signal handling to match the Windows version.
854    Updated the export list.
855    
856    ----------------------------------------------------------------------
857    Name: Matthias Blume (blume (at) tti - c (dot) org)
858    Date: 2005/05/18 13:35:00 CDT
859    Tag: Release_110_54
860    Description:
861    
862    New working version (110.54).  NEW BOOTFILES!
863    
864    ----------------------------------------------------------------------
865    Name: Matthias Blume (blume (at) tti - c (dot) org)
866    Date: 2005/05/18 11:58:00 CDT
867    Tag: blume-20050518-installer
868    Description:
869    
870    Added support scripts for Mac OS X PackageMaker and modified
871    config/install.sh so that it supports re-dumping a heap image
872    after customization.
873    
874    ----------------------------------------------------------------------
875    Name: Matthias Blume (blume (at) tti - c (dot) org)
876    Date: 2005/05/18 10:55:00 CDT
877    Tag: blume-20050518-realdiv-noovld
878    Description:
879    
880    Un-overloaded / to work around bug in overloading resolution code.
881    
882    ----------------------------------------------------------------------
883    Name: Matthias Blume (blume (at) tti - c (dot) org)
884    Date: 2005/05/16 23:50:00 CDT
885    Tag: blume-20050516-redump-heap
886    Description:
887    
888    Added mechanism for re-creating a heap file for the interactive system
889    after configuration variables have been changed.
890    
891       CM.redump_heap : string -> unit
892    
893    This is much like SMLofNJ.exportML, but starting from the resulting
894    heap does not return to the caller of CM.redump_heap but
895    restarts the interactive system from scratch.  The original call of
896    CM.redump_heap does not return but ends the interactive session.
897    Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.
898    
899    Internally, redump_heap winds the dynamic execution context back to
900    the point where the original heap image was created and re-executes
901    the heap image generation code in the boot code.
902    
903    ----------------------------------------------------------------------
904    Name: Matthias Blume (blume (at) tti - c (dot) org)
905    Date: 2005/05/09 21:55:00 CDT
906    Tag: blume-20050509-word64
907    Description:
908    
909    Added a hack to the existing hack known as Word64 to make fromString
910    behave correctly.  I am still not sure whether Word64.scan will work
911    as specified with respect to the interaction of radix and prefix.
912    
913    ----------------------------------------------------------------------
914    Name: Allen Leung (leunga (at) reservoir (dot) com)
915    Date: 2005/05/04 11:50:00 EST
916    Tag: leunga-20050504-checkgc
917    Description:
918    
919    Added a gc protocol checking phase.  This phase is enabled with
920    the flag "check-gc".  "debug-check-gc" turns on the verbose mode.
921    
922    ----------------------------------------------------------------------
923    Name: Matthias Blume (blume (at) tti - c (dot) org)
924    Date: 2005/05/04 10:45:00 CDT
925    Tag: blume-20050504-intinf
926    Description:
927    
928    Fixed a bug in the implementation of div and mod for IntInf.
929    Thanks to Neophytos Michael for reporting the problem.
930    
931    ----------------------------------------------------------------------
932    Name: Matthias Blume (blume (at) tti - c (dot) org)
933    Date: 2005/05/04 10:35:00 CDT
934    Tag: blume-20050504-join
935    Description:
936    
937    Added a "join" combinator to the ParserComb module in smlnj-lib.cm.
938    
939    ----------------------------------------------------------------------
940    Name: Matthias Blume (blume (at) tti - c (dot) org)
941    Date: 2005/02/28 23:40:00 CST
942    Tag: blume-20050228-mVar
943    Description:
944    
945    Fixed serious bug (brown paper bag variety) in new implementation of
946    structure Atom in CML.  (I had accidentally used a mailbox instead of
947    an mvar, leaving the door open for races.)
948    
949    ----------------------------------------------------------------------
950    Name: Matthias Blume (blume (at) tti - c (dot) org)
951    Date: 2005/02/25 15:00:00 CST
952    Tag: Release_110_53
953    Description:
954    
955    New working version (110.53).  NEW BOOTFILES!
956    
957    ----------------------------------------------------------------------
958    Name: Matthias Blume (blume (at) tti - c (dot) org)
959    Date: 2005/02/25 14:50:00 CST
960    Tag: blume-20050225-susp
961    Description:
962    
963    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
964    implemented in Core -- which means that it is the same as the one used
965    by the lazy extension.
966    
967    ----------------------------------------------------------------------
968    Name: Matthias Blume (blume (at) tti - c (dot) org)
969    Date: 2005/02/24 16:50:00 CST
970    Tag: blume-20050224-cml-atom
971    Description:
972    
973    Simpler and at the same time more general implementation of structure
974    Atom in CML.
975    
976    ----------------------------------------------------------------------
977    Name: Matthias Blume (blume (at) tti - c (dot) org)
978    Date: 2005/02/15 17:35:00 CST
979    Tag: blume-20050215-tools
980    Description:
981    
982    Created new "tools" directory under "src" and moved "TraceDebugProf"
983    there.
984    
985    ----------------------------------------------------------------------
986    Name: Matthias Blume (blume (at) tti - c (dot) org)
987    Date: 2005/02/10 17:55:00 CST
988    Tag: blume-20050210-longlong
989    Description:
990    
991    Implemented "long long" arguments and results for NLFFI.  (Only the
992    PPC/MacOS implementation is complete, the other backends still need to
993    be updated.)
994    
995    ----------------------------------------------------------------------
996    Name: Matthias Blume (blume (at) tti - c (dot) org)
997    Date: 2005/01/24 17:40:00 CST
998    Tag: blume-20050124-mlyacc
999    Description:
1000    
1001    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
1002    problem with certain "as" patterns which previously got rendered
1003    using incorrect syntax.
1004    
1005    ----------------------------------------------------------------------
1006    Name: Matthias Blume (blume (at) tti - c (dot) org)
1007    Date: 2005/01/18 12:00:00 CST
1008    Tag: blume-20050118-profile
1009    Description:
1010    
1011    Made time profiling code (interrupt handler) in runtime system aware
1012    of new array representation.
1013    
1014    ----------------------------------------------------------------------
1015    Name: Matthias Blume (blume (at) tti - c (dot) org)
1016    Date: 2005/01/14 18:00:00 CST
1017    Tag: blume-20050114-heap2exec
1018    Description:
1019    
1020    Implemented new (but still experimental) heap2exec facility.  This is
1021    tested under Mac OS X and should work under Linux (will test shortly).
1022    It will probably also work on the Sparc (will test some time later).
1023    
1024      - removed old "HACKED_STANDALONE" hack from runtime
1025    
1026    To be able to test this, uncomment the request for "heap2asm" in
1027    config/targets prior to installation.  (Notice that this is different
1028    from "heap2exec" mentioned below.  Not a typo.)
1029    
1030    To perform an actual test, run the command
1031    
1032       $ bin/heap2exec heapfile execfile
1033    
1034    (You can put heap2exec on your shell's path.)
1035    
1036    For example, run
1037    
1038      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
1039    
1040    This will create a standalone executable called "mly" which you can
1041    then invoke directly as a command.
1042    
1043    ----------------------------------------------------------------------
1044    Name: Matthias Blume (blume (at) tti - c (dot) org)
1045    Date: 2005/01/07 11:44:00 CST
1046    Tag: blume-20050107-mlstring
1047    Description:
1048    
1049    fixed off-by-one error in ML_STRING macro (globals.c)
1050    
1051    ----------------------------------------------------------------------
1052    Name: Matthias Blume (blume (at) tti - c (dot) org)
1053    Date: 2004/12/23 18:00:00 CST
1054    Tag: blume-20041223-santa
1055    Description:
1056    
1057    Made ml-build script "smarter" (but only very little).
1058    
1059    ----------------------------------------------------------------------
1060    Name: Matthias Blume (blume (at) tti - c (dot) org)
1061    Date: 2004/12/21 15:05:00 CST
1062    Tag: blume-20041221-longlong
1063    Description:
1064    
1065    * Implemented access to signed and unsigned long long data in NLFFI.
1066    (The parameter-passing part of the picture has not complete. But
1067    data structure access seems to work.)
1068    
1069    * Fixed CM's incorrect assumption that the PPC is little-endian.
1070      (On the Mac, it is big-endian.  And that's currently our only
1071      PPC platform.)
1072    
1073    ----------------------------------------------------------------------
1074    Name: Matthias Blume (blume (at) tti - c (dot) org)
1075    Date: 2004/12/21 12:50:00 CST
1076    Tag: blume-20041221-memory
1077    Description:
1078    
1079    Some cleanup in the $c/memory.cm library: separated some concerns by
1080    moving allocation code and memory access code each into their own
1081    files.
1082    
1083    ----------------------------------------------------------------------
1084    Name: Allen Leung (leunga (at) reservoir (dot) com)
1085    Date: 2004/12/17 16:12:00 EST
1086    Tag: leunga-20041217-cygwin-smlnj-home
1087    Description:
1088    
1089        The Unix I/O library of SML/NJ on cygwin does not understand
1090    Windows style pathname, so problems arise when SMLNJ_HOME is set
1091    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
1092    to a POSIX pathname on cygwin.
1093    
1094    ----------------------------------------------------------------------
1095    Name: Matthias Blume (blume (at) tti - c (dot) org)
1096    Date: 2004/12/16 13:35:00 CST
1097    Tag: Release_110_52
1098    Description:
1099    
1100    Last-minute changes incorporated into 110.52.  Release tag moved.
1101    
1102    The changes:
1103       - HashString.hashString' -> HashString.hashSubstring
1104       - bug fix in UnivariateStats
1105    
1106    ----------------------------------------------------------------------
1107    Name: Matthias Blume (blume (at) tti - c (dot) org)
1108    Date: 2004/12/15 23:40:00 CST
1109    Tag: blume-20041215-hashSubstring
1110    Description:
1111    
1112    - HashString.hashString' -> HashString.hashSubstring
1113    - corresponding changes in atom.sml
1114    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
1115      added some comments
1116    
1117    ----------------------------------------------------------------------
1118    Name: Matthias Blume (blume (at) tti - c (dot) org)
1119    Date: 2004/12/15 15:30:00 CST
1120    Tag: (Release_110_52)
1121    Description:
1122    
1123    New working version (110.52).  NEW BOOTFILES!
1124    
1125    ----------------------------------------------------------------------
1126    Name: Matthias Blume (blume (at) tti - c (dot) org)
1127    Date: 2004/12/15 12:45:00 CST
1128    Tag: blume-20041215-spaces
1129    Description:
1130    
1131    More on the space problem (this time for Win32).
1132    
1133    ----------------------------------------------------------------------
1134    Name: Matthias Blume (blume (at) tti - c (dot) org)
1135    Date: 2004/12/14 17:30:00 CST
1136    Tag: blume-20041214-spaces
1137    Description:
1138    
1139    Hacked some of the scripts (in particular: the installer) to cope with
1140    spaces in filenames a bit better.  But beware: the current "solution"
1141    is likely still full of bugs and inherently incomplete.  (We need to
1142    do away with those shell scripts for a comprehensive solution.)
1143    
1144    ----------------------------------------------------------------------
1145    Name: Matthias Blume (blume (at) tti - c (dot) org)
1146    Date: 2004/12/13 14:45:00 CST
1147    Tag: blume-20041213-ml-makedepend
1148    Description:
1149    
1150    Fixed bug in code for ml-makedepend.
1151    
1152    ----------------------------------------------------------------------
1153    Name: Matthias Blume (blume (at) tti - c (dot) org)
1154    Date: 2004/12/09 16:30:00 CST
1155    Tag: blume-20041209-statistics
1156    Description:
1157    
1158    Added two simple but potentially useful statistics modules to SML/NJ Library.
1159    (See CHANGES file there.)
1160    
1161    ----------------------------------------------------------------------
1162    Name: Matthias Blume (blume (at) tti - c (dot) org)
1163    Date: 2004/12/01 16:50:00 CST
1164    Tag: blume-20041201-atom
1165    Description:
1166    
1167    smlnj-lib:
1168    
1169      Added function HashString.hashString' for substrings.
1170      Hand-inlined CharVector.foldl into HashString (for speed).
1171      Modified implementation of structure Atom to avoid extracting
1172      strings from substrings unless necessary.
1173      (Also see CHANGES file for smlnj-lib.)
1174    
1175    ----------------------------------------------------------------------
1176    Name: Matthias Blume (blume (at) tti - c (dot) org)
1177    Date: 2004/11/24 22:15:00 CST
1178    Tag: blume-20041124-cml
1179    Description:
1180    
1181    Made sure CML compiles when Position = Int64.
1182    
1183    ----------------------------------------------------------------------
1184    Name: Matthias Blume (blume (at) tti - c (dot) org)
1185    Date: 2004/11/24 14:30:00 CST
1186    Tag: blume-20041124-position
1187    Description:
1188    
1189    The compiler can now be compiled in a mode that makes structure Position
1190    equal to Int64.  The default, however, is unchanged (Position = Int31)
1191    for the time being.
1192    
1193    To enable 64-bit positions, use the following procedure:
1194    
1195    1. Start sml
1196    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
1197    3. Type
1198          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
1199    4. Run CMB.make() as usual.
1200    
1201    This is barely tested.  The only test so far was a little SML program
1202    counting the number of characters in an 8-gigabyte file by
1203    reading it character-by-character.  That test was successful.
1204    
1205    In support of 64-bit positions, a number of new functions have been
1206    added to the runtime system.
1207    
1208    ----------------------------------------------------------------------
1209    Name: Matthias Blume (blume (at) tti - c (dot) org)
1210    Date: 2004/11/23 14:45:00 CST
1211    Tag: blume-20041123-useFile
1212    Description:
1213    
1214    Fixed a problem with unhelpful error messages related to problems with
1215    .cm- or .sml files that appear as part of the sml command line.
1216    
1217    ----------------------------------------------------------------------
1218    Name: Matthias Blume (blume (at) tti - c (dot) org)
1219    Date: 2004/11/18 15:40:00 CST
1220    Tag: Release_110_51
1221    Description:
1222    
1223    New working version (110.51).  NEW BOOTFILES!
1224    
1225    ----------------------------------------------------------------------
1226    Name: Matthias Blume (blume (at) tti - c (dot) org)
1227    Date: 2004/11/18 15:35:00 CST
1228    Tag: <none>
1229    Description:
1230    
1231    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
1232    Joemann).
1233    
1234    ----------------------------------------------------------------------
1235    Name: Allen Leung (leunga (at) reservoir (dot) com)
1236    Date: 2004/11/17 16:05:21 EST 2004
1237    Tag: leunga-20041117-mlrisc-live-kill
1238    Description:
1239    
1240       Added support for MLTree constructs LIVE and KILL
1241    to all the architectures.
1242    
1243    ----------------------------------------------------------------------
1244    Name: Matthias Blume (blume (at) tti - c (dot) org)
1245    Date: 2004/11/13 00:20:00 CST
1246    Tag: blume-20041113-versiontool
1247    Description:
1248    
1249    - Stripped down the versiontool: It now only handles the version number.
1250      The date string is generated at bootstrap time (during makeml).
1251    
1252    - In a previous commit, fixed a minor issue with how polyequal is being
1253      translated.  In particular, the code now "looks through" abstractions.
1254      This results in slightly fewer polyEqual warnings and hopefully slightly
1255      more efficient code.  Important examples for where this matters are
1256      the new int64 and word64 types.
1257    
1258    ----------------------------------------------------------------------
1259    Name: Matthias Blume (blume (at) tti - c (dot) org)
1260    Date: 2004/11/12 00:30:00 CST
1261    Tag: blume-20041112-int64
1262    Description:
1263    
1264    Structure Int64 fully hooked in.  (The implementation is not very
1265    efficient, though.)
1266    
1267    ----------------------------------------------------------------------
1268    Name: Matthias Blume (blume (at) tti - c (dot) org)
1269    Date: 2004/11/11 17:30:00 CST
1270    Tag: blume-20041111-more64
1271    Description:
1272    
1273    All the pieces of Word64 are now there, with the exception of the
1274    conversions from and to LargeWord. (Eventually these need to be identities,
1275    but for the time being they don't even make sense because LargeWord is
1276    32-bit wide.)
1277    
1278    Also started to add similar support for Int64, but major pieces of that
1279    are still missing.
1280    
1281    ----------------------------------------------------------------------
1282    Name: Matthias Blume (blume (at) tti - c (dot) org)
1283    Date: 2004/11/11 00:15:00 CST
1284    Tag: blume-20041111-word64
1285    Description:
1286    
1287    Structure Word64 is now (almost) complete, word literals and patterns
1288    seem to work.  There are a few odd pieces missing.  In particular,
1289    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
1290    at the moment.
1291    
1292    Making Word64 official would mean that LargeWord becomes Word64.  But
1293    this requires extreme care because most word-word conversions have to
1294    go through LargeWord, so making a mistake means loss of efficiency or
1295    worse.  Eventually there will be a solution similar to (but actually
1296    simpler than) what I did with IntInf.
1297    
1298    ----------------------------------------------------------------------
1299    Name: Matthias Blume (blume (at) tti - c (dot) org)
1300    Date: 2004/11/10 18:12:00 CST
1301    Tag: blume-20041110-64bit
1302    Description:
1303    
1304    More 64-bit hacking (but still not even half-way there yet).
1305    Also, some assorted improvements to the handling of 8-bit words.
1306    
1307    ----------------------------------------------------------------------
1308    Name: Matthias Blume (blume (at) tti - c (dot) org)
1309    Date: 2004/11/09 17:50:00 CST
1310    Tag: <none>
1311    Description:
1312    
1313    Started adding some infrastructure for supporting 64-bit int- and
1314    word-types.  (Still in its very early stages.)
1315    
1316    ----------------------------------------------------------------------
1317    Name: Matthias Blume (blume (at) tti - c (dot) org)
1318    Date: 2004/10/28 10:45:00 CDT
1319    Tag: Release_110_50
1320    Description:
1321    
1322    New working version (110.50).  NEW BOOTFILES!
1323    
1324                 =====================
1325    
1326    Also:
1327    
1328      - Changend config/srcarchiveurl from a file just
1329        containing the URL string into a file containing
1330        shell script code.  The code has access to the $VERSION variable.
1331      - Made corresponding changes to config/install.sh and config/unpack.
1332      - Default contents of config/srcarchiveurl uses $VERSION and
1333        normally does not have to be edited to reflect a version change.
1334    
1335      (As a result, a version change can be done by just editing
1336       config/version, the rest is now automatic.)
1337    
1338    ----------------------------------------------------------------------
1339    Name: Matthias Blume (blume (at) tti - c (dot) org)
1340    Date: 2004/10/27 17:50:00 CDT
1341    Tag: blume-20041027-btrace-msg
1342    Description:
1343    
1344    BackTrace.monitor now also reports the source of the exception that
1345    triggered the trace.
1346    
1347    ----------------------------------------------------------------------
1348    Name: Matthias Blume (blume (at) tti - c (dot) org)
1349    Date: 2004/10/27 17:20:00 CDT
1350    Tag: blume-20041027-x86-c-calls
1351    Description:
1352    
1353    This is the HISTORY entry for two earlier commits, both concerning
1354    the x86 c-calls code in MLRISC:
1355    
1356      - added a missing LOAD in the code that deals with struct arguments
1357      - made sure the caller does not add the wrong number of bytes to the
1358        stack pointer after a call of a function returning a struct
1359        (the callee already pops the implicit argument which points to
1360         the space reserved for the result)
1361    
1362    ----------------------------------------------------------------------
1363    Name: Allen Leung (leunga (at) reservoir (dot) com)
1364    Date: 2004/10/24 14:00:00 EST
1365    Tag: leunga-20041024-x86-gas-fucomip
1366    Description:
1367    
1368       John discovered a bug in the syntax of fucomip.
1369       The opcodes FU?COMIP? have been changed to
1370    
1371           fu?comip? %st(i), %st
1372    
1373    ----------------------------------------------------------------------
1374    Name: Matthias Blume (blume (at) tti - c (dot) org)
1375    Date: 2004/10/20 15:06:00 CDT
1376    Tag: blume-20041020-standalone-backtrace
1377    Description:
1378    
1379    Added a mechanism for getting back-trace information from standalone
1380    programs.  Here is how it works:
1381    
1382       1. The part of the program from which you want to get backtrace
1383          information (usually the whole program) should be wrapped with
1384          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
1385          main program could be modified from something like
1386    
1387             fun main (pgm, args) = ...
1388    
1389         to
1390    
1391            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
1392    
1393       2. To be able to access BackTrace.monitor, you have to add
1394          library $smlnj-tdp/plugins.cm to the .cm file that contains your
1395          main function.
1396    
1397       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
1398          CM might have created in the past for your project).
1399    
1400       4. Build the system using this command line:
1401    
1402             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
1403                      myprog.cm MyProg.main myprog
1404    
1405          instead of the usual
1406    
1407             ml-build myprog.cm MyProg.main myprog
1408    
1409    I changed a library name:
1410    
1411       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
1412    
1413    New libraries:
1414    
1415       $smlnj-tdp/back-trace.cm
1416          -- when loaded causes the back-trace plugin to be installed
1417       $smlnj-tdp/coverage.cm
1418          -- when loaded causes the coverage plugin to be installed
1419    
1420    ----------------------------------------------------------------------
1421    Name: Matthias Blume (blume (at) tti - c (dot) org)
1422    Date: 2004/10/18 16:45:00 CDT
1423    Tag: blume-20041018-groupowner
1424    Description:
1425    
1426    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
1427    
1428    Eliminated group owner specs from .cm files throughout the source tree.
1429    
1430    ----------------------------------------------------------------------
1431    Name: Matthias Blume (blume (at) tti - c (dot) org)
1432    Date: 2004/10/15 15:45:00 CDT
1433    Tag: blume-20041015-coverage
1434    Description:
1435    
1436    * Test coverage tool added!
1437    * Further reorganization of tracing-, debugging-, and profiling support:
1438    
1439        - moved original BTImp -- now called BackTrace -- into a separate
1440          library called $/trace-debug-profile.cm
1441        - eliminated all mentions of BTrace from SMLofNJ.Internals
1442        - only the instrumentation mechanism is now left in the compiler proper
1443        - BackTrace module is a plugin which is NOT plugged in by default
1444        - Coverage module is another such plugin
1445    
1446    To get the benefits of any of these plugin modules, the code in
1447    question must be compiled with tdp instrumentation turned on.  This
1448    can be done by setting SMLofNJ.Internals.TDP.mode to true.
1449    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
1450    
1451    Plugins are selected at link time.  (Pre-compiled instrumented code
1452    can be re-loaded with different plugins in effect.)  When an
1453    instrumented module is linked, whatever plugins are at that time
1454    enabled will come into effect for that module.
1455    
1456    To enable the back-trace plugin, load library $/trace-debug-profile.cm
1457    and invoke BackTrace.install() (e.g., from the interactive prompt).
1458    To enable the coverage plugin, load the same library and invoke
1459    Coverage.install().
1460    
1461    Back-traces are generated automatically on uncaught exceptions and
1462    when the code in question explicitly invokes BackTrace.trigger().
1463    
1464    Coverage (and execution frequency-) information must be queried
1465    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
1466    
1467    ----------------------------------------------------------------------
1468    Name: Matthias Blume (blume (at) tti - c (dot) org)
1469    Date: 2004/10/14 17:40:00 CDT
1470    Tag: blume-20041014-tdp-core
1471    Description:
1472    
1473    Snapshot of a significant overhaul of how the trace/debug/profile support
1474    is hooked into the system (specifically: Core and SMLofNJ.Internals).
1475    
1476    ----------------------------------------------------------------------
1477    Name: Matthias Blume (blume (at) tti - c (dot) org)
1478    Date: 2004/10/13 16:34:00 CDT
1479    Tag: blume-20041013-tdp
1480    Description:
1481    
1482    Some rationalization of names:
1483    
1484       structure BTrace -> structure TDPInstrument
1485       etc.
1486    
1487    This is is preparation of using the original back-trace
1488    instrumentation for other purposes.  "TDP" stands for
1489    Trace/Debug/Profile.
1490    
1491    The control flag controlling whether instrumentation is on or off is now
1492    registered under a different name, so instead of running sml as
1493    
1494     sml -Cinstrument.btrace-mode=true
1495    
1496    one has to say
1497    
1498     sml -Ctdp.instrument=true
1499    
1500    ----------------------------------------------------------------------
1501    Name: Matthias Blume (blume (at) tti - c (dot) org)
1502    Date: 2004/10/11 16:37:00 CDT
1503    Tag: blume-20041011-regions
1504    Description:
1505    
1506    Made some minor modifications to elabcore.sml to have source regions
1507    be propagated more tightly -- resulting in better (i.e., smaller)
1508    regions being reported in error- and debug messages.
1509    
1510    ----------------------------------------------------------------------
1511    Name: Matthias Blume (blume (at) tti - c (dot) org)
1512    Date: 2004/10/08 22:50:00 CDT
1513    Tag: blume-20041008-cmkw
1514    Description:
1515    
1516    Fixed handling of keywords in .cm files: After seeing "is" the lexer
1517    treats subsequent occurrences of "group", "library", "source", "is",
1518    "*", and "-" as ordinary identifiers rather than keywords.
1519    
1520    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
1521    is supposed to accept a tool argument called "source", but this did
1522    not work because of the clash with the keyword.
1523    
1524    ----------------------------------------------------------------------
1525    Name: Matthias Blume (blume (at) tti - c (dot) org)
1526    Date: 2004/10/07 16:00:00 CDT
1527    Tag: blume-20041007-cleanup
1528    Description:
1529    
1530    Assorted cleanup work:
1531    
1532      - got rid of intstrmap in favor of using the library's
1533        hash table implementation
1534      - threw out most of the pathnames stuff, as it was not used anyway
1535      - simplified tokentable implementation
1536      - fixed some minor spelling errors
1537    
1538    ----------------------------------------------------------------------
1539    Name: Matthias Blume (blume (at) tti - c (dot) org)
1540    Date: 2004/10/06 15:15:15 CDT
1541    Tag: blume-20041006-handler
1542    Description:
1543    
1544    Cleaned up the absyn to reflect the invariant that HANDLE always
1545    carries a FNexp as part of the type definition.  This eliminates some
1546    superfluous sanity checks at runtime down the road.
1547    
1548    Some minor cleanup of the btrace code.
1549    
1550    ----------------------------------------------------------------------
1551    Name: Matthias Blume (blume (at) tti - c (dot) org)
1552    Date: 2004/10/01 10:20:30 CDT
1553    Tag: blume-20041001-slave
1554    Description:
1555    
1556    Added hack to make slave mode work in the presence of the version
1557    tool.  (Still, since the master does two passes over the code for
1558    CMB.make, the release number gets bumped twice when slaves are
1559    attached.  I don't know if this is worth fixing...)
1560    
1561    ----------------------------------------------------------------------
1562    Name: Matthias Blume (blume (at) tti - c (dot) org)
1563    Date: 2004/09/30 10:55:00 CDT
1564    Tag: blume-20040930-version
1565    Description:
1566    
1567    * Moved the "version" magic into its own little library under
1568      src/system/smlnj/internal.  This avoids expensive reconstruction of
1569      a stable src/compiler/core.cm.
1570    
1571    * At the same time, structure CompilerVersion is now known as
1572      structure SMLNJVersion.
1573    
1574    * Arranged for the version tool to NOT kick in when rebuilding the system
1575      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
1576      Also, loading the versiontool does not work when rebuilding the system
1577      because CM is not properly initialized at that time.
1578    
1579    ----------------------------------------------------------------------
1580    Name: Matthias Blume (blume (at) tti - c (dot) org)
1581    Date: 2004/09/29 14:00:00 CDT
1582    Tag: blume-20040929-autoversion
1583    Description:
1584    
1585    Implemented some CM magic to have
1586        file src/compiler/TopLevel/main/version.sml
1587    generated automagically.
1588    The version is taken from two files: config/version and config/release.
1589    The first is expected to contain a two-part version number such as 110.49.
1590    The second should contain a single number, but it may be missing.
1591    
1592    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
1593    time the version tool is loaded (which is the first time you say CMB.make),
1594    then the tool will increment the value stored in config/release every
1595    time CMB.make is invoked.
1596    
1597    The binfile format is now insensitive to anything beyond the first
1598    two components of a version number, so bumping the release does not render
1599    binfiles incompatible.  Auto-bumping can be used to keep track of versions
1600    during development without invalidating existing binfiles.
1601    
1602    In any case, every CMB.make updates the date information in version.sml.
1603    (This is the date that is printed in the banner.)
1604    
1605    ----------------------------------------------------------------------
1606    Name: Matthias Blume (blume (at) tti - c (dot) org)
1607    Date: 2004/09/28 10:53:00 CDT
1608    Tag: blume-20040928-controls
1609    Description:
1610    
1611    Some cleanup of the controls code.
1612    
1613    ----------------------------------------------------------------------
1614    Name: Matthias Blume (blume (at) tti - c (dot) org)
1615    Date: 2004/09/27 22:08:00 CDT
1616    Tag: blume-20040927-controls
1617    Description:
1618    
1619    Added two pieces of functionality to the Controls interface:
1620    
1621    1.   val save'restore: 'a control -> unit -> unit
1622    
1623       grabs the current value of the control in stage 1 and restores it
1624       in stage 2.
1625    
1626    2.   val set' : 'a control * 'a -> unit -> unit
1627    
1628       stores the given value into the control in stage 2 (i.e., delayed)
1629       but does all error checking in stage 1.
1630       (This is for string controls that need to do parse their argument --
1631        something that might fail.  In some cases, notably in CM, one
1632        already knows the intended argument but wants to delay the actual
1633        assignment until a time when error recovery would be more difficult.)
1634    
1635    Changed the handling of controls in tool arguments to classes "sml" and
1636    "lazysml":
1637       - use Controls.save'restore as a more robust way of restoring the
1638         old value (in particular: without having to re-parse the string)
1639       - use controls to handle the "overload" keyword in the init group
1640         (I believe this change actually fixes a long-standing obscure bug.)
1641    
1642    ----------------------------------------------------------------------
1643    Name: Matthias Blume (blume (at) tti - c (dot) org)
1644    Date: 2004/09/27 17:00:00 CDT
1645    Tag: blume-20040927-lazysml
1646    Description:
1647    
1648    Added a new tool class called "lazysml" to CM's tool chest.  The only
1649    difference to "sml" is that compilation is done with Control.lazysml
1650    set to true.  A source of class "lazysml" is automatically recognized
1651    by a file name suffix of ".lml".
1652    
1653    In addition to the above feature, the original class "sml" now also
1654    supports a tool argument "lazy" which has the same effect.  As a
1655    result, the following three lines are equivalent:
1656    
1657        foo.sml : lazysml
1658        foo.sml : sml (lazy)
1659        foo.sml (lazy)
1660    
1661    The setting goes into effect both during parsing and during
1662    compilation.  The original setting is restored right after parsing and
1663    after compilation, respectively.
1664    
1665    In addition to all the above, there is also a general mechanism to set
1666    ANY of the "controls" that are available at the command line via
1667    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
1668    apply as well. (In fact, "lazy" is implemented as a special case of
1669    the general mechanism.)
1670    
1671    The .cm file syntax uses a new keyword tool argument called "with".
1672    There are several ways of indicating the desired settings:
1673    
1674        foo.sml (with:parser.quotations=true)
1675        foo.sml (with:(name:parser.quotations value:true))
1676        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
1677        foo.sml (with:(name1=value1 name2=value2 ...))
1678        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
1679    
1680        etc.
1681    
1682    Another possible abbreviation is to leave out the =v or value:v part
1683    if the name refers to a boolean control (in which case the value is
1684    taken to be true).  Thus, one could get lazy sml also by saying:
1685    
1686        foo.sml (with:parser.lazy-keyword=true)
1687        foo.sml (with:parser.lazy-keyword)
1688        foo.sml (with:(name:parser.lazy-keyword value:true))
1689        foo.sml (with:(name:parser.lazy-keyword))
1690    
1691    ----------------------------------------------------------------------
1692    Name: Matthias Blume (blume (at) tti - c (dot) org)
1693    Date: 2004/09/24 16:22:00 CDT
1694    Tag: blume-20040924-ppc-long-branch
1695    Description:
1696    
1697    Turned message about "emiting long form of branch" off by default.
1698    Added a control flag to turn it back on when desired.
1699    
1700    ----------------------------------------------------------------------
1701    Name: Matthias Blume (blume (at) tti - c (dot) org)
1702    Date: 2004/09/24 16:05:00 CDT
1703    Tag: blume-20040924-rounding
1704    Description:
1705    
1706    Applied patch for setting rounding modes under Mac OS X.  Thanks to
1707    Melissa O'Neill for providing the code!
1708    
1709    ----------------------------------------------------------------------
1710    Name: Matthias Blume (blume (at) tti - c (dot) org)
1711    Date: 2004/09/23 17:30:00 CDT
1712    Tag: blume-20040923-envvars
1713    Description:
1714    
1715    1. Changed definition of type ControlRegistry.registry_tree to
1716       include control_info (i.e., the name of the controlling environment
1717       variable).
1718    
1719    2. Added command-line flags -e and -E to print the names of environment
1720       variables that can be used to control internal settings.
1721       (This uses the new API mentioned in 1.)
1722    
1723    ----------------------------------------------------------------------
1724    Name: Matthias Blume (blume (at) tti - c (dot) org)
1725    Date: 2004/09/13 16:50:00 CDT
1726    Tag: Release_110_49
1727    Description:
1728    
1729    New working version (110.49).  NEW BOOTFILES!
1730    
1731    ----------------------------------------------------------------------
1732    Name: Matthias Blume
1733    Date: 2004/09/13 16:20:00 CDT
1734    Tag: blume-20040913-config-mlrisc
1735    Description:
1736    
1737    Put target "mlrisc" back into the default list.
1738    (There is no harm in having it, and some users have expressed their
1739    wish to have "mlrisc" included by default.)
1740    
1741    ----------------------------------------------------------------------
1742    Name: John Reppy
1743    Date: 2004/09/13
1744    Tag: jhr-20040913-signals
1745    Description:
1746    
1747    Fixed the signal masking code to properly nest mask/unmask operations
1748    on a per-signal basis.
1749    
1750    ----------------------------------------------------------------------
1751    Name: Matthias Blume (blume (at) tti - c (dot) org)
1752    Date: 2004/09/08 13:20:00 CDT
1753    Tag: blume-20040908-heap-magic
1754    Description:
1755    
1756    Bumped the heap macig number to 0x09082004 to account for the changed
1757    layout of the ML frame under MacOS X.
1758    
1759    ----------------------------------------------------------------------
1760    Name: Allen Leung (leunga (at) reservoir (dot) com)
1761    Date: 2004/09/03 11:26:00 EST
1762    Tag: leunga-20040903-cygwin-install
1763    Description:
1764    
1765       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
1766    The Cygwin runtime is turned on by setting the environment
1767    variable SMLNJ_CYGWIN_RUNTIME to 1.
1768    
1769    ----------------------------------------------------------------------
1770    Name: Matthias Blume (blume (at) tti - c (dot) org)
1771    Date: 2004/08/31 17:15:00 CDT
1772    Tag: blume-20040831-core
1773    Description:
1774    
1775    Added some exports to src/compiler/core.cm upon request by J. Joemann.
1776    
1777    ----------------------------------------------------------------------
1778    Name: Matthias Blume (blume (at) tti - c (dot) org)
1779    Date: 2004/08/30 17:55:00 CDT
1780    Tag: blume-20040830-installer
1781    Description:
1782    
1783    Upon request by Johannes Joemann:
1784    
1785    - improved ML code of installer to fall back to coping when renaming
1786      fails (i.e., when source and target are on different file systems);
1787      the code compiles but has yet to be tested in anger
1788    - removed mlrisc from list of default targets (config/targets)
1789    
1790    ----------------------------------------------------------------------
1791    Name: Matthias Blume (blume (at) tti - c (dot) org)
1792    Date: 2004/08/27 17:20:00 CDT
1793    Tag: blume-20040827-ptreql
1794    Description:
1795    
1796    Added ptreql primop to structure InlineT (upon request from Larry
1797    Paulson).
1798    
1799    ----------------------------------------------------------------------
1800    Name: Allen Leung (leunga (at) reservoir (dot) com)
1801    Date: 2004/08/15 21:21:00 EST
1802    Tag: leunga-110_48-udgraph
1803    Description:
1804    
1805    Another bug fix from Carl Hauser:
1806    
1807    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
1808    > 48c48
1809    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
1810    > e::L)
1811    > ---
1812    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
1813    > Without this, any deletion of an edge in an undirected graph does severe
1814    > violence to the graph.
1815    
1816    ----------------------------------------------------------------------
1817    Name: Allen Leung (leunga (at) reservoir (dot) com)
1818    Date: 2004/08/10 23:35:00 EST
1819    Tag: leunga-110_48-ppc
1820    Description:
1821    
1822       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
1823    
1824    ----------------------------------------------------------------------
1825    Name: Matthias Blume (blume (at) tti - c (dot) org)
1826    Date: 2004/08/10 12:00:00 CDT
1827    Tag: Release_110_48
1828    Description:
1829    
1830    New working version (110.48).  NEW BOOTFILES!
1831    
1832    ----------------------------------------------------------------------
1833    Name: Allen Leung (leunga (at) reservoir (dot) com)
1834    Date: 2004/08/09 12:21:00 EST
1835    Tag: leunga-110_47-dijsktra
1836    Description:
1837    
1838    Bug fix from Carl Hauser:
1839    
1840    single_source_shortest_paths in dijkstra.sml was observed to get wrong
1841    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
1842    
1843    The problem is that following the expression A.update(dist,s,Num.zero)
1844    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
1845    
1846    ----------------------------------------------------------------------
1847    Name: Matthias Blume (blume (at) tti - c (dot) org)
1848    Date: 2004/08/06 18:10:00 CDT
1849    Tag: blume-20040806-cmdline
1850    Description:
1851    
1852    Fiddled with handling of command-line options:
1853    
1854      * sml now quits after processing the command line
1855        if -H, -S, -h<n>, or -s<n> appears as the last
1856        command-line argument
1857      * a new option -q terminates the session when encountered on
1858        the command line; subsequent arguments will be ignored
1859      * bug fixes: short (erroneous) arguments are no longer ignored
1860        completely
1861    
1862    ----------------------------------------------------------------------
1863    Name: Allen Leung (leunga (at) reservoir (dot) com)
1864    Date: 2004/08/04 18:17:00 EST
1865    Tag: leunga-110_47-ppc-ibm-asm
1866    Description:
1867    
1868      - Added minimal IBM assembly syntax support for PowerPC.
1869    
1870      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
1871        been altered in the runtime.  We need an automatic way to keep the file
1872        in sync.
1873    
1874    ----------------------------------------------------------------------
1875    Name: Matthias Blume (blume (at) tti - c (dot) org)
1876    Date: 2004/08/04 14:00:00 CDT
1877    Tag: Release_110_47
1878    Description:
1879    
1880    New working version (110.47).  NEW BOOTFILES!
1881    
1882    ----------------------------------------------------------------------
1883    Name: Matthias Blume (blume (at) tti - c (dot) org)
1884    Date: 2004/08/03 14:25:00 CDT
1885    Tag: blume-20040803-callingconv
1886    Description:
1887    
1888    Added low-level support for choosing C calling conventions by
1889    twiddling the type of rawccall.  (See
1890    src/compiler/Semant/types/cproto.sml for details.)
1891    
1892    ----------------------------------------------------------------------
1893    Name: Matthias Blume (blume (at) tti - c (dot) org)
1894    Date: 2004/08/02 15:55:00 CDT
1895    Tag: blume-20040802-backout
1896    Description:
1897    
1898    Backed out of change to win32-filesys.c.  The earlier patch to
1899    get_file_time caused CM to produce files with the wrong time stamp.
1900    
1901    ----------------------------------------------------------------------
1902    Name: Matthias Blume (blume (at) tti - c (dot) org)
1903    Date: 2004/08/02 14:45:00 CDT
1904    Tag: blume-20040802-nlffi-win32
1905    Description:
1906    
1907    Added NLFFI support for Win32, adapted from a patch provided by David
1908    Hansel.  This is currently completely untested.  Also, the issue
1909    concerning stdcall vs. ccall is still unresolved.
1910    
1911    ----------------------------------------------------------------------
1912    Name: Matthias Blume (blume (at) tti - c (dot) org)
1913    Date: 2004/07/30 17:55:00 CDT
1914    Tag: blume-20040730-various
1915    Description:
1916    
1917    Gearing up towards 110.47...
1918    
1919    - various minor bugfixes to ml-nlffigen
1920    - a beginning of a manual for nlffi
1921    
1922    - eliminated 'export name=value' in config/install.sh as this does
1923      not work with certain versions of /bin/sh
1924      (Thanks to David King at Motorola for catching this.)
1925    
1926    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
1927      - added a test for tm==NULL to gmtime.c and localtime.c
1928      - applied patch for incorrect GetFileTime under win32
1929      - toSeconds -> toMilliseconds in Win32/win32-process.sml
1930    
1931    ----------------------------------------------------------------------
1932    Name: Matthias Blume (blume (at) tti - c (dot) org)
1933    Date: 2004/07/21 18:20:00 CDT
1934    Tag: blume-20040721-nlffigen
1935    Description:
1936    
1937    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
1938      for a typedef to an incomplete type, but leave out the "typ" member.
1939      (This is just for consistency.)
1940    - Started to produce what is supposed to become better (i.e., comprehensive)
1941      documentation of what ml-nlffigen does and produces.
1942    
1943    ----------------------------------------------------------------------
1944    Name: Matthias Blume (blume (at) tti - c (dot) org)
1945    Date: 2004/07/14 16:25:00 CDT
1946    Tag: blume-20040714-union
1947    Description:
1948    
1949    Added C_UNION to c-calls/c-types.sml and updated the machinery
1950    (ml-nlffigen, cproto.sml) that conveys C function interface
1951    information to the code generator.
1952    
1953    However, the actual architecture-specific implementation of function
1954    arguments and results that are C unions is still not implemented.
1955    
1956    ----------------------------------------------------------------------
1957    Name: Allen Leung (leunga (at) reservoir (dot) com)
1958    Date: 2004/07/14 14:38:00 EST
1959    Tag: leunga-110_46_1-ppc-lwzu
1960    Description:
1961    
1962        Added these instructions to the PowerPC architecture:
1963        LBZU(X), LHZU(X), LWZU(X),
1964        STWU(X), STFDU, STFSU
1965    
1966        etc...
1967    
1968        Note: I haven't added their instruction encoding into the description.
1969    
1970    ----------------------------------------------------------------------
1971    Name: Allen Leung (leunga (at) reservoir (dot) com)
1972    Date: 2004/07/13 15:04:00 EST
1973    Tag: leunga-110_46_1-ppc-lwarx
1974    Description:
1975    
1976       Added the two instructions LWARX and STWCX to the PowerPC
1977    instruction set.
1978    
1979       A (untested) rewrite of loop-structure.sml.  The old version
1980    is completely broken.
1981    
1982    ----------------------------------------------------------------------
1983    Name: Matthias Blume (blume (at) tti - c (dot) org)
1984    Date: 2004/07/13 13:50:00 CDT
1985    Tag: blume-20040713-nlffi
1986    Description:
1987    
1988    - use paramAlloc to report c-calls with too many arguments
1989      (for PPC version where parameter area is pre-allocated)
1990    - added ccall_maxargspace to machspec (to implement the above)
1991    - made "make" commend in CM's "make" tool configurable
1992    - added option (default: on) for passing the name of the SML/NJ's "bin"
1993      directory to "make"; the call looks like this:
1994    
1995         make <options> SMLNJ_BINDIR=<dir> <target>
1996    
1997      This can be used by the Makefile to, e.g., pick the "right" version
1998      of ml-nlffigen.
1999    - minor code tweaks
2000    
2001    ----------------------------------------------------------------------
2002    Name: Matthias Blume (blume (at) tti - c (dot) org)
2003    Date: 2004/07/12 22:50:00 CDT
2004    Tag: blume-110_46_1-macosx-nlffi
2005    Description:
2006    
2007    NLFFI under Mac OS X now working (sort of).  This is largely untested,
2008    though.
2009    
2010    Note:  1. You have to make a new, clean build of the runtime system.
2011           2. There are new BOOTFILES, you have to use them!
2012              (Doing the bootstrap process yourself would be *very* painful!
2013               If you absolutely have to do it, build the system under
2014               a different architecture and then cross-compile.)
2015    
2016    Version bumped to 110.46.1 to account for runtime data format changes.
2017    
2018    ----------------------------------------------------------------------
2019    Name: Matthias Blume (blume (at) tti - c (dot) org)
2020    Date: 2004/06/18 14:30:00 CDT
2021    Tag: blume-20040618-unix
2022    Description:
2023    
2024    Changed the implementation of structure Unix so that the same stream
2025    is returned every time one of the {text,bin}{In,Out}streamOf functions
2026    is invoked on the same proc.  This is not what the spec currently
2027    says -- although IMO it arguably should.  (See discussion below.)
2028    
2029    ----------------------------------------------------------------------
2030    Name: Matthias Blume (blume (at) tti - c (dot) org)
2031    Date: 2004/06/17 18:15:00 CDT
2032    Tag: Release_110_46
2033    Description:
2034    
2035    New working version (110.46).  NEW BOOTFILES!
2036    
2037    ----------------------------------------------------------------------
2038    Name: Matthias Blume (blume (at) tti - c (dot) org)
2039    Date: 2004/06/17 17:20:00 CDT
2040    Tag: blume-20040617-timer-unix
2041    Description:
2042    
2043    Changed the interface of structures Timer and Unix to match the most
2044    recent Basis spec.
2045    
2046    In the case of Unix there still seems to be an open/weird issue:
2047    
2048       The {text,bin}{In,Out}streamOf functions are supposed to create
2049       fresh streams whenever they are called -- as opposed to have them
2050       return the same stream every time.  This design is supposed to
2051       prevent space leaks caused by proc values hanging on to streams.
2052    
2053       The reap function, on the other hand, is supposed to close the
2054       streams.  This cannot be done without having a handle on the
2055       stream in proc after all...
2056    
2057    I took the liberty to implement the following stopgap solution:
2058    
2059      The proc value hangs on to the most recently created stream(s).
2060      Reap closes those.  If either or both of the two streams hadn't
2061      been created at all yet, then reap will close the corresponding
2062      file descriptors directly.
2063    
2064    PS: I don't understand the original space leak argument anymore.  If
2065    a proc hangs on to the imperative stream, then I/O operations on those
2066    will advance the state of the cached stream and avoid the space leak.
2067    
2068    ----------------------------------------------------------------------
2069    Name: Matthias Blume (blume (at) tti - c (dot) org)
2070    Date: 2004/05/28 16:45:00 CDT
2071    Tag: blume-20040528-basis
2072    Description:
2073    
2074    Added signature PACK_REAL and exported functor PrimIO.
2075    
2076    ----------------------------------------------------------------------
2077    Name: Matthias Blume (blume (at) tti - c (dot) org)
2078    Date: 2004/05/25 16:00:00 CDT
2079    Tag: blume-20040525-group-owner
2080    Description:
2081    
2082    CM now ignores (but still accepts) the "owner" information in group
2083    descriptions.  The owner of a group is its next enclosing
2084    library. Each group must have a unique owner.  (There is a virtual
2085    "toplevel" library that owns groups which are not nested within a real
2086    library.)  Previously, each group had to explicitly declare its owner,
2087    and CM would check that such a declaration is correct.  The new scheme
2088    is to have CM check that for each group there is precisely one owning
2089    library.
2090    
2091    The advantage of the new scheme is that the programmer no longer needs
2092    to maintain the somewhat annoying owner information.  The downside is
2093    that CM cannot enforce the ownership rule across multiple runs of
2094    CM.make.  Fortunately, enclosing the same group in two different
2095    libraries A and B which are not part of the same program does not
2096    cause real problems.
2097    
2098    ----------------------------------------------------------------------
2099    Name: Matthias Blume (blume (at) tti - c (dot) org)
2100    Date: 2004/05/20 16:00:00 CDT
2101    Tag: blume-20040520-win32
2102    Description:
2103    
2104    Made the win32 version work again.  (Strangely, a misplaced comma had
2105    slipped into win32-process.c which prevented the runtime from being
2106    compiled correctly.)
2107    
2108    Also, included a minor addition to ml-build.bat analogous to what was
2109    done in blume-20040519-ml-build.
2110    
2111    ----------------------------------------------------------------------
2112    Name: Matthias Blume (blume (at) tti - c (dot) org)
2113    Date: 2004/05/19 22:10:00 CDT
2114    Tag: blume-20040519-ml-build
2115    Description:
2116    
2117    Arranged for ml-build to clean up after itself a little bit better.
2118    The script generates a temporary SML source file and compiles it using
2119    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
2120    gets rid of those at the end, so they don't accumulate under .cm.
2121    
2122    This required a minor change to install.sh because the name of the
2123    metadata directory (default: .cm) is actually configurable at
2124    installation time.
2125    
2126    ----------------------------------------------------------------------
2127    Name: Matthias Blume (blume (at) tti - c (dot) org)
2128    Date: 2004/05/18 15:50:00 CDT
2129    Tag: blume-20040518-mkreader
2130    Description:
2131    
2132    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
2133    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
2134    
2135    ----------------------------------------------------------------------
2136    Name: Matthias Blume (blume (at) tti - c (dot) org)
2137    Date: 2004/05/11 14:35:00 CDT
2138    Tag: blume-20040511-win32sock
2139    Description:
2140    
2141    Added previously missing support for many socket-related functions
2142    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
2143    for the voluminous patch!
2144    
2145    (I have not tested this patch under win32 yet.)
2146    
2147    Here is David's e-mail:
2148    
2149    Hi,
2150    
2151    Attached to this email you find a diff against sml/nj 110.45
2152    that will enable socket support under Windows.
2153    
2154    To apply the patch (using unix or cygwin)
2155    1) gunzip runtime.diff.gz
2156    2) "cd" into "src/runtime" in the source tree of a fresh
2157       110.45 installation.
2158    3) patch -p 1 < [your/path/to]runtime.diff
2159    
2160    The code compiles fine but has NOT yet been extensively tested.
2161    I only ran a few tests for basic socket client functionality
2162    (which worked fine).  Especially the functions that use ioctl
2163    are not tested at all and might not work (see below).
2164    
2165    I implemented this since we want to move to a newer version of sml/nj
2166    but need socket support in order to use it.  This is the first time I
2167    even had a look at the sml/nj source,  so please review my changes
2168    before making this part of the distribution!  Here are a few issues
2169    that I think might be better for someone to solve who is more
2170    familiar with the sml/nj source (and socket programming):
2171    
2172    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
2173      exception since I could not figure out what the windows equivalent
2174      of these functions is
2175    
2176    - In sockets-osdep.h there are a some #include statements that are
2177      only used in a few files that include sockets-osdep.h
2178    
2179    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
2180      does not process its return value since I don't know how to
2181      report an error upwards.
2182    
2183    - It would probably be good to have a call to WSACleanup() when
2184      the library is unloaded (if there is such a possibility).
2185      Otherwise I think Windows will take care of this automatically
2186      when the process finishes.
2187    
2188    - I used ioctlsocket() as a replacement for ioctl() but I have
2189      no idea if that is actually the proper replacement on Windows.
2190    
2191    - All these issues are marked in the code by "FIXME" comments.
2192    
2193    We use sml/nj extensively in our products and are quite happy
2194    with it.  I hope this contribution will help you.
2195    
2196    Keep up the good work!
2197    
2198    David
2199    
2200    ----------------------------------------------------------------------
2201    Name: Matthias Blume (blume (at) tti - c (dot) org)
2202    Date: 2004/05/11 14:20:00 CDT
2203    Tag: blume-20040511-installml
2204    Description:
2205    
2206    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
2207    the patch.)
2208    
2209    ----------------------------------------------------------------------
2210    Name: Matthias Blume (blume (at) tti - c (dot) org)
2211    Date: 2004/05/11 14:05:00 CDT
2212    Tag: blume-20040511-nlffi-netbsd
2213    Description:
2214    
2215    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
2216    the patch.)
2217    
2218    ----------------------------------------------------------------------
2219    Name: Matthias Blume (blume (at) tti - c (dot) org)
2220    Date: 2004/05/11 12:05:00 CDT
2221    Tag: blume-20040511-exports
2222    Description:
2223    
2224    As per request by Adam Chlipala <adam@hcoop.net>, extended various
2225    export lists in compiler-related .cm-files.
2226    
2227    ----------------------------------------------------------------------
2228    Name: Matthias Blume (blume (at) tti - c (dot) org)
2229    Date: 2004/05/11 11:35:00 CDT
2230    Tag: blume-20040511-allsource
2231    Description:
2232    
2233    The installer now honors the "src-smlnj" target again, although its meaning
2234    has changed from "all sources required for the compiler" to "all sources
2235    the installer knows about".  In other words, if you enable "src-smlnj"
2236    in the "targets" file, then the installer will pull in sources for
2237    everything.  (Notice that this refers to source code only.  Compiled
2238    code is still only installed for modules that were requested explicitly
2239    or which are required for other modules that were requested explicitly.)
2240    
2241    ----------------------------------------------------------------------
2242    Name: Matthias Blume (blume (at) tti - c (dot) org)
2243    Date: 2004/04/23 17:40:00 CDT
2244    Tag: blume-20040423-ieee-scan
2245    Description:
2246    
2247    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
2248    in the exponent calculation we get INF or ZERO (depending on the mantissa
2249    and the sign of the exponent).
2250    
2251    ----------------------------------------------------------------------
2252    Name: Matthias Blume (blume (at) tti - c (dot) org)
2253    Date: 2004/04/23 10:40:00 CDT
2254    Tag: blume-20040423-ml-build
2255    Description:
2256    
2257    The ml-build script now terminates with a non-0 status when something
2258    goes wrong.
2259    
2260    ----------------------------------------------------------------------
2261    Name: Matthias Blume (blume (at) tti - c (dot) org)
2262    Date: 2004/04/22 16:35:00 CDT
2263    Tag: blume-20040422-Option
2264    Description:
2265    
2266    Made exception Option to be the same as exception Option.Option
2267    (as it should be).
2268    
2269    ----------------------------------------------------------------------
2270    Name: Allen Leung (leunga (at) reservoir (dot) com)
2271    Date: 2004/03/19 14:40:00 EST
2272    Tag: leunga-20040319-cygwin-nlffi
2273    Description:
2274    
2275    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
2276    of SML/NJ.  The problem is that
2277    
2278       lib = dlopen(NULL, ...)
2279       f   = dlsym(lib, "malloc");
2280    
2281    does not work on Windows unless we explicitly export symbols
2282    such as 'malloc' during linking.  We fixed this by explicitly
2283    exporting the required symbols with the magic gcc incantation:
2284    
2285        -Wl,--export-all cygwin.def
2286    
2287    where cygwin.def is a file containing all the symbols that
2288    we wish to export.
2289    
2290    I suspect this is a Windows problem and we'll have to
2291    do the same (somehow with windows compilers) when
2292    we build the native win32 version with the system
2293    calls LoadLibrary/GetProcAddress.
2294    
2295    ----------------------------------------------------------------------
2296    Name: Matthias Blume (blume (at) tti - c (dot) org)
2297    Date: 2004/03/04 16:35:00 CST
2298    Tag: blume-20040304-intinf-fmt
2299    Description:
2300    
2301    Fixed problem with IntInf.fmt (sign would show up on the right instead
2302    of on the left for BIN, OCT, and HEX).
2303    
2304    ----------------------------------------------------------------------
2305    Name: Matthias Blume (blume (at) tti - c (dot) org)
2306    Date: 2004/03/04 11:25:00 CST
2307    Tag: blume-20040304-symlinks
2308    Description:
2309    
2310    Fixed problem with installer script (unix only) where bin/ml-yacc and
2311    friends pointed (via symlinks) to absolute locations instead of just
2312    .run-sml.  This was reported by Vesa A Norrman.
2313    
2314    ----------------------------------------------------------------------
2315    Name: Matthias Blume (blume (at) tti - c (dot) org)
2316    Date: 2004/02/13 14:50:00 CST
2317    Tag: Release_110_45
2318    Description:
2319    
2320    New working version (110.45). New bootfiles.
2321    
2322    ----------------------------------------------------------------------
2323    Name: Matthias Blume (blume (at) tti - c (dot) org)
2324    Date: 2004/01/26 15:15:15 CST
2325    Tag: blume-20040126-toplevel
2326    Description:
2327    
2328    Improved handling of exceptions at the interactive toplevel.
2329    
2330    ----------------------------------------------------------------------
2331    Name: Matthias Blume (blume (at) tti - c (dot) org)
2332    Date: 2004/01/26 11:25:00
2333    Tag: blume-20040126-app
2334    Description:
2335    
2336    Type of top-level "app" corrected.
2337    Added code for setting vp_limitPtrMask to Win32-specific runtime.
2338    
2339    ----------------------------------------------------------------------
2340    Name: Matthias Blume (blume (at) tti - c (dot) org)
2341    Date: 2003/11/18 17:10 CST
2342    Tag: blume-20031118-basis-fiddle
2343    Description:
2344    
2345    - changed Timer interface to what might become the spec
2346    - POSIX_FLAGS -> BIT_FLAGS according to spec
2347    - some other minor discrepancies wrt. spec eliminated
2348    
2349    ----------------------------------------------------------------------
2350    Name: Matthias Blume (blume (at) tti - c (dot) org)
2351    Date: 2003/11/06 12:00:00 CST
2352    Tag: Release_110_44
2353    Description:
2354    
2355    New working version (110.44). New bootfiles.
2356    
2357    ----------------------------------------------------------------------
2358    Name: Matthias Blume (blume (at) tti - c (dot) org)
2359    Date: 2003/11/04 11:50:00 CST
2360    Tag: blume-20031104-move-libraries
2361    Description:
2362    
2363    Eliminated the "dont_move_libraries" directive in config/targets.
2364    (The mechanism was broken and could not be fixed easily.  Moreover,
2365    there does not seem to be any reason not to move all libraries into
2366    lib during installation.  I originally implemented this directive as a
2367    backward-compatibility feature when I first introduced the new CM.
2368    Now that things have been stable for a long time and going back to the
2369    old CM is not an option, there is no reason to keep it around.)
2370    
2371    ----------------------------------------------------------------------
2372    Name: Matthias Blume (blume (at) tti - c (dot) org)
2373    Date: 2003/11/03 16:00:00 CST
2374    Tag: blume-20031103-installdir
2375    Description:
2376    
2377    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
2378    Richards for pointing out the problem and providing the solution.)
2379    
2380    ----------------------------------------------------------------------
2381    Name: Matthias Blume (blume (at) tti - c (dot) org)
2382    Date: 2003/10/01 17:05:00 CDT
2383    Tag: blume-20031001-lal-mlrisc
2384    Description:
2385    
2386    MLRISC bug fix from Lal.
2387    
2388    ----------------------------------------------------------------------
2389    Name: Matthias Blume (blume (at) tti - c (dot) org)
2390    Date: 2003/09/30 16:10:00 CDT
2391    Tag: blume-20030930-primio-bat
2392    Description:
2393    
2394    1. Added openVector, nullRd, and nullWr to PRIM_IO.
2395    2. Improved .bat files (for Win32 port) to make things work under Win95.
2396       (thanks to Aaron S. Hawley for this one)
2397    
2398  ----------------------------------------------------------------------  ----------------------------------------------------------------------
2399  Name: Matthias Blume (blume (at) tti - c (dot) org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
2400  Date: 2003/09/26 16:05:00 CDT  Date: 2003/09/26 16:05:00 CDT

Legend:
Removed from v.1395  
changed lines
  Added in v.2387

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