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 735, Tue Nov 21 12:15:55 2000 UTC revision 833, Tue May 22 22:06:12 2001 UTC
# Line 14  Line 14 
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16  Name: Matthias Blume  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
472    Date: 2000/12/22 22:22:58 EST 2000
473    Tag: Release_110_32
474    Description:
475    
476            Infinite precision used throughout MLRISC.
477            see MLRISC/mltree/machine-int.sig
478    
479    ----------------------------------------------------------------------
480    Name: Matthias Blume
481    Date: 2000/12/22 23:16:00 JST
482    Tag: blume-20001222-warn
483    Description:
484    
485    Corrected wording and formatting of some CM warning message which I
486    broke in my previous patch.
487    
488    ----------------------------------------------------------------------
489    Name: Matthias Blume
490    Date: 2000/12/22 21:20:00 JST
491    Tag: blume-20001222-anchorenv
492    Description:
493    
494    Fixed CM's handling of anchor environments in connection with CMB.make.
495    
496    ----------------------------------------------------------------------
497    Name: Matthias Blume
498    Date: 2000/12/22 13:15:00 JST
499    Tag: blume-20001222-cleanup
500    Description:
501    
502    Removed src/cm/ffi which does not (and did not) belong here.
503    
504    ----------------------------------------------------------------------
505    Name: Matthias Blume
506    Date: 2000/12/21 23:55:00 JST
507    Tag: blume-20001221-exn
508    Description:
509    
510    Probably most important: CM no longer silently swallows all exceptions
511    in the compiler.
512    Plus: some other minor CM changes.  For example, CM now reports some
513    sizes for generated binfiles (code, data, envpickle, lambdapickle).
514    
515    ----------------------------------------------------------------------
516    Name: Matthias Blume
517    Date: 2000/12/15 00:01:05 JST
518    Tag: blume-20001215-dirtool
519    Description:
520    
521    - "dir" tool added.
522    - improvements and cleanup to Tools structure
523    - documentation updates
524    
525    ----------------------------------------------------------------------
526    Name: Allen Leung
527    Date: Thu Dec 14 03:45:24 EST 2000
528    Description:
529    Tag:  leunga-20001214-int-inf
530    Description:
531    
532       In IntInf, added these standard functions, which are missing from our
533    implementation:
534    
535        andb : int * int -> int
536        xorb : int * int -> int
537        orb  : int * int -> int
538        notb : int -> int
539         <<   : int * word -> int
540        ~>>  : int * word -> int
541    
542       Not tested, I hope they are correct.
543    
544    ----------------------------------------------------------------------
545    Name: Allen Leung
546    Date: Fri Dec  8 19:23:26 EST 2000
547    Description:
548    Tag:  leunga-20001208-nowhere
549    Description:
550    
551      Slight improvements to the 'nowhere' tool to handle OR-patterns,
552    to generate better error messages etc.  Plus a brief manual.
553    
554    ----------------------------------------------------------------------
555    Name: Lal George
556    Date: 2000/12/08 09:54:02 EST 2000
557    Tag: Release_110_31
558    Description:
559    
560    - Version 110.31
561    ----------------------------------------------------------------------
562    Name: Allen Leung
563    Date: Thu Dec  7 22:01:04 EST 2000
564    Tag:  leunga-20001207-cell-monster-hack
565    Description:
566    
567    Major MLRISC internal changes.  Affect all clients.
568    Summary:
569    
570    1.  Type CELLS.cell = int is now replaced by a datatype.
571        As a result, the old regmap is now gone.  Almost all interfaces
572        in MLRISC change as a consequence.
573    
574    2.  A new brand version of machine description tool (v3.0) that generates
575        modules expecting the new interface.  The old version is removed.
576    
577    3.  The RA interface has been further abstracted into two new functors.
578        RISC_RA and X86RA.  These functors have much simpler interfaces.
579        [See also directory MLRISC/demo.]
580    
581    4.  Some other new source->source code generation tools are available:
582    
583        a. MLRISC/Tools/RewriteGen -- generate rewriters from rules.
584        b. MLRISC/Tools/WhereGen -- expands conditional pattern matching rules.
585           I use this tool to generate the peephole optimizers---with the new
586           cell type changes, peephole rules are becoming difficult to write
587           without conditional pattern matching.
588    
589    5.  More Intmap -> IntHashTable change.  Previous changes by Matthias didn't
590        cover the entire MLRISC source tree so many things broke.
591    
592    6.  CM files have been moved to the subdirectory MLRISC/cm.
593        They are moved because there are a lot of them and they clutter up the
594        root dir.
595    
596    7.  More detailed documentation to come...
597    
598        NOTE: To rebuild from 110.30 (ftp distribution), you'll have to do
599        a makeml -rebuild first.  This is because of other other
600        changes that Matthias has made (see below).
601    
602    
603    ----------------------------------------------------------------------
604    Name: Matthias Blume
605    Date: 2000/11/30 23:12:00 JST
606    Tag: blume-20001130-filereorg
607    Description:
608    
609    Some manual updates and some file reorganizations in CM.
610    
611    ----------------------------------------------------------------------
612    Name: Matthias Blume
613    Date: 2000/11/24 17:45:00 JST
614    Tag: blume-20001124-link
615    Description:
616    
617    Drastically improved link traversal code for the case that the dynamic
618    value was already loaded at bootstrap time.  As a result, CM and CMB
619    now both load blazingly fast -- even on a very slow machine.  Also,
620    memory consumption has been further reduced by this.
621    
622    Warning: The format of the PIDMAP file has changed.  THerefore, to
623    bootstrap you have to do this:
624    
625    1. Run CMB.make
626    2. Make a symbolic link for the boot directory:
627         ln -s sml.boot.ARCH-OS xxx
628    3. "Rebuild" the boot directory:
629         ./makeml -boot xxx -rebuild sml ; rm xxx
630    4. Boot normally:
631          ./makeml
632    
633    ----------------------------------------------------------------------
634    Name: Matthias Blume
635  Date: 2000/11/21 21:20:00 JST  Date: 2000/11/21 21:20:00 JST
636  Tag: blume-20001121-tools  Tag: blume-20001121-tools
637  Description:  Description:

Legend:
Removed from v.735  
changed lines
  Added in v.833

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