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 1250, Fri Jul 5 14:22:42 2002 UTC revision 1580, Tue Aug 3 19:26:26 2004 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume (blume (at) tti - c (dot) org)
17    Date: 2004/08/03 14:25:00 CDT
18    Tag: blume-20040803-callingconv
19    Description:
20    
21    Added low-level support for choosing C calling conventions by
22    twiddling the type of rawccall.  (See
23    src/compiler/Semant/types/cproto.sml for details.)
24    
25    ----------------------------------------------------------------------
26    Name: Matthias Blume (blume (at) tti - c (dot) org)
27    Date: 2004/08/02 15:55:00 CDT
28    Tag: blume-20040802-backout
29    Description:
30    
31    Backed out of change to win32-filesys.c.  The earlier patch to
32    get_file_time caused CM to produce files with the wrong time stamp.
33    
34    ----------------------------------------------------------------------
35    Name: Matthias Blume (blume (at) tti - c (dot) org)
36    Date: 2004/08/02 14:45:00 CDT
37    Tag: blume-20040802-nlffi-win32
38    Description:
39    
40    Added NLFFI support for Win32, adapted from a patch provided by David
41    Hansel.  This is currently completely untested.  Also, the issue
42    concerning stdcall vs. ccall is still unresolved.
43    
44    ----------------------------------------------------------------------
45    Name: Matthias Blume (blume (at) tti - c (dot) org)
46    Date: 2004/07/30 17:55:00 CDT
47    Tag: blume-20040730-various
48    Description:
49    
50    Gearing up towards 110.47...
51    
52    - various minor bugfixes to ml-nlffigen
53    - a beginning of a manual for nlffi
54    
55    - eliminated 'export name=value' in config/install.sh as this does
56      not work with certain versions of /bin/sh
57      (Thanks to David King at Motorola for catching this.)
58    
59    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
60      - added a test for tm==NULL to gmtime.c and localtime.c
61      - applied patch for incorrect GetFileTime under win32
62      - toSeconds -> toMilliseconds in Win32/win32-process.sml
63    
64    ----------------------------------------------------------------------
65    Name: Matthias Blume (blume (at) tti - c (dot) org)
66    Date: 2004/07/21 18:20:00 CDT
67    Tag: blume-20040721-nlffigen
68    Description:
69    
70    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
71      for a typedef to an incomplete type, but leave out the "typ" member.
72      (This is just for consistency.)
73    - Started to produce what is supposed to become better (i.e., comprehensive)
74      documentation of what ml-nlffigen does and produces.
75    
76    ----------------------------------------------------------------------
77    Name: Matthias Blume (blume (at) tti - c (dot) org)
78    Date: 2004/07/14 16:25:00 CDT
79    Tag: blume-20040714-union
80    Description:
81    
82    Added C_UNION to c-calls/c-types.sml and updated the machinery
83    (ml-nlffigen, cproto.sml) that conveys C function interface
84    information to the code generator.
85    
86    However, the actual architecture-specific implementation of function
87    arguments and results that are C unions is still not implemented.
88    
89    ----------------------------------------------------------------------
90    Name: Allen Leung (leunga (at) reservoir (dot) com)
91    Date: 2004/07/14 14:38:00 EST
92    Tag: leunga-110_46_1-ppc-lwzu
93    Description:
94    
95        Added these instructions to the PowerPC architecture:
96        LBZU(X), LHZU(X), LWZU(X),
97        STWU(X), STFDU, STFSU
98    
99        etc...
100    
101        Note: I haven't added their instruction encoding into the description.
102    
103    ----------------------------------------------------------------------
104    Name: Allen Leung (leunga (at) reservoir (dot) com)
105    Date: 2004/07/13 15:04:00 EST
106    Tag: leunga-110_46_1-ppc-lwarx
107    Description:
108    
109       Added the two instructions LWARX and STWCX to the PowerPC
110    instruction set.
111    
112       A (untested) rewrite of loop-structure.sml.  The old version
113    is completely broken.
114    
115    ----------------------------------------------------------------------
116    Name: Matthias Blume (blume (at) tti - c (dot) org)
117    Date: 2004/07/13 13:50:00 CDT
118    Tag: blume-20040713-nlffi
119    Description:
120    
121    - use paramAlloc to report c-calls with too many arguments
122      (for PPC version where parameter area is pre-allocated)
123    - added ccall_maxargspace to machspec (to implement the above)
124    - made "make" commend in CM's "make" tool configurable
125    - added option (default: on) for passing the name of the SML/NJ's "bin"
126      directory to "make"; the call looks like this:
127    
128         make <options> SMLNJ_BINDIR=<dir> <target>
129    
130      This can be used by the Makefile to, e.g., pick the "right" version
131      of ml-nlffigen.
132    - minor code tweaks
133    
134    ----------------------------------------------------------------------
135    Name: Matthias Blume (blume (at) tti - c (dot) org)
136    Date: 2004/07/12 22:50:00 CDT
137    Tag: blume-110_46_1-macosx-nlffi
138    Description:
139    
140    NLFFI under Mac OS X now working (sort of).  This is largely untested,
141    though.
142    
143    Note:  1. You have to make a new, clean build of the runtime system.
144           2. There are new BOOTFILES, you have to use them!
145              (Doing the bootstrap process yourself would be *very* painful!
146               If you absolutely have to do it, build the system under
147               a different architecture and then cross-compile.)
148    
149    Version bumped to 110.46.1 to account for runtime data format changes.
150    
151    ----------------------------------------------------------------------
152    Name: Matthias Blume (blume (at) tti - c (dot) org)
153    Date: 2004/06/18 14:30:00 CDT
154    Tag: blume-20040618-unix
155    Description:
156    
157    Changed the implementation of structure Unix so that the same stream
158    is returned every time one of the {text,bin}{In,Out}streamOf functions
159    is invoked on the same proc.  This is not what the spec currently
160    says -- although IMO it arguably should.  (See discussion below.)
161    
162    ----------------------------------------------------------------------
163    Name: Matthias Blume (blume (at) tti - c (dot) org)
164    Date: 2004/06/17 18:15:00 CDT
165    Tag: Release_110_46
166    Description:
167    
168    New working version (110.46).  NEW BOOTFILES!
169    
170    ----------------------------------------------------------------------
171    Name: Matthias Blume (blume (at) tti - c (dot) org)
172    Date: 2004/06/17 17:20:00 CDT
173    Tag: blume-20040617-timer-unix
174    Description:
175    
176    Changed the interface of structures Timer and Unix to match the most
177    recent Basis spec.
178    
179    In the case of Unix there still seems to be an open/weird issue:
180    
181       The {text,bin}{In,Out}streamOf functions are supposed to create
182       fresh streams whenever they are called -- as opposed to have them
183       return the same stream every time.  This design is supposed to
184       prevent space leaks caused by proc values hanging on to streams.
185    
186       The reap function, on the other hand, is supposed to close the
187       streams.  This cannot be done without having a handle on the
188       stream in proc after all...
189    
190    I took the liberty to implement the following stopgap solution:
191    
192      The proc value hangs on to the most recently created stream(s).
193      Reap closes those.  If either or both of the two streams hadn't
194      been created at all yet, then reap will close the corresponding
195      file descriptors directly.
196    
197    PS: I don't understand the original space leak argument anymore.  If
198    a proc hangs on to the imperative stream, then I/O operations on those
199    will advance the state of the cached stream and avoid the space leak.
200    
201    ----------------------------------------------------------------------
202    Name: Matthias Blume (blume (at) tti - c (dot) org)
203    Date: 2004/05/28 16:45:00 CDT
204    Tag: blume-20040528-basis
205    Description:
206    
207    Added signature PACK_REAL and exported functor PrimIO.
208    
209    ----------------------------------------------------------------------
210    Name: Matthias Blume (blume (at) tti - c (dot) org)
211    Date: 2004/05/25 16:00:00 CDT
212    Tag: blume-20040525-group-owner
213    Description:
214    
215    CM now ignores (but still accepts) the "owner" information in group
216    descriptions.  The owner of a group is its next enclosing
217    library. Each group must have a unique owner.  (There is a virtual
218    "toplevel" library that owns groups which are not nested within a real
219    library.)  Previously, each group had to explicitly declare its owner,
220    and CM would check that such a declaration is correct.  The new scheme
221    is to have CM check that for each group there is precisely one owning
222    library.
223    
224    The advantage of the new scheme is that the programmer no longer needs
225    to maintain the somewhat annoying owner information.  The downside is
226    that CM cannot enforce the ownership rule across multiple runs of
227    CM.make.  Fortunately, enclosing the same group in two different
228    libraries A and B which are not part of the same program does not
229    cause real problems.
230    
231    ----------------------------------------------------------------------
232    Name: Matthias Blume (blume (at) tti - c (dot) org)
233    Date: 2004/05/20 16:00:00 CDT
234    Tag: blume-20040520-win32
235    Description:
236    
237    Made the win32 version work again.  (Strangely, a misplaced comma had
238    slipped into win32-process.c which prevented the runtime from being
239    compiled correctly.)
240    
241    Also, included a minor addition to ml-build.bat analogous to what was
242    done in blume-20040519-ml-build.
243    
244    ----------------------------------------------------------------------
245    Name: Matthias Blume (blume (at) tti - c (dot) org)
246    Date: 2004/05/19 22:10:00 CDT
247    Tag: blume-20040519-ml-build
248    Description:
249    
250    Arranged for ml-build to clean up after itself a little bit better.
251    The script generates a temporary SML source file and compiles it using
252    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
253    gets rid of those at the end, so they don't accumulate under .cm.
254    
255    This required a minor change to install.sh because the name of the
256    metadata directory (default: .cm) is actually configurable at
257    installation time.
258    
259    ----------------------------------------------------------------------
260    Name: Matthias Blume (blume (at) tti - c (dot) org)
261    Date: 2004/05/18 15:50:00 CDT
262    Tag: blume-20040518-mkreader
263    Description:
264    
265    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
266    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
267    
268    ----------------------------------------------------------------------
269    Name: Matthias Blume (blume (at) tti - c (dot) org)
270    Date: 2004/05/11 14:35:00 CDT
271    Tag: blume-20040511-win32sock
272    Description:
273    
274    Added previously missing support for many socket-related functions
275    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
276    for the voluminous patch!
277    
278    (I have not tested this patch under win32 yet.)
279    
280    Here is David's e-mail:
281    
282    Hi,
283    
284    Attached to this email you find a diff against sml/nj 110.45
285    that will enable socket support under Windows.
286    
287    To apply the patch (using unix or cygwin)
288    1) gunzip runtime.diff.gz
289    2) "cd" into "src/runtime" in the source tree of a fresh
290       110.45 installation.
291    3) patch -p 1 < [your/path/to]runtime.diff
292    
293    The code compiles fine but has NOT yet been extensively tested.
294    I only ran a few tests for basic socket client functionality
295    (which worked fine).  Especially the functions that use ioctl
296    are not tested at all and might not work (see below).
297    
298    I implemented this since we want to move to a newer version of sml/nj
299    but need socket support in order to use it.  This is the first time I
300    even had a look at the sml/nj source,  so please review my changes
301    before making this part of the distribution!  Here are a few issues
302    that I think might be better for someone to solve who is more
303    familiar with the sml/nj source (and socket programming):
304    
305    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
306      exception since I could not figure out what the windows equivalent
307      of these functions is
308    
309    - In sockets-osdep.h there are a some #include statements that are
310      only used in a few files that include sockets-osdep.h
311    
312    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
313      does not process its return value since I don't know how to
314      report an error upwards.
315    
316    - It would probably be good to have a call to WSACleanup() when
317      the library is unloaded (if there is such a possibility).
318      Otherwise I think Windows will take care of this automatically
319      when the process finishes.
320    
321    - I used ioctlsocket() as a replacement for ioctl() but I have
322      no idea if that is actually the proper replacement on Windows.
323    
324    - All these issues are marked in the code by "FIXME" comments.
325    
326    We use sml/nj extensively in our products and are quite happy
327    with it.  I hope this contribution will help you.
328    
329    Keep up the good work!
330    
331    David
332    
333    ----------------------------------------------------------------------
334    Name: Matthias Blume (blume (at) tti - c (dot) org)
335    Date: 2004/05/11 14:20:00 CDT
336    Tag: blume-20040511-installml
337    Description:
338    
339    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
340    the patch.)
341    
342    ----------------------------------------------------------------------
343    Name: Matthias Blume (blume (at) tti - c (dot) org)
344    Date: 2004/05/11 14:05:00 CDT
345    Tag: blume-20040511-nlffi-netbsd
346    Description:
347    
348    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
349    the patch.)
350    
351    ----------------------------------------------------------------------
352    Name: Matthias Blume (blume (at) tti - c (dot) org)
353    Date: 2004/05/11 12:05:00 CDT
354    Tag: blume-20040511-exports
355    Description:
356    
357    As per request by Adam Chlipala <adam@hcoop.net>, extended various
358    export lists in compiler-related .cm-files.
359    
360    ----------------------------------------------------------------------
361    Name: Matthias Blume (blume (at) tti - c (dot) org)
362    Date: 2004/05/11 11:35:00 CDT
363    Tag: blume-20040511-allsource
364    Description:
365    
366    The installer now honors the "src-smlnj" target again, although its meaning
367    has changed from "all sources required for the compiler" to "all sources
368    the installer knows about".  In other words, if you enable "src-smlnj"
369    in the "targets" file, then the installer will pull in sources for
370    everything.  (Notice that this refers to source code only.  Compiled
371    code is still only installed for modules that were requested explicitly
372    or which are required for other modules that were requested explicitly.)
373    
374    ----------------------------------------------------------------------
375    Name: Matthias Blume (blume (at) tti - c (dot) org)
376    Date: 2004/04/23 17:40:00 CDT
377    Tag: blume-20040423-ieee-scan
378    Description:
379    
380    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
381    in the exponent calculation we get INF or ZERO (depending on the mantissa
382    and the sign of the exponent).
383    
384    ----------------------------------------------------------------------
385    Name: Matthias Blume (blume (at) tti - c (dot) org)
386    Date: 2004/04/23 10:40:00 CDT
387    Tag: blume-20040423-ml-build
388    Description:
389    
390    The ml-build script now terminates with a non-0 status when something
391    goes wrong.
392    
393    ----------------------------------------------------------------------
394    Name: Matthias Blume (blume (at) tti - c (dot) org)
395    Date: 2004/04/22 16:35:00 CDT
396    Tag: blume-20040422-Option
397    Description:
398    
399    Made exception Option to be the same as exception Option.Option
400    (as it should be).
401    
402    ----------------------------------------------------------------------
403    Name: Allen Leung (leunga (at) reservoir (dot) com)
404    Date: 2004/03/19 14:40:00 EST
405    Tag: leunga-20040319-cygwin-nlffi
406    Description:
407    
408    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
409    of SML/NJ.  The problem is that
410    
411       lib = dlopen(NULL, ...)
412       f   = dlsym(lib, "malloc");
413    
414    does not work on Windows unless we explicitly export symbols
415    such as 'malloc' during linking.  We fixed this by explicitly
416    exporting the required symbols with the magic gcc incantation:
417    
418        -Wl,--export-all cygwin.def
419    
420    where cygwin.def is a file containing all the symbols that
421    we wish to export.
422    
423    I suspect this is a Windows problem and we'll have to
424    do the same (somehow with windows compilers) when
425    we build the native win32 version with the system
426    calls LoadLibrary/GetProcAddress.
427    
428    ----------------------------------------------------------------------
429    Name: Matthias Blume (blume (at) tti - c (dot) org)
430    Date: 2004/03/04 16:35:00 CST
431    Tag: blume-20040304-intinf-fmt
432    Description:
433    
434    Fixed problem with IntInf.fmt (sign would show up on the right instead
435    of on the left for BIN, OCT, and HEX).
436    
437    ----------------------------------------------------------------------
438    Name: Matthias Blume (blume (at) tti - c (dot) org)
439    Date: 2004/03/04 11:25:00 CST
440    Tag: blume-20040304-symlinks
441    Description:
442    
443    Fixed problem with installer script (unix only) where bin/ml-yacc and
444    friends pointed (via symlinks) to absolute locations instead of just
445    .run-sml.  This was reported by Vesa A Norrman.
446    
447    ----------------------------------------------------------------------
448    Name: Matthias Blume (blume (at) tti - c (dot) org)
449    Date: 2004/02/13 14:50:00 CST
450    Tag: Release_110_45
451    Description:
452    
453    New working version (110.45). New bootfiles.
454    
455    ----------------------------------------------------------------------
456    Name: Matthias Blume (blume (at) tti - c (dot) org)
457    Date: 2004/01/26 15:15:15 CST
458    Tag: blume-20040126-toplevel
459    Description:
460    
461    Improved handling of exceptions at the interactive toplevel.
462    
463    ----------------------------------------------------------------------
464    Name: Matthias Blume (blume (at) tti - c (dot) org)
465    Date: 2004/01/26 11:25:00
466    Tag: blume-20040126-app
467    Description:
468    
469    Type of top-level "app" corrected.
470    Added code for setting vp_limitPtrMask to Win32-specific runtime.
471    
472    ----------------------------------------------------------------------
473    Name: Matthias Blume (blume (at) tti - c (dot) org)
474    Date: 2003/11/18 17:10 CST
475    Tag: blume-20031118-basis-fiddle
476    Description:
477    
478    - changed Timer interface to what might become the spec
479    - POSIX_FLAGS -> BIT_FLAGS according to spec
480    - some other minor discrepancies wrt. spec eliminated
481    
482    ----------------------------------------------------------------------
483    Name: Matthias Blume (blume (at) tti - c (dot) org)
484    Date: 2003/11/06 12:00:00 CST
485    Tag: Release_110_44
486    Description:
487    
488    New working version (110.44). New bootfiles.
489    
490    ----------------------------------------------------------------------
491    Name: Matthias Blume (blume (at) tti - c (dot) org)
492    Date: 2003/11/04 11:50:00 CST
493    Tag: blume-20031104-move-libraries
494    Description:
495    
496    Eliminated the "dont_move_libraries" directive in config/targets.
497    (The mechanism was broken and could not be fixed easily.  Moreover,
498    there does not seem to be any reason not to move all libraries into
499    lib during installation.  I originally implemented this directive as a
500    backward-compatibility feature when I first introduced the new CM.
501    Now that things have been stable for a long time and going back to the
502    old CM is not an option, there is no reason to keep it around.)
503    
504    ----------------------------------------------------------------------
505    Name: Matthias Blume (blume (at) tti - c (dot) org)
506    Date: 2003/11/03 16:00:00 CST
507    Tag: blume-20031103-installdir
508    Description:
509    
510    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
511    Richards for pointing out the problem and providing the solution.)
512    
513    ----------------------------------------------------------------------
514    Name: Matthias Blume (blume (at) tti - c (dot) org)
515    Date: 2003/10/01 17:05:00 CDT
516    Tag: blume-20031001-lal-mlrisc
517    Description:
518    
519    MLRISC bug fix from Lal.
520    
521    ----------------------------------------------------------------------
522    Name: Matthias Blume (blume (at) tti - c (dot) org)
523    Date: 2003/09/30 16:10:00 CDT
524    Tag: blume-20030930-primio-bat
525    Description:
526    
527    1. Added openVector, nullRd, and nullWr to PRIM_IO.
528    2. Improved .bat files (for Win32 port) to make things work under Win95.
529       (thanks to Aaron S. Hawley for this one)
530    
531    ----------------------------------------------------------------------
532    Name: Matthias Blume (blume (at) tti - c (dot) org)
533    Date: 2003/09/26 16:05:00 CDT
534    Tag: blume-20030926-wrappriv
535    Description:
536    
537    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
538    
539    ----------------------------------------------------------------------
540    Name: Matthias Blume (blume (at) tti - c (dot) org)
541    Date: 2003/09/26 15:00:00 CDT
542    Tag: blume-20030926-110_43_3
543    Description:
544    
545    - additional cleanup
546    - version number bump, NEW BOOTFILES
547    
548    ----------------------------------------------------------------------
549    Name: Matthias Blume (blume (at) tti - c (dot) org)
550    Date: 2003/09/26 12:00:00 CDT
551    Tag: blume-20030926-ppautoload
552    Description:
553    
554    I modified the read-eval-print loop so that the autoloader gets
555    invoked whenever the prettyprinter tries to look up a symbol that
556    is not currently defined in the toplevel environment but which
557    appears in CM's autoload registry.  As a result, we see far fewer of
558    those ?.Foo.Bar.xxx names in the prettyprinter's output.
559    
560    In addition to this I tried to clean up some pieces of the Basis
561    implementation (e.g., Socket, Word8Array) in order to prevent other
562    instances of these ?.Foo.Bar.xxx names from being printed.
563    
564    The mechanism that picks names for types still needs some work, though.
565    (Right now it seems that if there is a type A.t which is defined to
566    be B.u, but B is unavailable at toplevel, then A.t gets printed as
567    "?.B.u" although the perhaps more sensible solution would be to use
568    "A.t" in this case.  In other words, the prettyprinter should follow
569    a chain of DEFtycs not farther than there are corresponding toplevel
570    names in the current environment.)
571    
572    ----------------------------------------------------------------------
573    Name: Matthias Blume (blume (at) tti - c (dot) org)
574    Date: 2003/09/24 16:31:00 CDT
575    Tag: blume-20030924-installer
576    Description:
577    
578    Another installer tweak:  All the ML code for the installer is now
579    compiled during CMB.make and put into a little library called
580    $smlnj/installer.cm.  The installation then simply invokes
581    
582       sml -m $smlnj/installer.cm
583    
584    and everything happens automagically.
585    
586    Win32:  ML code senses value of environment variable SMLNJ_HOME.
587    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
588            and BINDIR.
589    
590    The new scheme guarantees that the ML code responsible for the installation
591    is in sync with the APIs of the main system.  Also, the installer is
592    somewhat faster because the installer script is precompiled.
593    
594    ----------------------------------------------------------------------
595    Name: Matthias Blume (blume (at) tti - c (dot) org)
596    Date: 2003/09/24 15:35:00 CDT
597    Tag: blume-20030924-synsock
598    Description:
599    
600    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
601    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
602    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
603    implementations of non-blocking operations from CML's Socket
604    structure.
605    
606    ----------------------------------------------------------------------
607    Name: Matthias Blume (blume (at) tti - c (dot) org)
608    Date: 2003/09/24 15:10:05 CDT
609    Tag: blume-20030924-sockets
610    Description:
611    
612    1. Fixed SOCKET API and implementation to match Basis spec.
613       This required changing the internal representation of sockets to one
614       that remembers (for each socket file descriptor) whether it is currently
615       blocking or non-blocking.  This state is maintained lazily (i.e., a system
616       call is made only if the state actually needs to change).
617    
618    2. OS-specific details of sockets were moved into separate files, thus
619       making it possible to unify the bulk of the socket implementations
620       between Unix and Win32.
621    
622    3. CML's socket API changed accordingly.
623       (Note that we need to remove non-blocking functions from this API
624       since they are redundant in the case of CML!)
625    
626    4. CML's socket implementation now makes use of non-blocking functions
627       provided by Basis, thus removing all OS-dependent code from this part
628       of CML.
629    
630    5. Changed Real64.precision from 52 to 53.  Minor cleanup in Real64 code.
631    
632    ----------------------------------------------------------------------
633    Name: Matthias Blume (blume (at) tti - c (dot) org)
634    Date: 2003/09/22 12:10:00 CDT
635    Tag: blume-20030922-110_43_2
636    Description:
637    
638    Made a new interim version and bootfiles for developer's bootstrapping
639    convenience.
640    
641       110.43.2 -- NEW BOOTFILES
642    
643    ----------------------------------------------------------------------
644    Name: Matthias Blume (blume (at) tti - c (dot) org)
645    Date: 2003/09/19 15:55:00 CDT
646    Tag: blume-20030919-cmdir
647    Description:
648    
649    1. new-install.sh -> install.sh
650    2. changed default CM "metadata" directory name to ".cm" (instead of "CM")
651    3. tweaked installer so that another name instead of .cm can be chosen
652       at install time (by setting the CM_DIR_ARC environment variable
653       during installation); once installation is complete, the name is
654       fixed
655    
656    ----------------------------------------------------------------------
657    Name: Matthias Blume (blume (at) tti - c (dot) org)
658    Date: 2003/09/18 16:00:00 CDT
659    Tag: blume-20030918-110_43_1
660    Description:
661    
662    Made a new interim version and bootfiles for developer's bootstrapping
663    convenience.
664    
665       110.43.1 -- NEW BOOTFILES
666    
667    ----------------------------------------------------------------------
668    Name: Matthias Blume (blume (at) tti - c (dot) org)
669    Date: 2003/09/18 15:20:00 CDT
670    Tag: blume-20030918-misc
671    Description:
672    
673    1. Exported fractionsPerSecond etc. from TimeImp (but not from Time as
674       this seems to be controversial at the moment) and used those in
675       Posix.ProcEnv.times.
676    
677    2. Added Time.{from,to}Nanoseconds to Time.
678    
679    3. Improved Real.{from,to}LargeInt by avoiding needless calculations.
680       For example, fromLargeInt never needs to look at more than 3 "big
681       digits" to get its 53 bits of precision.
682    
683    ----------------------------------------------------------------------
684    Name: Matthias Blume (blume (at) tti - c (dot) org)
685    Date: 2003/09/17 16:30:00 CDT
686    Tag: blume-20030917-real32-slices
687    Description:
688    
689    Added an entry to the primitive environment
690    (compiler/Semant/statenv/prim.sml) for int32->real64 conversion and
691    added code to compiler/CodeGen/main/mlriscGen.sml to implement it.
692    
693    Removed some of the "magic" constants in real64.sml and replaced them
694    with code that generates these values from their corresponding
695    integer counterparts.
696    
697    Made all(?) the slice-related changes to the Basis and made everything
698    compile again...
699    
700    ----------------------------------------------------------------------
701    Name: Matthias Blume (blume (at) tti - c (dot) org)
702    Date: 2003/09/15 17:45:00 CDT
703    Tag: blume-20030915-rbase
704    Description:
705    
706    Fixed bug in Real.fromLargeInt.
707    
708    ----------------------------------------------------------------------
709    Name: Matthias Blume (blume (at) tti - c (dot) org)
710    Date: 2003/09/13 18:11:00 CDT
711    Tag: blume-20030913-libinstall
712    Description:
713    
714    Minor bugfix in config/libinstall (set anchor with path to
715    standalone tool after installing it, otherwise libraries that
716    need ml-lex or ml-yacc won't compile the first time the installer
717    runs).
718    
719    ----------------------------------------------------------------------
720    Name: Matthias Blume (blume (at) tti - c (dot) org)
721    Date: 2003/09/12 11:45:00 CDT
722    Tag: blume-20030912-various
723    Description:
724    
725     - fixed bug in Real.toLargeInt
726     - fixed bug in Posix.ProcEnv.times
727     - changed inputLine functions to return an option
728     - minor installer improvements / bugfixes
729     - changed default @SMLalloc parameter for x86/celeron to 64k
730    
731    ----------------------------------------------------------------------
732    Name: Matthias Blume (blume (at) tti - c (dot) org)
733    Date: 2003/09/09 22:00:00 CDT
734    Tag: Release_110_43
735    Description:
736    
737        New working release 110.43.  New bootfiles.
738    
739    ----------------------------------------------------------------------
740    Name: Matthias Blume (blume (at) tti - c (dot) org)
741    Date: 2003/09/09 19:20:00 CDT
742    Tag: blume-20030909-installer
743    Description:
744    
745    Rewrote large parts of config/install.sh in SML (config/libinstall.sml).
746    Modified config/install.bat to take advantage of it.  Also modified
747    config/install.sh (and called it config/new-install.sh) to take advantage
748    of it on Unix systems.  (The SML code is (supposed to be) platform-
749    independent.)
750    
751    The installer can now install everything under Win32
752    as well as under *nix as long as it compiles.
753    
754    Other changes:
755    
756      - made CML compile again under Win32
757      - made eXene compile under Win32 (by providing a fake structure UnixSock
758        and by using OS.Process.getEnv instead of Posix.ProcEnv.getenv)
759      - fixed a bug in nowhere: it assumed that type OS.Process.status is the
760        same as type int;  under Win32 it isn't
761      - fixed some slice-related problems in the win32-specific parts of CML
762      - added a functor argument "sameVol" to os-path-fn.sml in the Basis
763        (under Win32, the volume name is case-insensitive, and the
764        OS.Path code compares volume names for equality)
765    
766    ----------------------------------------------------------------------
767    Name: Matthias Blume (blume (at) tti - c (dot) org)
768    Date: 2003/09/08 11:55:00 CDT
769    Tag: blume-20030908-fullpath
770    Description:
771    
772    Made Win32 version of OS.FileSys.fullPath return current directory
773    when given an empty string.  This is what the spec says, and incidentally,
774    CM depends on it.  (CM otherwise goes into an infinite loop in certain
775    cases when presented with the name of a non-existing .cm file.)
776    
777    ----------------------------------------------------------------------
778    Name: Matthias Blume (blume (at) tti - c (dot) org)
779    Date: 2003/09/04 16:30:00 CDT
780    Tag: blume-20030905-slices-etc
781    Description:
782    
783      1. Changed interface to vectors and arrays in Basis to match
784         (draft) Basis spec.
785      2. Added signatures and implementations of slices according to
786         Basis spec.
787      3. Edited source code throughout the system to make it compile again
788         under 1. and 2.  (In some cases code had to be added to have it
789         match the new signatures.)
790      4. MLRISC should be backward-compatible: the copies of the originals
791         of files that needed to change under 3. were retained, the .cm files
792         check the compiler version number and use old versions when
793         appropriate.
794      5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to
795         dirstream -> string option (in accordance with Basis spec).
796      6. When generating code that counts lines, ml-lex used function
797         CharVector.foldli, taking advantage of its old interface.
798         This has been replaced with the corresponding code from
799         CharVectorSlice.  (html-lex must be re-lexed!)
800      7. BitArray in smlnj-lib/Util has been extended/modified to match the
801         new MONO_ARRAY signature.  (Do we need BitArraySlice?)
802      8. Removed temporary additions (fromInternal, toInternal) from the
803         (now obsolete) IntInf in smlnj-lib/Util.
804      9. Cleaned up structure Byte.
805     10. Added localOffset, scan, and fromString to Date (according to spec).
806         Cleaned/corrected implementation of Date.
807         (Still need to check for correctness; implement better canonicalizeDate.)
808     11. Added "scan" to signature IEEE_REAL.
809     12. Some improvements to IntInf [in particular: efficiency-hack for
810         mod and rem when second operand is 2 (for parity checks).]
811     13. Changed representation of type Time.time, using a single IntInf.int
812         value counting microseconds.  This considerably simplified the
813         implementation of structure Time.  We now support negative time
814         values; scan and fromString handle signs.
815     14. Functor PrimIO now takes two additional arguments (VectorSlice and
816         ArraySlice).
817    
818    ----------------------------------------------------------------------
819    Name: Matthias Blume (blume (at) tti - c (dot) org)
820    Date: 2003/08/28 17:00:00 CDT
821    Tag: blume-20030828-intinf
822    Description:
823    
824    This is a major update which comes with a version number bump
825    (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,
826    and an implementation of IntInf in the Basis.
827    
828    There are a fairly large number of related changes and updates throughout
829    the system:
830    
831    Basis:
832            - Implemented IntInf.
833            - Made LargeInt a projection of IntInf (by filtering through INTEGER).
834            - Added some missing Real64 operations, most notably Real.toLargeInt.
835            - Added FixedInt as a synonym for Int32.
836    
837    compiler:
838            * Added support for a built-in intinf type.
839              - literals
840              - pattern matching
841              - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.)
842              - overloading on literals and operations
843    
844            This required adding a primitive type intinf, some additional
845            primops, and implementations for several non-trivial intinf
846            operations in Core.  (The intinf type is completely abstract
847            to the compiler; all operations get delegated back to the Core.)
848    
849            * Intinf equality is handled by polyequal.  However, the compiler
850            does not print its usual warning in this case (since polyequal
851            is the right thing to do there).
852    
853            * Improved the organization of structure InlineT.
854    
855            * A word about conversion primops:
856            If conversions involving intinf do not cancel out during
857            CPS contract, then the compiler must insert calls to Core functions.
858            Since all core access must be resolved already during the FLINT
859            translate phase, it would be too late a the time of CPS contract
860            to add new Core calls.  For this reason, conversion primops
861            for intinf carry two arguments:  1. the numeric argument that
862            they are supposed to convert, and 2. the Core function that
863            can help with this conversion if necessary.  If CPS contract
864            eliminates a primop, then the associated Core function becomes
865            dead and goes away.  Intinf conversion primops that do not get
866            eliminated by CPS contract get rewritten into calls of their
867            core functions by a separate, new phase.
868    
869    interactive system:
870            - Control.Print.intinfDepth controls max length of intinf constants
871            being printed. (Analogous to Control.Print.stringDepth.)
872            - Cleanup in printutil and pputil: got rid of unused stuff and
873            duplicates; replaced some of the code with code that makes better
874            use of library functionality.
875    
876    CM:
877            Bugfix: parse-errors in init group (system/smlnj/init/init.cmi)
878            are no longer silent.
879    
880    CKIT:
881            Fixed mismatched uses of Int32 and LargeInt.  I always decided
882            in favor of LargeInt -- which is now the same as IntInf.
883            CKIT-knowledgable people should check whether this is what's
884            intended and otherwise change things back to using Int32 or
885            FixedInt.
886    
887    Throughout the code:
888            Started using IntInf.int literals and built-in operations
889            (e.g., comparison with 0) where this seems appropriate.
890    
891    
892    ----------------------------------------------------------------------
893    Name: Dave MacQueen (dbm@cs.uchicago.edu)
894    Date: 2003/08/13 11:36:00 CDT
895    Tag: dbm-20030813-mcz-merge1
896    Description:
897    
898    Merging changes from the mcz-branch development branch into trunk.
899    These changes involve replacement of the emulated old prettyprinter
900    interface with direct use of the SML/NJ Lib PP library, and fixing
901    of a couple of bugs (895, 1186) relating to error messages.  A new
902    prettyprinter for ast datatypes (Elaborator/print/ppast.{sig,sml})
903    has been added.
904    
905    ----------------------------------------------------------------------
906    Name: Matthias Blume (blume (at) tti - c (dot) org)
907    Date: 2003/08/11 15:45:00 CDT
908    Tag: blume-20030811-windows
909    Description:
910    
911    Version number bumped to 110.42.9.  NEW BOOTFILES!!!
912    
913        http://smlnj.cs.uchicago.edu/dist/working/110.42.9/
914    
915    This patch restores SML/NJ's ability to run under win32.  There are a
916    number of changes, including fixes for several bugs that had gone
917    unnoticed until now:
918    
919      - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when
920        trying to run the win32 version from within cygwin.)
921    
922      - There are a number of simple .bat scripts that substitute for their
923        corresponding Unix shell-scripts.  (See below.)
924    
925      - The internals of ml-build have been modified slightly.  The main
926        difference is that instead of calling ".link-sml" (or link-sml.bat)
927        using OS.Process.system, the ML process delegates this task back
928        to the script.  Otherwise problems arise in mixed environments such
929        as Cygwin where scripts look and work like Unix scripts, but
930        where OS.Process.system cannot run them.
931    
932      - In CM, the srcpath pickler used native pathname syntax -- which
933        is incorrect in the case of cross-compilation.  The new pickle format
934        is independent of platform-specific naming conventions.
935    
936      - Path configuration files (such as lib/pathconfig) can now choose
937        between native and standard syntax.  Placing a line of the form
938    
939            standard!
940    
941        into the file causes all subsequent paths to be interpreted using
942        CM standard pathname syntax (= Unix conventions); a line
943    
944            native!
945    
946        switches back to native style.  This was needed so that
947        path config files can be written portably, see src/system/pathconfig.
948    
949      - Runtime system:
950    
951          - win32-filesys.c:  get_file_time and set_file_time now
952            access modification time, not creation time.
953    
954          - I/O code made aware of new array representation.
955    
956          - Bug fixes in X86.prim.masm.
957    
958       - src/system/makeml made aware of win32. (For use under cygwin
959            and other Unix-environments for windows.)
960    
961       - In Basis, fixed off-by-one error in win32-io.sml (function vecF)
962         which caused BinIO.inputAll to fail consistently.
963    
964    .bat scripts:
965    
966       Windows .bat scripts assume that SMLNJ_HOME is defined.
967    
968       - sml.bat, ml-yacc.bat, ml-lex.bat:  Driver scripts for standalone
969         applications (sml, ml-yacc, ml-lex).
970       - ml-build.bat: analogous to ml-build.
971       - config\install.bat:  Analogous to config/install.sh.  This requires
972         that SMLNJ_HOME is set and that Microsoft Visual C is ready to use.
973         (nmake etc. must be on the path, and vcvars32 must have been run.)
974         Moreover, sources for ml-lex and ml-yacc need to exist under src,
975         and the bootfile hierarchy must have been unpacked under
976         sml.boot.x86-win32.
977         The script is very primitive and does a poor job at error checking.
978         It only installs the base system, ml-lex, and ml-yacc.  No other
979         libraries are being installed (i.e., you get only those that
980         are part of the compiler.)
981       - link-sml.bat:  analogous to .link-sml, but not currently used
982    
983    Unrelated bug fixes:
984    
985      - ml-nlffigen now exports structures ST_* corresponding to incomplete
986        types.
987      - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile
988        otherwise.)
989    
990    ----------------------------------------------------------------------
991    Name: Dave MacQueen (macqueen@cs.uchicago.edu)
992    Date: 2003/06/17
993    Tag: macqueen-20030617-bug895
994    Description:
995    
996    Modified compiler/Elaborator/print/pptype.sml to fix bug 895.
997    Tag will be used for new development branch (mcz-branch) for
998    use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.
999    
1000    ----------------------------------------------------------------------
1001    Name: Matthias Blume (blume (at) tti - c (dot) org)
1002    Date: 2003/05/27 16:55:00 CDT
1003    Tag: blume-20030527-polyeq
1004    Description:
1005    
1006    Tried to eliminated most cases of polymorphic equality.
1007    
1008    ----------------------------------------------------------------------
1009    Name: Matthias Blume (blume (at) tti - c (dot) org)
1010    Date: 2003/05/21 17:45:00 CDT
1011    Tag: blume-20030517-complete
1012    Description:
1013    
1014    Two changes:
1015    
1016      1. Added a flag for controlling whether non-exhaustive bindings will
1017         be treated as errors (default is false).
1018      2. Cleaned up the *entire* source tree so that CMB.make goes through
1019         without a single non-exhaustive match- or bind warning.
1020    
1021    ----------------------------------------------------------------------
1022    Name: Matthias Blume (blume (at) tti - c (dot) org)
1023    Date: 2003/05/17 10:20:00 CDT
1024    Tag: blume-20030517-absyn
1025    Description:
1026    
1027    1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn.
1028    
1029       This mainly affects the quality of error messages.  However, some
1030       of the code is now more straightforward than before. (Treatment of
1031       the above four constructs in translate.sml is much simpler than
1032       the "macro-expansion" that was going on before.  Plus, the mach-
1033       compiler no longer gets invoked just to be able to compile an
1034       if-expression.)
1035    
1036    2. The ErrorMsg.Error exception is now caught and absorbed by the
1037       interactive loop.
1038    
1039    ----------------------------------------------------------------------
1040    Name: Allen Leung
1041    Date: 2003/05/16 13:05:00 CDT
1042    Tag: leunga-20030516-cygwin-runtime
1043    Description:
1044    
1045        Ported the runtime system to cygwin, which uses the unix
1046    x86-unix bin files.  Missing/buggy features:
1047    
1048       o getnetbyname, getnetbyaddr: these functions seem to be missing in
1049         the Cygwin library.
1050       o Ctrl-C handling may be flaky.
1051       o Windows system calls and Windows I/O are not supported.
1052    
1053       A new set of binfiles is located at:
1054    
1055         http://www.dorsai.org/~leunga/boot.x86-unix.tgz
1056    
1057       This is only needed for bootstrapping the cygwin version of smlnj.
1058       Other x86 versions can use the existing binfiles.
1059    
1060    ----------------------------------------------------------------------
1061    Name: Matthias Blume
1062    Date: 2003/04/08 15:42:00 CDT
1063    Tag: blume-20030408-listpair
1064    Description:
1065    
1066    1. Added a target 'mlrisc' to installer.
1067    
1068    2. Added missing elements to structure ListPair.
1069    
1070    ----------------------------------------------------------------------
1071    Name: Allen Leung
1072    Date: 2003/01/07 10:40:00 EST
1073    Tag: leunga-20030107-int-rem
1074    Description:
1075    
1076    Fixed a bug in Int.rem(x,y) where y is a power of 2 on x86.
1077    The arguments to the SUBL instruction were swapped.
1078    
1079    ----------------------------------------------------------------------
1080    Name: Matthias Blume
1081    Date: 2002/12/12 16:25:00 EST
1082    Tag: blume-20021212-risc-ra
1083    Description:
1084    
1085    Fixed a serious bug in the rewrite code for FP spilling/reloading that
1086    sent the RA into an infinite loop when floating point registers get
1087    spilled.  (Because of this bug, e.g., nucleic stopped compiling between
1088    110.37 and 110.38.)
1089    There was another set of potential problems related to the handling of
1090    MLRISC annotations (but those did not yet cause real problems, apparently).
1091    
1092    ----------------------------------------------------------------------
1093    Name: Matthias Blume
1094    Date: 2002/12/06 22:40:00 EST
1095    Tag: blume-20021206-cm-fileid
1096    Description:
1097    
1098    Added a call of SrcPath.sync at the beginning of Parse.parse (in CM).
1099    This fixes the problem of CM getting confused by files that suddenly
1100    change their identity (e.g., by getting unlinked and recreated by some
1101    text editor such as vi).  There might be a better/cheaper/cleaner way
1102    of doing this, but for now this will have to do.
1103    
1104    ----------------------------------------------------------------------
1105    Name: Matthias Blume
1106    Date: 2002/10/28 09:50:00 EST
1107    Tag: blume-20021028-typecheck
1108    Description:
1109    
1110    Exported structure Typecheck from $smlnj/viscomp/core.cm.
1111    
1112    ----------------------------------------------------------------------
1113    Name: Matthias Blume
1114    Date: 2002/10/17 09:10:00 EDT
1115    Tag: Release_110_42
1116    Description:
1117    
1118    In good old tradition, there has been a slight hiccup so that we have
1119    to patch 110.42 after the fact.   The old release tag has been replaced
1120    (see below).
1121    
1122    The change solves a problem with two competing approaches the
1123    configuration problem regarding MacOS 10.1 vs. MacOS 10.2 which got in
1124    each other's way.
1125    
1126    This change only affects the runtime system code and the installer script.
1127    (No new bootfiles.)
1128    
1129    ----------------------------------------------------------------------
1130    Name: Matthias Blume
1131    Date: 2002/10/16 12:00:00 EDT
1132    Tag: Release_110_42_removed
1133    Description:
1134    
1135    New working release.  New bootfiles.
1136    
1137    ----------------------------------------------------------------------
1138    Name: Matthias Blume
1139    Date: 2002/10/10 13:10:00 EDT
1140    Tag: blume-20021010-ppc-divs
1141    Description:
1142    
1143    The mltree operator DIVS must be implemented with an overflow check on
1144    the PPC because the hardware indicates divide-by-zero using "overflow" as
1145    well.
1146    
1147    ----------------------------------------------------------------------
1148    Name: Matthias Blume
1149    Date: 2002/07/23 11:45:00
1150    Tag: blume-20020723-smlnj-home
1151    Description:
1152    
1153    Sml now senses the SMLNJ_HOME environment variable.  If this is set,
1154    then the bin dir is assumed to be in $SMLNJ_HOME/bin and (unless
1155    CM_PATHCONFIG is also set), the path configuration file is assumed
1156    to be in $SMLNJ_HOME/lib/pathconfig.  This way one can easily move
1157    the entire tree to some other place and everything will "just work".
1158    
1159    (Companion commands such as ml-build and ml-makedepend also sense this
1160    variable.)
1161    
1162    ----------------------------------------------------------------------
1163    Name: Matthias Blume
1164    Date: 2002/07/12 21:19:00 EDT
1165    Tag: blume-20020712-liveness
1166    Description:
1167    
1168    Exported two useful "step" functions from liveness module (MLRISC).
1169    
1170    ----------------------------------------------------------------------
1171    Name: Matthias Blume
1172    Date: 2002/07/05 16:00 EDT
1173    Tag: Release_110_41
1174    Description:
1175    
1176    New working release.  New bootfiles.
1177    
1178    ----------------------------------------------------------------------
1179  Name: Matthias Blume  Name: Matthias Blume
1180  Date: 2002/07/05 10:25:00 EDT  Date: 2002/07/05 10:25:00 EDT
1181  Tag: blume-20020705-btimp  Tag: blume-20020705-btimp

Legend:
Removed from v.1250  
changed lines
  Added in v.1580

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