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

SCM Repository

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

Diff of /sml/trunk/HISTORY

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

revision 1390, Wed Sep 24 20:34:06 2003 UTC revision 1807, Tue May 31 20:59:36 2005 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Allen Leung (leunga (at) reservoir (dot) com)
17    Date: 2005/05/31 17:00:00 EST
18    Tag: leunga-20050531-cygwin-fault-2
19    Description:
20    
21    A typo in the cygwin code fixed.
22    
23    ----------------------------------------------------------------------
24    Name: Allen Leung (leunga (at) reservoir (dot) com)
25    Date: 2005/05/31 16:47:00 EST
26    Tag: leunga-20050531-cygwin-fault
27    Description:
28    
29    Updated Cygwin's fault/signal handling to match the Windows version.
30    Updated the export list.
31    
32    ----------------------------------------------------------------------
33    Name: Matthias Blume (blume (at) tti - c (dot) org)
34    Date: 2005/05/18 13:35:00 CDT
35    Tag: Release_110_54
36    Description:
37    
38    New working version (110.54).  NEW BOOTFILES!
39    
40    ----------------------------------------------------------------------
41    Name: Matthias Blume (blume (at) tti - c (dot) org)
42    Date: 2005/05/18 11:58:00 CDT
43    Tag: blume-20050518-installer
44    Description:
45    
46    Added support scripts for Mac OS X PackageMaker and modified
47    config/install.sh so that it supports re-dumping a heap image
48    after customization.
49    
50    ----------------------------------------------------------------------
51    Name: Matthias Blume (blume (at) tti - c (dot) org)
52    Date: 2005/05/18 10:55:00 CDT
53    Tag: blume-20050518-realdiv-noovld
54    Description:
55    
56    Un-overloaded / to work around bug in overloading resolution code.
57    
58    ----------------------------------------------------------------------
59    Name: Matthias Blume (blume (at) tti - c (dot) org)
60    Date: 2005/05/16 23:50:00 CDT
61    Tag: blume-20050516-redump-heap
62    Description:
63    
64    Added mechanism for re-creating a heap file for the interactive system
65    after configuration variables have been changed.
66    
67       CM.redump_heap : string -> unit
68    
69    This is much like SMLofNJ.exportML, but starting from the resulting
70    heap does not return to the caller of CM.redump_heap but
71    restarts the interactive system from scratch.  The original call of
72    CM.redump_heap does not return but ends the interactive session.
73    Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.
74    
75    Internally, redump_heap winds the dynamic execution context back to
76    the point where the original heap image was created and re-executes
77    the heap image generation code in the boot code.
78    
79    ----------------------------------------------------------------------
80    Name: Matthias Blume (blume (at) tti - c (dot) org)
81    Date: 2005/05/09 21:55:00 CDT
82    Tag: blume-20050509-word64
83    Description:
84    
85    Added a hack to the existing hack known as Word64 to make fromString
86    behave correctly.  I am still not sure whether Word64.scan will work
87    as specified with respect to the interaction of radix and prefix.
88    
89    ----------------------------------------------------------------------
90    Name: Allen Leung (leunga (at) reservoir (dot) com)
91    Date: 2005/05/04 11:50:00 EST
92    Tag: leunga-20050504-checkgc
93    Description:
94    
95    Added a gc protocol checking phase.  This phase is enabled with
96    the flag "check-gc".  "debug-check-gc" turns on the verbose mode.
97    
98    ----------------------------------------------------------------------
99    Name: Matthias Blume (blume (at) tti - c (dot) org)
100    Date: 2005/05/04 10:45:00 CDT
101    Tag: blume-20050504-intinf
102    Description:
103    
104    Fixed a bug in the implementation of div and mod for IntInf.
105    Thanks to Neophytos Michael for reporting the problem.
106    
107    ----------------------------------------------------------------------
108    Name: Matthias Blume (blume (at) tti - c (dot) org)
109    Date: 2005/05/04 10:35:00 CDT
110    Tag: blume-20050504-join
111    Description:
112    
113    Added a "join" combinator to the ParserComb module in smlnj-lib.cm.
114    
115    ----------------------------------------------------------------------
116    Name: Matthias Blume (blume (at) tti - c (dot) org)
117    Date: 2005/02/28 23:40:00 CST
118    Tag: blume-20050228-mVar
119    Description:
120    
121    Fixed serious bug (brown paper bag variety) in new implementation of
122    structure Atom in CML.  (I had accidentally used a mailbox instead of
123    an mvar, leaving the door open for races.)
124    
125    ----------------------------------------------------------------------
126    Name: Matthias Blume (blume (at) tti - c (dot) org)
127    Date: 2005/02/25 15:00:00 CST
128    Tag: Release_110_53
129    Description:
130    
131    New working version (110.53).  NEW BOOTFILES!
132    
133    ----------------------------------------------------------------------
134    Name: Matthias Blume (blume (at) tti - c (dot) org)
135    Date: 2005/02/25 14:50:00 CST
136    Tag: blume-20050225-susp
137    Description:
138    
139    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
140    implemented in Core -- which means that it is the same as the one used
141    by the lazy extension.
142    
143    ----------------------------------------------------------------------
144    Name: Matthias Blume (blume (at) tti - c (dot) org)
145    Date: 2005/02/24 16:50:00 CST
146    Tag: blume-20050224-cml-atom
147    Description:
148    
149    Simpler and at the same time more general implementation of structure
150    Atom in CML.
151    
152    ----------------------------------------------------------------------
153    Name: Matthias Blume (blume (at) tti - c (dot) org)
154    Date: 2005/02/15 17:35:00 CST
155    Tag: blume-20050215-tools
156    Description:
157    
158    Created new "tools" directory under "src" and moved "TraceDebugProf"
159    there.
160    
161    ----------------------------------------------------------------------
162    Name: Matthias Blume (blume (at) tti - c (dot) org)
163    Date: 2005/02/10 17:55:00 CST
164    Tag: blume-20050210-longlong
165    Description:
166    
167    Implemented "long long" arguments and results for NLFFI.  (Only the
168    PPC/MacOS implementation is complete, the other backends still need to
169    be updated.)
170    
171    ----------------------------------------------------------------------
172    Name: Matthias Blume (blume (at) tti - c (dot) org)
173    Date: 2005/01/24 17:40:00 CST
174    Tag: blume-20050124-mlyacc
175    Description:
176    
177    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
178    problem with certain "as" patterns which previously got rendered
179    using incorrect syntax.
180    
181    ----------------------------------------------------------------------
182    Name: Matthias Blume (blume (at) tti - c (dot) org)
183    Date: 2005/01/18 12:00:00 CST
184    Tag: blume-20050118-profile
185    Description:
186    
187    Made time profiling code (interrupt handler) in runtime system aware
188    of new array representation.
189    
190    ----------------------------------------------------------------------
191    Name: Matthias Blume (blume (at) tti - c (dot) org)
192    Date: 2005/01/14 18:00:00 CST
193    Tag: blume-20050114-heap2exec
194    Description:
195    
196    Implemented new (but still experimental) heap2exec facility.  This is
197    tested under Mac OS X and should work under Linux (will test shortly).
198    It will probably also work on the Sparc (will test some time later).
199    
200      - removed old "HACKED_STANDALONE" hack from runtime
201    
202    To be able to test this, uncomment the request for "heap2asm" in
203    config/targets prior to installation.  (Notice that this is different
204    from "heap2exec" mentioned below.  Not a typo.)
205    
206    To perform an actual test, run the command
207    
208       $ bin/heap2exec heapfile execfile
209    
210    (You can put heap2exec on your shell's path.)
211    
212    For example, run
213    
214      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
215    
216    This will create a standalone executable called "mly" which you can
217    then invoke directly as a command.
218    
219    ----------------------------------------------------------------------
220    Name: Matthias Blume (blume (at) tti - c (dot) org)
221    Date: 2005/01/07 11:44:00 CST
222    Tag: blume-20050107-mlstring
223    Description:
224    
225    fixed off-by-one error in ML_STRING macro (globals.c)
226    
227    ----------------------------------------------------------------------
228    Name: Matthias Blume (blume (at) tti - c (dot) org)
229    Date: 2004/12/23 18:00:00 CST
230    Tag: blume-20041223-santa
231    Description:
232    
233    Made ml-build script "smarter" (but only very little).
234    
235    ----------------------------------------------------------------------
236    Name: Matthias Blume (blume (at) tti - c (dot) org)
237    Date: 2004/12/21 15:05:00 CST
238    Tag: blume-20041221-longlong
239    Description:
240    
241    * Implemented access to signed and unsigned long long data in NLFFI.
242    (The parameter-passing part of the picture has not complete. But
243    data structure access seems to work.)
244    
245    * Fixed CM's incorrect assumption that the PPC is little-endian.
246      (On the Mac, it is big-endian.  And that's currently our only
247      PPC platform.)
248    
249    ----------------------------------------------------------------------
250    Name: Matthias Blume (blume (at) tti - c (dot) org)
251    Date: 2004/12/21 12:50:00 CST
252    Tag: blume-20041221-memory
253    Description:
254    
255    Some cleanup in the $c/memory.cm library: separated some concerns by
256    moving allocation code and memory access code each into their own
257    files.
258    
259    ----------------------------------------------------------------------
260    Name: Allen Leung (leunga (at) reservoir (dot) com)
261    Date: 2004/12/17 16:12:00 EST
262    Tag: leunga-20041217-cygwin-smlnj-home
263    Description:
264    
265        The Unix I/O library of SML/NJ on cygwin does not understand
266    Windows style pathname, so problems arise when SMLNJ_HOME is set
267    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
268    to a POSIX pathname on cygwin.
269    
270    ----------------------------------------------------------------------
271    Name: Matthias Blume (blume (at) tti - c (dot) org)
272    Date: 2004/12/16 13:35:00 CST
273    Tag: Release_110_52
274    Description:
275    
276    Last-minute changes incorporated into 110.52.  Release tag moved.
277    
278    The changes:
279       - HashString.hashString' -> HashString.hashSubstring
280       - bug fix in UnivariateStats
281    
282    ----------------------------------------------------------------------
283    Name: Matthias Blume (blume (at) tti - c (dot) org)
284    Date: 2004/12/15 23:40:00 CST
285    Tag: blume-20041215-hashSubstring
286    Description:
287    
288    - HashString.hashString' -> HashString.hashSubstring
289    - corresponding changes in atom.sml
290    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
291      added some comments
292    
293    ----------------------------------------------------------------------
294    Name: Matthias Blume (blume (at) tti - c (dot) org)
295    Date: 2004/12/15 15:30:00 CST
296    Tag: (Release_110_52)
297    Description:
298    
299    New working version (110.52).  NEW BOOTFILES!
300    
301    ----------------------------------------------------------------------
302    Name: Matthias Blume (blume (at) tti - c (dot) org)
303    Date: 2004/12/15 12:45:00 CST
304    Tag: blume-20041215-spaces
305    Description:
306    
307    More on the space problem (this time for Win32).
308    
309    ----------------------------------------------------------------------
310    Name: Matthias Blume (blume (at) tti - c (dot) org)
311    Date: 2004/12/14 17:30:00 CST
312    Tag: blume-20041214-spaces
313    Description:
314    
315    Hacked some of the scripts (in particular: the installer) to cope with
316    spaces in filenames a bit better.  But beware: the current "solution"
317    is likely still full of bugs and inherently incomplete.  (We need to
318    do away with those shell scripts for a comprehensive solution.)
319    
320    ----------------------------------------------------------------------
321    Name: Matthias Blume (blume (at) tti - c (dot) org)
322    Date: 2004/12/13 14:45:00 CST
323    Tag: blume-20041213-ml-makedepend
324    Description:
325    
326    Fixed bug in code for ml-makedepend.
327    
328    ----------------------------------------------------------------------
329    Name: Matthias Blume (blume (at) tti - c (dot) org)
330    Date: 2004/12/09 16:30:00 CST
331    Tag: blume-20041209-statistics
332    Description:
333    
334    Added two simple but potentially useful statistics modules to SML/NJ Library.
335    (See CHANGES file there.)
336    
337    ----------------------------------------------------------------------
338    Name: Matthias Blume (blume (at) tti - c (dot) org)
339    Date: 2004/12/01 16:50:00 CST
340    Tag: blume-20041201-atom
341    Description:
342    
343    smlnj-lib:
344    
345      Added function HashString.hashString' for substrings.
346      Hand-inlined CharVector.foldl into HashString (for speed).
347      Modified implementation of structure Atom to avoid extracting
348      strings from substrings unless necessary.
349      (Also see CHANGES file for smlnj-lib.)
350    
351    ----------------------------------------------------------------------
352    Name: Matthias Blume (blume (at) tti - c (dot) org)
353    Date: 2004/11/24 22:15:00 CST
354    Tag: blume-20041124-cml
355    Description:
356    
357    Made sure CML compiles when Position = Int64.
358    
359    ----------------------------------------------------------------------
360    Name: Matthias Blume (blume (at) tti - c (dot) org)
361    Date: 2004/11/24 14:30:00 CST
362    Tag: blume-20041124-position
363    Description:
364    
365    The compiler can now be compiled in a mode that makes structure Position
366    equal to Int64.  The default, however, is unchanged (Position = Int31)
367    for the time being.
368    
369    To enable 64-bit positions, use the following procedure:
370    
371    1. Start sml
372    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
373    3. Type
374          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
375    4. Run CMB.make() as usual.
376    
377    This is barely tested.  The only test so far was a little SML program
378    counting the number of characters in an 8-gigabyte file by
379    reading it character-by-character.  That test was successful.
380    
381    In support of 64-bit positions, a number of new functions have been
382    added to the runtime system.
383    
384    ----------------------------------------------------------------------
385    Name: Matthias Blume (blume (at) tti - c (dot) org)
386    Date: 2004/11/23 14:45:00 CST
387    Tag: blume-20041123-useFile
388    Description:
389    
390    Fixed a problem with unhelpful error messages related to problems with
391    .cm- or .sml files that appear as part of the sml command line.
392    
393    ----------------------------------------------------------------------
394    Name: Matthias Blume (blume (at) tti - c (dot) org)
395    Date: 2004/11/18 15:40:00 CST
396    Tag: Release_110_51
397    Description:
398    
399    New working version (110.51).  NEW BOOTFILES!
400    
401    ----------------------------------------------------------------------
402    Name: Matthias Blume (blume (at) tti - c (dot) org)
403    Date: 2004/11/18 15:35:00 CST
404    Tag: <none>
405    Description:
406    
407    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
408    Joemann).
409    
410    ----------------------------------------------------------------------
411    Name: Allen Leung (leunga (at) reservoir (dot) com)
412    Date: 2004/11/17 16:05:21 EST 2004
413    Tag: leunga-20041117-mlrisc-live-kill
414    Description:
415    
416       Added support for MLTree constructs LIVE and KILL
417    to all the architectures.
418    
419    ----------------------------------------------------------------------
420    Name: Matthias Blume (blume (at) tti - c (dot) org)
421    Date: 2004/11/13 00:20:00 CST
422    Tag: blume-20041113-versiontool
423    Description:
424    
425    - Stripped down the versiontool: It now only handles the version number.
426      The date string is generated at bootstrap time (during makeml).
427    
428    - In a previous commit, fixed a minor issue with how polyequal is being
429      translated.  In particular, the code now "looks through" abstractions.
430      This results in slightly fewer polyEqual warnings and hopefully slightly
431      more efficient code.  Important examples for where this matters are
432      the new int64 and word64 types.
433    
434    ----------------------------------------------------------------------
435    Name: Matthias Blume (blume (at) tti - c (dot) org)
436    Date: 2004/11/12 00:30:00 CST
437    Tag: blume-20041112-int64
438    Description:
439    
440    Structure Int64 fully hooked in.  (The implementation is not very
441    efficient, though.)
442    
443    ----------------------------------------------------------------------
444    Name: Matthias Blume (blume (at) tti - c (dot) org)
445    Date: 2004/11/11 17:30:00 CST
446    Tag: blume-20041111-more64
447    Description:
448    
449    All the pieces of Word64 are now there, with the exception of the
450    conversions from and to LargeWord. (Eventually these need to be identities,
451    but for the time being they don't even make sense because LargeWord is
452    32-bit wide.)
453    
454    Also started to add similar support for Int64, but major pieces of that
455    are still missing.
456    
457    ----------------------------------------------------------------------
458    Name: Matthias Blume (blume (at) tti - c (dot) org)
459    Date: 2004/11/11 00:15:00 CST
460    Tag: blume-20041111-word64
461    Description:
462    
463    Structure Word64 is now (almost) complete, word literals and patterns
464    seem to work.  There are a few odd pieces missing.  In particular,
465    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
466    at the moment.
467    
468    Making Word64 official would mean that LargeWord becomes Word64.  But
469    this requires extreme care because most word-word conversions have to
470    go through LargeWord, so making a mistake means loss of efficiency or
471    worse.  Eventually there will be a solution similar to (but actually
472    simpler than) what I did with IntInf.
473    
474    ----------------------------------------------------------------------
475    Name: Matthias Blume (blume (at) tti - c (dot) org)
476    Date: 2004/11/10 18:12:00 CST
477    Tag: blume-20041110-64bit
478    Description:
479    
480    More 64-bit hacking (but still not even half-way there yet).
481    Also, some assorted improvements to the handling of 8-bit words.
482    
483    ----------------------------------------------------------------------
484    Name: Matthias Blume (blume (at) tti - c (dot) org)
485    Date: 2004/11/09 17:50:00 CST
486    Tag: <none>
487    Description:
488    
489    Started adding some infrastructure for supporting 64-bit int- and
490    word-types.  (Still in its very early stages.)
491    
492    ----------------------------------------------------------------------
493    Name: Matthias Blume (blume (at) tti - c (dot) org)
494    Date: 2004/10/28 10:45:00 CDT
495    Tag: Release_110_50
496    Description:
497    
498    New working version (110.50).  NEW BOOTFILES!
499    
500                 =====================
501    
502    Also:
503    
504      - Changend config/srcarchiveurl from a file just
505        containing the URL string into a file containing
506        shell script code.  The code has access to the $VERSION variable.
507      - Made corresponding changes to config/install.sh and config/unpack.
508      - Default contents of config/srcarchiveurl uses $VERSION and
509        normally does not have to be edited to reflect a version change.
510    
511      (As a result, a version change can be done by just editing
512       config/version, the rest is now automatic.)
513    
514    ----------------------------------------------------------------------
515    Name: Matthias Blume (blume (at) tti - c (dot) org)
516    Date: 2004/10/27 17:50:00 CDT
517    Tag: blume-20041027-btrace-msg
518    Description:
519    
520    BackTrace.monitor now also reports the source of the exception that
521    triggered the trace.
522    
523    ----------------------------------------------------------------------
524    Name: Matthias Blume (blume (at) tti - c (dot) org)
525    Date: 2004/10/27 17:20:00 CDT
526    Tag: blume-20041027-x86-c-calls
527    Description:
528    
529    This is the HISTORY entry for two earlier commits, both concerning
530    the x86 c-calls code in MLRISC:
531    
532      - added a missing LOAD in the code that deals with struct arguments
533      - made sure the caller does not add the wrong number of bytes to the
534        stack pointer after a call of a function returning a struct
535        (the callee already pops the implicit argument which points to
536         the space reserved for the result)
537    
538    ----------------------------------------------------------------------
539    Name: Allen Leung (leunga (at) reservoir (dot) com)
540    Date: 2004/10/24 14:00:00 EST
541    Tag: leunga-20041024-x86-gas-fucomip
542    Description:
543    
544       John discovered a bug in the syntax of fucomip.
545       The opcodes FU?COMIP? have been changed to
546    
547           fu?comip? %st(i), %st
548    
549    ----------------------------------------------------------------------
550    Name: Matthias Blume (blume (at) tti - c (dot) org)
551    Date: 2004/10/20 15:06:00 CDT
552    Tag: blume-20041020-standalone-backtrace
553    Description:
554    
555    Added a mechanism for getting back-trace information from standalone
556    programs.  Here is how it works:
557    
558       1. The part of the program from which you want to get backtrace
559          information (usually the whole program) should be wrapped with
560          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
561          main program could be modified from something like
562    
563             fun main (pgm, args) = ...
564    
565         to
566    
567            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
568    
569       2. To be able to access BackTrace.monitor, you have to add
570          library $smlnj-tdp/plugins.cm to the .cm file that contains your
571          main function.
572    
573       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
574          CM might have created in the past for your project).
575    
576       4. Build the system using this command line:
577    
578             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
579                      myprog.cm MyProg.main myprog
580    
581          instead of the usual
582    
583             ml-build myprog.cm MyProg.main myprog
584    
585    I changed a library name:
586    
587       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
588    
589    New libraries:
590    
591       $smlnj-tdp/back-trace.cm
592          -- when loaded causes the back-trace plugin to be installed
593       $smlnj-tdp/coverage.cm
594          -- when loaded causes the coverage plugin to be installed
595    
596    ----------------------------------------------------------------------
597    Name: Matthias Blume (blume (at) tti - c (dot) org)
598    Date: 2004/10/18 16:45:00 CDT
599    Tag: blume-20041018-groupowner
600    Description:
601    
602    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
603    
604    Eliminated group owner specs from .cm files throughout the source tree.
605    
606    ----------------------------------------------------------------------
607    Name: Matthias Blume (blume (at) tti - c (dot) org)
608    Date: 2004/10/15 15:45:00 CDT
609    Tag: blume-20041015-coverage
610    Description:
611    
612    * Test coverage tool added!
613    * Further reorganization of tracing-, debugging-, and profiling support:
614    
615        - moved original BTImp -- now called BackTrace -- into a separate
616          library called $/trace-debug-profile.cm
617        - eliminated all mentions of BTrace from SMLofNJ.Internals
618        - only the instrumentation mechanism is now left in the compiler proper
619        - BackTrace module is a plugin which is NOT plugged in by default
620        - Coverage module is another such plugin
621    
622    To get the benefits of any of these plugin modules, the code in
623    question must be compiled with tdp instrumentation turned on.  This
624    can be done by setting SMLofNJ.Internals.TDP.mode to true.
625    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
626    
627    Plugins are selected at link time.  (Pre-compiled instrumented code
628    can be re-loaded with different plugins in effect.)  When an
629    instrumented module is linked, whatever plugins are at that time
630    enabled will come into effect for that module.
631    
632    To enable the back-trace plugin, load library $/trace-debug-profile.cm
633    and invoke BackTrace.install() (e.g., from the interactive prompt).
634    To enable the coverage plugin, load the same library and invoke
635    Coverage.install().
636    
637    Back-traces are generated automatically on uncaught exceptions and
638    when the code in question explicitly invokes BackTrace.trigger().
639    
640    Coverage (and execution frequency-) information must be queried
641    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
642    
643    ----------------------------------------------------------------------
644    Name: Matthias Blume (blume (at) tti - c (dot) org)
645    Date: 2004/10/14 17:40:00 CDT
646    Tag: blume-20041014-tdp-core
647    Description:
648    
649    Snapshot of a significant overhaul of how the trace/debug/profile support
650    is hooked into the system (specifically: Core and SMLofNJ.Internals).
651    
652    ----------------------------------------------------------------------
653    Name: Matthias Blume (blume (at) tti - c (dot) org)
654    Date: 2004/10/13 16:34:00 CDT
655    Tag: blume-20041013-tdp
656    Description:
657    
658    Some rationalization of names:
659    
660       structure BTrace -> structure TDPInstrument
661       etc.
662    
663    This is is preparation of using the original back-trace
664    instrumentation for other purposes.  "TDP" stands for
665    Trace/Debug/Profile.
666    
667    The control flag controlling whether instrumentation is on or off is now
668    registered under a different name, so instead of running sml as
669    
670     sml -Cinstrument.btrace-mode=true
671    
672    one has to say
673    
674     sml -Ctdp.instrument=true
675    
676    ----------------------------------------------------------------------
677    Name: Matthias Blume (blume (at) tti - c (dot) org)
678    Date: 2004/10/11 16:37:00 CDT
679    Tag: blume-20041011-regions
680    Description:
681    
682    Made some minor modifications to elabcore.sml to have source regions
683    be propagated more tightly -- resulting in better (i.e., smaller)
684    regions being reported in error- and debug messages.
685    
686    ----------------------------------------------------------------------
687    Name: Matthias Blume (blume (at) tti - c (dot) org)
688    Date: 2004/10/08 22:50:00 CDT
689    Tag: blume-20041008-cmkw
690    Description:
691    
692    Fixed handling of keywords in .cm files: After seeing "is" the lexer
693    treats subsequent occurrences of "group", "library", "source", "is",
694    "*", and "-" as ordinary identifiers rather than keywords.
695    
696    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
697    is supposed to accept a tool argument called "source", but this did
698    not work because of the clash with the keyword.
699    
700    ----------------------------------------------------------------------
701    Name: Matthias Blume (blume (at) tti - c (dot) org)
702    Date: 2004/10/07 16:00:00 CDT
703    Tag: blume-20041007-cleanup
704    Description:
705    
706    Assorted cleanup work:
707    
708      - got rid of intstrmap in favor of using the library's
709        hash table implementation
710      - threw out most of the pathnames stuff, as it was not used anyway
711      - simplified tokentable implementation
712      - fixed some minor spelling errors
713    
714    ----------------------------------------------------------------------
715    Name: Matthias Blume (blume (at) tti - c (dot) org)
716    Date: 2004/10/06 15:15:15 CDT
717    Tag: blume-20041006-handler
718    Description:
719    
720    Cleaned up the absyn to reflect the invariant that HANDLE always
721    carries a FNexp as part of the type definition.  This eliminates some
722    superfluous sanity checks at runtime down the road.
723    
724    Some minor cleanup of the btrace code.
725    
726    ----------------------------------------------------------------------
727    Name: Matthias Blume (blume (at) tti - c (dot) org)
728    Date: 2004/10/01 10:20:30 CDT
729    Tag: blume-20041001-slave
730    Description:
731    
732    Added hack to make slave mode work in the presence of the version
733    tool.  (Still, since the master does two passes over the code for
734    CMB.make, the release number gets bumped twice when slaves are
735    attached.  I don't know if this is worth fixing...)
736    
737    ----------------------------------------------------------------------
738    Name: Matthias Blume (blume (at) tti - c (dot) org)
739    Date: 2004/09/30 10:55:00 CDT
740    Tag: blume-20040930-version
741    Description:
742    
743    * Moved the "version" magic into its own little library under
744      src/system/smlnj/internal.  This avoids expensive reconstruction of
745      a stable src/compiler/core.cm.
746    
747    * At the same time, structure CompilerVersion is now known as
748      structure SMLNJVersion.
749    
750    * Arranged for the version tool to NOT kick in when rebuilding the system
751      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
752      Also, loading the versiontool does not work when rebuilding the system
753      because CM is not properly initialized at that time.
754    
755    ----------------------------------------------------------------------
756    Name: Matthias Blume (blume (at) tti - c (dot) org)
757    Date: 2004/09/29 14:00:00 CDT
758    Tag: blume-20040929-autoversion
759    Description:
760    
761    Implemented some CM magic to have
762        file src/compiler/TopLevel/main/version.sml
763    generated automagically.
764    The version is taken from two files: config/version and config/release.
765    The first is expected to contain a two-part version number such as 110.49.
766    The second should contain a single number, but it may be missing.
767    
768    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
769    time the version tool is loaded (which is the first time you say CMB.make),
770    then the tool will increment the value stored in config/release every
771    time CMB.make is invoked.
772    
773    The binfile format is now insensitive to anything beyond the first
774    two components of a version number, so bumping the release does not render
775    binfiles incompatible.  Auto-bumping can be used to keep track of versions
776    during development without invalidating existing binfiles.
777    
778    In any case, every CMB.make updates the date information in version.sml.
779    (This is the date that is printed in the banner.)
780    
781    ----------------------------------------------------------------------
782    Name: Matthias Blume (blume (at) tti - c (dot) org)
783    Date: 2004/09/28 10:53:00 CDT
784    Tag: blume-20040928-controls
785    Description:
786    
787    Some cleanup of the controls code.
788    
789    ----------------------------------------------------------------------
790    Name: Matthias Blume (blume (at) tti - c (dot) org)
791    Date: 2004/09/27 22:08:00 CDT
792    Tag: blume-20040927-controls
793    Description:
794    
795    Added two pieces of functionality to the Controls interface:
796    
797    1.   val save'restore: 'a control -> unit -> unit
798    
799       grabs the current value of the control in stage 1 and restores it
800       in stage 2.
801    
802    2.   val set' : 'a control * 'a -> unit -> unit
803    
804       stores the given value into the control in stage 2 (i.e., delayed)
805       but does all error checking in stage 1.
806       (This is for string controls that need to do parse their argument --
807        something that might fail.  In some cases, notably in CM, one
808        already knows the intended argument but wants to delay the actual
809        assignment until a time when error recovery would be more difficult.)
810    
811    Changed the handling of controls in tool arguments to classes "sml" and
812    "lazysml":
813       - use Controls.save'restore as a more robust way of restoring the
814         old value (in particular: without having to re-parse the string)
815       - use controls to handle the "overload" keyword in the init group
816         (I believe this change actually fixes a long-standing obscure bug.)
817    
818    ----------------------------------------------------------------------
819    Name: Matthias Blume (blume (at) tti - c (dot) org)
820    Date: 2004/09/27 17:00:00 CDT
821    Tag: blume-20040927-lazysml
822    Description:
823    
824    Added a new tool class called "lazysml" to CM's tool chest.  The only
825    difference to "sml" is that compilation is done with Control.lazysml
826    set to true.  A source of class "lazysml" is automatically recognized
827    by a file name suffix of ".lml".
828    
829    In addition to the above feature, the original class "sml" now also
830    supports a tool argument "lazy" which has the same effect.  As a
831    result, the following three lines are equivalent:
832    
833        foo.sml : lazysml
834        foo.sml : sml (lazy)
835        foo.sml (lazy)
836    
837    The setting goes into effect both during parsing and during
838    compilation.  The original setting is restored right after parsing and
839    after compilation, respectively.
840    
841    In addition to all the above, there is also a general mechanism to set
842    ANY of the "controls" that are available at the command line via
843    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
844    apply as well. (In fact, "lazy" is implemented as a special case of
845    the general mechanism.)
846    
847    The .cm file syntax uses a new keyword tool argument called "with".
848    There are several ways of indicating the desired settings:
849    
850        foo.sml (with:parser.quotations=true)
851        foo.sml (with:(name:parser.quotations value:true))
852        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
853        foo.sml (with:(name1=value1 name2=value2 ...))
854        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
855    
856        etc.
857    
858    Another possible abbreviation is to leave out the =v or value:v part
859    if the name refers to a boolean control (in which case the value is
860    taken to be true).  Thus, one could get lazy sml also by saying:
861    
862        foo.sml (with:parser.lazy-keyword=true)
863        foo.sml (with:parser.lazy-keyword)
864        foo.sml (with:(name:parser.lazy-keyword value:true))
865        foo.sml (with:(name:parser.lazy-keyword))
866    
867    ----------------------------------------------------------------------
868    Name: Matthias Blume (blume (at) tti - c (dot) org)
869    Date: 2004/09/24 16:22:00 CDT
870    Tag: blume-20040924-ppc-long-branch
871    Description:
872    
873    Turned message about "emiting long form of branch" off by default.
874    Added a control flag to turn it back on when desired.
875    
876    ----------------------------------------------------------------------
877    Name: Matthias Blume (blume (at) tti - c (dot) org)
878    Date: 2004/09/24 16:05:00 CDT
879    Tag: blume-20040924-rounding
880    Description:
881    
882    Applied patch for setting rounding modes under Mac OS X.  Thanks to
883    Melissa O'Neill for providing the code!
884    
885    ----------------------------------------------------------------------
886    Name: Matthias Blume (blume (at) tti - c (dot) org)
887    Date: 2004/09/23 17:30:00 CDT
888    Tag: blume-20040923-envvars
889    Description:
890    
891    1. Changed definition of type ControlRegistry.registry_tree to
892       include control_info (i.e., the name of the controlling environment
893       variable).
894    
895    2. Added command-line flags -e and -E to print the names of environment
896       variables that can be used to control internal settings.
897       (This uses the new API mentioned in 1.)
898    
899    ----------------------------------------------------------------------
900    Name: Matthias Blume (blume (at) tti - c (dot) org)
901    Date: 2004/09/13 16:50:00 CDT
902    Tag: Release_110_49
903    Description:
904    
905    New working version (110.49).  NEW BOOTFILES!
906    
907    ----------------------------------------------------------------------
908    Name: Matthias Blume
909    Date: 2004/09/13 16:20:00 CDT
910    Tag: blume-20040913-config-mlrisc
911    Description:
912    
913    Put target "mlrisc" back into the default list.
914    (There is no harm in having it, and some users have expressed their
915    wish to have "mlrisc" included by default.)
916    
917    ----------------------------------------------------------------------
918    Name: John Reppy
919    Date: 2004/09/13
920    Tag: jhr-20040913-signals
921    Description:
922    
923    Fixed the signal masking code to properly nest mask/unmask operations
924    on a per-signal basis.
925    
926    ----------------------------------------------------------------------
927    Name: Matthias Blume (blume (at) tti - c (dot) org)
928    Date: 2004/09/08 13:20:00 CDT
929    Tag: blume-20040908-heap-magic
930    Description:
931    
932    Bumped the heap macig number to 0x09082004 to account for the changed
933    layout of the ML frame under MacOS X.
934    
935    ----------------------------------------------------------------------
936    Name: Allen Leung (leunga (at) reservoir (dot) com)
937    Date: 2004/09/03 11:26:00 EST
938    Tag: leunga-20040903-cygwin-install
939    Description:
940    
941       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
942    The Cygwin runtime is turned on by setting the environment
943    variable SMLNJ_CYGWIN_RUNTIME to 1.
944    
945    ----------------------------------------------------------------------
946    Name: Matthias Blume (blume (at) tti - c (dot) org)
947    Date: 2004/08/31 17:15:00 CDT
948    Tag: blume-20040831-core
949    Description:
950    
951    Added some exports to src/compiler/core.cm upon request by J. Joemann.
952    
953    ----------------------------------------------------------------------
954    Name: Matthias Blume (blume (at) tti - c (dot) org)
955    Date: 2004/08/30 17:55:00 CDT
956    Tag: blume-20040830-installer
957    Description:
958    
959    Upon request by Johannes Joemann:
960    
961    - improved ML code of installer to fall back to coping when renaming
962      fails (i.e., when source and target are on different file systems);
963      the code compiles but has yet to be tested in anger
964    - removed mlrisc from list of default targets (config/targets)
965    
966    ----------------------------------------------------------------------
967    Name: Matthias Blume (blume (at) tti - c (dot) org)
968    Date: 2004/08/27 17:20:00 CDT
969    Tag: blume-20040827-ptreql
970    Description:
971    
972    Added ptreql primop to structure InlineT (upon request from Larry
973    Paulson).
974    
975    ----------------------------------------------------------------------
976    Name: Allen Leung (leunga (at) reservoir (dot) com)
977    Date: 2004/08/15 21:21:00 EST
978    Tag: leunga-110_48-udgraph
979    Description:
980    
981    Another bug fix from Carl Hauser:
982    
983    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
984    > 48c48
985    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
986    > e::L)
987    > ---
988    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
989    > Without this, any deletion of an edge in an undirected graph does severe
990    > violence to the graph.
991    
992    ----------------------------------------------------------------------
993    Name: Allen Leung (leunga (at) reservoir (dot) com)
994    Date: 2004/08/10 23:35:00 EST
995    Tag: leunga-110_48-ppc
996    Description:
997    
998       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
999    
1000    ----------------------------------------------------------------------
1001    Name: Matthias Blume (blume (at) tti - c (dot) org)
1002    Date: 2004/08/10 12:00:00 CDT
1003    Tag: Release_110_48
1004    Description:
1005    
1006    New working version (110.48).  NEW BOOTFILES!
1007    
1008    ----------------------------------------------------------------------
1009    Name: Allen Leung (leunga (at) reservoir (dot) com)
1010    Date: 2004/08/09 12:21:00 EST
1011    Tag: leunga-110_47-dijsktra
1012    Description:
1013    
1014    Bug fix from Carl Hauser:
1015    
1016    single_source_shortest_paths in dijkstra.sml was observed to get wrong
1017    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
1018    
1019    The problem is that following the expression A.update(dist,s,Num.zero)
1020    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
1021    
1022    ----------------------------------------------------------------------
1023    Name: Matthias Blume (blume (at) tti - c (dot) org)
1024    Date: 2004/08/06 18:10:00 CDT
1025    Tag: blume-20040806-cmdline
1026    Description:
1027    
1028    Fiddled with handling of command-line options:
1029    
1030      * sml now quits after processing the command line
1031        if -H, -S, -h<n>, or -s<n> appears as the last
1032        command-line argument
1033      * a new option -q terminates the session when encountered on
1034        the command line; subsequent arguments will be ignored
1035      * bug fixes: short (erroneous) arguments are no longer ignored
1036        completely
1037    
1038    ----------------------------------------------------------------------
1039    Name: Allen Leung (leunga (at) reservoir (dot) com)
1040    Date: 2004/08/04 18:17:00 EST
1041    Tag: leunga-110_47-ppc-ibm-asm
1042    Description:
1043    
1044      - Added minimal IBM assembly syntax support for PowerPC.
1045    
1046      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
1047        been altered in the runtime.  We need an automatic way to keep the file
1048        in sync.
1049    
1050    ----------------------------------------------------------------------
1051    Name: Matthias Blume (blume (at) tti - c (dot) org)
1052    Date: 2004/08/04 14:00:00 CDT
1053    Tag: Release_110_47
1054    Description:
1055    
1056    New working version (110.47).  NEW BOOTFILES!
1057    
1058    ----------------------------------------------------------------------
1059    Name: Matthias Blume (blume (at) tti - c (dot) org)
1060    Date: 2004/08/03 14:25:00 CDT
1061    Tag: blume-20040803-callingconv
1062    Description:
1063    
1064    Added low-level support for choosing C calling conventions by
1065    twiddling the type of rawccall.  (See
1066    src/compiler/Semant/types/cproto.sml for details.)
1067    
1068    ----------------------------------------------------------------------
1069    Name: Matthias Blume (blume (at) tti - c (dot) org)
1070    Date: 2004/08/02 15:55:00 CDT
1071    Tag: blume-20040802-backout
1072    Description:
1073    
1074    Backed out of change to win32-filesys.c.  The earlier patch to
1075    get_file_time caused CM to produce files with the wrong time stamp.
1076    
1077    ----------------------------------------------------------------------
1078    Name: Matthias Blume (blume (at) tti - c (dot) org)
1079    Date: 2004/08/02 14:45:00 CDT
1080    Tag: blume-20040802-nlffi-win32
1081    Description:
1082    
1083    Added NLFFI support for Win32, adapted from a patch provided by David
1084    Hansel.  This is currently completely untested.  Also, the issue
1085    concerning stdcall vs. ccall is still unresolved.
1086    
1087    ----------------------------------------------------------------------
1088    Name: Matthias Blume (blume (at) tti - c (dot) org)
1089    Date: 2004/07/30 17:55:00 CDT
1090    Tag: blume-20040730-various
1091    Description:
1092    
1093    Gearing up towards 110.47...
1094    
1095    - various minor bugfixes to ml-nlffigen
1096    - a beginning of a manual for nlffi
1097    
1098    - eliminated 'export name=value' in config/install.sh as this does
1099      not work with certain versions of /bin/sh
1100      (Thanks to David King at Motorola for catching this.)
1101    
1102    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
1103      - added a test for tm==NULL to gmtime.c and localtime.c
1104      - applied patch for incorrect GetFileTime under win32
1105      - toSeconds -> toMilliseconds in Win32/win32-process.sml
1106    
1107    ----------------------------------------------------------------------
1108    Name: Matthias Blume (blume (at) tti - c (dot) org)
1109    Date: 2004/07/21 18:20:00 CDT
1110    Tag: blume-20040721-nlffigen
1111    Description:
1112    
1113    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
1114      for a typedef to an incomplete type, but leave out the "typ" member.
1115      (This is just for consistency.)
1116    - Started to produce what is supposed to become better (i.e., comprehensive)
1117      documentation of what ml-nlffigen does and produces.
1118    
1119    ----------------------------------------------------------------------
1120    Name: Matthias Blume (blume (at) tti - c (dot) org)
1121    Date: 2004/07/14 16:25:00 CDT
1122    Tag: blume-20040714-union
1123    Description:
1124    
1125    Added C_UNION to c-calls/c-types.sml and updated the machinery
1126    (ml-nlffigen, cproto.sml) that conveys C function interface
1127    information to the code generator.
1128    
1129    However, the actual architecture-specific implementation of function
1130    arguments and results that are C unions is still not implemented.
1131    
1132    ----------------------------------------------------------------------
1133    Name: Allen Leung (leunga (at) reservoir (dot) com)
1134    Date: 2004/07/14 14:38:00 EST
1135    Tag: leunga-110_46_1-ppc-lwzu
1136    Description:
1137    
1138        Added these instructions to the PowerPC architecture:
1139        LBZU(X), LHZU(X), LWZU(X),
1140        STWU(X), STFDU, STFSU
1141    
1142        etc...
1143    
1144        Note: I haven't added their instruction encoding into the description.
1145    
1146    ----------------------------------------------------------------------
1147    Name: Allen Leung (leunga (at) reservoir (dot) com)
1148    Date: 2004/07/13 15:04:00 EST
1149    Tag: leunga-110_46_1-ppc-lwarx
1150    Description:
1151    
1152       Added the two instructions LWARX and STWCX to the PowerPC
1153    instruction set.
1154    
1155       A (untested) rewrite of loop-structure.sml.  The old version
1156    is completely broken.
1157    
1158    ----------------------------------------------------------------------
1159    Name: Matthias Blume (blume (at) tti - c (dot) org)
1160    Date: 2004/07/13 13:50:00 CDT
1161    Tag: blume-20040713-nlffi
1162    Description:
1163    
1164    - use paramAlloc to report c-calls with too many arguments
1165      (for PPC version where parameter area is pre-allocated)
1166    - added ccall_maxargspace to machspec (to implement the above)
1167    - made "make" commend in CM's "make" tool configurable
1168    - added option (default: on) for passing the name of the SML/NJ's "bin"
1169      directory to "make"; the call looks like this:
1170    
1171         make <options> SMLNJ_BINDIR=<dir> <target>
1172    
1173      This can be used by the Makefile to, e.g., pick the "right" version
1174      of ml-nlffigen.
1175    - minor code tweaks
1176    
1177    ----------------------------------------------------------------------
1178    Name: Matthias Blume (blume (at) tti - c (dot) org)
1179    Date: 2004/07/12 22:50:00 CDT
1180    Tag: blume-110_46_1-macosx-nlffi
1181    Description:
1182    
1183    NLFFI under Mac OS X now working (sort of).  This is largely untested,
1184    though.
1185    
1186    Note:  1. You have to make a new, clean build of the runtime system.
1187           2. There are new BOOTFILES, you have to use them!
1188              (Doing the bootstrap process yourself would be *very* painful!
1189               If you absolutely have to do it, build the system under
1190               a different architecture and then cross-compile.)
1191    
1192    Version bumped to 110.46.1 to account for runtime data format changes.
1193    
1194    ----------------------------------------------------------------------
1195    Name: Matthias Blume (blume (at) tti - c (dot) org)
1196    Date: 2004/06/18 14:30:00 CDT
1197    Tag: blume-20040618-unix
1198    Description:
1199    
1200    Changed the implementation of structure Unix so that the same stream
1201    is returned every time one of the {text,bin}{In,Out}streamOf functions
1202    is invoked on the same proc.  This is not what the spec currently
1203    says -- although IMO it arguably should.  (See discussion below.)
1204    
1205    ----------------------------------------------------------------------
1206    Name: Matthias Blume (blume (at) tti - c (dot) org)
1207    Date: 2004/06/17 18:15:00 CDT
1208    Tag: Release_110_46
1209    Description:
1210    
1211    New working version (110.46).  NEW BOOTFILES!
1212    
1213    ----------------------------------------------------------------------
1214    Name: Matthias Blume (blume (at) tti - c (dot) org)
1215    Date: 2004/06/17 17:20:00 CDT
1216    Tag: blume-20040617-timer-unix
1217    Description:
1218    
1219    Changed the interface of structures Timer and Unix to match the most
1220    recent Basis spec.
1221    
1222    In the case of Unix there still seems to be an open/weird issue:
1223    
1224       The {text,bin}{In,Out}streamOf functions are supposed to create
1225       fresh streams whenever they are called -- as opposed to have them
1226       return the same stream every time.  This design is supposed to
1227       prevent space leaks caused by proc values hanging on to streams.
1228    
1229       The reap function, on the other hand, is supposed to close the
1230       streams.  This cannot be done without having a handle on the
1231       stream in proc after all...
1232    
1233    I took the liberty to implement the following stopgap solution:
1234    
1235      The proc value hangs on to the most recently created stream(s).
1236      Reap closes those.  If either or both of the two streams hadn't
1237      been created at all yet, then reap will close the corresponding
1238      file descriptors directly.
1239    
1240    PS: I don't understand the original space leak argument anymore.  If
1241    a proc hangs on to the imperative stream, then I/O operations on those
1242    will advance the state of the cached stream and avoid the space leak.
1243    
1244    ----------------------------------------------------------------------
1245    Name: Matthias Blume (blume (at) tti - c (dot) org)
1246    Date: 2004/05/28 16:45:00 CDT
1247    Tag: blume-20040528-basis
1248    Description:
1249    
1250    Added signature PACK_REAL and exported functor PrimIO.
1251    
1252    ----------------------------------------------------------------------
1253    Name: Matthias Blume (blume (at) tti - c (dot) org)
1254    Date: 2004/05/25 16:00:00 CDT
1255    Tag: blume-20040525-group-owner
1256    Description:
1257    
1258    CM now ignores (but still accepts) the "owner" information in group
1259    descriptions.  The owner of a group is its next enclosing
1260    library. Each group must have a unique owner.  (There is a virtual
1261    "toplevel" library that owns groups which are not nested within a real
1262    library.)  Previously, each group had to explicitly declare its owner,
1263    and CM would check that such a declaration is correct.  The new scheme
1264    is to have CM check that for each group there is precisely one owning
1265    library.
1266    
1267    The advantage of the new scheme is that the programmer no longer needs
1268    to maintain the somewhat annoying owner information.  The downside is
1269    that CM cannot enforce the ownership rule across multiple runs of
1270    CM.make.  Fortunately, enclosing the same group in two different
1271    libraries A and B which are not part of the same program does not
1272    cause real problems.
1273    
1274    ----------------------------------------------------------------------
1275    Name: Matthias Blume (blume (at) tti - c (dot) org)
1276    Date: 2004/05/20 16:00:00 CDT
1277    Tag: blume-20040520-win32
1278    Description:
1279    
1280    Made the win32 version work again.  (Strangely, a misplaced comma had
1281    slipped into win32-process.c which prevented the runtime from being
1282    compiled correctly.)
1283    
1284    Also, included a minor addition to ml-build.bat analogous to what was
1285    done in blume-20040519-ml-build.
1286    
1287    ----------------------------------------------------------------------
1288    Name: Matthias Blume (blume (at) tti - c (dot) org)
1289    Date: 2004/05/19 22:10:00 CDT
1290    Tag: blume-20040519-ml-build
1291    Description:
1292    
1293    Arranged for ml-build to clean up after itself a little bit better.
1294    The script generates a temporary SML source file and compiles it using
1295    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
1296    gets rid of those at the end, so they don't accumulate under .cm.
1297    
1298    This required a minor change to install.sh because the name of the
1299    metadata directory (default: .cm) is actually configurable at
1300    installation time.
1301    
1302    ----------------------------------------------------------------------
1303    Name: Matthias Blume (blume (at) tti - c (dot) org)
1304    Date: 2004/05/18 15:50:00 CDT
1305    Tag: blume-20040518-mkreader
1306    Description:
1307    
1308    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
1309    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
1310    
1311    ----------------------------------------------------------------------
1312    Name: Matthias Blume (blume (at) tti - c (dot) org)
1313    Date: 2004/05/11 14:35:00 CDT
1314    Tag: blume-20040511-win32sock
1315    Description:
1316    
1317    Added previously missing support for many socket-related functions
1318    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
1319    for the voluminous patch!
1320    
1321    (I have not tested this patch under win32 yet.)
1322    
1323    Here is David's e-mail:
1324    
1325    Hi,
1326    
1327    Attached to this email you find a diff against sml/nj 110.45
1328    that will enable socket support under Windows.
1329    
1330    To apply the patch (using unix or cygwin)
1331    1) gunzip runtime.diff.gz
1332    2) "cd" into "src/runtime" in the source tree of a fresh
1333       110.45 installation.
1334    3) patch -p 1 < [your/path/to]runtime.diff
1335    
1336    The code compiles fine but has NOT yet been extensively tested.
1337    I only ran a few tests for basic socket client functionality
1338    (which worked fine).  Especially the functions that use ioctl
1339    are not tested at all and might not work (see below).
1340    
1341    I implemented this since we want to move to a newer version of sml/nj
1342    but need socket support in order to use it.  This is the first time I
1343    even had a look at the sml/nj source,  so please review my changes
1344    before making this part of the distribution!  Here are a few issues
1345    that I think might be better for someone to solve who is more
1346    familiar with the sml/nj source (and socket programming):
1347    
1348    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
1349      exception since I could not figure out what the windows equivalent
1350      of these functions is
1351    
1352    - In sockets-osdep.h there are a some #include statements that are
1353      only used in a few files that include sockets-osdep.h
1354    
1355    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
1356      does not process its return value since I don't know how to
1357      report an error upwards.
1358    
1359    - It would probably be good to have a call to WSACleanup() when
1360      the library is unloaded (if there is such a possibility).
1361      Otherwise I think Windows will take care of this automatically
1362      when the process finishes.
1363    
1364    - I used ioctlsocket() as a replacement for ioctl() but I have
1365      no idea if that is actually the proper replacement on Windows.
1366    
1367    - All these issues are marked in the code by "FIXME" comments.
1368    
1369    We use sml/nj extensively in our products and are quite happy
1370    with it.  I hope this contribution will help you.
1371    
1372    Keep up the good work!
1373    
1374    David
1375    
1376    ----------------------------------------------------------------------
1377    Name: Matthias Blume (blume (at) tti - c (dot) org)
1378    Date: 2004/05/11 14:20:00 CDT
1379    Tag: blume-20040511-installml
1380    Description:
1381    
1382    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
1383    the patch.)
1384    
1385    ----------------------------------------------------------------------
1386    Name: Matthias Blume (blume (at) tti - c (dot) org)
1387    Date: 2004/05/11 14:05:00 CDT
1388    Tag: blume-20040511-nlffi-netbsd
1389    Description:
1390    
1391    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
1392    the patch.)
1393    
1394    ----------------------------------------------------------------------
1395    Name: Matthias Blume (blume (at) tti - c (dot) org)
1396    Date: 2004/05/11 12:05:00 CDT
1397    Tag: blume-20040511-exports
1398    Description:
1399    
1400    As per request by Adam Chlipala <adam@hcoop.net>, extended various
1401    export lists in compiler-related .cm-files.
1402    
1403    ----------------------------------------------------------------------
1404    Name: Matthias Blume (blume (at) tti - c (dot) org)
1405    Date: 2004/05/11 11:35:00 CDT
1406    Tag: blume-20040511-allsource
1407    Description:
1408    
1409    The installer now honors the "src-smlnj" target again, although its meaning
1410    has changed from "all sources required for the compiler" to "all sources
1411    the installer knows about".  In other words, if you enable "src-smlnj"
1412    in the "targets" file, then the installer will pull in sources for
1413    everything.  (Notice that this refers to source code only.  Compiled
1414    code is still only installed for modules that were requested explicitly
1415    or which are required for other modules that were requested explicitly.)
1416    
1417    ----------------------------------------------------------------------
1418    Name: Matthias Blume (blume (at) tti - c (dot) org)
1419    Date: 2004/04/23 17:40:00 CDT
1420    Tag: blume-20040423-ieee-scan
1421    Description:
1422    
1423    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
1424    in the exponent calculation we get INF or ZERO (depending on the mantissa
1425    and the sign of the exponent).
1426    
1427    ----------------------------------------------------------------------
1428    Name: Matthias Blume (blume (at) tti - c (dot) org)
1429    Date: 2004/04/23 10:40:00 CDT
1430    Tag: blume-20040423-ml-build
1431    Description:
1432    
1433    The ml-build script now terminates with a non-0 status when something
1434    goes wrong.
1435    
1436    ----------------------------------------------------------------------
1437    Name: Matthias Blume (blume (at) tti - c (dot) org)
1438    Date: 2004/04/22 16:35:00 CDT
1439    Tag: blume-20040422-Option
1440    Description:
1441    
1442    Made exception Option to be the same as exception Option.Option
1443    (as it should be).
1444    
1445    ----------------------------------------------------------------------
1446    Name: Allen Leung (leunga (at) reservoir (dot) com)
1447    Date: 2004/03/19 14:40:00 EST
1448    Tag: leunga-20040319-cygwin-nlffi
1449    Description:
1450    
1451    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
1452    of SML/NJ.  The problem is that
1453    
1454       lib = dlopen(NULL, ...)
1455       f   = dlsym(lib, "malloc");
1456    
1457    does not work on Windows unless we explicitly export symbols
1458    such as 'malloc' during linking.  We fixed this by explicitly
1459    exporting the required symbols with the magic gcc incantation:
1460    
1461        -Wl,--export-all cygwin.def
1462    
1463    where cygwin.def is a file containing all the symbols that
1464    we wish to export.
1465    
1466    I suspect this is a Windows problem and we'll have to
1467    do the same (somehow with windows compilers) when
1468    we build the native win32 version with the system
1469    calls LoadLibrary/GetProcAddress.
1470    
1471    ----------------------------------------------------------------------
1472    Name: Matthias Blume (blume (at) tti - c (dot) org)
1473    Date: 2004/03/04 16:35:00 CST
1474    Tag: blume-20040304-intinf-fmt
1475    Description:
1476    
1477    Fixed problem with IntInf.fmt (sign would show up on the right instead
1478    of on the left for BIN, OCT, and HEX).
1479    
1480    ----------------------------------------------------------------------
1481    Name: Matthias Blume (blume (at) tti - c (dot) org)
1482    Date: 2004/03/04 11:25:00 CST
1483    Tag: blume-20040304-symlinks
1484    Description:
1485    
1486    Fixed problem with installer script (unix only) where bin/ml-yacc and
1487    friends pointed (via symlinks) to absolute locations instead of just
1488    .run-sml.  This was reported by Vesa A Norrman.
1489    
1490    ----------------------------------------------------------------------
1491    Name: Matthias Blume (blume (at) tti - c (dot) org)
1492    Date: 2004/02/13 14:50:00 CST
1493    Tag: Release_110_45
1494    Description:
1495    
1496    New working version (110.45). New bootfiles.
1497    
1498    ----------------------------------------------------------------------
1499    Name: Matthias Blume (blume (at) tti - c (dot) org)
1500    Date: 2004/01/26 15:15:15 CST
1501    Tag: blume-20040126-toplevel
1502    Description:
1503    
1504    Improved handling of exceptions at the interactive toplevel.
1505    
1506    ----------------------------------------------------------------------
1507    Name: Matthias Blume (blume (at) tti - c (dot) org)
1508    Date: 2004/01/26 11:25:00
1509    Tag: blume-20040126-app
1510    Description:
1511    
1512    Type of top-level "app" corrected.
1513    Added code for setting vp_limitPtrMask to Win32-specific runtime.
1514    
1515    ----------------------------------------------------------------------
1516    Name: Matthias Blume (blume (at) tti - c (dot) org)
1517    Date: 2003/11/18 17:10 CST
1518    Tag: blume-20031118-basis-fiddle
1519    Description:
1520    
1521    - changed Timer interface to what might become the spec
1522    - POSIX_FLAGS -> BIT_FLAGS according to spec
1523    - some other minor discrepancies wrt. spec eliminated
1524    
1525    ----------------------------------------------------------------------
1526    Name: Matthias Blume (blume (at) tti - c (dot) org)
1527    Date: 2003/11/06 12:00:00 CST
1528    Tag: Release_110_44
1529    Description:
1530    
1531    New working version (110.44). New bootfiles.
1532    
1533    ----------------------------------------------------------------------
1534    Name: Matthias Blume (blume (at) tti - c (dot) org)
1535    Date: 2003/11/04 11:50:00 CST
1536    Tag: blume-20031104-move-libraries
1537    Description:
1538    
1539    Eliminated the "dont_move_libraries" directive in config/targets.
1540    (The mechanism was broken and could not be fixed easily.  Moreover,
1541    there does not seem to be any reason not to move all libraries into
1542    lib during installation.  I originally implemented this directive as a
1543    backward-compatibility feature when I first introduced the new CM.
1544    Now that things have been stable for a long time and going back to the
1545    old CM is not an option, there is no reason to keep it around.)
1546    
1547    ----------------------------------------------------------------------
1548    Name: Matthias Blume (blume (at) tti - c (dot) org)
1549    Date: 2003/11/03 16:00:00 CST
1550    Tag: blume-20031103-installdir
1551    Description:
1552    
1553    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
1554    Richards for pointing out the problem and providing the solution.)
1555    
1556    ----------------------------------------------------------------------
1557    Name: Matthias Blume (blume (at) tti - c (dot) org)
1558    Date: 2003/10/01 17:05:00 CDT
1559    Tag: blume-20031001-lal-mlrisc
1560    Description:
1561    
1562    MLRISC bug fix from Lal.
1563    
1564    ----------------------------------------------------------------------
1565    Name: Matthias Blume (blume (at) tti - c (dot) org)
1566    Date: 2003/09/30 16:10:00 CDT
1567    Tag: blume-20030930-primio-bat
1568    Description:
1569    
1570    1. Added openVector, nullRd, and nullWr to PRIM_IO.
1571    2. Improved .bat files (for Win32 port) to make things work under Win95.
1572       (thanks to Aaron S. Hawley for this one)
1573    
1574    ----------------------------------------------------------------------
1575    Name: Matthias Blume (blume (at) tti - c (dot) org)
1576    Date: 2003/09/26 16:05:00 CDT
1577    Tag: blume-20030926-wrappriv
1578    Description:
1579    
1580    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
1581    
1582    ----------------------------------------------------------------------
1583    Name: Matthias Blume (blume (at) tti - c (dot) org)
1584    Date: 2003/09/26 15:00:00 CDT
1585    Tag: blume-20030926-110_43_3
1586    Description:
1587    
1588    - additional cleanup
1589    - version number bump, NEW BOOTFILES
1590    
1591    ----------------------------------------------------------------------
1592    Name: Matthias Blume (blume (at) tti - c (dot) org)
1593    Date: 2003/09/26 12:00:00 CDT
1594    Tag: blume-20030926-ppautoload
1595    Description:
1596    
1597    I modified the read-eval-print loop so that the autoloader gets
1598    invoked whenever the prettyprinter tries to look up a symbol that
1599    is not currently defined in the toplevel environment but which
1600    appears in CM's autoload registry.  As a result, we see far fewer of
1601    those ?.Foo.Bar.xxx names in the prettyprinter's output.
1602    
1603    In addition to this I tried to clean up some pieces of the Basis
1604    implementation (e.g., Socket, Word8Array) in order to prevent other
1605    instances of these ?.Foo.Bar.xxx names from being printed.
1606    
1607    The mechanism that picks names for types still needs some work, though.
1608    (Right now it seems that if there is a type A.t which is defined to
1609    be B.u, but B is unavailable at toplevel, then A.t gets printed as
1610    "?.B.u" although the perhaps more sensible solution would be to use
1611    "A.t" in this case.  In other words, the prettyprinter should follow
1612    a chain of DEFtycs not farther than there are corresponding toplevel
1613    names in the current environment.)
1614    
1615    ----------------------------------------------------------------------
1616    Name: Matthias Blume (blume (at) tti - c (dot) org)
1617    Date: 2003/09/24 16:31:00 CDT
1618    Tag: blume-20030924-installer
1619    Description:
1620    
1621    Another installer tweak:  All the ML code for the installer is now
1622    compiled during CMB.make and put into a little library called
1623    $smlnj/installer.cm.  The installation then simply invokes
1624    
1625       sml -m $smlnj/installer.cm
1626    
1627    and everything happens automagically.
1628    
1629    Win32:  ML code senses value of environment variable SMLNJ_HOME.
1630    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
1631            and BINDIR.
1632    
1633    The new scheme guarantees that the ML code responsible for the installation
1634    is in sync with the APIs of the main system.  Also, the installer is
1635    somewhat faster because the installer script is precompiled.
1636    
1637    ----------------------------------------------------------------------
1638  Name: Matthias Blume (blume (at) tti - c (dot) org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
1639  Date: 2003/09/24 15:35:00 CDT  Date: 2003/09/24 15:35:00 CDT
1640  Tag: blume-20030924-synsock  Tag: blume-20030924-synsock

Legend:
Removed from v.1390  
changed lines
  Added in v.1807

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