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

Legend:
Removed from v.715  
changed lines
  Added in v.773

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