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

Legend:
Removed from v.1240  
changed lines
  Added in v.1557

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