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 735, Tue Nov 21 12:15:55 2000 UTC revision 818, Fri May 4 20:58:47 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/05/04 17:00:00 EDT
17    Tag: blume-20010504-cm-lsplit
18    Description:
19    
20    0. John merged pending changes to $/smlnj-lib.cm
21    
22    1. Allen's previous change accidentally backed out of one of Lal's
23       earlier changes.  I undid this mistake (re-introducing Lal's change).
24    
25    2. I used the new topOrder' function from graph-scc.sml (from $/smlnj-lib.cm)
26       within the compiler where applicable.  There is some code simplification
27       because of that.
28    
29    3. The "split" phase (in FLINT) is now part of the default list of phases.
30       Compiler.Control.LambdaSplitting.* can be used to globally control the
31       lambda-splitting (cross-module-inlining) engine.  In addition to that,
32       it can now also be controlled on a per-source basis: CM has been taught
33       a new tool parameter applicable to ML source files.
34    
35       - To turn lambda-splitting off completely:
36            local open Compiler.Control.LambdaSplitting in
37                val _ = set Off
38            end
39       - To make "no lambda-splitting" the global default (but allow per-source
40         overriding); this is the initial setting:
41            local open Compiler.Control.LambdaSplitting in
42                val _ = set (Default NONE)
43            end
44       - To make "lambda-splitting with aggressiveness a" the global default
45         (and allow per-source overriding):
46            local open Compiler.Control.LambdaSplitting in
47                val _ = set (Default (SOME a))
48            end
49    
50       - To turn lambda-splitting off for a given ML souce file (say: a.sml)
51         write (in the respective .cm-file):
52            a.sml (lambdasplitting:off)
53       - To turn lambda-splitting for a.sml on with minimal aggressiveness:
54            a.sml (lambdasplitting:on)
55       - To turn lambda-splitting for a.sml on with aggressiveness <a> (where
56         <a> is a decimal non-negative integer):
57            a.sml (lambdasplitting:<a>)
58       - To turn lambda-splitting for a.sml on with maximal aggressiveness:
59            a.sml (lambdasplitting:infinity)
60       - To use the global default for a.sml:
61            a.sml (lambdasplitting:default)
62         or simply
63            a.sml
64    
65    ----------------------------------------------------------------------
66    Name: Allen Leung
67    Date: 2001/05/04 01:57:00 EDT
68    Tag: leunga-20010504-sync
69    Description:
70    
71      MLRISC features.
72    
73      1. Fix to CMPXCHG instructions.
74      2. Changed RA interface to allow annotations in callbacks.
75      3. Added a new method to the stream interface to allow annotations updates.
76    
77    ----------------------------------------------------------------------
78    Name: Matthias Blume
79    Date: 2001/05/01 11:45:00 EDT
80    Tag: blume-20010501-pcedittmp
81    Description:
82    
83    Changed install.sh to use the current working directory instead of
84    /usr/tmp for a temporary file (pcedittmp).  The previous choice
85    of /usr/tmp caused trouble with MacOS X because of file premission
86    problems.
87    
88    ----------------------------------------------------------------------
89    Name: Matthias Blume
90    Date: 2001/04/20 11:10:00 EDT
91    Tag: blume-20010420-inMLflag
92    Description:
93    
94     - added vp_limitPtrMask to vproc-state.h
95       (for use by the raw-C-calls mechanism to implement proper interrupt
96        handling)
97     - made the ML compiler aware of various data-structure offsets so it
98       can generate code for accessing the vp_inML flag and vp_limitPtrMask
99     - tweaked mlriscGen.sml to have it emit interrupt-handling code for
100       raw C-calls
101    
102    ----------------------------------------------------------------------
103    Name: Lal George
104    Date: 2001/04/20 09:15:28 EDT
105    Tag: george-20010420-macosX
106    Description:
107    
108     - Changes to port to Mac OS X; Darwin.
109    
110     - In the process I found that sqrt was broken on the PPC, because the
111       fsqrt instruction is not implemented.
112    
113    ----------------------------------------------------------------------
114    Name: Matthias Blume
115    Date: 2001/04/18 12:45:00 EDT
116    Tag: blume-20010418-ccalls
117    Description:
118    
119     - fixed two off-by-4 errors in the x86-specific c-calls implementation
120       (this bug prevented structure arguments containing pointers from being
121        passed correctly)
122     - changed the raw-C-call code in mlriscGen.sml in such a way that
123       structure arguments are represented as a pointer to the beginning
124       of the structure (instead of having a series of synthesized arguments,
125       one for each structure member)
126    
127     - made makeml script's verbosity level configurable via environment
128       variable (MAKEML_VERBOSITY)
129    
130     - eliminated placeholder implementations for f32l, w16s, i16s, and f32s
131       in rawmem-x86.sml; we are now using the real thing
132    
133    ----------------------------------------------------------------------
134    Name: Matthias Blume
135    Date: 2001/03/22 16:25:00 EST
136    Tag: blume-20010322-bootfiles
137    Description:
138    
139    Created a new set of bootfiles (for your automatic installation convenience).
140    
141    ----------------------------------------------------------------------
142    Name: Matthias Blume
143    Date: 2001/03/22 15:10:00 EST
144    Tag: blume-20010322-rawmem-parcm
145    Description:
146    
147    1. All "raw memory access" primitives for the new FFI are implemented now
148       (at least on the x86).
149    2. Some further cleanup of CM's parallel make mechanism.
150    
151    ----------------------------------------------------------------------
152    Name: Matthias Blume
153    Date: 2001/03/19 17:53:00 EST
154    Tag: blume-20010319-parallel
155    Description:
156    
157    Parallel make (using compile servers) now works again.
158    
159    To this end, CM.stabilize and CMB.make have been modified to work in
160    two passes when compile servers are attached:
161       1. Compile everything, do not perform stabilization; this pass
162          uses compile servers
163       2. Stabilize everything; this pass does not use compile servers
164    If there are no compile servers, the two passes are combined into one
165    (as before).  Splitting the passes increases the inherent parallelism
166    in the dependency graph because the entire graph including all
167    libraries is available at the same time.  This, in turn, improves
168    server utilization.  The downside is that the master process will
169    have to do some extra work after compilation is done (because for
170    technical reasons it must re-read all the binfiles during stabilization).
171    
172    ----------------------------------------------------------------------
173    Name: Matthias Blume
174    Date: 2001/03/16 12:22:00 EST
175    Tag: blume-20010316-bootfiles
176    Description:
177    
178    Created a new set of bootfiles (for your automatic installation convenience).
179    
180    ----------------------------------------------------------------------
181    Name: Matthias Blume
182    Date: 2001/03/16 11:00:00 EST
183    Tag: blume-20010316-MLTREE-fixup
184    Description:
185    
186    This is a minor fixup for an (untagged) earlier commit by Allen.
187    (A file was missing).
188    
189    ----------------------------------------------------------------------
190    Name: Allen Leung
191    Date: Mon Mar  5 18:54:57 EST 2001
192    Tag: leunga-20010305-cut-support
193    
194    1. New support for alternative control-flow in MLTREE.
195       Currently we support
196    
197          FLOW_TO(CALL ...., [k1,...,kn])
198    
199       This is needed for 'cuts to' in C-- and try/handle-like constructs
200       in Moby
201    
202       New assembler flag "asm-show-cutsto" to turn on control-flow debugging.
203    
204    2. Register Allocator
205    
206       Changes in interface [from Fermin, John]
207    
208    3. Alpha 8-bit SLL support [Fermin]
209    
210    4. All architectures
211    
212       A new module (ClusterExpandCopies) for expanding parallel copies.
213    
214    ----------------------------------------------------------------------
215    Name: Allen Leung
216    Date: 2001/02/27 23:07:00 EST
217    Tag: leunga-20010227-minor-stuff
218    
219    1. Alpha bug fix for CMOVNE
220    2. Handle mltree COND(..,FCMP ...,...)
221    3. Bug fix in simplifier
222    
223    ----------------------------------------------------------------------
224    Name: Matthias Blume
225    Date: 2001/01/30 17:50:00 EST
226    Tag: blume-20010130-sync
227    Description:
228    
229    This is just a minor update to sync my devel branch with the main brach.
230    The only visible change is the addition of some README files.
231    
232    ----------------------------------------------------------------------
233    Name: Matthias Blume
234    Date: 2001/01/12 23:30:00 JST
235    Tag: blume-20010112-bootfiles
236    Description:
237    
238    Made a new set of bootfiles that goes with the current state of the
239    repository.
240    
241    ----------------------------------------------------------------------
242    Name: Matthias Blume
243    Date: 2001/01/12 21:20:00 JST
244    Tag: blume-20010112-sync
245    Description:
246    
247    I am just flushing out some minor changes that had accumulated in
248    my private branch in order to sync with the main tree.  (This is
249    mainly because I had CVS trouble when trying to merge _into_ my
250    private branch.)
251    
252    Most people should be completely unaffected by this.
253    
254    ----------------------------------------------------------------------
255    Name: Allen Leung
256    Date: Thu Jan 11 21:03:00 EST 2001
257    Tag: leunga-20010111-labexp=mltree
258    Description:
259    
260    1.  Removed the type LabelExp and replace it by MLTree.
261    2.  Rewritten mltree-simplify with the pattern matcher tool.
262    3.  There were some bugs in alpha code generator which would break
263        64-bit code generation.
264    4.  Redo the tools to generate code with the
265    5.  The CM files in MLRISC (and in src/system/smlnj/MLRISC)
266        are now generated by perl scripts.
267    
268    ----------------------------------------------------------------------
269    Name: Matthias Blume
270    Date: 2001/01/10 21:55:00 JST
271    Tag: blume-20010110-rcc
272    Description:
273    
274    The RCC stuff now seems to work (but only on the x86).
275    This required hacking of the c-calls interface (and -implementation) in
276    MLRISC.
277    
278    Normal compiler users should be unaffected.
279    
280    ----------------------------------------------------------------------
281    Name: Matthias Blume
282    Date: 2001/01/09 01:20:00 JST
283    Tag: blume-20010109-rcc
284    Description:
285    
286    This is a fairly big patch, flushing out a large number of pending
287    changes that I made to my development copy over the last couple of days.
288    
289    Of practical relevance at this moment is a workaround for a pickling
290    bug that Allen ran into the other day.  The cause of the bug itself is
291    still unknown and it might be hard to fix it properly, but the
292    workaround has some merits of its own (namely somewhat reducing pickling
293    overhead for certain libraries).  Therefore, I think this solution should
294    be satisfactory at this time.
295    
296    The rest of the changes (i.e., the vast majority) has to do with my
297    ongoing efforts of providing direct support for C function calls from
298    ML.  At the moment there is a new primop "RAW_CCALL", typing magic
299    in types/cproto.sml (invoked from FLINT/trans/translate.sml), a new
300    case in the FLINT CPS datatype (RCC), changes to cps/convert.sml to
301    translate uses of RAW_CCALL into RCC, and changes to mlriscGen.sml to
302    handle RCC.
303    
304    The last part (the changes to mlriscGen.sml) are still known to be
305    wrong on the x86 and not implemented on all other architectures.  But
306    the infrastructure is in place. I had to change a few functor
307    signatures in the backend to be able to route the CCalls interface
308    from MLRISC there, and I had to specialize the mltree type (on the
309    x86) to include the necessary extensions. (The extensions themselves
310    were already there and redy to go in MLRISC/x86).
311    
312    Everything should be very happy as soon as someone helps me with
313    mlriscGen.sml...
314    
315    In any case, nothing of this should matter to anyone as long as the
316    new primop is not being used (which is going to be the case unless you
317    find it where I hid it :). The rest of the compiler is completely
318    unaffected.
319    
320    ----------------------------------------------------------------------
321    Name: Matthias Blume
322    Date: 2001/01/05 00:30:00 JST
323    Tag: blume-20010105-primops
324    Description:
325    
326    Added some experimental support for work that I am doing right now.
327    These changes mostly concern added primops, but there is also a new
328    experimental C library in the runtime system (but currently not enabled
329    anywhere except on Linux/X86).
330    
331    In the course of adding primops (and playing with them), I discovered that
332    Zhong's INL_PRIM hack (no type info for certain primops) was, in fact, badly
333    broken.  (Zhong was very right he labeled this stuff as "major gross hack".)
334    To recover, I made type information in INL_PRIM mandatory and changed
335    prim.sml as well as built-in.sml accordingly.  The InLine structure now
336    has complete, correct type information (i.e., no bottom types).
337    
338    Since all these changes mean that we need new binfiles, I also bumped the
339    version number to 110.32.1.
340    
341    ----------------------------------------------------------------------
342    Name: Matthias Blume
343    Date: 2000/12/30 22:10:00 JST
344    Tag: blume-20001230-various
345    Description:
346    
347    Added proxy libraries for MLRISC and let MLRISC libraries refer
348    to each other using path anchors.  (See CM manual for explanation.)
349    
350    Updated CM documentation.
351    
352    Fixed some bugs in CM.
353    
354    Implemented "proxy" libraries (= syntactic sugar for CM).
355    
356    Added "-quiet" option to makeml and changed runtime system accordingly.
357    
358    Added cleanup handler for exportML to reset timers and compiler stats.
359    
360    ----------------------------------------------------------------------
361    Name: Lal George
362    Date: 2000/12/22 22:22:58 EST 2000
363    Tag: Release_110_32
364    Description:
365    
366            Infinite precision used throughout MLRISC.
367            see MLRISC/mltree/machine-int.sig
368    
369    ----------------------------------------------------------------------
370    Name: Matthias Blume
371    Date: 2000/12/22 23:16:00 JST
372    Tag: blume-20001222-warn
373    Description:
374    
375    Corrected wording and formatting of some CM warning message which I
376    broke in my previous patch.
377    
378    ----------------------------------------------------------------------
379    Name: Matthias Blume
380    Date: 2000/12/22 21:20:00 JST
381    Tag: blume-20001222-anchorenv
382    Description:
383    
384    Fixed CM's handling of anchor environments in connection with CMB.make.
385    
386    ----------------------------------------------------------------------
387    Name: Matthias Blume
388    Date: 2000/12/22 13:15:00 JST
389    Tag: blume-20001222-cleanup
390    Description:
391    
392    Removed src/cm/ffi which does not (and did not) belong here.
393    
394    ----------------------------------------------------------------------
395    Name: Matthias Blume
396    Date: 2000/12/21 23:55:00 JST
397    Tag: blume-20001221-exn
398    Description:
399    
400    Probably most important: CM no longer silently swallows all exceptions
401    in the compiler.
402    Plus: some other minor CM changes.  For example, CM now reports some
403    sizes for generated binfiles (code, data, envpickle, lambdapickle).
404    
405    ----------------------------------------------------------------------
406    Name: Matthias Blume
407    Date: 2000/12/15 00:01:05 JST
408    Tag: blume-20001215-dirtool
409    Description:
410    
411    - "dir" tool added.
412    - improvements and cleanup to Tools structure
413    - documentation updates
414    
415    ----------------------------------------------------------------------
416    Name: Allen Leung
417    Date: Thu Dec 14 03:45:24 EST 2000
418    Description:
419    Tag:  leunga-20001214-int-inf
420    Description:
421    
422       In IntInf, added these standard functions, which are missing from our
423    implementation:
424    
425        andb : int * int -> int
426        xorb : int * int -> int
427        orb  : int * int -> int
428        notb : int -> int
429         <<   : int * word -> int
430        ~>>  : int * word -> int
431    
432       Not tested, I hope they are correct.
433    
434    ----------------------------------------------------------------------
435    Name: Allen Leung
436    Date: Fri Dec  8 19:23:26 EST 2000
437    Description:
438    Tag:  leunga-20001208-nowhere
439    Description:
440    
441      Slight improvements to the 'nowhere' tool to handle OR-patterns,
442    to generate better error messages etc.  Plus a brief manual.
443    
444    ----------------------------------------------------------------------
445    Name: Lal George
446    Date: 2000/12/08 09:54:02 EST 2000
447    Tag: Release_110_31
448    Description:
449    
450    - Version 110.31
451    ----------------------------------------------------------------------
452    Name: Allen Leung
453    Date: Thu Dec  7 22:01:04 EST 2000
454    Tag:  leunga-20001207-cell-monster-hack
455    Description:
456    
457    Major MLRISC internal changes.  Affect all clients.
458    Summary:
459    
460    1.  Type CELLS.cell = int is now replaced by a datatype.
461        As a result, the old regmap is now gone.  Almost all interfaces
462        in MLRISC change as a consequence.
463    
464    2.  A new brand version of machine description tool (v3.0) that generates
465        modules expecting the new interface.  The old version is removed.
466    
467    3.  The RA interface has been further abstracted into two new functors.
468        RISC_RA and X86RA.  These functors have much simpler interfaces.
469        [See also directory MLRISC/demo.]
470    
471    4.  Some other new source->source code generation tools are available:
472    
473        a. MLRISC/Tools/RewriteGen -- generate rewriters from rules.
474        b. MLRISC/Tools/WhereGen -- expands conditional pattern matching rules.
475           I use this tool to generate the peephole optimizers---with the new
476           cell type changes, peephole rules are becoming difficult to write
477           without conditional pattern matching.
478    
479    5.  More Intmap -> IntHashTable change.  Previous changes by Matthias didn't
480        cover the entire MLRISC source tree so many things broke.
481    
482    6.  CM files have been moved to the subdirectory MLRISC/cm.
483        They are moved because there are a lot of them and they clutter up the
484        root dir.
485    
486    7.  More detailed documentation to come...
487    
488        NOTE: To rebuild from 110.30 (ftp distribution), you'll have to do
489        a makeml -rebuild first.  This is because of other other
490        changes that Matthias has made (see below).
491    
492    
493    ----------------------------------------------------------------------
494    Name: Matthias Blume
495    Date: 2000/11/30 23:12:00 JST
496    Tag: blume-20001130-filereorg
497    Description:
498    
499    Some manual updates and some file reorganizations in CM.
500    
501    ----------------------------------------------------------------------
502    Name: Matthias Blume
503    Date: 2000/11/24 17:45:00 JST
504    Tag: blume-20001124-link
505    Description:
506    
507    Drastically improved link traversal code for the case that the dynamic
508    value was already loaded at bootstrap time.  As a result, CM and CMB
509    now both load blazingly fast -- even on a very slow machine.  Also,
510    memory consumption has been further reduced by this.
511    
512    Warning: The format of the PIDMAP file has changed.  THerefore, to
513    bootstrap you have to do this:
514    
515    1. Run CMB.make
516    2. Make a symbolic link for the boot directory:
517         ln -s sml.boot.ARCH-OS xxx
518    3. "Rebuild" the boot directory:
519         ./makeml -boot xxx -rebuild sml ; rm xxx
520    4. Boot normally:
521          ./makeml
522    
523  ----------------------------------------------------------------------  ----------------------------------------------------------------------
524  Name: Matthias Blume  Name: Matthias Blume

Legend:
Removed from v.735  
changed lines
  Added in v.818

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