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

Legend:
Removed from v.1389  
changed lines
  Added in v.2345

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