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 752, Fri Dec 8 23:32:37 2000 UTC revision 818, Fri May 4 20:58:47 2001 UTC
# Line 12  Line 12 
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  Name: Allen Leung
436  Date: Fri Dec  8 19:23:26 EST 2000  Date: Fri Dec  8 19:23:26 EST 2000
437  Description:  Description:

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

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