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

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

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