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 721, Mon Nov 6 14:03:39 2000 UTC revision 819, Mon May 7 18:39:08 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    Name: Matthias Blume
16    Date: 2001/05/07 14:40:00 EDT
17    Tag: blume-20010507-proxies
18    Description:
19    
20    I made into "proxy libraries" all libraries that qualify for such a
21    change.  (A qualifying library is a library that has another library or
22    groups as its sole member and repeats that member's export list
23    verbatim.  A proxy library avoids this repetition by omitting its export
24    list, effectively inheriting the list that its (only) member exports.
25    See the CM manual for more explanation.)
26    The main effect is that explicit export lists for these libraries
27    do not have to be kepts in sync, making maintenance a bit easier.
28    
29    I also added copyright notices to many .cm-files.
30    
31    Last but not least, I made a new set of bootfiles.
32    
33    ----------------------------------------------------------------------
34    Name: Matthias Blume
35    Date: 2001/05/04 17:00:00 EDT
36    Tag: blume-20010504-cm-lsplit
37    Description:
38    
39    0. John merged pending changes to $/smlnj-lib.cm
40    
41    1. Allen's previous change accidentally backed out of one of Lal's
42       earlier changes.  I undid this mistake (re-introducing Lal's change).
43    
44    2. I used the new topOrder' function from graph-scc.sml (from $/smlnj-lib.cm)
45       within the compiler where applicable.  There is some code simplification
46       because of that.
47    
48    3. The "split" phase (in FLINT) is now part of the default list of phases.
49       Compiler.Control.LambdaSplitting.* can be used to globally control the
50       lambda-splitting (cross-module-inlining) engine.  In addition to that,
51       it can now also be controlled on a per-source basis: CM has been taught
52       a new tool parameter applicable to ML source files.
53    
54       - To turn lambda-splitting off completely:
55            local open Compiler.Control.LambdaSplitting in
56                val _ = set Off
57            end
58       - To make "no lambda-splitting" the global default (but allow per-source
59         overriding); this is the initial setting:
60            local open Compiler.Control.LambdaSplitting in
61                val _ = set (Default NONE)
62            end
63       - To make "lambda-splitting with aggressiveness a" the global default
64         (and allow per-source overriding):
65            local open Compiler.Control.LambdaSplitting in
66                val _ = set (Default (SOME a))
67            end
68    
69       - To turn lambda-splitting off for a given ML souce file (say: a.sml)
70         write (in the respective .cm-file):
71            a.sml (lambdasplitting:off)
72       - To turn lambda-splitting for a.sml on with minimal aggressiveness:
73            a.sml (lambdasplitting:on)
74       - To turn lambda-splitting for a.sml on with aggressiveness <a> (where
75         <a> is a decimal non-negative integer):
76            a.sml (lambdasplitting:<a>)
77       - To turn lambda-splitting for a.sml on with maximal aggressiveness:
78            a.sml (lambdasplitting:infinity)
79       - To use the global default for a.sml:
80            a.sml (lambdasplitting:default)
81         or simply
82            a.sml
83    
84    ----------------------------------------------------------------------
85    Name: Allen Leung
86    Date: 2001/05/04 01:57:00 EDT
87    Tag: leunga-20010504-sync
88    Description:
89    
90      MLRISC features.
91    
92      1. Fix to CMPXCHG instructions.
93      2. Changed RA interface to allow annotations in callbacks.
94      3. Added a new method to the stream interface to allow annotations updates.
95    
96    ----------------------------------------------------------------------
97    Name: Matthias Blume
98    Date: 2001/05/01 11:45:00 EDT
99    Tag: blume-20010501-pcedittmp
100    Description:
101    
102    Changed install.sh to use the current working directory instead of
103    /usr/tmp for a temporary file (pcedittmp).  The previous choice
104    of /usr/tmp caused trouble with MacOS X because of file premission
105    problems.
106    
107    ----------------------------------------------------------------------
108    Name: Matthias Blume
109    Date: 2001/04/20 11:10:00 EDT
110    Tag: blume-20010420-inMLflag
111    Description:
112    
113     - added vp_limitPtrMask to vproc-state.h
114       (for use by the raw-C-calls mechanism to implement proper interrupt
115        handling)
116     - made the ML compiler aware of various data-structure offsets so it
117       can generate code for accessing the vp_inML flag and vp_limitPtrMask
118     - tweaked mlriscGen.sml to have it emit interrupt-handling code for
119       raw C-calls
120    
121    ----------------------------------------------------------------------
122    Name: Lal George
123    Date: 2001/04/20 09:15:28 EDT
124    Tag: george-20010420-macosX
125    Description:
126    
127     - Changes to port to Mac OS X; Darwin.
128    
129     - In the process I found that sqrt was broken on the PPC, because the
130       fsqrt instruction is not implemented.
131    
132    ----------------------------------------------------------------------
133    Name: Matthias Blume
134    Date: 2001/04/18 12:45:00 EDT
135    Tag: blume-20010418-ccalls
136    Description:
137    
138     - fixed two off-by-4 errors in the x86-specific c-calls implementation
139       (this bug prevented structure arguments containing pointers from being
140        passed correctly)
141     - changed the raw-C-call code in mlriscGen.sml in such a way that
142       structure arguments are represented as a pointer to the beginning
143       of the structure (instead of having a series of synthesized arguments,
144       one for each structure member)
145    
146     - made makeml script's verbosity level configurable via environment
147       variable (MAKEML_VERBOSITY)
148    
149     - eliminated placeholder implementations for f32l, w16s, i16s, and f32s
150       in rawmem-x86.sml; we are now using the real thing
151    
152    ----------------------------------------------------------------------
153    Name: Matthias Blume
154    Date: 2001/03/22 16:25:00 EST
155    Tag: blume-20010322-bootfiles
156    Description:
157    
158    Created a new set of bootfiles (for your automatic installation convenience).
159    
160    ----------------------------------------------------------------------
161    Name: Matthias Blume
162    Date: 2001/03/22 15:10:00 EST
163    Tag: blume-20010322-rawmem-parcm
164    Description:
165    
166    1. All "raw memory access" primitives for the new FFI are implemented now
167       (at least on the x86).
168    2. Some further cleanup of CM's parallel make mechanism.
169    
170    ----------------------------------------------------------------------
171    Name: Matthias Blume
172    Date: 2001/03/19 17:53:00 EST
173    Tag: blume-20010319-parallel
174    Description:
175    
176    Parallel make (using compile servers) now works again.
177    
178    To this end, CM.stabilize and CMB.make have been modified to work in
179    two passes when compile servers are attached:
180       1. Compile everything, do not perform stabilization; this pass
181          uses compile servers
182       2. Stabilize everything; this pass does not use compile servers
183    If there are no compile servers, the two passes are combined into one
184    (as before).  Splitting the passes increases the inherent parallelism
185    in the dependency graph because the entire graph including all
186    libraries is available at the same time.  This, in turn, improves
187    server utilization.  The downside is that the master process will
188    have to do some extra work after compilation is done (because for
189    technical reasons it must re-read all the binfiles during stabilization).
190    
191    ----------------------------------------------------------------------
192    Name: Matthias Blume
193    Date: 2001/03/16 12:22:00 EST
194    Tag: blume-20010316-bootfiles
195    Description:
196    
197    Created a new set of bootfiles (for your automatic installation convenience).
198    
199    ----------------------------------------------------------------------
200    Name: Matthias Blume
201    Date: 2001/03/16 11:00:00 EST
202    Tag: blume-20010316-MLTREE-fixup
203    Description:
204    
205    This is a minor fixup for an (untagged) earlier commit by Allen.
206    (A file was missing).
207    
208    ----------------------------------------------------------------------
209    Name: Allen Leung
210    Date: Mon Mar  5 18:54:57 EST 2001
211    Tag: leunga-20010305-cut-support
212    
213    1. New support for alternative control-flow in MLTREE.
214       Currently we support
215    
216          FLOW_TO(CALL ...., [k1,...,kn])
217    
218       This is needed for 'cuts to' in C-- and try/handle-like constructs
219       in Moby
220    
221       New assembler flag "asm-show-cutsto" to turn on control-flow debugging.
222    
223    2. Register Allocator
224    
225       Changes in interface [from Fermin, John]
226    
227    3. Alpha 8-bit SLL support [Fermin]
228    
229    4. All architectures
230    
231       A new module (ClusterExpandCopies) for expanding parallel copies.
232    
233    ----------------------------------------------------------------------
234    Name: Allen Leung
235    Date: 2001/02/27 23:07:00 EST
236    Tag: leunga-20010227-minor-stuff
237    
238    1. Alpha bug fix for CMOVNE
239    2. Handle mltree COND(..,FCMP ...,...)
240    3. Bug fix in simplifier
241    
242    ----------------------------------------------------------------------
243    Name: Matthias Blume
244    Date: 2001/01/30 17:50:00 EST
245    Tag: blume-20010130-sync
246    Description:
247    
248    This is just a minor update to sync my devel branch with the main brach.
249    The only visible change is the addition of some README files.
250    
251    ----------------------------------------------------------------------
252    Name: Matthias Blume
253    Date: 2001/01/12 23:30:00 JST
254    Tag: blume-20010112-bootfiles
255    Description:
256    
257    Made a new set of bootfiles that goes with the current state of the
258    repository.
259    
260    ----------------------------------------------------------------------
261    Name: Matthias Blume
262    Date: 2001/01/12 21:20:00 JST
263    Tag: blume-20010112-sync
264    Description:
265    
266    I am just flushing out some minor changes that had accumulated in
267    my private branch in order to sync with the main tree.  (This is
268    mainly because I had CVS trouble when trying to merge _into_ my
269    private branch.)
270    
271    Most people should be completely unaffected by this.
272    
273    ----------------------------------------------------------------------
274    Name: Allen Leung
275    Date: Thu Jan 11 21:03:00 EST 2001
276    Tag: leunga-20010111-labexp=mltree
277    Description:
278    
279    1.  Removed the type LabelExp and replace it by MLTree.
280    2.  Rewritten mltree-simplify with the pattern matcher tool.
281    3.  There were some bugs in alpha code generator which would break
282        64-bit code generation.
283    4.  Redo the tools to generate code with the
284    5.  The CM files in MLRISC (and in src/system/smlnj/MLRISC)
285        are now generated by perl scripts.
286    
287    ----------------------------------------------------------------------
288    Name: Matthias Blume
289    Date: 2001/01/10 21:55:00 JST
290    Tag: blume-20010110-rcc
291    Description:
292    
293    The RCC stuff now seems to work (but only on the x86).
294    This required hacking of the c-calls interface (and -implementation) in
295    MLRISC.
296    
297    Normal compiler users should be unaffected.
298    
299    ----------------------------------------------------------------------
300    Name: Matthias Blume
301    Date: 2001/01/09 01:20:00 JST
302    Tag: blume-20010109-rcc
303    Description:
304    
305    This is a fairly big patch, flushing out a large number of pending
306    changes that I made to my development copy over the last couple of days.
307    
308    Of practical relevance at this moment is a workaround for a pickling
309    bug that Allen ran into the other day.  The cause of the bug itself is
310    still unknown and it might be hard to fix it properly, but the
311    workaround has some merits of its own (namely somewhat reducing pickling
312    overhead for certain libraries).  Therefore, I think this solution should
313    be satisfactory at this time.
314    
315    The rest of the changes (i.e., the vast majority) has to do with my
316    ongoing efforts of providing direct support for C function calls from
317    ML.  At the moment there is a new primop "RAW_CCALL", typing magic
318    in types/cproto.sml (invoked from FLINT/trans/translate.sml), a new
319    case in the FLINT CPS datatype (RCC), changes to cps/convert.sml to
320    translate uses of RAW_CCALL into RCC, and changes to mlriscGen.sml to
321    handle RCC.
322    
323    The last part (the changes to mlriscGen.sml) are still known to be
324    wrong on the x86 and not implemented on all other architectures.  But
325    the infrastructure is in place. I had to change a few functor
326    signatures in the backend to be able to route the CCalls interface
327    from MLRISC there, and I had to specialize the mltree type (on the
328    x86) to include the necessary extensions. (The extensions themselves
329    were already there and redy to go in MLRISC/x86).
330    
331    Everything should be very happy as soon as someone helps me with
332    mlriscGen.sml...
333    
334    In any case, nothing of this should matter to anyone as long as the
335    new primop is not being used (which is going to be the case unless you
336    find it where I hid it :). The rest of the compiler is completely
337    unaffected.
338    
339    ----------------------------------------------------------------------
340    Name: Matthias Blume
341    Date: 2001/01/05 00:30:00 JST
342    Tag: blume-20010105-primops
343    Description:
344    
345    Added some experimental support for work that I am doing right now.
346    These changes mostly concern added primops, but there is also a new
347    experimental C library in the runtime system (but currently not enabled
348    anywhere except on Linux/X86).
349    
350    In the course of adding primops (and playing with them), I discovered that
351    Zhong's INL_PRIM hack (no type info for certain primops) was, in fact, badly
352    broken.  (Zhong was very right he labeled this stuff as "major gross hack".)
353    To recover, I made type information in INL_PRIM mandatory and changed
354    prim.sml as well as built-in.sml accordingly.  The InLine structure now
355    has complete, correct type information (i.e., no bottom types).
356    
357    Since all these changes mean that we need new binfiles, I also bumped the
358    version number to 110.32.1.
359    
360    ----------------------------------------------------------------------
361    Name: Matthias Blume
362    Date: 2000/12/30 22:10:00 JST
363    Tag: blume-20001230-various
364    Description:
365    
366    Added proxy libraries for MLRISC and let MLRISC libraries refer
367    to each other using path anchors.  (See CM manual for explanation.)
368    
369    Updated CM documentation.
370    
371    Fixed some bugs in CM.
372    
373    Implemented "proxy" libraries (= syntactic sugar for CM).
374    
375    Added "-quiet" option to makeml and changed runtime system accordingly.
376    
377    Added cleanup handler for exportML to reset timers and compiler stats.
378    
379    ----------------------------------------------------------------------
380    Name: Lal George
381    Date: 2000/12/22 22:22:58 EST 2000
382    Tag: Release_110_32
383    Description:
384    
385            Infinite precision used throughout MLRISC.
386            see MLRISC/mltree/machine-int.sig
387    
388    ----------------------------------------------------------------------
389    Name: Matthias Blume
390    Date: 2000/12/22 23:16:00 JST
391    Tag: blume-20001222-warn
392    Description:
393    
394    Corrected wording and formatting of some CM warning message which I
395    broke in my previous patch.
396    
397    ----------------------------------------------------------------------
398    Name: Matthias Blume
399    Date: 2000/12/22 21:20:00 JST
400    Tag: blume-20001222-anchorenv
401    Description:
402    
403    Fixed CM's handling of anchor environments in connection with CMB.make.
404    
405    ----------------------------------------------------------------------
406    Name: Matthias Blume
407    Date: 2000/12/22 13:15:00 JST
408    Tag: blume-20001222-cleanup
409    Description:
410    
411    Removed src/cm/ffi which does not (and did not) belong here.
412    
413    ----------------------------------------------------------------------
414    Name: Matthias Blume
415    Date: 2000/12/21 23:55:00 JST
416    Tag: blume-20001221-exn
417    Description:
418    
419    Probably most important: CM no longer silently swallows all exceptions
420    in the compiler.
421    Plus: some other minor CM changes.  For example, CM now reports some
422    sizes for generated binfiles (code, data, envpickle, lambdapickle).
423    
424    ----------------------------------------------------------------------
425    Name: Matthias Blume
426    Date: 2000/12/15 00:01:05 JST
427    Tag: blume-20001215-dirtool
428    Description:
429    
430    - "dir" tool added.
431    - improvements and cleanup to Tools structure
432    - documentation updates
433    
434    ----------------------------------------------------------------------
435    Name: Allen Leung
436    Date: Thu Dec 14 03:45:24 EST 2000
437    Description:
438    Tag:  leunga-20001214-int-inf
439    Description:
440    
441       In IntInf, added these standard functions, which are missing from our
442    implementation:
443    
444        andb : int * int -> int
445        xorb : int * int -> int
446        orb  : int * int -> int
447        notb : int -> int
448         <<   : int * word -> int
449        ~>>  : int * word -> int
450    
451       Not tested, I hope they are correct.
452    
453    ----------------------------------------------------------------------
454    Name: Allen Leung
455    Date: Fri Dec  8 19:23:26 EST 2000
456    Description:
457    Tag:  leunga-20001208-nowhere
458    Description:
459    
460      Slight improvements to the 'nowhere' tool to handle OR-patterns,
461    to generate better error messages etc.  Plus a brief manual.
462    
463    ----------------------------------------------------------------------
464    Name: Lal George
465    Date: 2000/12/08 09:54:02 EST 2000
466    Tag: Release_110_31
467    Description:
468    
469    - Version 110.31
470    ----------------------------------------------------------------------
471    Name: Allen Leung
472    Date: Thu Dec  7 22:01:04 EST 2000
473    Tag:  leunga-20001207-cell-monster-hack
474    Description:
475    
476    Major MLRISC internal changes.  Affect all clients.
477    Summary:
478    
479    1.  Type CELLS.cell = int is now replaced by a datatype.
480        As a result, the old regmap is now gone.  Almost all interfaces
481        in MLRISC change as a consequence.
482    
483    2.  A new brand version of machine description tool (v3.0) that generates
484        modules expecting the new interface.  The old version is removed.
485    
486    3.  The RA interface has been further abstracted into two new functors.
487        RISC_RA and X86RA.  These functors have much simpler interfaces.
488        [See also directory MLRISC/demo.]
489    
490    4.  Some other new source->source code generation tools are available:
491    
492        a. MLRISC/Tools/RewriteGen -- generate rewriters from rules.
493        b. MLRISC/Tools/WhereGen -- expands conditional pattern matching rules.
494           I use this tool to generate the peephole optimizers---with the new
495           cell type changes, peephole rules are becoming difficult to write
496           without conditional pattern matching.
497    
498    5.  More Intmap -> IntHashTable change.  Previous changes by Matthias didn't
499        cover the entire MLRISC source tree so many things broke.
500    
501    6.  CM files have been moved to the subdirectory MLRISC/cm.
502        They are moved because there are a lot of them and they clutter up the
503        root dir.
504    
505    7.  More detailed documentation to come...
506    
507        NOTE: To rebuild from 110.30 (ftp distribution), you'll have to do
508        a makeml -rebuild first.  This is because of other other
509        changes that Matthias has made (see below).
510    
511    
512    ----------------------------------------------------------------------
513    Name: Matthias Blume
514    Date: 2000/11/30 23:12:00 JST
515    Tag: blume-20001130-filereorg
516    Description:
517    
518    Some manual updates and some file reorganizations in CM.
519    
520    ----------------------------------------------------------------------
521    Name: Matthias Blume
522    Date: 2000/11/24 17:45:00 JST
523    Tag: blume-20001124-link
524    Description:
525    
526    Drastically improved link traversal code for the case that the dynamic
527    value was already loaded at bootstrap time.  As a result, CM and CMB
528    now both load blazingly fast -- even on a very slow machine.  Also,
529    memory consumption has been further reduced by this.
530    
531    Warning: The format of the PIDMAP file has changed.  THerefore, to
532    bootstrap you have to do this:
533    
534    1. Run CMB.make
535    2. Make a symbolic link for the boot directory:
536         ln -s sml.boot.ARCH-OS xxx
537    3. "Rebuild" the boot directory:
538         ./makeml -boot xxx -rebuild sml ; rm xxx
539    4. Boot normally:
540          ./makeml
541    
542    ----------------------------------------------------------------------
543    Name: Matthias Blume
544    Date: 2000/11/21 21:20:00 JST
545    Tag: blume-20001121-tools
546    Description:
547    
548    Continued hacking on autoloading problem -- with success this time.
549    Also changed tool-plugin mechanism.  See new CM manual.
550    
551    ----------------------------------------------------------------------
552    Name: Matthias Blume
553    Date: 2000/11/19 14:30:00 JST
554    Tag:  blume-20001119-autoload
555    Description:
556    
557    Some hacking to make autoloading faster.  Success for CMB, no success
558    so far for CM.  There is a reduced structure CM' that autoloads faster.
559    (This is a temporary, non-documented hack to be eliminated again when
560    the general problem is solved.)
561    
562    ----------------------------------------------------------------------
563    Name: Matthias Blume
564    Date: 2000/11/17 14:10:00 JST
565    Tag: blume-20001117-pickle-lib
566    Description:
567    
568    1. Eliminated comp-lib.cm
569    2. Made pickle-lib.cm
570    3. Eliminated all uses of intset.sml (from comp-lib.cm)
571    4. Replaced all uses of intmap.{sig,sml} (from comp-lib.cm) with
572       equivalent constructs from smlnj-lib.cm (INtHashTable).
573    5. Point 4. also goes for those uses of intmap.* in MLRISC.
574       Duplicated intmap modules thrown out.
575    6. Hunted down all duplicated SCC code and replaced it with
576       equivalent stuff (GraphSCCFn from smlnj-lib.cm).
577    7. Rewrote Feedback module.
578    8. Moved sortedlist.sml into viscomp-lib.cm.  Eventually it
579       should be thrown out and equivalent modules from smlnj-lib.cm
580       should be used (IntRedBlackSet, IntListSet, ...).
581    
582    Confirmed that compiler compiles to fixpoint.
583    
584    ----------------------------------------------------------------------
585    Name: Allen Leung
586    Date: 2000/11/10 18:00:00
587    Tag: leunga-20001110-new-x86-fp
588    
589    A new x86 floating point code generator has been added.
590    By default this is turned off.  To turn this on, do:
591    
592        CM.autoload "$smlnj/compiler.cm";
593        Compiler.Control.MLRISC.getFlag "x86-fast-fp" := true;
594    
595    Changes:
596    
597    1.  Changed FTAN to FPTAN so that the assembly output is correct.
598    2.  Changed the extension callback for FTANGENT to generate:
599    
600              fptan
601              fstp  %st(0)
602        instead of
603              fptan
604              fstpl ftempmem
605    
606    3.  Numerous assembly fixes for x86.
607    
608    5.  Cleaned up the machine code output module x86/x86MC.sml and added
609        support for a whole bunch of instructions and addressing modes:
610    
611          fadd/fsub/fsubr/fmul/fdiv/fdivr  %st, %st(n)
612          faddp/fsubp/fsubrp/fmulp/fdivp/fdivrp  %st, %st(n)
613          fadd/fsub/fsubr/fmul/fdiv/fdivr  %st(n), %st
614          fiadd/fisub/fisubr/fimul/fidiv/fidivr mem
615          fxch %st(n)
616          fld %st(n)
617          fst %st(n)
618          fst mem
619          fstp %st(n)
620          fucom %st(n)
621          fucomp %st(n)
622    
623        All these are now generated when the fast fp mode is turned on.
624    
625    6.  Removed the dedicated registers %st(0), ..., %st(7) from X86CpsRegs
626    
627    ----------------------------------------------------------------------
628    Name: Matthias Blume
629    Date: 2000/11/09 11:20:00 JST
630    Tag: blume-20001109-scc
631    Description:
632    
633    Eliminated some code duplication:
634    
635    1. Added "where" clause to GraphSCCFn in SML/NJ Library.
636       (Otherwise the functor is useless.)
637    2. Used GraphSCCFn where SCCUtilFun was used previously.
638    3. Got rid of SCCUtilFun (in comp-lib.cm).
639    
640  ----------------------------------------------------------------------  ----------------------------------------------------------------------
641  Name: Lal George  Name: Lal George

Legend:
Removed from v.721  
changed lines
  Added in v.819

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