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

SCM Repository

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

Diff of /sml/trunk/HISTORY

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

revision 1189, Fri May 10 20:40:33 2002 UTC revision 1632, Mon Sep 27 22:18:07 2004 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume (blume (at) tti - c (dot) org)
17    Date: 2004/09/27 17:00:00 CDT
18    Tag: blume-20040927-lazysml
19    Description:
20    
21    Added a new tool class called "lazysml" to CM's tool chest.  The only
22    difference to "sml" is that compilation is done with Control.lazysml
23    set to true.  A source of class "lazysml" is automatically recognized
24    by a file name suffix of ".lml".
25    
26    In addition to the above feature, the original class "sml" now also
27    supports a tool argument "lazy" which has the same effect.  As a
28    result, the following three lines are equivalent:
29    
30        foo.sml : lazysml
31        foo.sml : sml (lazy)
32        foo.sml (lazy)
33    
34    The setting goes into effect both during parsing and during
35    compilation.  The original setting is restored right after parsing and
36    after compilation, respectively.
37    
38    In addition to all the above, there is also a general mechanism to set
39    ANY of the "controls" that are available at the command line via
40    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
41    apply as well. (In fact, "lazy" is implemented as a special case of
42    the general mechanism.)
43    
44    The .cm file syntax uses a new keyword tool argument called "with".
45    There are several ways of indicating the desired settings:
46    
47        foo.sml (with:parser.quotations=true)
48        foo.sml (with:(name:parser.quotations value:true))
49        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
50        foo.sml (with:(name1=value1 name2=value2 ...))
51        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
52    
53        etc.
54    
55    Another possible abbreviation is to leave out the =v or value:v part
56    if the name refers to a boolean control (in which case the value is
57    taken to be true).  Thus, one could get lazy sml also by saying:
58    
59        foo.sml (with:parser.lazy-keyword=true)
60        foo.sml (with:parser.lazy-keyword)
61        foo.sml (with:(name:parser.lazy-keyword value:true))
62        foo.sml (with:(name:parser.lazy-keyword))
63    
64    ----------------------------------------------------------------------
65    Name: Matthias Blume (blume (at) tti - c (dot) org)
66    Date: 2004/09/24 16:22:00 CDT
67    Tag: blume-20040924-ppc-long-branch
68    Description:
69    
70    Turned message about "emiting long form of branch" off by default.
71    Added a control flag to turn it back on when desired.
72    
73    ----------------------------------------------------------------------
74    Name: Matthias Blume (blume (at) tti - c (dot) org)
75    Date: 2004/09/24 16:05:00 CDT
76    Tag: blume-20040924-rounding
77    Description:
78    
79    Applied patch for setting rounding modes under Mac OS X.  Thanks to
80    Melissa O'Neill for providing the code!
81    
82    ----------------------------------------------------------------------
83    Name: Matthias Blume (blume (at) tti - c (dot) org)
84    Date: 2004/09/23 17:30:00 CDT
85    Tag: blume-20040923-envvars
86    Description:
87    
88    1. Changed definition of type ControlRegistry.registry_tree to
89       include control_info (i.e., the name of the controlling environment
90       variable).
91    
92    2. Added command-line flags -e and -E to print the names of environment
93       variables that can be used to control internal settings.
94       (This uses the new API mentioned in 1.)
95    
96    ----------------------------------------------------------------------
97    Name: Matthias Blume (blume (at) tti - c (dot) org)
98    Date: 2004/09/13 16:50:00 CDT
99    Tag: Release_110_49
100    Description:
101    
102    New working version (110.49).  NEW BOOTFILES!
103    
104    ----------------------------------------------------------------------
105    Name: Matthias Blume
106    Date: 2004/09/13 16:20:00 CDT
107    Tag: blume-20040913-config-mlrisc
108    Description:
109    
110    Put target "mlrisc" back into the default list.
111    (There is no harm in having it, and some users have expressed their
112    wish to have "mlrisc" included by default.)
113    
114    ----------------------------------------------------------------------
115    Name: John Reppy
116    Date: 2004/09/13
117    Tag: jhr-20040913-signals
118    Description:
119    
120    Fixed the signal masking code to properly nest mask/unmask operations
121    on a per-signal basis.
122    
123    ----------------------------------------------------------------------
124    Name: Matthias Blume (blume (at) tti - c (dot) org)
125    Date: 2004/09/08 13:20:00 CDT
126    Tag: blume-20040908-heap-magic
127    Description:
128    
129    Bumped the heap macig number to 0x09082004 to account for the changed
130    layout of the ML frame under MacOS X.
131    
132    ----------------------------------------------------------------------
133    Name: Allen Leung (leunga (at) reservoir (dot) com)
134    Date: 2004/09/03 11:26:00 EST
135    Tag: leunga-20040903-cygwin-install
136    Description:
137    
138       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
139    The Cygwin runtime is turned on by setting the environment
140    variable SMLNJ_CYGWIN_RUNTIME to 1.
141    
142    ----------------------------------------------------------------------
143    Name: Matthias Blume (blume (at) tti - c (dot) org)
144    Date: 2004/08/31 17:15:00 CDT
145    Tag: blume-20040831-core
146    Description:
147    
148    Added some exports to src/compiler/core.cm upon request by J. Joemann.
149    
150    ----------------------------------------------------------------------
151    Name: Matthias Blume (blume (at) tti - c (dot) org)
152    Date: 2004/08/30 17:55:00 CDT
153    Tag: blume-20040830-installer
154    Description:
155    
156    Upon request by Johannes Joemann:
157    
158    - improved ML code of installer to fall back to coping when renaming
159      fails (i.e., when source and target are on different file systems);
160      the code compiles but has yet to be tested in anger
161    - removed mlrisc from list of default targets (config/targets)
162    
163    ----------------------------------------------------------------------
164    Name: Matthias Blume (blume (at) tti - c (dot) org)
165    Date: 2004/08/27 17:20:00 CDT
166    Tag: blume-20040827-ptreql
167    Description:
168    
169    Added ptreql primop to structure InlineT (upon request from Larry
170    Paulson).
171    
172    ----------------------------------------------------------------------
173    Name: Allen Leung (leunga (at) reservoir (dot) com)
174    Date: 2004/08/15 21:21:00 EST
175    Tag: leunga-110_48-udgraph
176    Description:
177    
178    Another bug fix from Carl Hauser:
179    
180    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
181    > 48c48
182    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
183    > e::L)
184    > ---
185    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
186    > Without this, any deletion of an edge in an undirected graph does severe
187    > violence to the graph.
188    
189    ----------------------------------------------------------------------
190    Name: Allen Leung (leunga (at) reservoir (dot) com)
191    Date: 2004/08/10 23:35:00 EST
192    Tag: leunga-110_48-ppc
193    Description:
194    
195       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
196    
197    ----------------------------------------------------------------------
198    Name: Matthias Blume (blume (at) tti - c (dot) org)
199    Date: 2004/08/10 12:00:00 CDT
200    Tag: Release_110_48
201    Description:
202    
203    New working version (110.48).  NEW BOOTFILES!
204    
205    ----------------------------------------------------------------------
206    Name: Allen Leung (leunga (at) reservoir (dot) com)
207    Date: 2004/08/09 12:21:00 EST
208    Tag: leunga-110_47-dijsktra
209    Description:
210    
211    Bug fix from Carl Hauser:
212    
213    single_source_shortest_paths in dijkstra.sml was observed to get wrong
214    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
215    
216    The problem is that following the expression A.update(dist,s,Num.zero)
217    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
218    
219    ----------------------------------------------------------------------
220    Name: Matthias Blume (blume (at) tti - c (dot) org)
221    Date: 2004/08/06 18:10:00 CDT
222    Tag: blume-20040806-cmdline
223    Description:
224    
225    Fiddled with handling of command-line options:
226    
227      * sml now quits after processing the command line
228        if -H, -S, -h<n>, or -s<n> appears as the last
229        command-line argument
230      * a new option -q terminates the session when encountered on
231        the command line; subsequent arguments will be ignored
232      * bug fixes: short (erroneous) arguments are no longer ignored
233        completely
234    
235    ----------------------------------------------------------------------
236    Name: Allen Leung (leunga (at) reservoir (dot) com)
237    Date: 2004/08/04 18:17:00 EST
238    Tag: leunga-110_47-ppc-ibm-asm
239    Description:
240    
241      - Added minimal IBM assembly syntax support for PowerPC.
242    
243      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
244        been altered in the runtime.  We need an automatic way to keep the file
245        in sync.
246    
247    ----------------------------------------------------------------------
248    Name: Matthias Blume (blume (at) tti - c (dot) org)
249    Date: 2004/08/04 14:00:00 CDT
250    Tag: Release_110_47
251    Description:
252    
253    New working version (110.47).  NEW BOOTFILES!
254    
255    ----------------------------------------------------------------------
256    Name: Matthias Blume (blume (at) tti - c (dot) org)
257    Date: 2004/08/03 14:25:00 CDT
258    Tag: blume-20040803-callingconv
259    Description:
260    
261    Added low-level support for choosing C calling conventions by
262    twiddling the type of rawccall.  (See
263    src/compiler/Semant/types/cproto.sml for details.)
264    
265    ----------------------------------------------------------------------
266    Name: Matthias Blume (blume (at) tti - c (dot) org)
267    Date: 2004/08/02 15:55:00 CDT
268    Tag: blume-20040802-backout
269    Description:
270    
271    Backed out of change to win32-filesys.c.  The earlier patch to
272    get_file_time caused CM to produce files with the wrong time stamp.
273    
274    ----------------------------------------------------------------------
275    Name: Matthias Blume (blume (at) tti - c (dot) org)
276    Date: 2004/08/02 14:45:00 CDT
277    Tag: blume-20040802-nlffi-win32
278    Description:
279    
280    Added NLFFI support for Win32, adapted from a patch provided by David
281    Hansel.  This is currently completely untested.  Also, the issue
282    concerning stdcall vs. ccall is still unresolved.
283    
284    ----------------------------------------------------------------------
285    Name: Matthias Blume (blume (at) tti - c (dot) org)
286    Date: 2004/07/30 17:55:00 CDT
287    Tag: blume-20040730-various
288    Description:
289    
290    Gearing up towards 110.47...
291    
292    - various minor bugfixes to ml-nlffigen
293    - a beginning of a manual for nlffi
294    
295    - eliminated 'export name=value' in config/install.sh as this does
296      not work with certain versions of /bin/sh
297      (Thanks to David King at Motorola for catching this.)
298    
299    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
300      - added a test for tm==NULL to gmtime.c and localtime.c
301      - applied patch for incorrect GetFileTime under win32
302      - toSeconds -> toMilliseconds in Win32/win32-process.sml
303    
304    ----------------------------------------------------------------------
305    Name: Matthias Blume (blume (at) tti - c (dot) org)
306    Date: 2004/07/21 18:20:00 CDT
307    Tag: blume-20040721-nlffigen
308    Description:
309    
310    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
311      for a typedef to an incomplete type, but leave out the "typ" member.
312      (This is just for consistency.)
313    - Started to produce what is supposed to become better (i.e., comprehensive)
314      documentation of what ml-nlffigen does and produces.
315    
316    ----------------------------------------------------------------------
317    Name: Matthias Blume (blume (at) tti - c (dot) org)
318    Date: 2004/07/14 16:25:00 CDT
319    Tag: blume-20040714-union
320    Description:
321    
322    Added C_UNION to c-calls/c-types.sml and updated the machinery
323    (ml-nlffigen, cproto.sml) that conveys C function interface
324    information to the code generator.
325    
326    However, the actual architecture-specific implementation of function
327    arguments and results that are C unions is still not implemented.
328    
329    ----------------------------------------------------------------------
330    Name: Allen Leung (leunga (at) reservoir (dot) com)
331    Date: 2004/07/14 14:38:00 EST
332    Tag: leunga-110_46_1-ppc-lwzu
333    Description:
334    
335        Added these instructions to the PowerPC architecture:
336        LBZU(X), LHZU(X), LWZU(X),
337        STWU(X), STFDU, STFSU
338    
339        etc...
340    
341        Note: I haven't added their instruction encoding into the description.
342    
343    ----------------------------------------------------------------------
344    Name: Allen Leung (leunga (at) reservoir (dot) com)
345    Date: 2004/07/13 15:04:00 EST
346    Tag: leunga-110_46_1-ppc-lwarx
347    Description:
348    
349       Added the two instructions LWARX and STWCX to the PowerPC
350    instruction set.
351    
352       A (untested) rewrite of loop-structure.sml.  The old version
353    is completely broken.
354    
355    ----------------------------------------------------------------------
356    Name: Matthias Blume (blume (at) tti - c (dot) org)
357    Date: 2004/07/13 13:50:00 CDT
358    Tag: blume-20040713-nlffi
359    Description:
360    
361    - use paramAlloc to report c-calls with too many arguments
362      (for PPC version where parameter area is pre-allocated)
363    - added ccall_maxargspace to machspec (to implement the above)
364    - made "make" commend in CM's "make" tool configurable
365    - added option (default: on) for passing the name of the SML/NJ's "bin"
366      directory to "make"; the call looks like this:
367    
368         make <options> SMLNJ_BINDIR=<dir> <target>
369    
370      This can be used by the Makefile to, e.g., pick the "right" version
371      of ml-nlffigen.
372    - minor code tweaks
373    
374    ----------------------------------------------------------------------
375    Name: Matthias Blume (blume (at) tti - c (dot) org)
376    Date: 2004/07/12 22:50:00 CDT
377    Tag: blume-110_46_1-macosx-nlffi
378    Description:
379    
380    NLFFI under Mac OS X now working (sort of).  This is largely untested,
381    though.
382    
383    Note:  1. You have to make a new, clean build of the runtime system.
384           2. There are new BOOTFILES, you have to use them!
385              (Doing the bootstrap process yourself would be *very* painful!
386               If you absolutely have to do it, build the system under
387               a different architecture and then cross-compile.)
388    
389    Version bumped to 110.46.1 to account for runtime data format changes.
390    
391    ----------------------------------------------------------------------
392    Name: Matthias Blume (blume (at) tti - c (dot) org)
393    Date: 2004/06/18 14:30:00 CDT
394    Tag: blume-20040618-unix
395    Description:
396    
397    Changed the implementation of structure Unix so that the same stream
398    is returned every time one of the {text,bin}{In,Out}streamOf functions
399    is invoked on the same proc.  This is not what the spec currently
400    says -- although IMO it arguably should.  (See discussion below.)
401    
402    ----------------------------------------------------------------------
403    Name: Matthias Blume (blume (at) tti - c (dot) org)
404    Date: 2004/06/17 18:15:00 CDT
405    Tag: Release_110_46
406    Description:
407    
408    New working version (110.46).  NEW BOOTFILES!
409    
410    ----------------------------------------------------------------------
411    Name: Matthias Blume (blume (at) tti - c (dot) org)
412    Date: 2004/06/17 17:20:00 CDT
413    Tag: blume-20040617-timer-unix
414    Description:
415    
416    Changed the interface of structures Timer and Unix to match the most
417    recent Basis spec.
418    
419    In the case of Unix there still seems to be an open/weird issue:
420    
421       The {text,bin}{In,Out}streamOf functions are supposed to create
422       fresh streams whenever they are called -- as opposed to have them
423       return the same stream every time.  This design is supposed to
424       prevent space leaks caused by proc values hanging on to streams.
425    
426       The reap function, on the other hand, is supposed to close the
427       streams.  This cannot be done without having a handle on the
428       stream in proc after all...
429    
430    I took the liberty to implement the following stopgap solution:
431    
432      The proc value hangs on to the most recently created stream(s).
433      Reap closes those.  If either or both of the two streams hadn't
434      been created at all yet, then reap will close the corresponding
435      file descriptors directly.
436    
437    PS: I don't understand the original space leak argument anymore.  If
438    a proc hangs on to the imperative stream, then I/O operations on those
439    will advance the state of the cached stream and avoid the space leak.
440    
441    ----------------------------------------------------------------------
442    Name: Matthias Blume (blume (at) tti - c (dot) org)
443    Date: 2004/05/28 16:45:00 CDT
444    Tag: blume-20040528-basis
445    Description:
446    
447    Added signature PACK_REAL and exported functor PrimIO.
448    
449    ----------------------------------------------------------------------
450    Name: Matthias Blume (blume (at) tti - c (dot) org)
451    Date: 2004/05/25 16:00:00 CDT
452    Tag: blume-20040525-group-owner
453    Description:
454    
455    CM now ignores (but still accepts) the "owner" information in group
456    descriptions.  The owner of a group is its next enclosing
457    library. Each group must have a unique owner.  (There is a virtual
458    "toplevel" library that owns groups which are not nested within a real
459    library.)  Previously, each group had to explicitly declare its owner,
460    and CM would check that such a declaration is correct.  The new scheme
461    is to have CM check that for each group there is precisely one owning
462    library.
463    
464    The advantage of the new scheme is that the programmer no longer needs
465    to maintain the somewhat annoying owner information.  The downside is
466    that CM cannot enforce the ownership rule across multiple runs of
467    CM.make.  Fortunately, enclosing the same group in two different
468    libraries A and B which are not part of the same program does not
469    cause real problems.
470    
471    ----------------------------------------------------------------------
472    Name: Matthias Blume (blume (at) tti - c (dot) org)
473    Date: 2004/05/20 16:00:00 CDT
474    Tag: blume-20040520-win32
475    Description:
476    
477    Made the win32 version work again.  (Strangely, a misplaced comma had
478    slipped into win32-process.c which prevented the runtime from being
479    compiled correctly.)
480    
481    Also, included a minor addition to ml-build.bat analogous to what was
482    done in blume-20040519-ml-build.
483    
484    ----------------------------------------------------------------------
485    Name: Matthias Blume (blume (at) tti - c (dot) org)
486    Date: 2004/05/19 22:10:00 CDT
487    Tag: blume-20040519-ml-build
488    Description:
489    
490    Arranged for ml-build to clean up after itself a little bit better.
491    The script generates a temporary SML source file and compiles it using
492    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
493    gets rid of those at the end, so they don't accumulate under .cm.
494    
495    This required a minor change to install.sh because the name of the
496    metadata directory (default: .cm) is actually configurable at
497    installation time.
498    
499    ----------------------------------------------------------------------
500    Name: Matthias Blume (blume (at) tti - c (dot) org)
501    Date: 2004/05/18 15:50:00 CDT
502    Tag: blume-20040518-mkreader
503    Description:
504    
505    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
506    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
507    
508    ----------------------------------------------------------------------
509    Name: Matthias Blume (blume (at) tti - c (dot) org)
510    Date: 2004/05/11 14:35:00 CDT
511    Tag: blume-20040511-win32sock
512    Description:
513    
514    Added previously missing support for many socket-related functions
515    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
516    for the voluminous patch!
517    
518    (I have not tested this patch under win32 yet.)
519    
520    Here is David's e-mail:
521    
522    Hi,
523    
524    Attached to this email you find a diff against sml/nj 110.45
525    that will enable socket support under Windows.
526    
527    To apply the patch (using unix or cygwin)
528    1) gunzip runtime.diff.gz
529    2) "cd" into "src/runtime" in the source tree of a fresh
530       110.45 installation.
531    3) patch -p 1 < [your/path/to]runtime.diff
532    
533    The code compiles fine but has NOT yet been extensively tested.
534    I only ran a few tests for basic socket client functionality
535    (which worked fine).  Especially the functions that use ioctl
536    are not tested at all and might not work (see below).
537    
538    I implemented this since we want to move to a newer version of sml/nj
539    but need socket support in order to use it.  This is the first time I
540    even had a look at the sml/nj source,  so please review my changes
541    before making this part of the distribution!  Here are a few issues
542    that I think might be better for someone to solve who is more
543    familiar with the sml/nj source (and socket programming):
544    
545    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
546      exception since I could not figure out what the windows equivalent
547      of these functions is
548    
549    - In sockets-osdep.h there are a some #include statements that are
550      only used in a few files that include sockets-osdep.h
551    
552    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
553      does not process its return value since I don't know how to
554      report an error upwards.
555    
556    - It would probably be good to have a call to WSACleanup() when
557      the library is unloaded (if there is such a possibility).
558      Otherwise I think Windows will take care of this automatically
559      when the process finishes.
560    
561    - I used ioctlsocket() as a replacement for ioctl() but I have
562      no idea if that is actually the proper replacement on Windows.
563    
564    - All these issues are marked in the code by "FIXME" comments.
565    
566    We use sml/nj extensively in our products and are quite happy
567    with it.  I hope this contribution will help you.
568    
569    Keep up the good work!
570    
571    David
572    
573    ----------------------------------------------------------------------
574    Name: Matthias Blume (blume (at) tti - c (dot) org)
575    Date: 2004/05/11 14:20:00 CDT
576    Tag: blume-20040511-installml
577    Description:
578    
579    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
580    the patch.)
581    
582    ----------------------------------------------------------------------
583    Name: Matthias Blume (blume (at) tti - c (dot) org)
584    Date: 2004/05/11 14:05:00 CDT
585    Tag: blume-20040511-nlffi-netbsd
586    Description:
587    
588    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
589    the patch.)
590    
591    ----------------------------------------------------------------------
592    Name: Matthias Blume (blume (at) tti - c (dot) org)
593    Date: 2004/05/11 12:05:00 CDT
594    Tag: blume-20040511-exports
595    Description:
596    
597    As per request by Adam Chlipala <adam@hcoop.net>, extended various
598    export lists in compiler-related .cm-files.
599    
600    ----------------------------------------------------------------------
601    Name: Matthias Blume (blume (at) tti - c (dot) org)
602    Date: 2004/05/11 11:35:00 CDT
603    Tag: blume-20040511-allsource
604    Description:
605    
606    The installer now honors the "src-smlnj" target again, although its meaning
607    has changed from "all sources required for the compiler" to "all sources
608    the installer knows about".  In other words, if you enable "src-smlnj"
609    in the "targets" file, then the installer will pull in sources for
610    everything.  (Notice that this refers to source code only.  Compiled
611    code is still only installed for modules that were requested explicitly
612    or which are required for other modules that were requested explicitly.)
613    
614    ----------------------------------------------------------------------
615    Name: Matthias Blume (blume (at) tti - c (dot) org)
616    Date: 2004/04/23 17:40:00 CDT
617    Tag: blume-20040423-ieee-scan
618    Description:
619    
620    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
621    in the exponent calculation we get INF or ZERO (depending on the mantissa
622    and the sign of the exponent).
623    
624    ----------------------------------------------------------------------
625    Name: Matthias Blume (blume (at) tti - c (dot) org)
626    Date: 2004/04/23 10:40:00 CDT
627    Tag: blume-20040423-ml-build
628    Description:
629    
630    The ml-build script now terminates with a non-0 status when something
631    goes wrong.
632    
633    ----------------------------------------------------------------------
634    Name: Matthias Blume (blume (at) tti - c (dot) org)
635    Date: 2004/04/22 16:35:00 CDT
636    Tag: blume-20040422-Option
637    Description:
638    
639    Made exception Option to be the same as exception Option.Option
640    (as it should be).
641    
642    ----------------------------------------------------------------------
643    Name: Allen Leung (leunga (at) reservoir (dot) com)
644    Date: 2004/03/19 14:40:00 EST
645    Tag: leunga-20040319-cygwin-nlffi
646    Description:
647    
648    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
649    of SML/NJ.  The problem is that
650    
651       lib = dlopen(NULL, ...)
652       f   = dlsym(lib, "malloc");
653    
654    does not work on Windows unless we explicitly export symbols
655    such as 'malloc' during linking.  We fixed this by explicitly
656    exporting the required symbols with the magic gcc incantation:
657    
658        -Wl,--export-all cygwin.def
659    
660    where cygwin.def is a file containing all the symbols that
661    we wish to export.
662    
663    I suspect this is a Windows problem and we'll have to
664    do the same (somehow with windows compilers) when
665    we build the native win32 version with the system
666    calls LoadLibrary/GetProcAddress.
667    
668    ----------------------------------------------------------------------
669    Name: Matthias Blume (blume (at) tti - c (dot) org)
670    Date: 2004/03/04 16:35:00 CST
671    Tag: blume-20040304-intinf-fmt
672    Description:
673    
674    Fixed problem with IntInf.fmt (sign would show up on the right instead
675    of on the left for BIN, OCT, and HEX).
676    
677    ----------------------------------------------------------------------
678    Name: Matthias Blume (blume (at) tti - c (dot) org)
679    Date: 2004/03/04 11:25:00 CST
680    Tag: blume-20040304-symlinks
681    Description:
682    
683    Fixed problem with installer script (unix only) where bin/ml-yacc and
684    friends pointed (via symlinks) to absolute locations instead of just
685    .run-sml.  This was reported by Vesa A Norrman.
686    
687    ----------------------------------------------------------------------
688    Name: Matthias Blume (blume (at) tti - c (dot) org)
689    Date: 2004/02/13 14:50:00 CST
690    Tag: Release_110_45
691    Description:
692    
693    New working version (110.45). New bootfiles.
694    
695    ----------------------------------------------------------------------
696    Name: Matthias Blume (blume (at) tti - c (dot) org)
697    Date: 2004/01/26 15:15:15 CST
698    Tag: blume-20040126-toplevel
699    Description:
700    
701    Improved handling of exceptions at the interactive toplevel.
702    
703    ----------------------------------------------------------------------
704    Name: Matthias Blume (blume (at) tti - c (dot) org)
705    Date: 2004/01/26 11:25:00
706    Tag: blume-20040126-app
707    Description:
708    
709    Type of top-level "app" corrected.
710    Added code for setting vp_limitPtrMask to Win32-specific runtime.
711    
712    ----------------------------------------------------------------------
713    Name: Matthias Blume (blume (at) tti - c (dot) org)
714    Date: 2003/11/18 17:10 CST
715    Tag: blume-20031118-basis-fiddle
716    Description:
717    
718    - changed Timer interface to what might become the spec
719    - POSIX_FLAGS -> BIT_FLAGS according to spec
720    - some other minor discrepancies wrt. spec eliminated
721    
722    ----------------------------------------------------------------------
723    Name: Matthias Blume (blume (at) tti - c (dot) org)
724    Date: 2003/11/06 12:00:00 CST
725    Tag: Release_110_44
726    Description:
727    
728    New working version (110.44). New bootfiles.
729    
730    ----------------------------------------------------------------------
731    Name: Matthias Blume (blume (at) tti - c (dot) org)
732    Date: 2003/11/04 11:50:00 CST
733    Tag: blume-20031104-move-libraries
734    Description:
735    
736    Eliminated the "dont_move_libraries" directive in config/targets.
737    (The mechanism was broken and could not be fixed easily.  Moreover,
738    there does not seem to be any reason not to move all libraries into
739    lib during installation.  I originally implemented this directive as a
740    backward-compatibility feature when I first introduced the new CM.
741    Now that things have been stable for a long time and going back to the
742    old CM is not an option, there is no reason to keep it around.)
743    
744    ----------------------------------------------------------------------
745    Name: Matthias Blume (blume (at) tti - c (dot) org)
746    Date: 2003/11/03 16:00:00 CST
747    Tag: blume-20031103-installdir
748    Description:
749    
750    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
751    Richards for pointing out the problem and providing the solution.)
752    
753    ----------------------------------------------------------------------
754    Name: Matthias Blume (blume (at) tti - c (dot) org)
755    Date: 2003/10/01 17:05:00 CDT
756    Tag: blume-20031001-lal-mlrisc
757    Description:
758    
759    MLRISC bug fix from Lal.
760    
761    ----------------------------------------------------------------------
762    Name: Matthias Blume (blume (at) tti - c (dot) org)
763    Date: 2003/09/30 16:10:00 CDT
764    Tag: blume-20030930-primio-bat
765    Description:
766    
767    1. Added openVector, nullRd, and nullWr to PRIM_IO.
768    2. Improved .bat files (for Win32 port) to make things work under Win95.
769       (thanks to Aaron S. Hawley for this one)
770    
771    ----------------------------------------------------------------------
772    Name: Matthias Blume (blume (at) tti - c (dot) org)
773    Date: 2003/09/26 16:05:00 CDT
774    Tag: blume-20030926-wrappriv
775    Description:
776    
777    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
778    
779    ----------------------------------------------------------------------
780    Name: Matthias Blume (blume (at) tti - c (dot) org)
781    Date: 2003/09/26 15:00:00 CDT
782    Tag: blume-20030926-110_43_3
783    Description:
784    
785    - additional cleanup
786    - version number bump, NEW BOOTFILES
787    
788    ----------------------------------------------------------------------
789    Name: Matthias Blume (blume (at) tti - c (dot) org)
790    Date: 2003/09/26 12:00:00 CDT
791    Tag: blume-20030926-ppautoload
792    Description:
793    
794    I modified the read-eval-print loop so that the autoloader gets
795    invoked whenever the prettyprinter tries to look up a symbol that
796    is not currently defined in the toplevel environment but which
797    appears in CM's autoload registry.  As a result, we see far fewer of
798    those ?.Foo.Bar.xxx names in the prettyprinter's output.
799    
800    In addition to this I tried to clean up some pieces of the Basis
801    implementation (e.g., Socket, Word8Array) in order to prevent other
802    instances of these ?.Foo.Bar.xxx names from being printed.
803    
804    The mechanism that picks names for types still needs some work, though.
805    (Right now it seems that if there is a type A.t which is defined to
806    be B.u, but B is unavailable at toplevel, then A.t gets printed as
807    "?.B.u" although the perhaps more sensible solution would be to use
808    "A.t" in this case.  In other words, the prettyprinter should follow
809    a chain of DEFtycs not farther than there are corresponding toplevel
810    names in the current environment.)
811    
812    ----------------------------------------------------------------------
813    Name: Matthias Blume (blume (at) tti - c (dot) org)
814    Date: 2003/09/24 16:31:00 CDT
815    Tag: blume-20030924-installer
816    Description:
817    
818    Another installer tweak:  All the ML code for the installer is now
819    compiled during CMB.make and put into a little library called
820    $smlnj/installer.cm.  The installation then simply invokes
821    
822       sml -m $smlnj/installer.cm
823    
824    and everything happens automagically.
825    
826    Win32:  ML code senses value of environment variable SMLNJ_HOME.
827    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
828            and BINDIR.
829    
830    The new scheme guarantees that the ML code responsible for the installation
831    is in sync with the APIs of the main system.  Also, the installer is
832    somewhat faster because the installer script is precompiled.
833    
834    ----------------------------------------------------------------------
835    Name: Matthias Blume (blume (at) tti - c (dot) org)
836    Date: 2003/09/24 15:35:00 CDT
837    Tag: blume-20030924-synsock
838    Description:
839    
840    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
841    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
842    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
843    implementations of non-blocking operations from CML's Socket
844    structure.
845    
846    ----------------------------------------------------------------------
847    Name: Matthias Blume (blume (at) tti - c (dot) org)
848    Date: 2003/09/24 15:10:05 CDT
849    Tag: blume-20030924-sockets
850    Description:
851    
852    1. Fixed SOCKET API and implementation to match Basis spec.
853       This required changing the internal representation of sockets to one
854       that remembers (for each socket file descriptor) whether it is currently
855       blocking or non-blocking.  This state is maintained lazily (i.e., a system
856       call is made only if the state actually needs to change).
857    
858    2. OS-specific details of sockets were moved into separate files, thus
859       making it possible to unify the bulk of the socket implementations
860       between Unix and Win32.
861    
862    3. CML's socket API changed accordingly.
863       (Note that we need to remove non-blocking functions from this API
864       since they are redundant in the case of CML!)
865    
866    4. CML's socket implementation now makes use of non-blocking functions
867       provided by Basis, thus removing all OS-dependent code from this part
868       of CML.
869    
870    5. Changed Real64.precision from 52 to 53.  Minor cleanup in Real64 code.
871    
872    ----------------------------------------------------------------------
873    Name: Matthias Blume (blume (at) tti - c (dot) org)
874    Date: 2003/09/22 12:10:00 CDT
875    Tag: blume-20030922-110_43_2
876    Description:
877    
878    Made a new interim version and bootfiles for developer's bootstrapping
879    convenience.
880    
881       110.43.2 -- NEW BOOTFILES
882    
883    ----------------------------------------------------------------------
884    Name: Matthias Blume (blume (at) tti - c (dot) org)
885    Date: 2003/09/19 15:55:00 CDT
886    Tag: blume-20030919-cmdir
887    Description:
888    
889    1. new-install.sh -> install.sh
890    2. changed default CM "metadata" directory name to ".cm" (instead of "CM")
891    3. tweaked installer so that another name instead of .cm can be chosen
892       at install time (by setting the CM_DIR_ARC environment variable
893       during installation); once installation is complete, the name is
894       fixed
895    
896    ----------------------------------------------------------------------
897    Name: Matthias Blume (blume (at) tti - c (dot) org)
898    Date: 2003/09/18 16:00:00 CDT
899    Tag: blume-20030918-110_43_1
900    Description:
901    
902    Made a new interim version and bootfiles for developer's bootstrapping
903    convenience.
904    
905       110.43.1 -- NEW BOOTFILES
906    
907    ----------------------------------------------------------------------
908    Name: Matthias Blume (blume (at) tti - c (dot) org)
909    Date: 2003/09/18 15:20:00 CDT
910    Tag: blume-20030918-misc
911    Description:
912    
913    1. Exported fractionsPerSecond etc. from TimeImp (but not from Time as
914       this seems to be controversial at the moment) and used those in
915       Posix.ProcEnv.times.
916    
917    2. Added Time.{from,to}Nanoseconds to Time.
918    
919    3. Improved Real.{from,to}LargeInt by avoiding needless calculations.
920       For example, fromLargeInt never needs to look at more than 3 "big
921       digits" to get its 53 bits of precision.
922    
923    ----------------------------------------------------------------------
924    Name: Matthias Blume (blume (at) tti - c (dot) org)
925    Date: 2003/09/17 16:30:00 CDT
926    Tag: blume-20030917-real32-slices
927    Description:
928    
929    Added an entry to the primitive environment
930    (compiler/Semant/statenv/prim.sml) for int32->real64 conversion and
931    added code to compiler/CodeGen/main/mlriscGen.sml to implement it.
932    
933    Removed some of the "magic" constants in real64.sml and replaced them
934    with code that generates these values from their corresponding
935    integer counterparts.
936    
937    Made all(?) the slice-related changes to the Basis and made everything
938    compile again...
939    
940    ----------------------------------------------------------------------
941    Name: Matthias Blume (blume (at) tti - c (dot) org)
942    Date: 2003/09/15 17:45:00 CDT
943    Tag: blume-20030915-rbase
944    Description:
945    
946    Fixed bug in Real.fromLargeInt.
947    
948    ----------------------------------------------------------------------
949    Name: Matthias Blume (blume (at) tti - c (dot) org)
950    Date: 2003/09/13 18:11:00 CDT
951    Tag: blume-20030913-libinstall
952    Description:
953    
954    Minor bugfix in config/libinstall (set anchor with path to
955    standalone tool after installing it, otherwise libraries that
956    need ml-lex or ml-yacc won't compile the first time the installer
957    runs).
958    
959    ----------------------------------------------------------------------
960    Name: Matthias Blume (blume (at) tti - c (dot) org)
961    Date: 2003/09/12 11:45:00 CDT
962    Tag: blume-20030912-various
963    Description:
964    
965     - fixed bug in Real.toLargeInt
966     - fixed bug in Posix.ProcEnv.times
967     - changed inputLine functions to return an option
968     - minor installer improvements / bugfixes
969     - changed default @SMLalloc parameter for x86/celeron to 64k
970    
971    ----------------------------------------------------------------------
972    Name: Matthias Blume (blume (at) tti - c (dot) org)
973    Date: 2003/09/09 22:00:00 CDT
974    Tag: Release_110_43
975    Description:
976    
977        New working release 110.43.  New bootfiles.
978    
979    ----------------------------------------------------------------------
980    Name: Matthias Blume (blume (at) tti - c (dot) org)
981    Date: 2003/09/09 19:20:00 CDT
982    Tag: blume-20030909-installer
983    Description:
984    
985    Rewrote large parts of config/install.sh in SML (config/libinstall.sml).
986    Modified config/install.bat to take advantage of it.  Also modified
987    config/install.sh (and called it config/new-install.sh) to take advantage
988    of it on Unix systems.  (The SML code is (supposed to be) platform-
989    independent.)
990    
991    The installer can now install everything under Win32
992    as well as under *nix as long as it compiles.
993    
994    Other changes:
995    
996      - made CML compile again under Win32
997      - made eXene compile under Win32 (by providing a fake structure UnixSock
998        and by using OS.Process.getEnv instead of Posix.ProcEnv.getenv)
999      - fixed a bug in nowhere: it assumed that type OS.Process.status is the
1000        same as type int;  under Win32 it isn't
1001      - fixed some slice-related problems in the win32-specific parts of CML
1002      - added a functor argument "sameVol" to os-path-fn.sml in the Basis
1003        (under Win32, the volume name is case-insensitive, and the
1004        OS.Path code compares volume names for equality)
1005    
1006    ----------------------------------------------------------------------
1007    Name: Matthias Blume (blume (at) tti - c (dot) org)
1008    Date: 2003/09/08 11:55:00 CDT
1009    Tag: blume-20030908-fullpath
1010    Description:
1011    
1012    Made Win32 version of OS.FileSys.fullPath return current directory
1013    when given an empty string.  This is what the spec says, and incidentally,
1014    CM depends on it.  (CM otherwise goes into an infinite loop in certain
1015    cases when presented with the name of a non-existing .cm file.)
1016    
1017    ----------------------------------------------------------------------
1018    Name: Matthias Blume (blume (at) tti - c (dot) org)
1019    Date: 2003/09/04 16:30:00 CDT
1020    Tag: blume-20030905-slices-etc
1021    Description:
1022    
1023      1. Changed interface to vectors and arrays in Basis to match
1024         (draft) Basis spec.
1025      2. Added signatures and implementations of slices according to
1026         Basis spec.
1027      3. Edited source code throughout the system to make it compile again
1028         under 1. and 2.  (In some cases code had to be added to have it
1029         match the new signatures.)
1030      4. MLRISC should be backward-compatible: the copies of the originals
1031         of files that needed to change under 3. were retained, the .cm files
1032         check the compiler version number and use old versions when
1033         appropriate.
1034      5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to
1035         dirstream -> string option (in accordance with Basis spec).
1036      6. When generating code that counts lines, ml-lex used function
1037         CharVector.foldli, taking advantage of its old interface.
1038         This has been replaced with the corresponding code from
1039         CharVectorSlice.  (html-lex must be re-lexed!)
1040      7. BitArray in smlnj-lib/Util has been extended/modified to match the
1041         new MONO_ARRAY signature.  (Do we need BitArraySlice?)
1042      8. Removed temporary additions (fromInternal, toInternal) from the
1043         (now obsolete) IntInf in smlnj-lib/Util.
1044      9. Cleaned up structure Byte.
1045     10. Added localOffset, scan, and fromString to Date (according to spec).
1046         Cleaned/corrected implementation of Date.
1047         (Still need to check for correctness; implement better canonicalizeDate.)
1048     11. Added "scan" to signature IEEE_REAL.
1049     12. Some improvements to IntInf [in particular: efficiency-hack for
1050         mod and rem when second operand is 2 (for parity checks).]
1051     13. Changed representation of type Time.time, using a single IntInf.int
1052         value counting microseconds.  This considerably simplified the
1053         implementation of structure Time.  We now support negative time
1054         values; scan and fromString handle signs.
1055     14. Functor PrimIO now takes two additional arguments (VectorSlice and
1056         ArraySlice).
1057    
1058    ----------------------------------------------------------------------
1059    Name: Matthias Blume (blume (at) tti - c (dot) org)
1060    Date: 2003/08/28 17:00:00 CDT
1061    Tag: blume-20030828-intinf
1062    Description:
1063    
1064    This is a major update which comes with a version number bump
1065    (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,
1066    and an implementation of IntInf in the Basis.
1067    
1068    There are a fairly large number of related changes and updates throughout
1069    the system:
1070    
1071    Basis:
1072            - Implemented IntInf.
1073            - Made LargeInt a projection of IntInf (by filtering through INTEGER).
1074            - Added some missing Real64 operations, most notably Real.toLargeInt.
1075            - Added FixedInt as a synonym for Int32.
1076    
1077    compiler:
1078            * Added support for a built-in intinf type.
1079              - literals
1080              - pattern matching
1081              - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.)
1082              - overloading on literals and operations
1083    
1084            This required adding a primitive type intinf, some additional
1085            primops, and implementations for several non-trivial intinf
1086            operations in Core.  (The intinf type is completely abstract
1087            to the compiler; all operations get delegated back to the Core.)
1088    
1089            * Intinf equality is handled by polyequal.  However, the compiler
1090            does not print its usual warning in this case (since polyequal
1091            is the right thing to do there).
1092    
1093            * Improved the organization of structure InlineT.
1094    
1095            * A word about conversion primops:
1096            If conversions involving intinf do not cancel out during
1097            CPS contract, then the compiler must insert calls to Core functions.
1098            Since all core access must be resolved already during the FLINT
1099            translate phase, it would be too late a the time of CPS contract
1100            to add new Core calls.  For this reason, conversion primops
1101            for intinf carry two arguments:  1. the numeric argument that
1102            they are supposed to convert, and 2. the Core function that
1103            can help with this conversion if necessary.  If CPS contract
1104            eliminates a primop, then the associated Core function becomes
1105            dead and goes away.  Intinf conversion primops that do not get
1106            eliminated by CPS contract get rewritten into calls of their
1107            core functions by a separate, new phase.
1108    
1109    interactive system:
1110            - Control.Print.intinfDepth controls max length of intinf constants
1111            being printed. (Analogous to Control.Print.stringDepth.)
1112            - Cleanup in printutil and pputil: got rid of unused stuff and
1113            duplicates; replaced some of the code with code that makes better
1114            use of library functionality.
1115    
1116    CM:
1117            Bugfix: parse-errors in init group (system/smlnj/init/init.cmi)
1118            are no longer silent.
1119    
1120    CKIT:
1121            Fixed mismatched uses of Int32 and LargeInt.  I always decided
1122            in favor of LargeInt -- which is now the same as IntInf.
1123            CKIT-knowledgable people should check whether this is what's
1124            intended and otherwise change things back to using Int32 or
1125            FixedInt.
1126    
1127    Throughout the code:
1128            Started using IntInf.int literals and built-in operations
1129            (e.g., comparison with 0) where this seems appropriate.
1130    
1131    
1132    ----------------------------------------------------------------------
1133    Name: Dave MacQueen (dbm@cs.uchicago.edu)
1134    Date: 2003/08/13 11:36:00 CDT
1135    Tag: dbm-20030813-mcz-merge1
1136    Description:
1137    
1138    Merging changes from the mcz-branch development branch into trunk.
1139    These changes involve replacement of the emulated old prettyprinter
1140    interface with direct use of the SML/NJ Lib PP library, and fixing
1141    of a couple of bugs (895, 1186) relating to error messages.  A new
1142    prettyprinter for ast datatypes (Elaborator/print/ppast.{sig,sml})
1143    has been added.
1144    
1145    ----------------------------------------------------------------------
1146    Name: Matthias Blume (blume (at) tti - c (dot) org)
1147    Date: 2003/08/11 15:45:00 CDT
1148    Tag: blume-20030811-windows
1149    Description:
1150    
1151    Version number bumped to 110.42.9.  NEW BOOTFILES!!!
1152    
1153        http://smlnj.cs.uchicago.edu/dist/working/110.42.9/
1154    
1155    This patch restores SML/NJ's ability to run under win32.  There are a
1156    number of changes, including fixes for several bugs that had gone
1157    unnoticed until now:
1158    
1159      - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when
1160        trying to run the win32 version from within cygwin.)
1161    
1162      - There are a number of simple .bat scripts that substitute for their
1163        corresponding Unix shell-scripts.  (See below.)
1164    
1165      - The internals of ml-build have been modified slightly.  The main
1166        difference is that instead of calling ".link-sml" (or link-sml.bat)
1167        using OS.Process.system, the ML process delegates this task back
1168        to the script.  Otherwise problems arise in mixed environments such
1169        as Cygwin where scripts look and work like Unix scripts, but
1170        where OS.Process.system cannot run them.
1171    
1172      - In CM, the srcpath pickler used native pathname syntax -- which
1173        is incorrect in the case of cross-compilation.  The new pickle format
1174        is independent of platform-specific naming conventions.
1175    
1176      - Path configuration files (such as lib/pathconfig) can now choose
1177        between native and standard syntax.  Placing a line of the form
1178    
1179            standard!
1180    
1181        into the file causes all subsequent paths to be interpreted using
1182        CM standard pathname syntax (= Unix conventions); a line
1183    
1184            native!
1185    
1186        switches back to native style.  This was needed so that
1187        path config files can be written portably, see src/system/pathconfig.
1188    
1189      - Runtime system:
1190    
1191          - win32-filesys.c:  get_file_time and set_file_time now
1192            access modification time, not creation time.
1193    
1194          - I/O code made aware of new array representation.
1195    
1196          - Bug fixes in X86.prim.masm.
1197    
1198       - src/system/makeml made aware of win32. (For use under cygwin
1199            and other Unix-environments for windows.)
1200    
1201       - In Basis, fixed off-by-one error in win32-io.sml (function vecF)
1202         which caused BinIO.inputAll to fail consistently.
1203    
1204    .bat scripts:
1205    
1206       Windows .bat scripts assume that SMLNJ_HOME is defined.
1207    
1208       - sml.bat, ml-yacc.bat, ml-lex.bat:  Driver scripts for standalone
1209         applications (sml, ml-yacc, ml-lex).
1210       - ml-build.bat: analogous to ml-build.
1211       - config\install.bat:  Analogous to config/install.sh.  This requires
1212         that SMLNJ_HOME is set and that Microsoft Visual C is ready to use.
1213         (nmake etc. must be on the path, and vcvars32 must have been run.)
1214         Moreover, sources for ml-lex and ml-yacc need to exist under src,
1215         and the bootfile hierarchy must have been unpacked under
1216         sml.boot.x86-win32.
1217         The script is very primitive and does a poor job at error checking.
1218         It only installs the base system, ml-lex, and ml-yacc.  No other
1219         libraries are being installed (i.e., you get only those that
1220         are part of the compiler.)
1221       - link-sml.bat:  analogous to .link-sml, but not currently used
1222    
1223    Unrelated bug fixes:
1224    
1225      - ml-nlffigen now exports structures ST_* corresponding to incomplete
1226        types.
1227      - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile
1228        otherwise.)
1229    
1230    ----------------------------------------------------------------------
1231    Name: Dave MacQueen (macqueen@cs.uchicago.edu)
1232    Date: 2003/06/17
1233    Tag: macqueen-20030617-bug895
1234    Description:
1235    
1236    Modified compiler/Elaborator/print/pptype.sml to fix bug 895.
1237    Tag will be used for new development branch (mcz-branch) for
1238    use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.
1239    
1240    ----------------------------------------------------------------------
1241    Name: Matthias Blume (blume (at) tti - c (dot) org)
1242    Date: 2003/05/27 16:55:00 CDT
1243    Tag: blume-20030527-polyeq
1244    Description:
1245    
1246    Tried to eliminated most cases of polymorphic equality.
1247    
1248    ----------------------------------------------------------------------
1249    Name: Matthias Blume (blume (at) tti - c (dot) org)
1250    Date: 2003/05/21 17:45:00 CDT
1251    Tag: blume-20030517-complete
1252    Description:
1253    
1254    Two changes:
1255    
1256      1. Added a flag for controlling whether non-exhaustive bindings will
1257         be treated as errors (default is false).
1258      2. Cleaned up the *entire* source tree so that CMB.make goes through
1259         without a single non-exhaustive match- or bind warning.
1260    
1261    ----------------------------------------------------------------------
1262    Name: Matthias Blume (blume (at) tti - c (dot) org)
1263    Date: 2003/05/17 10:20:00 CDT
1264    Tag: blume-20030517-absyn
1265    Description:
1266    
1267    1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn.
1268    
1269       This mainly affects the quality of error messages.  However, some
1270       of the code is now more straightforward than before. (Treatment of
1271       the above four constructs in translate.sml is much simpler than
1272       the "macro-expansion" that was going on before.  Plus, the mach-
1273       compiler no longer gets invoked just to be able to compile an
1274       if-expression.)
1275    
1276    2. The ErrorMsg.Error exception is now caught and absorbed by the
1277       interactive loop.
1278    
1279    ----------------------------------------------------------------------
1280    Name: Allen Leung
1281    Date: 2003/05/16 13:05:00 CDT
1282    Tag: leunga-20030516-cygwin-runtime
1283    Description:
1284    
1285        Ported the runtime system to cygwin, which uses the unix
1286    x86-unix bin files.  Missing/buggy features:
1287    
1288       o getnetbyname, getnetbyaddr: these functions seem to be missing in
1289         the Cygwin library.
1290       o Ctrl-C handling may be flaky.
1291       o Windows system calls and Windows I/O are not supported.
1292    
1293       A new set of binfiles is located at:
1294    
1295         http://www.dorsai.org/~leunga/boot.x86-unix.tgz
1296    
1297       This is only needed for bootstrapping the cygwin version of smlnj.
1298       Other x86 versions can use the existing binfiles.
1299    
1300    ----------------------------------------------------------------------
1301    Name: Matthias Blume
1302    Date: 2003/04/08 15:42:00 CDT
1303    Tag: blume-20030408-listpair
1304    Description:
1305    
1306    1. Added a target 'mlrisc' to installer.
1307    
1308    2. Added missing elements to structure ListPair.
1309    
1310    ----------------------------------------------------------------------
1311    Name: Allen Leung
1312    Date: 2003/01/07 10:40:00 EST
1313    Tag: leunga-20030107-int-rem
1314    Description:
1315    
1316    Fixed a bug in Int.rem(x,y) where y is a power of 2 on x86.
1317    The arguments to the SUBL instruction were swapped.
1318    
1319    ----------------------------------------------------------------------
1320    Name: Matthias Blume
1321    Date: 2002/12/12 16:25:00 EST
1322    Tag: blume-20021212-risc-ra
1323    Description:
1324    
1325    Fixed a serious bug in the rewrite code for FP spilling/reloading that
1326    sent the RA into an infinite loop when floating point registers get
1327    spilled.  (Because of this bug, e.g., nucleic stopped compiling between
1328    110.37 and 110.38.)
1329    There was another set of potential problems related to the handling of
1330    MLRISC annotations (but those did not yet cause real problems, apparently).
1331    
1332    ----------------------------------------------------------------------
1333    Name: Matthias Blume
1334    Date: 2002/12/06 22:40:00 EST
1335    Tag: blume-20021206-cm-fileid
1336    Description:
1337    
1338    Added a call of SrcPath.sync at the beginning of Parse.parse (in CM).
1339    This fixes the problem of CM getting confused by files that suddenly
1340    change their identity (e.g., by getting unlinked and recreated by some
1341    text editor such as vi).  There might be a better/cheaper/cleaner way
1342    of doing this, but for now this will have to do.
1343    
1344    ----------------------------------------------------------------------
1345    Name: Matthias Blume
1346    Date: 2002/10/28 09:50:00 EST
1347    Tag: blume-20021028-typecheck
1348    Description:
1349    
1350    Exported structure Typecheck from $smlnj/viscomp/core.cm.
1351    
1352    ----------------------------------------------------------------------
1353    Name: Matthias Blume
1354    Date: 2002/10/17 09:10:00 EDT
1355    Tag: Release_110_42
1356    Description:
1357    
1358    In good old tradition, there has been a slight hiccup so that we have
1359    to patch 110.42 after the fact.   The old release tag has been replaced
1360    (see below).
1361    
1362    The change solves a problem with two competing approaches the
1363    configuration problem regarding MacOS 10.1 vs. MacOS 10.2 which got in
1364    each other's way.
1365    
1366    This change only affects the runtime system code and the installer script.
1367    (No new bootfiles.)
1368    
1369    ----------------------------------------------------------------------
1370    Name: Matthias Blume
1371    Date: 2002/10/16 12:00:00 EDT
1372    Tag: Release_110_42_removed
1373    Description:
1374    
1375    New working release.  New bootfiles.
1376    
1377    ----------------------------------------------------------------------
1378    Name: Matthias Blume
1379    Date: 2002/10/10 13:10:00 EDT
1380    Tag: blume-20021010-ppc-divs
1381    Description:
1382    
1383    The mltree operator DIVS must be implemented with an overflow check on
1384    the PPC because the hardware indicates divide-by-zero using "overflow" as
1385    well.
1386    
1387    ----------------------------------------------------------------------
1388    Name: Matthias Blume
1389    Date: 2002/07/23 11:45:00
1390    Tag: blume-20020723-smlnj-home
1391    Description:
1392    
1393    Sml now senses the SMLNJ_HOME environment variable.  If this is set,
1394    then the bin dir is assumed to be in $SMLNJ_HOME/bin and (unless
1395    CM_PATHCONFIG is also set), the path configuration file is assumed
1396    to be in $SMLNJ_HOME/lib/pathconfig.  This way one can easily move
1397    the entire tree to some other place and everything will "just work".
1398    
1399    (Companion commands such as ml-build and ml-makedepend also sense this
1400    variable.)
1401    
1402    ----------------------------------------------------------------------
1403    Name: Matthias Blume
1404    Date: 2002/07/12 21:19:00 EDT
1405    Tag: blume-20020712-liveness
1406    Description:
1407    
1408    Exported two useful "step" functions from liveness module (MLRISC).
1409    
1410    ----------------------------------------------------------------------
1411    Name: Matthias Blume
1412    Date: 2002/07/05 16:00 EDT
1413    Tag: Release_110_41
1414    Description:
1415    
1416    New working release.  New bootfiles.
1417    
1418    ----------------------------------------------------------------------
1419    Name: Matthias Blume
1420    Date: 2002/07/05 10:25:00 EDT
1421    Tag: blume-20020705-btimp
1422    Description:
1423    
1424    Exported structure BTImp from $smlnj/viscomp/debugprof.cm so that
1425    other clients can set up backtracing support.
1426    
1427    ----------------------------------------------------------------------
1428    Name: Matthias Blume
1429    Date: 2002/06/25 17:23:00 EDT
1430    Tag: blume-20020625-fpmax
1431    Description:
1432    
1433    Fixed a bug in translation of INLMAX (and INLMIN) for the floating-point
1434    case.  (The sense of the isNaN test was reversed -- which made min and
1435    max always return their first argument.)
1436    
1437    ----------------------------------------------------------------------
1438    Name: Matthias Blume
1439    Date: 2002/06/11
1440    Tag: blume-20020611-unixpath
1441    Description:
1442    
1443    Back-ported OS.Path.{from,to}UnixPath from idlbasis-devel branch.
1444    
1445    ----------------------------------------------------------------------
1446    Name: Matthias Blume
1447    Date: 2002/06/10 16:35:00 EDT
1448    Tag: blume-20020610-ieeereal
1449    Description:
1450    
1451    I back-ported my implementation of IEEEReal.fromString from the
1452    idlbasis-devel branch so that we can test it.
1453    
1454    Another small change is that ppDec tries to give more information
1455    than just "<sig>" in the case of functors.  However, this code is
1456    broken in some mysterious way if the functor's body's signature
1457    has not been declared by ascription but gets inferred from the
1458    implementation.  This needs fixing...
1459    
1460    ----------------------------------------------------------------------
1461    Name: Matthias Blume
1462    Date: 2002/05/31
1463    Tag: blume-20020531-btrace-mode
1464    Description:
1465    
1466    Resurrected SMLofNJ.Internals.BTrace.mode.  (It accidentally fell by
1467    the wayside when I switched over to using Controls everywhere.)
1468    
1469    ----------------------------------------------------------------------
1470    Name: Lal George
1471    Date: 2002/05/23 12:21:40 EDT
1472    Tag: george-20020523-visual-labels
1473    Description:
1474    
1475    Labels are now displayed in the graphical output to make
1476    the fall-through and target blocks obvious.
1477    
1478    ----------------------------------------------------------------------
1479    Name: Matthias Blume
1480    Date: 2002/05/22 11:03:00 EDT
1481    Tag: blume-20020522-shrink
1482    Description:
1483    
1484    John tweaked yesterday's fix for 1131 to handle an out-of-memory
1485    situation that comes up when allocating huge arrays.
1486    
1487    ----------------------------------------------------------------------
1488    Name: Matthias Blume
1489    Date: 2002/05/21 16:00:00 EDT
1490    Tag: Release_110_40
1491    Description:
1492    
1493    New working release (110.40).  New bootfiles.
1494    
1495    [Also: John Reppy fixed GC bug 1131.]
1496    
1497    ----------------------------------------------------------------------
1498    Name: Matthias Blume
1499    Date: 2002/05/21 12:35:00 EDT
1500    Tag: blume-20020521-cmdoc
1501    Description:
1502    
1503    CM documentation update.
1504    
1505    ----------------------------------------------------------------------
1506    Name: Matthias Blume
1507    Date: 2002/05/21 10:55:00 EDT
1508    Tag: blume-20020521-misc
1509    Description:
1510    
1511    - John tweaked runtime to be silent on heap export (except when
1512      GC messages are on).
1513    - I added a few more things (cross-compiling versions of CMB) to
1514      config/preloads (as suggestions).
1515    
1516    ----------------------------------------------------------------------
1517    Name: Matthias Blume
1518    Date: 2002/05/20 22:25:00 EDT
1519    Tag: blume-20020520-controls
1520    Description:
1521    
1522    - Added ControlUtil structure to control-lib.cm.
1523    - Use it throughout.
1524    - Used Controls facility to define MLRISC controls (as opposed to
1525      registering MLRISC control ref cells with Controls after the fact)
1526    - Fixed messed-up controls priorities.
1527    
1528    * Removed again all the stuff from config/preloads that one wouldn't
1529      be able to preload at the time the initial heap image is built.
1530      (Many libraries, e.g., CML, do not exist yet at this time.  The
1531       only libraries that can be preloaded via config/preloads are those
1532       that come bundled with the bootfiles.)
1533    
1534    ----------------------------------------------------------------------
1535    Name: Matthias Blume
1536    Date: 2002/05/20 10:59:00 EDT
1537    Tag: blume-20020520-preloads
1538    Description:
1539    
1540    Added a lot of commented-out suggestions for things to be included
1541    in config/preloads.
1542    
1543    ----------------------------------------------------------------------
1544    Name: Allen Leung
1545    Date: 2002/05/18 14:20:00 EDT
1546    Tag: leunga-20020518-mdl
1547    Description:
1548    
1549    o Made the mdl tool stuff compile and run again.
1550    o I've disabled all the stuff that depends on RTL specifications; they
1551      are all badly broken anyway.
1552    
1553    ----------------------------------------------------------------------
1554    Name: Matthias Blume
1555    Date: 2002/05/17 16:49:00 EDT
1556    Tag: blume-20020517-controls
1557    Description:
1558    
1559    0. John Reppy made several modifications to the SML/NJ library.
1560       In particular, there is a shiny new controls-lib.cm.
1561    
1562    1. Pushed new controls interface through compiler so that everything
1563       compiles again.
1564    
1565    2. Added FormatComb and FORMAT_COMB to the CML version of the
1566       SML/NJ library (so that CML compiles again).
1567    
1568    3. Modified init scripts because XXX_DEFAULT environment variables
1569       are no longer with us.  (Boot-time initialization is now done
1570       using the same environment variables that are also used for
1571       startup-time initialization of controls.)
1572    
1573    ----------------------------------------------------------------------
1574    Name: Lal George
1575    Date: 2002/05/15 09:20:10 EDT
1576    Tag: george-20020515-pseudo-op-decls
1577    Description:
1578    
1579            All pseudo-ops emitted before the first segment declaration
1580    such as TEXT, DATA, and BSS directives are assumed to be global
1581    declarations and are emitted first in the assembly file. This is
1582    useful in a number of situations where one has pseudo-ops that are not
1583    specific to any segment, and also works around the constraint that one
1584    cannot have client pseudo-ops in the TEXT segment.
1585    
1586            Because no segment is associated with these declarations it is
1587    an error to allocate any space or objects before the first segment
1588    directive and an exception will be raised. However, we cannot make
1589    this check for client pseudo-ops.
1590    
1591            These top level declarations are a field in the CFG graph_info.
1592    In theory you can continue to add to this field after the CFG has been
1593    built -- provided you know what you are doing;-)
1594    
1595    ----------------------------------------------------------------------
1596    Name: Matthias Blume
1597    Date: 2002/05/13 16:40:00 EDT
1598    Tag: blume-20020513-pp-etc
1599    Description:
1600    
1601    A few minor bugfixes:
1602    
1603      - Stopgap measure for bug recently reported by Elsa Gunter (ppDec).
1604        (Bogus printouts for redefined bindings still occur.  Compiler
1605        bug should no longer occur now.  We need to redo the prettyprinter
1606        from scratch.)
1607    
1608      - CM pathname printer now also adds escape sequences for ( and )
1609    
1610      - commend and docu fixes for ml-nlffi
1611    
1612    ----------------------------------------------------------------------
1613  Name: Matthias Blume  Name: Matthias Blume
1614  Date: 2002/05/10 16:40:00 EDT  Date: 2002/05/10 16:40:00 EDT
1615  Tag: blume-20020510-erg-textio  Tag: blume-20020510-erg-textio

Legend:
Removed from v.1189  
changed lines
  Added in v.1632

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