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

Legend:
Removed from v.763  
changed lines
  Added in v.828

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