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

Legend:
Removed from v.744  
changed lines
  Added in v.826

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