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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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

Legend:
Removed from v.1215  
changed lines
  Added in v.1546

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