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

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

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