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 1181, Wed Mar 27 21:27:27 2002 UTC revision 1335, Tue May 27 21:54:23 2003 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume (blume@tti-c.org)
17    Date: 2003/05/27 16:55:00 CDT
18    Tag: blume-20030527-polyeq
19    Description:
20    
21    Tried to eliminated most cases of polymorphic equality.
22    
23    ----------------------------------------------------------------------
24    Name: Matthias Blume (blume@tti-c.org)
25    Date: 2003/05/21 17:45:00 CDT
26    Tag: blume-20030517-complete
27    Description:
28    
29    Two changes:
30    
31      1. Added a flag for controlling whether non-exhaustive bindings will
32         be treated as errors (default is false).
33      2. Cleaned up the *entire* source tree so that CMB.make goes through
34         without a single non-exhaustive match- or bind warning.
35    
36    ----------------------------------------------------------------------
37    Name: Matthias Blume (blume@tti-c.org)
38    Date: 2003/05/17 10:20:00 CDT
39    Tag: blume-20030517-absyn
40    Description:
41    
42    1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn.
43    
44       This mainly affects the quality of error messages.  However, some
45       of the code is now more straightforward than before. (Treatment of
46       the above four constructs in translate.sml is much simpler than
47       the "macro-expansion" that was going on before.  Plus, the mach-
48       compiler no longer gets invoked just to be able to compile an
49       if-expression.)
50    
51    2. The ErrorMsg.Error exception is now caught and absorbed by the
52       interactive loop.
53    
54    ----------------------------------------------------------------------
55    Name: Allen Leung
56    Date: 2003/05/16 13:05:00 CDT
57    Tag: leunga-20030516-cygwin-runtime
58    Description:
59    
60        Ported the runtime system to cygwin, which uses the unix
61    x86-unix bin files.  Missing/buggy features:
62    
63       o getnetbyname, getnetbyaddr: these functions seem to be missing in
64         the Cygwin library.
65       o Ctrl-C handling may be flaky.
66       o Windows system calls and Windows I/O are not supported.
67    
68       A new set of binfiles is located at:
69    
70         http://www.dorsai.org/~leunga/boot.x86-unix.tgz
71    
72       This is only needed for bootstrapping the cygwin version of smlnj.
73       Other x86 versions can use the existing binfiles.
74    
75    ----------------------------------------------------------------------
76    Name: Matthias Blume
77    Date: 2003/04/08 15:42:00 CDT
78    Tag: blume-20030408-listpair
79    Description:
80    
81    1. Added a target 'mlrisc' to installer.
82    
83    2. Added missing elements to structure ListPair.
84    
85    ----------------------------------------------------------------------
86    Name: Allen Leung
87    Date: 2003/01/07 10:40:00 EST
88    Tag: leunga-20030107-int-rem
89    Description:
90    
91    Fixed a bug in Int.rem(x,y) where y is a power of 2 on x86.
92    The arguments to the SUBL instruction were swapped.
93    
94    ----------------------------------------------------------------------
95    Name: Matthias Blume
96    Date: 2002/12/12 16:25:00 EST
97    Tag: blume-20021212-risc-ra
98    Description:
99    
100    Fixed a serious bug in the rewrite code for FP spilling/reloading that
101    sent the RA into an infinite loop when floating point registers get
102    spilled.  (Because of this bug, e.g., nucleic stopped compiling between
103    110.37 and 110.38.)
104    There was another set of potential problems related to the handling of
105    MLRISC annotations (but those did not yet cause real problems, apparently).
106    
107    ----------------------------------------------------------------------
108    Name: Matthias Blume
109    Date: 2002/12/06 22:40:00 EST
110    Tag: blume-20021206-cm-fileid
111    Description:
112    
113    Added a call of SrcPath.sync at the beginning of Parse.parse (in CM).
114    This fixes the problem of CM getting confused by files that suddenly
115    change their identity (e.g., by getting unlinked and recreated by some
116    text editor such as vi).  There might be a better/cheaper/cleaner way
117    of doing this, but for now this will have to do.
118    
119    ----------------------------------------------------------------------
120    Name: Matthias Blume
121    Date: 2002/10/28 09:50:00 EST
122    Tag: blume-20021028-typecheck
123    Description:
124    
125    Exported structure Typecheck from $smlnj/viscomp/core.cm.
126    
127    ----------------------------------------------------------------------
128    Name: Matthias Blume
129    Date: 2002/10/17 09:10:00 EDT
130    Tag: Release_110_42
131    Description:
132    
133    In good old tradition, there has been a slight hiccup so that we have
134    to patch 110.42 after the fact.   The old release tag has been replaced
135    (see below).
136    
137    The change solves a problem with two competing approaches the
138    configuration problem regarding MacOS 10.1 vs. MacOS 10.2 which got in
139    each other's way.
140    
141    This change only affects the runtime system code and the installer script.
142    (No new bootfiles.)
143    
144    ----------------------------------------------------------------------
145    Name: Matthias Blume
146    Date: 2002/10/16 12:00:00 EDT
147    Tag: Release_110_42_removed
148    Description:
149    
150    New working release.  New bootfiles.
151    
152    ----------------------------------------------------------------------
153    Name: Matthias Blume
154    Date: 2002/10/10 13:10:00 EDT
155    Tag: blume-20021010-ppc-divs
156    Description:
157    
158    The mltree operator DIVS must be implemented with an overflow check on
159    the PPC because the hardware indicates divide-by-zero using "overflow" as
160    well.
161    
162    ----------------------------------------------------------------------
163    Name: Matthias Blume
164    Date: 2002/07/23 11:45:00
165    Tag: blume-20020723-smlnj-home
166    Description:
167    
168    Sml now senses the SMLNJ_HOME environment variable.  If this is set,
169    then the bin dir is assumed to be in $SMLNJ_HOME/bin and (unless
170    CM_PATHCONFIG is also set), the path configuration file is assumed
171    to be in $SMLNJ_HOME/lib/pathconfig.  This way one can easily move
172    the entire tree to some other place and everything will "just work".
173    
174    (Companion commands such as ml-build and ml-makedepend also sense this
175    variable.)
176    
177    ----------------------------------------------------------------------
178    Name: Matthias Blume
179    Date: 2002/07/12 21:19:00 EDT
180    Tag: blume-20020712-liveness
181    Description:
182    
183    Exported two useful "step" functions from liveness module (MLRISC).
184    
185    ----------------------------------------------------------------------
186    Name: Matthias Blume
187    Date: 2002/07/05 16:00 EDT
188    Tag: Release_110_41
189    Description:
190    
191    New working release.  New bootfiles.
192    
193    ----------------------------------------------------------------------
194    Name: Matthias Blume
195    Date: 2002/07/05 10:25:00 EDT
196    Tag: blume-20020705-btimp
197    Description:
198    
199    Exported structure BTImp from $smlnj/viscomp/debugprof.cm so that
200    other clients can set up backtracing support.
201    
202    ----------------------------------------------------------------------
203    Name: Matthias Blume
204    Date: 2002/06/25 17:23:00 EDT
205    Tag: blume-20020625-fpmax
206    Description:
207    
208    Fixed a bug in translation of INLMAX (and INLMIN) for the floating-point
209    case.  (The sense of the isNaN test was reversed -- which made min and
210    max always return their first argument.)
211    
212    ----------------------------------------------------------------------
213    Name: Matthias Blume
214    Date: 2002/06/11
215    Tag: blume-20020611-unixpath
216    Description:
217    
218    Back-ported OS.Path.{from,to}UnixPath from idlbasis-devel branch.
219    
220    ----------------------------------------------------------------------
221    Name: Matthias Blume
222    Date: 2002/06/10 16:35:00 EDT
223    Tag: blume-20020610-ieeereal
224    Description:
225    
226    I back-ported my implementation of IEEEReal.fromString from the
227    idlbasis-devel branch so that we can test it.
228    
229    Another small change is that ppDec tries to give more information
230    than just "<sig>" in the case of functors.  However, this code is
231    broken in some mysterious way if the functor's body's signature
232    has not been declared by ascription but gets inferred from the
233    implementation.  This needs fixing...
234    
235    ----------------------------------------------------------------------
236    Name: Matthias Blume
237    Date: 2002/05/31
238    Tag: blume-20020531-btrace-mode
239    Description:
240    
241    Resurrected SMLofNJ.Internals.BTrace.mode.  (It accidentally fell by
242    the wayside when I switched over to using Controls everywhere.)
243    
244    ----------------------------------------------------------------------
245    Name: Lal George
246    Date: 2002/05/23 12:21:40 EDT
247    Tag: george-20020523-visual-labels
248    Description:
249    
250    Labels are now displayed in the graphical output to make
251    the fall-through and target blocks obvious.
252    
253    ----------------------------------------------------------------------
254    Name: Matthias Blume
255    Date: 2002/05/22 11:03:00 EDT
256    Tag: blume-20020522-shrink
257    Description:
258    
259    John tweaked yesterday's fix for 1131 to handle an out-of-memory
260    situation that comes up when allocating huge arrays.
261    
262    ----------------------------------------------------------------------
263    Name: Matthias Blume
264    Date: 2002/05/21 16:00:00 EDT
265    Tag: Release_110_40
266    Description:
267    
268    New working release (110.40).  New bootfiles.
269    
270    [Also: John Reppy fixed GC bug 1131.]
271    
272    ----------------------------------------------------------------------
273    Name: Matthias Blume
274    Date: 2002/05/21 12:35:00 EDT
275    Tag: blume-20020521-cmdoc
276    Description:
277    
278    CM documentation update.
279    
280    ----------------------------------------------------------------------
281    Name: Matthias Blume
282    Date: 2002/05/21 10:55:00 EDT
283    Tag: blume-20020521-misc
284    Description:
285    
286    - John tweaked runtime to be silent on heap export (except when
287      GC messages are on).
288    - I added a few more things (cross-compiling versions of CMB) to
289      config/preloads (as suggestions).
290    
291    ----------------------------------------------------------------------
292    Name: Matthias Blume
293    Date: 2002/05/20 22:25:00 EDT
294    Tag: blume-20020520-controls
295    Description:
296    
297    - Added ControlUtil structure to control-lib.cm.
298    - Use it throughout.
299    - Used Controls facility to define MLRISC controls (as opposed to
300      registering MLRISC control ref cells with Controls after the fact)
301    - Fixed messed-up controls priorities.
302    
303    * Removed again all the stuff from config/preloads that one wouldn't
304      be able to preload at the time the initial heap image is built.
305      (Many libraries, e.g., CML, do not exist yet at this time.  The
306       only libraries that can be preloaded via config/preloads are those
307       that come bundled with the bootfiles.)
308    
309    ----------------------------------------------------------------------
310    Name: Matthias Blume
311    Date: 2002/05/20 10:59:00 EDT
312    Tag: blume-20020520-preloads
313    Description:
314    
315    Added a lot of commented-out suggestions for things to be included
316    in config/preloads.
317    
318    ----------------------------------------------------------------------
319    Name: Allen Leung
320    Date: 2002/05/18 14:20:00 EDT
321    Tag: leunga-20020518-mdl
322    Description:
323    
324    o Made the mdl tool stuff compile and run again.
325    o I've disabled all the stuff that depends on RTL specifications; they
326      are all badly broken anyway.
327    
328    ----------------------------------------------------------------------
329    Name: Matthias Blume
330    Date: 2002/05/17 16:49:00 EDT
331    Tag: blume-20020517-controls
332    Description:
333    
334    0. John Reppy made several modifications to the SML/NJ library.
335       In particular, there is a shiny new controls-lib.cm.
336    
337    1. Pushed new controls interface through compiler so that everything
338       compiles again.
339    
340    2. Added FormatComb and FORMAT_COMB to the CML version of the
341       SML/NJ library (so that CML compiles again).
342    
343    3. Modified init scripts because XXX_DEFAULT environment variables
344       are no longer with us.  (Boot-time initialization is now done
345       using the same environment variables that are also used for
346       startup-time initialization of controls.)
347    
348    ----------------------------------------------------------------------
349    Name: Lal George
350    Date: 2002/05/15 09:20:10 EDT
351    Tag: george-20020515-pseudo-op-decls
352    Description:
353    
354            All pseudo-ops emitted before the first segment declaration
355    such as TEXT, DATA, and BSS directives are assumed to be global
356    declarations and are emitted first in the assembly file. This is
357    useful in a number of situations where one has pseudo-ops that are not
358    specific to any segment, and also works around the constraint that one
359    cannot have client pseudo-ops in the TEXT segment.
360    
361            Because no segment is associated with these declarations it is
362    an error to allocate any space or objects before the first segment
363    directive and an exception will be raised. However, we cannot make
364    this check for client pseudo-ops.
365    
366            These top level declarations are a field in the CFG graph_info.
367    In theory you can continue to add to this field after the CFG has been
368    built -- provided you know what you are doing;-)
369    
370    ----------------------------------------------------------------------
371    Name: Matthias Blume
372    Date: 2002/05/13 16:40:00 EDT
373    Tag: blume-20020513-pp-etc
374    Description:
375    
376    A few minor bugfixes:
377    
378      - Stopgap measure for bug recently reported by Elsa Gunter (ppDec).
379        (Bogus printouts for redefined bindings still occur.  Compiler
380        bug should no longer occur now.  We need to redo the prettyprinter
381        from scratch.)
382    
383      - CM pathname printer now also adds escape sequences for ( and )
384    
385      - commend and docu fixes for ml-nlffi
386    
387    ----------------------------------------------------------------------
388    Name: Matthias Blume
389    Date: 2002/05/10 16:40:00 EDT
390    Tag: blume-20020510-erg-textio
391    Description:
392    
393    Applied the following bugfix provided by Emden Gansner:
394    
395        Output is corrupted when outputSubstr is used rather than output.
396    
397        The problem occurs when a substring
398    
399            ss = (s, dataStart, dataLen)
400    
401        where dataStart > 0, fills a stream buffer with avail bytes left.
402        avail bytes of s, starting at index dataStart, are copied into the
403        buffer, the buffer is flushed, and then the remaining dataLen-avail
404        bytes of ss are copied into the beginning of the buffer. Instead of
405        starting this copy at index dataStart+avail in s, the current code
406        starts the copy at index avail.
407    
408        Fix:
409        In text-io-fn.sml, change line 695 from
410             val needsFlush = copyVec(v, avail, dataLen-avail, buf, 0)
411        to
412             val needsFlush = copyVec(v, dataStart+avail, dataLen-avail, buf, 0)
413    
414    ----------------------------------------------------------------------
415    Name: Matthias Blume
416    Date: 2002/04/12 13:55:00 EDT
417    Tag: blume-20020412-assyntax
418    Description:
419    
420    1. Grabbed newer assyntax.h from the XFree86 project.
421    2. Fiddled with how to compile X86.prim.asm without warnings.
422    3. (Very) Minor cleanup in CM.
423    
424    ----------------------------------------------------------------------
425    Name: Matthias Blume
426    Date: 2002/04/01 (no joke!) 17:07:00 EST
427    Tag: blume-20020401-x86div
428    Description:
429    
430    Added full support for div/mod/rem/quot on the x86, using the machine
431    instruction's two results (without clumsily recomputing the remainder)
432    directly where appropriate.
433    
434    Some more extensive power-of-two support was added to the x86 instruction
435    selector (avoiding expensive divs, mods, and muls where they can be
436    replaced with cheaper shifts and masks).  However, this sort of thing
437    ought to be done earlier, e.g., within the CPS optimizer so that
438    all architectures benefit from it.
439    
440    The compiler compiles to a fixed point, but changes might be somewhat
441    fragile nevertheless.  Please, report any strange things that you might
442    see wrt. div/mod/quot/rem...
443    
444    ----------------------------------------------------------------------
445    Name: Matthias Blume
446    Date: 2002/03/29 17:22:00
447    Tag: blume-20020329-div
448    Description:
449    
450    Fixed my broken div/mod logic.  Unfortunately, this means that the
451    inline code for div/mod now has one more comparison than before.
452    Fast paths (quotient > 0 or remainder = 0) are not affected, though.
453    The problem was with quotient = 0, because that alone does not tell
454    us which way the rounding went.  One then has to look at whether
455    remainder and divisor have the same sign...  :(
456    
457    Anyway, I replaced the bootfiles with fresh ones...
458    
459    ----------------------------------------------------------------------
460    Name: Matthias Blume
461    Date: 2002/03/29 14:10:00 EST
462    Tag: blume-20020329-inlprims
463    Description:
464    
465    NEW BOOTFILES!!!    Version number bumped to 110.39.3.
466    
467    Primops have changed. This means that the bin/boot-file formats have
468    changed as well.
469    
470    To make sure that there is no confusion, I made a new version.
471    
472    
473    CHANGES:
474    
475    * removed REMT from mltree (remainder should never overflow).
476    
477    * added primops to deal with divisions of all flavors to the frontend
478    
479    * handled these primops all the way through so they map to their respective
480      MLRISC support
481    
482    * used these primops in the implementation of Int, Int32, Word, Word32
483    
484    * removed INLDIV, INLMOD, and INLREM as they are no longer necessary
485    
486    * parameterized INLMIN, INLMAX, and INLABS by a numkind
487    
488    * translate.sml now deals with all flavors of INL{MIN,MAX,ABS}, including
489      floating point
490    
491    * used INL{MIN,MAX,ABS} in the implementation of Int, Int32, Word, Word32,
492      and Real (but Real.abs maps to a separate floating-point-only primop)
493    
494    
495    TODO items:
496    
497    * Hacked Alpha32 instruction selection, disabling the selection of REMx
498      instructions because the machine instruction encoder cannot handle
499      them.  (Hppa, PPC, and Sparc instruction selection did not handle
500      REM in the first place, and REM is supported by the x86 machine coder.)
501    
502    * Handle DIV and MOD with DIV_TO_NEGINF directly in the x86 instruction
503      selection phase.  (The two can be streamlined because the hardware
504      delivers both quotient and remainder at the same time anyway.)
505    
506    * Think about what to do with "valOf(Int32.minInt) div ~1" and friends.
507      (Currently the behavior is inconsistent both across architectures and
508      wrt. the draft Basis spec.)
509    
510    * Word8 should eventually be handled natively, too.
511    
512    * There seems to be one serious bug in mltree-gen.sml.  It appears, though,
513      as if there currently is no execution path that could trigger it in
514      SML/NJ.  (The assumptions underlying functions arith and promotable do not
515      hold for things like multiplication and division.)
516    
517    ----------------------------------------------------------------------
518  Name: Matthias Blume  Name: Matthias Blume
519  Date: 2002/03/27 16:27:00 EST  Date: 2002/03/27 16:27:00 EST
520  Tag: blume-20020327-mlrisc-divisions  Tag: blume-20020327-mlrisc-divisions

Legend:
Removed from v.1181  
changed lines
  Added in v.1335

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