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

Legend:
Removed from v.1222  
changed lines
  Added in v.1573

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