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

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

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