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

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