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

revision 1375, Mon Sep 15 22:44:08 2003 UTC revision 1662, Sun Oct 24 17:56:50 2004 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Allen Leung (leunga (at) reservoir (dot) com)
17    Date: 2004/10/24 14:00:00 EST
18    Tag: leunga-20041024-x86-gas-fucomip
19    Description:
20    
21       John discovered a bug in the syntax of fucomip.
22       The opcodes FU?COMIP? have been changed to
23    
24           fu?comip? %st(i), %st
25    
26    ----------------------------------------------------------------------
27    Name: Matthias Blume (blume (at) tti - c (dot) org)
28    Date: 2004/10/20 15:06:00 CDT
29    Tag: blume-20041020-standalone-backtrace
30    Description:
31    
32    Added a mechanism for getting back-trace information from standalone
33    programs.  Here is how it works:
34    
35       1. The part of the program from which you want to get backtrace
36          information (usually the whole program) should be wrapped with
37          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
38          main program could be modified from something like
39    
40             fun main (pgm, args) = ...
41    
42         to
43    
44            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
45    
46       2. To be able to access BackTrace.monitor, you have to add
47          library $smlnj-tdp/plugins.cm to the .cm file that contains your
48          main function.
49    
50       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
51          CM might have created in the past for your project).
52    
53       4. Build the system using this command line:
54    
55             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
56                      myprog.cm MyProg.main myprog
57    
58          instead of the usual
59    
60             ml-build myprog.cm MyProg.main myprog
61    
62    I changed a library name:
63    
64       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
65    
66    New libraries:
67    
68       $smlnj-tdp/back-trace.cm
69          -- when loaded causes the back-trace plugin to be installed
70       $smlnj-tdp/coverage.cm
71          -- when loaded causes the coverage plugin to be installed
72    
73    ----------------------------------------------------------------------
74    Name: Matthias Blume (blume (at) tti - c (dot) org)
75    Date: 2004/10/18 16:45:00 CDT
76    Tag: blume-20041018-groupowner
77    Description:
78    
79    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
80    
81    Eliminated group owner specs from .cm files throughout the source tree.
82    
83    ----------------------------------------------------------------------
84    Name: Matthias Blume (blume (at) tti - c (dot) org)
85    Date: 2004/10/15 15:45:00 CDT
86    Tag: blume-20041015-coverage
87    Description:
88    
89    * Test coverage tool added!
90    * Further reorganization of tracing-, debugging-, and profiling support:
91    
92        - moved original BTImp -- now called BackTrace -- into a separate
93          library called $/trace-debug-profile.cm
94        - eliminated all mentions of BTrace from SMLofNJ.Internals
95        - only the instrumentation mechanism is now left in the compiler proper
96        - BackTrace module is a plugin which is NOT plugged in by default
97        - Coverage module is another such plugin
98    
99    To get the benefits of any of these plugin modules, the code in
100    question must be compiled with tdp instrumentation turned on.  This
101    can be done by setting SMLofNJ.Internals.TDP.mode to true.
102    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
103    
104    Plugins are selected at link time.  (Pre-compiled instrumented code
105    can be re-loaded with different plugins in effect.)  When an
106    instrumented module is linked, whatever plugins are at that time
107    enabled will come into effect for that module.
108    
109    To enable the back-trace plugin, load library $/trace-debug-profile.cm
110    and invoke BackTrace.install() (e.g., from the interactive prompt).
111    To enable the coverage plugin, load the same library and invoke
112    Coverage.install().
113    
114    Back-traces are generated automatically on uncaught exceptions and
115    when the code in question explicitly invokes BackTrace.trigger().
116    
117    Coverage (and execution frequency-) information must be queried
118    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
119    
120    ----------------------------------------------------------------------
121    Name: Matthias Blume (blume (at) tti - c (dot) org)
122    Date: 2004/10/14 17:40:00 CDT
123    Tag: blume-20041014-tdp-core
124    Description:
125    
126    Snapshot of a significant overhaul of how the trace/debug/profile support
127    is hooked into the system (specifically: Core and SMLofNJ.Internals).
128    
129    ----------------------------------------------------------------------
130    Name: Matthias Blume (blume (at) tti - c (dot) org)
131    Date: 2004/10/13 16:34:00 CDT
132    Tag: blume-20041013-tdp
133    Description:
134    
135    Some rationalization of names:
136    
137       structure BTrace -> structure TDPInstrument
138       etc.
139    
140    This is is preparation of using the original back-trace
141    instrumentation for other purposes.  "TDP" stands for
142    Trace/Debug/Profile.
143    
144    The control flag controlling whether instrumentation is on or off is now
145    registered under a different name, so instead of running sml as
146    
147     sml -Cinstrument.btrace-mode=true
148    
149    one has to say
150    
151     sml -Ctdp.instrument=true
152    
153    ----------------------------------------------------------------------
154    Name: Matthias Blume (blume (at) tti - c (dot) org)
155    Date: 2004/10/11 16:37:00 CDT
156    Tag: blume-20041011-regions
157    Description:
158    
159    Made some minor modifications to elabcore.sml to have source regions
160    be propagated more tightly -- resulting in better (i.e., smaller)
161    regions being reported in error- and debug messages.
162    
163    ----------------------------------------------------------------------
164    Name: Matthias Blume (blume (at) tti - c (dot) org)
165    Date: 2004/10/08 22:50:00 CDT
166    Tag: blume-20041008-cmkw
167    Description:
168    
169    Fixed handling of keywords in .cm files: After seeing "is" the lexer
170    treats subsequent occurrences of "group", "library", "source", "is",
171    "*", and "-" as ordinary identifiers rather than keywords.
172    
173    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
174    is supposed to accept a tool argument called "source", but this did
175    not work because of the clash with the keyword.
176    
177    ----------------------------------------------------------------------
178    Name: Matthias Blume (blume (at) tti - c (dot) org)
179    Date: 2004/10/07 16:00:00 CDT
180    Tag: blume-20041007-cleanup
181    Description:
182    
183    Assorted cleanup work:
184    
185      - got rid of intstrmap in favor of using the library's
186        hash table implementation
187      - threw out most of the pathnames stuff, as it was not used anyway
188      - simplified tokentable implementation
189      - fixed some minor spelling errors
190    
191    ----------------------------------------------------------------------
192    Name: Matthias Blume (blume (at) tti - c (dot) org)
193    Date: 2004/10/06 15:15:15 CDT
194    Tag: blume-20041006-handler
195    Description:
196    
197    Cleaned up the absyn to reflect the invariant that HANDLE always
198    carries a FNexp as part of the type definition.  This eliminates some
199    superfluous sanity checks at runtime down the road.
200    
201    Some minor cleanup of the btrace code.
202    
203    ----------------------------------------------------------------------
204    Name: Matthias Blume (blume (at) tti - c (dot) org)
205    Date: 2004/10/01 10:20:30 CDT
206    Tag: blume-20041001-slave
207    Description:
208    
209    Added hack to make slave mode work in the presence of the version
210    tool.  (Still, since the master does two passes over the code for
211    CMB.make, the release number gets bumped twice when slaves are
212    attached.  I don't know if this is worth fixing...)
213    
214    ----------------------------------------------------------------------
215    Name: Matthias Blume (blume (at) tti - c (dot) org)
216    Date: 2004/09/30 10:55:00 CDT
217    Tag: blume-20040930-version
218    Description:
219    
220    * Moved the "version" magic into its own little library under
221    src/system/smlnj/internal.  This avoids expensive reconstruction
222    of a stable src/compiler/core.cm.
223    
224    * At the same time, structure CompilerVersion is now known as structure
225    SMLNJVersion.
226    
227    * Arranged for the version tool to NOT kick in when rebuilding the system
228      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
229      Also, loading the versiontool does not work when rebuilding the system
230      because CM is not properly initialized at that time.
231    
232    ----------------------------------------------------------------------
233    Name: Matthias Blume (blume (at) tti - c (dot) org)
234    Date: 2004/09/29 14:00:00 CDT
235    Tag: blume-20040929-autoversion
236    Description:
237    
238    Implemented some CM magic to have
239        file src/compiler/TopLevel/main/version.sml
240    generated automagically.
241    The version is taken from two files: config/version and config/release.
242    The first is expected to contain a two-part version number such as 110.49.
243    The second should contain a single number, but it may be missing.
244    
245    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
246    time the version tool is loaded (which is the first time you say CMB.make),
247    then the tool will increment the value stored in config/release every
248    time CMB.make is invoked.
249    
250    The binfile format is now insensitive to anything beyond the first
251    two components of a version number, so bumping the release does not render
252    binfiles incompatible.  Auto-bumping can be used to keep track of versions
253    during development without invalidating existing binfiles.
254    
255    In any case, every CMB.make updates the date information in version.sml.
256    (This is the date that is printed in the banner.)
257    
258    ----------------------------------------------------------------------
259    Name: Matthias Blume (blume (at) tti - c (dot) org)
260    Date: 2004/09/28 10:53:00 CDT
261    Tag: blume-20040928-controls
262    Description:
263    
264    Some cleanup of the controls code.
265    
266    ----------------------------------------------------------------------
267    Name: Matthias Blume (blume (at) tti - c (dot) org)
268    Date: 2004/09/27 22:08:00 CDT
269    Tag: blume-20040927-controls
270    Description:
271    
272    Added two pieces of functionality to the Controls interface:
273    
274    1.   val save'restore: 'a control -> unit -> unit
275    
276       grabs the current value of the control in stage 1 and restores it
277       in stage 2.
278    
279    2.   val set' : 'a control * 'a -> unit -> unit
280    
281       stores the given value into the control in stage 2 (i.e., delayed)
282       but does all error checking in stage 1.
283       (This is for string controls that need to do parse their argument --
284        something that might fail.  In some cases, notably in CM, one
285        already knows the intended argument but wants to delay the actual
286        assignment until a time when error recovery would be more difficult.)
287    
288    Changed the handling of controls in tool arguments to classes "sml" and
289    "lazysml":
290       - use Controls.save'restore as a more robust way of restoring the
291         old value (in particular: without having to re-parse the string)
292       - use controls to handle the "overload" keyword in the init group
293         (I believe this change actually fixes a long-standing obscure bug.)
294    
295    ----------------------------------------------------------------------
296    Name: Matthias Blume (blume (at) tti - c (dot) org)
297    Date: 2004/09/27 17:00:00 CDT
298    Tag: blume-20040927-lazysml
299    Description:
300    
301    Added a new tool class called "lazysml" to CM's tool chest.  The only
302    difference to "sml" is that compilation is done with Control.lazysml
303    set to true.  A source of class "lazysml" is automatically recognized
304    by a file name suffix of ".lml".
305    
306    In addition to the above feature, the original class "sml" now also
307    supports a tool argument "lazy" which has the same effect.  As a
308    result, the following three lines are equivalent:
309    
310        foo.sml : lazysml
311        foo.sml : sml (lazy)
312        foo.sml (lazy)
313    
314    The setting goes into effect both during parsing and during
315    compilation.  The original setting is restored right after parsing and
316    after compilation, respectively.
317    
318    In addition to all the above, there is also a general mechanism to set
319    ANY of the "controls" that are available at the command line via
320    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
321    apply as well. (In fact, "lazy" is implemented as a special case of
322    the general mechanism.)
323    
324    The .cm file syntax uses a new keyword tool argument called "with".
325    There are several ways of indicating the desired settings:
326    
327        foo.sml (with:parser.quotations=true)
328        foo.sml (with:(name:parser.quotations value:true))
329        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
330        foo.sml (with:(name1=value1 name2=value2 ...))
331        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
332    
333        etc.
334    
335    Another possible abbreviation is to leave out the =v or value:v part
336    if the name refers to a boolean control (in which case the value is
337    taken to be true).  Thus, one could get lazy sml also by saying:
338    
339        foo.sml (with:parser.lazy-keyword=true)
340        foo.sml (with:parser.lazy-keyword)
341        foo.sml (with:(name:parser.lazy-keyword value:true))
342        foo.sml (with:(name:parser.lazy-keyword))
343    
344    ----------------------------------------------------------------------
345    Name: Matthias Blume (blume (at) tti - c (dot) org)
346    Date: 2004/09/24 16:22:00 CDT
347    Tag: blume-20040924-ppc-long-branch
348    Description:
349    
350    Turned message about "emiting long form of branch" off by default.
351    Added a control flag to turn it back on when desired.
352    
353    ----------------------------------------------------------------------
354    Name: Matthias Blume (blume (at) tti - c (dot) org)
355    Date: 2004/09/24 16:05:00 CDT
356    Tag: blume-20040924-rounding
357    Description:
358    
359    Applied patch for setting rounding modes under Mac OS X.  Thanks to
360    Melissa O'Neill for providing the code!
361    
362    ----------------------------------------------------------------------
363    Name: Matthias Blume (blume (at) tti - c (dot) org)
364    Date: 2004/09/23 17:30:00 CDT
365    Tag: blume-20040923-envvars
366    Description:
367    
368    1. Changed definition of type ControlRegistry.registry_tree to
369       include control_info (i.e., the name of the controlling environment
370       variable).
371    
372    2. Added command-line flags -e and -E to print the names of environment
373       variables that can be used to control internal settings.
374       (This uses the new API mentioned in 1.)
375    
376    ----------------------------------------------------------------------
377    Name: Matthias Blume (blume (at) tti - c (dot) org)
378    Date: 2004/09/13 16:50:00 CDT
379    Tag: Release_110_49
380    Description:
381    
382    New working version (110.49).  NEW BOOTFILES!
383    
384    ----------------------------------------------------------------------
385    Name: Matthias Blume
386    Date: 2004/09/13 16:20:00 CDT
387    Tag: blume-20040913-config-mlrisc
388    Description:
389    
390    Put target "mlrisc" back into the default list.
391    (There is no harm in having it, and some users have expressed their
392    wish to have "mlrisc" included by default.)
393    
394    ----------------------------------------------------------------------
395    Name: John Reppy
396    Date: 2004/09/13
397    Tag: jhr-20040913-signals
398    Description:
399    
400    Fixed the signal masking code to properly nest mask/unmask operations
401    on a per-signal basis.
402    
403    ----------------------------------------------------------------------
404    Name: Matthias Blume (blume (at) tti - c (dot) org)
405    Date: 2004/09/08 13:20:00 CDT
406    Tag: blume-20040908-heap-magic
407    Description:
408    
409    Bumped the heap macig number to 0x09082004 to account for the changed
410    layout of the ML frame under MacOS X.
411    
412    ----------------------------------------------------------------------
413    Name: Allen Leung (leunga (at) reservoir (dot) com)
414    Date: 2004/09/03 11:26:00 EST
415    Tag: leunga-20040903-cygwin-install
416    Description:
417    
418       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
419    The Cygwin runtime is turned on by setting the environment
420    variable SMLNJ_CYGWIN_RUNTIME to 1.
421    
422    ----------------------------------------------------------------------
423    Name: Matthias Blume (blume (at) tti - c (dot) org)
424    Date: 2004/08/31 17:15:00 CDT
425    Tag: blume-20040831-core
426    Description:
427    
428    Added some exports to src/compiler/core.cm upon request by J. Joemann.
429    
430    ----------------------------------------------------------------------
431    Name: Matthias Blume (blume (at) tti - c (dot) org)
432    Date: 2004/08/30 17:55:00 CDT
433    Tag: blume-20040830-installer
434    Description:
435    
436    Upon request by Johannes Joemann:
437    
438    - improved ML code of installer to fall back to coping when renaming
439      fails (i.e., when source and target are on different file systems);
440      the code compiles but has yet to be tested in anger
441    - removed mlrisc from list of default targets (config/targets)
442    
443    ----------------------------------------------------------------------
444    Name: Matthias Blume (blume (at) tti - c (dot) org)
445    Date: 2004/08/27 17:20:00 CDT
446    Tag: blume-20040827-ptreql
447    Description:
448    
449    Added ptreql primop to structure InlineT (upon request from Larry
450    Paulson).
451    
452    ----------------------------------------------------------------------
453    Name: Allen Leung (leunga (at) reservoir (dot) com)
454    Date: 2004/08/15 21:21:00 EST
455    Tag: leunga-110_48-udgraph
456    Description:
457    
458    Another bug fix from Carl Hauser:
459    
460    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
461    > 48c48
462    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
463    > e::L)
464    > ---
465    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
466    > Without this, any deletion of an edge in an undirected graph does severe
467    > violence to the graph.
468    
469    ----------------------------------------------------------------------
470    Name: Allen Leung (leunga (at) reservoir (dot) com)
471    Date: 2004/08/10 23:35:00 EST
472    Tag: leunga-110_48-ppc
473    Description:
474    
475       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
476    
477    ----------------------------------------------------------------------
478    Name: Matthias Blume (blume (at) tti - c (dot) org)
479    Date: 2004/08/10 12:00:00 CDT
480    Tag: Release_110_48
481    Description:
482    
483    New working version (110.48).  NEW BOOTFILES!
484    
485    ----------------------------------------------------------------------
486    Name: Allen Leung (leunga (at) reservoir (dot) com)
487    Date: 2004/08/09 12:21:00 EST
488    Tag: leunga-110_47-dijsktra
489    Description:
490    
491    Bug fix from Carl Hauser:
492    
493    single_source_shortest_paths in dijkstra.sml was observed to get wrong
494    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
495    
496    The problem is that following the expression A.update(dist,s,Num.zero)
497    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
498    
499    ----------------------------------------------------------------------
500    Name: Matthias Blume (blume (at) tti - c (dot) org)
501    Date: 2004/08/06 18:10:00 CDT
502    Tag: blume-20040806-cmdline
503    Description:
504    
505    Fiddled with handling of command-line options:
506    
507      * sml now quits after processing the command line
508        if -H, -S, -h<n>, or -s<n> appears as the last
509        command-line argument
510      * a new option -q terminates the session when encountered on
511        the command line; subsequent arguments will be ignored
512      * bug fixes: short (erroneous) arguments are no longer ignored
513        completely
514    
515    ----------------------------------------------------------------------
516    Name: Allen Leung (leunga (at) reservoir (dot) com)
517    Date: 2004/08/04 18:17:00 EST
518    Tag: leunga-110_47-ppc-ibm-asm
519    Description:
520    
521      - Added minimal IBM assembly syntax support for PowerPC.
522    
523      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
524        been altered in the runtime.  We need an automatic way to keep the file
525        in sync.
526    
527    ----------------------------------------------------------------------
528    Name: Matthias Blume (blume (at) tti - c (dot) org)
529    Date: 2004/08/04 14:00:00 CDT
530    Tag: Release_110_47
531    Description:
532    
533    New working version (110.47).  NEW BOOTFILES!
534    
535    ----------------------------------------------------------------------
536    Name: Matthias Blume (blume (at) tti - c (dot) org)
537    Date: 2004/08/03 14:25:00 CDT
538    Tag: blume-20040803-callingconv
539    Description:
540    
541    Added low-level support for choosing C calling conventions by
542    twiddling the type of rawccall.  (See
543    src/compiler/Semant/types/cproto.sml for details.)
544    
545    ----------------------------------------------------------------------
546    Name: Matthias Blume (blume (at) tti - c (dot) org)
547    Date: 2004/08/02 15:55:00 CDT
548    Tag: blume-20040802-backout
549    Description:
550    
551    Backed out of change to win32-filesys.c.  The earlier patch to
552    get_file_time caused CM to produce files with the wrong time stamp.
553    
554    ----------------------------------------------------------------------
555    Name: Matthias Blume (blume (at) tti - c (dot) org)
556    Date: 2004/08/02 14:45:00 CDT
557    Tag: blume-20040802-nlffi-win32
558    Description:
559    
560    Added NLFFI support for Win32, adapted from a patch provided by David
561    Hansel.  This is currently completely untested.  Also, the issue
562    concerning stdcall vs. ccall is still unresolved.
563    
564    ----------------------------------------------------------------------
565    Name: Matthias Blume (blume (at) tti - c (dot) org)
566    Date: 2004/07/30 17:55:00 CDT
567    Tag: blume-20040730-various
568    Description:
569    
570    Gearing up towards 110.47...
571    
572    - various minor bugfixes to ml-nlffigen
573    - a beginning of a manual for nlffi
574    
575    - eliminated 'export name=value' in config/install.sh as this does
576      not work with certain versions of /bin/sh
577      (Thanks to David King at Motorola for catching this.)
578    
579    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
580      - added a test for tm==NULL to gmtime.c and localtime.c
581      - applied patch for incorrect GetFileTime under win32
582      - toSeconds -> toMilliseconds in Win32/win32-process.sml
583    
584    ----------------------------------------------------------------------
585    Name: Matthias Blume (blume (at) tti - c (dot) org)
586    Date: 2004/07/21 18:20:00 CDT
587    Tag: blume-20040721-nlffigen
588    Description:
589    
590    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
591      for a typedef to an incomplete type, but leave out the "typ" member.
592      (This is just for consistency.)
593    - Started to produce what is supposed to become better (i.e., comprehensive)
594      documentation of what ml-nlffigen does and produces.
595    
596    ----------------------------------------------------------------------
597    Name: Matthias Blume (blume (at) tti - c (dot) org)
598    Date: 2004/07/14 16:25:00 CDT
599    Tag: blume-20040714-union
600    Description:
601    
602    Added C_UNION to c-calls/c-types.sml and updated the machinery
603    (ml-nlffigen, cproto.sml) that conveys C function interface
604    information to the code generator.
605    
606    However, the actual architecture-specific implementation of function
607    arguments and results that are C unions is still not implemented.
608    
609    ----------------------------------------------------------------------
610    Name: Allen Leung (leunga (at) reservoir (dot) com)
611    Date: 2004/07/14 14:38:00 EST
612    Tag: leunga-110_46_1-ppc-lwzu
613    Description:
614    
615        Added these instructions to the PowerPC architecture:
616        LBZU(X), LHZU(X), LWZU(X),
617        STWU(X), STFDU, STFSU
618    
619        etc...
620    
621        Note: I haven't added their instruction encoding into the description.
622    
623    ----------------------------------------------------------------------
624    Name: Allen Leung (leunga (at) reservoir (dot) com)
625    Date: 2004/07/13 15:04:00 EST
626    Tag: leunga-110_46_1-ppc-lwarx
627    Description:
628    
629       Added the two instructions LWARX and STWCX to the PowerPC
630    instruction set.
631    
632       A (untested) rewrite of loop-structure.sml.  The old version
633    is completely broken.
634    
635    ----------------------------------------------------------------------
636    Name: Matthias Blume (blume (at) tti - c (dot) org)
637    Date: 2004/07/13 13:50:00 CDT
638    Tag: blume-20040713-nlffi
639    Description:
640    
641    - use paramAlloc to report c-calls with too many arguments
642      (for PPC version where parameter area is pre-allocated)
643    - added ccall_maxargspace to machspec (to implement the above)
644    - made "make" commend in CM's "make" tool configurable
645    - added option (default: on) for passing the name of the SML/NJ's "bin"
646      directory to "make"; the call looks like this:
647    
648         make <options> SMLNJ_BINDIR=<dir> <target>
649    
650      This can be used by the Makefile to, e.g., pick the "right" version
651      of ml-nlffigen.
652    - minor code tweaks
653    
654    ----------------------------------------------------------------------
655    Name: Matthias Blume (blume (at) tti - c (dot) org)
656    Date: 2004/07/12 22:50:00 CDT
657    Tag: blume-110_46_1-macosx-nlffi
658    Description:
659    
660    NLFFI under Mac OS X now working (sort of).  This is largely untested,
661    though.
662    
663    Note:  1. You have to make a new, clean build of the runtime system.
664           2. There are new BOOTFILES, you have to use them!
665              (Doing the bootstrap process yourself would be *very* painful!
666               If you absolutely have to do it, build the system under
667               a different architecture and then cross-compile.)
668    
669    Version bumped to 110.46.1 to account for runtime data format changes.
670    
671    ----------------------------------------------------------------------
672    Name: Matthias Blume (blume (at) tti - c (dot) org)
673    Date: 2004/06/18 14:30:00 CDT
674    Tag: blume-20040618-unix
675    Description:
676    
677    Changed the implementation of structure Unix so that the same stream
678    is returned every time one of the {text,bin}{In,Out}streamOf functions
679    is invoked on the same proc.  This is not what the spec currently
680    says -- although IMO it arguably should.  (See discussion below.)
681    
682    ----------------------------------------------------------------------
683    Name: Matthias Blume (blume (at) tti - c (dot) org)
684    Date: 2004/06/17 18:15:00 CDT
685    Tag: Release_110_46
686    Description:
687    
688    New working version (110.46).  NEW BOOTFILES!
689    
690    ----------------------------------------------------------------------
691    Name: Matthias Blume (blume (at) tti - c (dot) org)
692    Date: 2004/06/17 17:20:00 CDT
693    Tag: blume-20040617-timer-unix
694    Description:
695    
696    Changed the interface of structures Timer and Unix to match the most
697    recent Basis spec.
698    
699    In the case of Unix there still seems to be an open/weird issue:
700    
701       The {text,bin}{In,Out}streamOf functions are supposed to create
702       fresh streams whenever they are called -- as opposed to have them
703       return the same stream every time.  This design is supposed to
704       prevent space leaks caused by proc values hanging on to streams.
705    
706       The reap function, on the other hand, is supposed to close the
707       streams.  This cannot be done without having a handle on the
708       stream in proc after all...
709    
710    I took the liberty to implement the following stopgap solution:
711    
712      The proc value hangs on to the most recently created stream(s).
713      Reap closes those.  If either or both of the two streams hadn't
714      been created at all yet, then reap will close the corresponding
715      file descriptors directly.
716    
717    PS: I don't understand the original space leak argument anymore.  If
718    a proc hangs on to the imperative stream, then I/O operations on those
719    will advance the state of the cached stream and avoid the space leak.
720    
721    ----------------------------------------------------------------------
722    Name: Matthias Blume (blume (at) tti - c (dot) org)
723    Date: 2004/05/28 16:45:00 CDT
724    Tag: blume-20040528-basis
725    Description:
726    
727    Added signature PACK_REAL and exported functor PrimIO.
728    
729    ----------------------------------------------------------------------
730    Name: Matthias Blume (blume (at) tti - c (dot) org)
731    Date: 2004/05/25 16:00:00 CDT
732    Tag: blume-20040525-group-owner
733    Description:
734    
735    CM now ignores (but still accepts) the "owner" information in group
736    descriptions.  The owner of a group is its next enclosing
737    library. Each group must have a unique owner.  (There is a virtual
738    "toplevel" library that owns groups which are not nested within a real
739    library.)  Previously, each group had to explicitly declare its owner,
740    and CM would check that such a declaration is correct.  The new scheme
741    is to have CM check that for each group there is precisely one owning
742    library.
743    
744    The advantage of the new scheme is that the programmer no longer needs
745    to maintain the somewhat annoying owner information.  The downside is
746    that CM cannot enforce the ownership rule across multiple runs of
747    CM.make.  Fortunately, enclosing the same group in two different
748    libraries A and B which are not part of the same program does not
749    cause real problems.
750    
751    ----------------------------------------------------------------------
752    Name: Matthias Blume (blume (at) tti - c (dot) org)
753    Date: 2004/05/20 16:00:00 CDT
754    Tag: blume-20040520-win32
755    Description:
756    
757    Made the win32 version work again.  (Strangely, a misplaced comma had
758    slipped into win32-process.c which prevented the runtime from being
759    compiled correctly.)
760    
761    Also, included a minor addition to ml-build.bat analogous to what was
762    done in blume-20040519-ml-build.
763    
764    ----------------------------------------------------------------------
765    Name: Matthias Blume (blume (at) tti - c (dot) org)
766    Date: 2004/05/19 22:10:00 CDT
767    Tag: blume-20040519-ml-build
768    Description:
769    
770    Arranged for ml-build to clean up after itself a little bit better.
771    The script generates a temporary SML source file and compiles it using
772    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
773    gets rid of those at the end, so they don't accumulate under .cm.
774    
775    This required a minor change to install.sh because the name of the
776    metadata directory (default: .cm) is actually configurable at
777    installation time.
778    
779    ----------------------------------------------------------------------
780    Name: Matthias Blume (blume (at) tti - c (dot) org)
781    Date: 2004/05/18 15:50:00 CDT
782    Tag: blume-20040518-mkreader
783    Description:
784    
785    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
786    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
787    
788    ----------------------------------------------------------------------
789    Name: Matthias Blume (blume (at) tti - c (dot) org)
790    Date: 2004/05/11 14:35:00 CDT
791    Tag: blume-20040511-win32sock
792    Description:
793    
794    Added previously missing support for many socket-related functions
795    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
796    for the voluminous patch!
797    
798    (I have not tested this patch under win32 yet.)
799    
800    Here is David's e-mail:
801    
802    Hi,
803    
804    Attached to this email you find a diff against sml/nj 110.45
805    that will enable socket support under Windows.
806    
807    To apply the patch (using unix or cygwin)
808    1) gunzip runtime.diff.gz
809    2) "cd" into "src/runtime" in the source tree of a fresh
810       110.45 installation.
811    3) patch -p 1 < [your/path/to]runtime.diff
812    
813    The code compiles fine but has NOT yet been extensively tested.
814    I only ran a few tests for basic socket client functionality
815    (which worked fine).  Especially the functions that use ioctl
816    are not tested at all and might not work (see below).
817    
818    I implemented this since we want to move to a newer version of sml/nj
819    but need socket support in order to use it.  This is the first time I
820    even had a look at the sml/nj source,  so please review my changes
821    before making this part of the distribution!  Here are a few issues
822    that I think might be better for someone to solve who is more
823    familiar with the sml/nj source (and socket programming):
824    
825    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
826      exception since I could not figure out what the windows equivalent
827      of these functions is
828    
829    - In sockets-osdep.h there are a some #include statements that are
830      only used in a few files that include sockets-osdep.h
831    
832    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
833      does not process its return value since I don't know how to
834      report an error upwards.
835    
836    - It would probably be good to have a call to WSACleanup() when
837      the library is unloaded (if there is such a possibility).
838      Otherwise I think Windows will take care of this automatically
839      when the process finishes.
840    
841    - I used ioctlsocket() as a replacement for ioctl() but I have
842      no idea if that is actually the proper replacement on Windows.
843    
844    - All these issues are marked in the code by "FIXME" comments.
845    
846    We use sml/nj extensively in our products and are quite happy
847    with it.  I hope this contribution will help you.
848    
849    Keep up the good work!
850    
851    David
852    
853    ----------------------------------------------------------------------
854    Name: Matthias Blume (blume (at) tti - c (dot) org)
855    Date: 2004/05/11 14:20:00 CDT
856    Tag: blume-20040511-installml
857    Description:
858    
859    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
860    the patch.)
861    
862    ----------------------------------------------------------------------
863    Name: Matthias Blume (blume (at) tti - c (dot) org)
864    Date: 2004/05/11 14:05:00 CDT
865    Tag: blume-20040511-nlffi-netbsd
866    Description:
867    
868    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
869    the patch.)
870    
871    ----------------------------------------------------------------------
872    Name: Matthias Blume (blume (at) tti - c (dot) org)
873    Date: 2004/05/11 12:05:00 CDT
874    Tag: blume-20040511-exports
875    Description:
876    
877    As per request by Adam Chlipala <adam@hcoop.net>, extended various
878    export lists in compiler-related .cm-files.
879    
880    ----------------------------------------------------------------------
881    Name: Matthias Blume (blume (at) tti - c (dot) org)
882    Date: 2004/05/11 11:35:00 CDT
883    Tag: blume-20040511-allsource
884    Description:
885    
886    The installer now honors the "src-smlnj" target again, although its meaning
887    has changed from "all sources required for the compiler" to "all sources
888    the installer knows about".  In other words, if you enable "src-smlnj"
889    in the "targets" file, then the installer will pull in sources for
890    everything.  (Notice that this refers to source code only.  Compiled
891    code is still only installed for modules that were requested explicitly
892    or which are required for other modules that were requested explicitly.)
893    
894    ----------------------------------------------------------------------
895    Name: Matthias Blume (blume (at) tti - c (dot) org)
896    Date: 2004/04/23 17:40:00 CDT
897    Tag: blume-20040423-ieee-scan
898    Description:
899    
900    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
901    in the exponent calculation we get INF or ZERO (depending on the mantissa
902    and the sign of the exponent).
903    
904    ----------------------------------------------------------------------
905    Name: Matthias Blume (blume (at) tti - c (dot) org)
906    Date: 2004/04/23 10:40:00 CDT
907    Tag: blume-20040423-ml-build
908    Description:
909    
910    The ml-build script now terminates with a non-0 status when something
911    goes wrong.
912    
913    ----------------------------------------------------------------------
914    Name: Matthias Blume (blume (at) tti - c (dot) org)
915    Date: 2004/04/22 16:35:00 CDT
916    Tag: blume-20040422-Option
917    Description:
918    
919    Made exception Option to be the same as exception Option.Option
920    (as it should be).
921    
922    ----------------------------------------------------------------------
923    Name: Allen Leung (leunga (at) reservoir (dot) com)
924    Date: 2004/03/19 14:40:00 EST
925    Tag: leunga-20040319-cygwin-nlffi
926    Description:
927    
928    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
929    of SML/NJ.  The problem is that
930    
931       lib = dlopen(NULL, ...)
932       f   = dlsym(lib, "malloc");
933    
934    does not work on Windows unless we explicitly export symbols
935    such as 'malloc' during linking.  We fixed this by explicitly
936    exporting the required symbols with the magic gcc incantation:
937    
938        -Wl,--export-all cygwin.def
939    
940    where cygwin.def is a file containing all the symbols that
941    we wish to export.
942    
943    I suspect this is a Windows problem and we'll have to
944    do the same (somehow with windows compilers) when
945    we build the native win32 version with the system
946    calls LoadLibrary/GetProcAddress.
947    
948    ----------------------------------------------------------------------
949    Name: Matthias Blume (blume (at) tti - c (dot) org)
950    Date: 2004/03/04 16:35:00 CST
951    Tag: blume-20040304-intinf-fmt
952    Description:
953    
954    Fixed problem with IntInf.fmt (sign would show up on the right instead
955    of on the left for BIN, OCT, and HEX).
956    
957    ----------------------------------------------------------------------
958    Name: Matthias Blume (blume (at) tti - c (dot) org)
959    Date: 2004/03/04 11:25:00 CST
960    Tag: blume-20040304-symlinks
961    Description:
962    
963    Fixed problem with installer script (unix only) where bin/ml-yacc and
964    friends pointed (via symlinks) to absolute locations instead of just
965    .run-sml.  This was reported by Vesa A Norrman.
966    
967    ----------------------------------------------------------------------
968    Name: Matthias Blume (blume (at) tti - c (dot) org)
969    Date: 2004/02/13 14:50:00 CST
970    Tag: Release_110_45
971    Description:
972    
973    New working version (110.45). New bootfiles.
974    
975    ----------------------------------------------------------------------
976    Name: Matthias Blume (blume (at) tti - c (dot) org)
977    Date: 2004/01/26 15:15:15 CST
978    Tag: blume-20040126-toplevel
979    Description:
980    
981    Improved handling of exceptions at the interactive toplevel.
982    
983    ----------------------------------------------------------------------
984    Name: Matthias Blume (blume (at) tti - c (dot) org)
985    Date: 2004/01/26 11:25:00
986    Tag: blume-20040126-app
987    Description:
988    
989    Type of top-level "app" corrected.
990    Added code for setting vp_limitPtrMask to Win32-specific runtime.
991    
992    ----------------------------------------------------------------------
993    Name: Matthias Blume (blume (at) tti - c (dot) org)
994    Date: 2003/11/18 17:10 CST
995    Tag: blume-20031118-basis-fiddle
996    Description:
997    
998    - changed Timer interface to what might become the spec
999    - POSIX_FLAGS -> BIT_FLAGS according to spec
1000    - some other minor discrepancies wrt. spec eliminated
1001    
1002    ----------------------------------------------------------------------
1003    Name: Matthias Blume (blume (at) tti - c (dot) org)
1004    Date: 2003/11/06 12:00:00 CST
1005    Tag: Release_110_44
1006    Description:
1007    
1008    New working version (110.44). New bootfiles.
1009    
1010    ----------------------------------------------------------------------
1011    Name: Matthias Blume (blume (at) tti - c (dot) org)
1012    Date: 2003/11/04 11:50:00 CST
1013    Tag: blume-20031104-move-libraries
1014    Description:
1015    
1016    Eliminated the "dont_move_libraries" directive in config/targets.
1017    (The mechanism was broken and could not be fixed easily.  Moreover,
1018    there does not seem to be any reason not to move all libraries into
1019    lib during installation.  I originally implemented this directive as a
1020    backward-compatibility feature when I first introduced the new CM.
1021    Now that things have been stable for a long time and going back to the
1022    old CM is not an option, there is no reason to keep it around.)
1023    
1024    ----------------------------------------------------------------------
1025    Name: Matthias Blume (blume (at) tti - c (dot) org)
1026    Date: 2003/11/03 16:00:00 CST
1027    Tag: blume-20031103-installdir
1028    Description:
1029    
1030    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
1031    Richards for pointing out the problem and providing the solution.)
1032    
1033    ----------------------------------------------------------------------
1034    Name: Matthias Blume (blume (at) tti - c (dot) org)
1035    Date: 2003/10/01 17:05:00 CDT
1036    Tag: blume-20031001-lal-mlrisc
1037    Description:
1038    
1039    MLRISC bug fix from Lal.
1040    
1041    ----------------------------------------------------------------------
1042    Name: Matthias Blume (blume (at) tti - c (dot) org)
1043    Date: 2003/09/30 16:10:00 CDT
1044    Tag: blume-20030930-primio-bat
1045    Description:
1046    
1047    1. Added openVector, nullRd, and nullWr to PRIM_IO.
1048    2. Improved .bat files (for Win32 port) to make things work under Win95.
1049       (thanks to Aaron S. Hawley for this one)
1050    
1051    ----------------------------------------------------------------------
1052    Name: Matthias Blume (blume (at) tti - c (dot) org)
1053    Date: 2003/09/26 16:05:00 CDT
1054    Tag: blume-20030926-wrappriv
1055    Description:
1056    
1057    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
1058    
1059    ----------------------------------------------------------------------
1060    Name: Matthias Blume (blume (at) tti - c (dot) org)
1061    Date: 2003/09/26 15:00:00 CDT
1062    Tag: blume-20030926-110_43_3
1063    Description:
1064    
1065    - additional cleanup
1066    - version number bump, NEW BOOTFILES
1067    
1068    ----------------------------------------------------------------------
1069    Name: Matthias Blume (blume (at) tti - c (dot) org)
1070    Date: 2003/09/26 12:00:00 CDT
1071    Tag: blume-20030926-ppautoload
1072    Description:
1073    
1074    I modified the read-eval-print loop so that the autoloader gets
1075    invoked whenever the prettyprinter tries to look up a symbol that
1076    is not currently defined in the toplevel environment but which
1077    appears in CM's autoload registry.  As a result, we see far fewer of
1078    those ?.Foo.Bar.xxx names in the prettyprinter's output.
1079    
1080    In addition to this I tried to clean up some pieces of the Basis
1081    implementation (e.g., Socket, Word8Array) in order to prevent other
1082    instances of these ?.Foo.Bar.xxx names from being printed.
1083    
1084    The mechanism that picks names for types still needs some work, though.
1085    (Right now it seems that if there is a type A.t which is defined to
1086    be B.u, but B is unavailable at toplevel, then A.t gets printed as
1087    "?.B.u" although the perhaps more sensible solution would be to use
1088    "A.t" in this case.  In other words, the prettyprinter should follow
1089    a chain of DEFtycs not farther than there are corresponding toplevel
1090    names in the current environment.)
1091    
1092    ----------------------------------------------------------------------
1093    Name: Matthias Blume (blume (at) tti - c (dot) org)
1094    Date: 2003/09/24 16:31:00 CDT
1095    Tag: blume-20030924-installer
1096    Description:
1097    
1098    Another installer tweak:  All the ML code for the installer is now
1099    compiled during CMB.make and put into a little library called
1100    $smlnj/installer.cm.  The installation then simply invokes
1101    
1102       sml -m $smlnj/installer.cm
1103    
1104    and everything happens automagically.
1105    
1106    Win32:  ML code senses value of environment variable SMLNJ_HOME.
1107    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
1108            and BINDIR.
1109    
1110    The new scheme guarantees that the ML code responsible for the installation
1111    is in sync with the APIs of the main system.  Also, the installer is
1112    somewhat faster because the installer script is precompiled.
1113    
1114    ----------------------------------------------------------------------
1115    Name: Matthias Blume (blume (at) tti - c (dot) org)
1116    Date: 2003/09/24 15:35:00 CDT
1117    Tag: blume-20030924-synsock
1118    Description:
1119    
1120    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
1121    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
1122    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
1123    implementations of non-blocking operations from CML's Socket
1124    structure.
1125    
1126    ----------------------------------------------------------------------
1127    Name: Matthias Blume (blume (at) tti - c (dot) org)
1128    Date: 2003/09/24 15:10:05 CDT
1129    Tag: blume-20030924-sockets
1130    Description:
1131    
1132    1. Fixed SOCKET API and implementation to match Basis spec.
1133       This required changing the internal representation of sockets to one
1134       that remembers (for each socket file descriptor) whether it is currently
1135       blocking or non-blocking.  This state is maintained lazily (i.e., a system
1136       call is made only if the state actually needs to change).
1137    
1138    2. OS-specific details of sockets were moved into separate files, thus
1139       making it possible to unify the bulk of the socket implementations
1140       between Unix and Win32.
1141    
1142    3. CML's socket API changed accordingly.
1143       (Note that we need to remove non-blocking functions from this API
1144       since they are redundant in the case of CML!)
1145    
1146    4. CML's socket implementation now makes use of non-blocking functions
1147       provided by Basis, thus removing all OS-dependent code from this part
1148       of CML.
1149    
1150    5. Changed Real64.precision from 52 to 53.  Minor cleanup in Real64 code.
1151    
1152    ----------------------------------------------------------------------
1153    Name: Matthias Blume (blume (at) tti - c (dot) org)
1154    Date: 2003/09/22 12:10:00 CDT
1155    Tag: blume-20030922-110_43_2
1156    Description:
1157    
1158    Made a new interim version and bootfiles for developer's bootstrapping
1159    convenience.
1160    
1161       110.43.2 -- NEW BOOTFILES
1162    
1163    ----------------------------------------------------------------------
1164    Name: Matthias Blume (blume (at) tti - c (dot) org)
1165    Date: 2003/09/19 15:55:00 CDT
1166    Tag: blume-20030919-cmdir
1167    Description:
1168    
1169    1. new-install.sh -> install.sh
1170    2. changed default CM "metadata" directory name to ".cm" (instead of "CM")
1171    3. tweaked installer so that another name instead of .cm can be chosen
1172       at install time (by setting the CM_DIR_ARC environment variable
1173       during installation); once installation is complete, the name is
1174       fixed
1175    
1176    ----------------------------------------------------------------------
1177    Name: Matthias Blume (blume (at) tti - c (dot) org)
1178    Date: 2003/09/18 16:00:00 CDT
1179    Tag: blume-20030918-110_43_1
1180    Description:
1181    
1182    Made a new interim version and bootfiles for developer's bootstrapping
1183    convenience.
1184    
1185       110.43.1 -- NEW BOOTFILES
1186    
1187    ----------------------------------------------------------------------
1188    Name: Matthias Blume (blume (at) tti - c (dot) org)
1189    Date: 2003/09/18 15:20:00 CDT
1190    Tag: blume-20030918-misc
1191    Description:
1192    
1193    1. Exported fractionsPerSecond etc. from TimeImp (but not from Time as
1194       this seems to be controversial at the moment) and used those in
1195       Posix.ProcEnv.times.
1196    
1197    2. Added Time.{from,to}Nanoseconds to Time.
1198    
1199    3. Improved Real.{from,to}LargeInt by avoiding needless calculations.
1200       For example, fromLargeInt never needs to look at more than 3 "big
1201       digits" to get its 53 bits of precision.
1202    
1203    ----------------------------------------------------------------------
1204    Name: Matthias Blume (blume (at) tti - c (dot) org)
1205    Date: 2003/09/17 16:30:00 CDT
1206    Tag: blume-20030917-real32-slices
1207    Description:
1208    
1209    Added an entry to the primitive environment
1210    (compiler/Semant/statenv/prim.sml) for int32->real64 conversion and
1211    added code to compiler/CodeGen/main/mlriscGen.sml to implement it.
1212    
1213    Removed some of the "magic" constants in real64.sml and replaced them
1214    with code that generates these values from their corresponding
1215    integer counterparts.
1216    
1217    Made all(?) the slice-related changes to the Basis and made everything
1218    compile again...
1219    
1220    ----------------------------------------------------------------------
1221  Name: Matthias Blume (blume (at) tti - c (dot) org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
1222  Date: 2003/09/15 17:45:00 CDT  Date: 2003/09/15 17:45:00 CDT
1223  Tag: blume-20030915-rbase  Tag: blume-20030915-rbase

Legend:
Removed from v.1375  
changed lines
  Added in v.1662

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