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 721, Mon Nov 6 14:03:39 2000 UTC revision 774, Wed Jan 10 12:50:56 2001 UTC
# Line 11  Line 11 
11  Date:  Date:
12  Tag: <post-commit CVS tag>  Tag: <post-commit CVS tag>
13  Description:  Description:
14    ----------------------------------------------------------------------
15    Name: Matthias Blume
16    Date: 2001/01/10 21:55:00 JST
17    Tag: blume-20010110-rcc
18    Description:
19    
20    The RCC stuff now seems to work (but only on the x86).
21    This required hacking of the c-calls interface (and -implementation) in
22    MLRISC.
23    
24    Normal compiler users should be unaffected.
25    
26    ----------------------------------------------------------------------
27    Name: Matthias Blume
28    Date: 2001/01/09 01:20:00 JST
29    Tag: blume-20010109-rcc
30    Description:
31    
32    This is a fairly big patch, flushing out a large number of pending
33    changes that I made to my development copy over the last couple of days.
34    
35    Of practical relevance at this moment is a workaround for a pickling
36    bug that Allen ran into the other day.  The cause of the bug itself is
37    still unknown and it might be hard to fix it properly, but the
38    workaround has some merits of its own (namely somewhat reducing pickling
39    overhead for certain libraries).  Therefore, I think this solution should
40    be satisfactory at this time.
41    
42    The rest of the changes (i.e., the vast majority) has to do with my
43    ongoing efforts of providing direct support for C function calls from
44    ML.  At the moment there is a new primop "RAW_CCALL", typing magic
45    in types/cproto.sml (invoked from FLINT/trans/translate.sml), a new
46    case in the FLINT CPS datatype (RCC), changes to cps/convert.sml to
47    translate uses of RAW_CCALL into RCC, and changes to mlriscGen.sml to
48    handle RCC.
49    
50    The last part (the changes to mlriscGen.sml) are still known to be
51    wrong on the x86 and not implemented on all other architectures.  But
52    the infrastructure is in place. I had to change a few functor
53    signatures in the backend to be able to route the CCalls interface
54    from MLRISC there, and I had to specialize the mltree type (on the
55    x86) to include the necessary extensions. (The extensions themselves
56    were already there and redy to go in MLRISC/x86).
57    
58    Everything should be very happy as soon as someone helps me with
59    mlriscGen.sml...
60    
61    In any case, nothing of this should matter to anyone as long as the
62    new primop is not being used (which is going to be the case unless you
63    find it where I hid it :). The rest of the compiler is completely
64    unaffected.
65    
66    ----------------------------------------------------------------------
67    Name: Matthias Blume
68    Date: 2001/01/05 00:30:00 JST
69    Tag: blume-20010105-primops
70    Description:
71    
72    Added some experimental support for work that I am doing right now.
73    These changes mostly concern added primops, but there is also a new
74    experimental C library in the runtime system (but currently not enabled
75    anywhere except on Linux/X86).
76    
77    In the course of adding primops (and playing with them), I discovered that
78    Zhong's INL_PRIM hack (no type info for certain primops) was, in fact, badly
79    broken.  (Zhong was very right he labeled this stuff as "major gross hack".)
80    To recover, I made type information in INL_PRIM mandatory and changed
81    prim.sml as well as built-in.sml accordingly.  The InLine structure now
82    has complete, correct type information (i.e., no bottom types).
83    
84    Since all these changes mean that we need new binfiles, I also bumped the
85    version number to 110.32.1.
86    
87    ----------------------------------------------------------------------
88    Name: Matthias Blume
89    Date: 2000/12/30 22:10:00 JST
90    Tag: blume-20001230-various
91    Description:
92    
93    Added proxy libraries for MLRISC and let MLRISC libraries refer
94    to each other using path anchors.  (See CM manual for explanation.)
95    
96    Updated CM documentation.
97    
98    Fixed some bugs in CM.
99    
100    Implemented "proxy" libraries (= syntactic sugar for CM).
101    
102    Added "-quiet" option to makeml and changed runtime system accordingly.
103    
104    Added cleanup handler for exportML to reset timers and compiler stats.
105    
106    ----------------------------------------------------------------------
107    Name: Lal George
108    Date: 2000/12/22 22:22:58 EST 2000
109    Tag: Release_110_32
110    Description:
111    
112            Infinite precision used throughout MLRISC.
113            see MLRISC/mltree/machine-int.sig
114    
115    ----------------------------------------------------------------------
116    Name: Matthias Blume
117    Date: 2000/12/22 23:16:00 JST
118    Tag: blume-20001222-warn
119    Description:
120    
121    Corrected wording and formatting of some CM warning message which I
122    broke in my previous patch.
123    
124    ----------------------------------------------------------------------
125    Name: Matthias Blume
126    Date: 2000/12/22 21:20:00 JST
127    Tag: blume-20001222-anchorenv
128    Description:
129    
130    Fixed CM's handling of anchor environments in connection with CMB.make.
131    
132    ----------------------------------------------------------------------
133    Name: Matthias Blume
134    Date: 2000/12/22 13:15:00 JST
135    Tag: blume-20001222-cleanup
136    Description:
137    
138    Removed src/cm/ffi which does not (and did not) belong here.
139    
140    ----------------------------------------------------------------------
141    Name: Matthias Blume
142    Date: 2000/12/21 23:55:00 JST
143    Tag: blume-20001221-exn
144    Description:
145    
146    Probably most important: CM no longer silently swallows all exceptions
147    in the compiler.
148    Plus: some other minor CM changes.  For example, CM now reports some
149    sizes for generated binfiles (code, data, envpickle, lambdapickle).
150    
151    ----------------------------------------------------------------------
152    Name: Matthias Blume
153    Date: 2000/12/15 00:01:05 JST
154    Tag: blume-20001215-dirtool
155    Description:
156    
157    - "dir" tool added.
158    - improvements and cleanup to Tools structure
159    - documentation updates
160    
161    ----------------------------------------------------------------------
162    Name: Allen Leung
163    Date: Thu Dec 14 03:45:24 EST 2000
164    Description:
165    Tag:  leunga-20001214-int-inf
166    Description:
167    
168       In IntInf, added these standard functions, which are missing from our
169    implementation:
170    
171        andb : int * int -> int
172        xorb : int * int -> int
173        orb  : int * int -> int
174        notb : int -> int
175         <<   : int * word -> int
176        ~>>  : int * word -> int
177    
178       Not tested, I hope they are correct.
179    
180    ----------------------------------------------------------------------
181    Name: Allen Leung
182    Date: Fri Dec  8 19:23:26 EST 2000
183    Description:
184    Tag:  leunga-20001208-nowhere
185    Description:
186    
187      Slight improvements to the 'nowhere' tool to handle OR-patterns,
188    to generate better error messages etc.  Plus a brief manual.
189    
190    ----------------------------------------------------------------------
191    Name: Lal George
192    Date: 2000/12/08 09:54:02 EST 2000
193    Tag: Release_110_31
194    Description:
195    
196    - Version 110.31
197    ----------------------------------------------------------------------
198    Name: Allen Leung
199    Date: Thu Dec  7 22:01:04 EST 2000
200    Tag:  leunga-20001207-cell-monster-hack
201    Description:
202    
203    Major MLRISC internal changes.  Affect all clients.
204    Summary:
205    
206    1.  Type CELLS.cell = int is now replaced by a datatype.
207        As a result, the old regmap is now gone.  Almost all interfaces
208        in MLRISC change as a consequence.
209    
210    2.  A new brand version of machine description tool (v3.0) that generates
211        modules expecting the new interface.  The old version is removed.
212    
213    3.  The RA interface has been further abstracted into two new functors.
214        RISC_RA and X86RA.  These functors have much simpler interfaces.
215        [See also directory MLRISC/demo.]
216    
217    4.  Some other new source->source code generation tools are available:
218    
219        a. MLRISC/Tools/RewriteGen -- generate rewriters from rules.
220        b. MLRISC/Tools/WhereGen -- expands conditional pattern matching rules.
221           I use this tool to generate the peephole optimizers---with the new
222           cell type changes, peephole rules are becoming difficult to write
223           without conditional pattern matching.
224    
225    5.  More Intmap -> IntHashTable change.  Previous changes by Matthias didn't
226        cover the entire MLRISC source tree so many things broke.
227    
228    6.  CM files have been moved to the subdirectory MLRISC/cm.
229        They are moved because there are a lot of them and they clutter up the
230        root dir.
231    
232    7.  More detailed documentation to come...
233    
234        NOTE: To rebuild from 110.30 (ftp distribution), you'll have to do
235        a makeml -rebuild first.  This is because of other other
236        changes that Matthias has made (see below).
237    
238    
239    ----------------------------------------------------------------------
240    Name: Matthias Blume
241    Date: 2000/11/30 23:12:00 JST
242    Tag: blume-20001130-filereorg
243    Description:
244    
245    Some manual updates and some file reorganizations in CM.
246    
247    ----------------------------------------------------------------------
248    Name: Matthias Blume
249    Date: 2000/11/24 17:45:00 JST
250    Tag: blume-20001124-link
251    Description:
252    
253    Drastically improved link traversal code for the case that the dynamic
254    value was already loaded at bootstrap time.  As a result, CM and CMB
255    now both load blazingly fast -- even on a very slow machine.  Also,
256    memory consumption has been further reduced by this.
257    
258    Warning: The format of the PIDMAP file has changed.  THerefore, to
259    bootstrap you have to do this:
260    
261    1. Run CMB.make
262    2. Make a symbolic link for the boot directory:
263         ln -s sml.boot.ARCH-OS xxx
264    3. "Rebuild" the boot directory:
265         ./makeml -boot xxx -rebuild sml ; rm xxx
266    4. Boot normally:
267          ./makeml
268    
269    ----------------------------------------------------------------------
270    Name: Matthias Blume
271    Date: 2000/11/21 21:20:00 JST
272    Tag: blume-20001121-tools
273    Description:
274    
275    Continued hacking on autoloading problem -- with success this time.
276    Also changed tool-plugin mechanism.  See new CM manual.
277    
278    ----------------------------------------------------------------------
279    Name: Matthias Blume
280    Date: 2000/11/19 14:30:00 JST
281    Tag:  blume-20001119-autoload
282    Description:
283    
284    Some hacking to make autoloading faster.  Success for CMB, no success
285    so far for CM.  There is a reduced structure CM' that autoloads faster.
286    (This is a temporary, non-documented hack to be eliminated again when
287    the general problem is solved.)
288    
289    ----------------------------------------------------------------------
290    Name: Matthias Blume
291    Date: 2000/11/17 14:10:00 JST
292    Tag: blume-20001117-pickle-lib
293    Description:
294    
295    1. Eliminated comp-lib.cm
296    2. Made pickle-lib.cm
297    3. Eliminated all uses of intset.sml (from comp-lib.cm)
298    4. Replaced all uses of intmap.{sig,sml} (from comp-lib.cm) with
299       equivalent constructs from smlnj-lib.cm (INtHashTable).
300    5. Point 4. also goes for those uses of intmap.* in MLRISC.
301       Duplicated intmap modules thrown out.
302    6. Hunted down all duplicated SCC code and replaced it with
303       equivalent stuff (GraphSCCFn from smlnj-lib.cm).
304    7. Rewrote Feedback module.
305    8. Moved sortedlist.sml into viscomp-lib.cm.  Eventually it
306       should be thrown out and equivalent modules from smlnj-lib.cm
307       should be used (IntRedBlackSet, IntListSet, ...).
308    
309    Confirmed that compiler compiles to fixpoint.
310    
311    ----------------------------------------------------------------------
312    Name: Allen Leung
313    Date: 2000/11/10 18:00:00
314    Tag: leunga-20001110-new-x86-fp
315    
316    A new x86 floating point code generator has been added.
317    By default this is turned off.  To turn this on, do:
318    
319        CM.autoload "$smlnj/compiler.cm";
320        Compiler.Control.MLRISC.getFlag "x86-fast-fp" := true;
321    
322    Changes:
323    
324    1.  Changed FTAN to FPTAN so that the assembly output is correct.
325    2.  Changed the extension callback for FTANGENT to generate:
326    
327              fptan
328              fstp  %st(0)
329        instead of
330              fptan
331              fstpl ftempmem
332    
333    3.  Numerous assembly fixes for x86.
334    
335    5.  Cleaned up the machine code output module x86/x86MC.sml and added
336        support for a whole bunch of instructions and addressing modes:
337    
338          fadd/fsub/fsubr/fmul/fdiv/fdivr  %st, %st(n)
339          faddp/fsubp/fsubrp/fmulp/fdivp/fdivrp  %st, %st(n)
340          fadd/fsub/fsubr/fmul/fdiv/fdivr  %st(n), %st
341          fiadd/fisub/fisubr/fimul/fidiv/fidivr mem
342          fxch %st(n)
343          fld %st(n)
344          fst %st(n)
345          fst mem
346          fstp %st(n)
347          fucom %st(n)
348          fucomp %st(n)
349    
350        All these are now generated when the fast fp mode is turned on.
351    
352    6.  Removed the dedicated registers %st(0), ..., %st(7) from X86CpsRegs
353    
354    ----------------------------------------------------------------------
355    Name: Matthias Blume
356    Date: 2000/11/09 11:20:00 JST
357    Tag: blume-20001109-scc
358    Description:
359    
360    Eliminated some code duplication:
361    
362    1. Added "where" clause to GraphSCCFn in SML/NJ Library.
363       (Otherwise the functor is useless.)
364    2. Used GraphSCCFn where SCCUtilFun was used previously.
365    3. Got rid of SCCUtilFun (in comp-lib.cm).
366    
367  ----------------------------------------------------------------------  ----------------------------------------------------------------------
368  Name: Lal George  Name: Lal George

Legend:
Removed from v.721  
changed lines
  Added in v.774

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