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/branches/primop-branch-3/NOTES/HISTORY
ViewVC logotype

Diff of /sml/branches/primop-branch-3/NOTES/HISTORY

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

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

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

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