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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

revision 1181, Wed Mar 27 21:27:27 2002 UTC revision 1190, Mon May 13 20:39:05 2002 UTC
# Line 14  Line 14 
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16  Name: Matthias Blume  Name: Matthias Blume
17    Date: 2002/05/13 16:40:00 EDT
18    Tag: blume-20020513-pp-etc
19    Description:
20    
21    A few minor bugfixes:
22    
23      - Stopgap measure for bug recently reported by Elsa Gunter (ppDec).
24        (Bogus printouts for redefined bindings still occur.  Compiler
25        bug should no longer occur now.  We need to redo the prettyprinter
26        from scratch.)
27    
28      - CM pathname printer now also adds escape sequences for ( and )
29    
30      - commend and docu fixes for ml-nlffi
31    
32    ----------------------------------------------------------------------
33    Name: Matthias Blume
34    Date: 2002/05/10 16:40:00 EDT
35    Tag: blume-20020510-erg-textio
36    Description:
37    
38    Applied the following bugfix provided by Emden Gansner:
39    
40        Output is corrupted when outputSubstr is used rather than output.
41    
42        The problem occurs when a substring
43    
44            ss = (s, dataStart, dataLen)
45    
46        where dataStart > 0, fills a stream buffer with avail bytes left.
47        avail bytes of s, starting at index dataStart, are copied into the
48        buffer, the buffer is flushed, and then the remaining dataLen-avail
49        bytes of ss are copied into the beginning of the buffer. Instead of
50        starting this copy at index dataStart+avail in s, the current code
51        starts the copy at index avail.
52    
53        Fix:
54        In text-io-fn.sml, change line 695 from
55             val needsFlush = copyVec(v, avail, dataLen-avail, buf, 0)
56        to
57             val needsFlush = copyVec(v, dataStart+avail, dataLen-avail, buf, 0)
58    
59    ----------------------------------------------------------------------
60    Name: Matthias Blume
61    Date: 2002/04/12 13:55:00 EDT
62    Tag: blume-20020412-assyntax
63    Description:
64    
65    1. Grabbed newer assyntax.h from the XFree86 project.
66    2. Fiddled with how to compile X86.prim.asm without warnings.
67    3. (Very) Minor cleanup in CM.
68    
69    ----------------------------------------------------------------------
70    Name: Matthias Blume
71    Date: 2002/04/01 (no joke!) 17:07:00 EST
72    Tag: blume-20020401-x86div
73    Description:
74    
75    Added full support for div/mod/rem/quot on the x86, using the machine
76    instruction's two results (without clumsily recomputing the remainder)
77    directly where appropriate.
78    
79    Some more extensive power-of-two support was added to the x86 instruction
80    selector (avoiding expensive divs, mods, and muls where they can be
81    replaced with cheaper shifts and masks).  However, this sort of thing
82    ought to be done earlier, e.g., within the CPS optimizer so that
83    all architectures benefit from it.
84    
85    The compiler compiles to a fixed point, but changes might be somewhat
86    fragile nevertheless.  Please, report any strange things that you might
87    see wrt. div/mod/quot/rem...
88    
89    ----------------------------------------------------------------------
90    Name: Matthias Blume
91    Date: 2002/03/29 17:22:00
92    Tag: blume-20020329-div
93    Description:
94    
95    Fixed my broken div/mod logic.  Unfortunately, this means that the
96    inline code for div/mod now has one more comparison than before.
97    Fast paths (quotient > 0 or remainder = 0) are not affected, though.
98    The problem was with quotient = 0, because that alone does not tell
99    us which way the rounding went.  One then has to look at whether
100    remainder and divisor have the same sign...  :(
101    
102    Anyway, I replaced the bootfiles with fresh ones...
103    
104    ----------------------------------------------------------------------
105    Name: Matthias Blume
106    Date: 2002/03/29 14:10:00 EST
107    Tag: blume-20020329-inlprims
108    Description:
109    
110    NEW BOOTFILES!!!    Version number bumped to 110.39.3.
111    
112    Primops have changed. This means that the bin/boot-file formats have
113    changed as well.
114    
115    To make sure that there is no confusion, I made a new version.
116    
117    
118    CHANGES:
119    
120    * removed REMT from mltree (remainder should never overflow).
121    
122    * added primops to deal with divisions of all flavors to the frontend
123    
124    * handled these primops all the way through so they map to their respective
125      MLRISC support
126    
127    * used these primops in the implementation of Int, Int32, Word, Word32
128    
129    * removed INLDIV, INLMOD, and INLREM as they are no longer necessary
130    
131    * parameterized INLMIN, INLMAX, and INLABS by a numkind
132    
133    * translate.sml now deals with all flavors of INL{MIN,MAX,ABS}, including
134      floating point
135    
136    * used INL{MIN,MAX,ABS} in the implementation of Int, Int32, Word, Word32,
137      and Real (but Real.abs maps to a separate floating-point-only primop)
138    
139    
140    TODO items:
141    
142    * Hacked Alpha32 instruction selection, disabling the selection of REMx
143      instructions because the machine instruction encoder cannot handle
144      them.  (Hppa, PPC, and Sparc instruction selection did not handle
145      REM in the first place, and REM is supported by the x86 machine coder.)
146    
147    * Handle DIV and MOD with DIV_TO_NEGINF directly in the x86 instruction
148      selection phase.  (The two can be streamlined because the hardware
149      delivers both quotient and remainder at the same time anyway.)
150    
151    * Think about what to do with "valOf(Int32.minInt) div ~1" and friends.
152      (Currently the behavior is inconsistent both across architectures and
153      wrt. the draft Basis spec.)
154    
155    * Word8 should eventually be handled natively, too.
156    
157    * There seems to be one serious bug in mltree-gen.sml.  It appears, though,
158      as if there currently is no execution path that could trigger it in
159      SML/NJ.  (The assumptions underlying functions arith and promotable do not
160      hold for things like multiplication and division.)
161    
162    ----------------------------------------------------------------------
163    Name: Matthias Blume
164  Date: 2002/03/27 16:27:00 EST  Date: 2002/03/27 16:27:00 EST
165  Tag: blume-20020327-mlrisc-divisions  Tag: blume-20020327-mlrisc-divisions
166  Description:  Description:

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

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