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

Legend:
Removed from v.1184  
changed lines
  Added in v.1532

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