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/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 682, Tue Jul 4 06:25:51 2000 UTC revision 775, Fri Jan 12 01:17:51 2001 UTC
# Line 12  Line 12 
12  Tag: <post-commit CVS tag>  Tag: <post-commit CVS tag>
13  Description:  Description:
14  ----------------------------------------------------------------------  ----------------------------------------------------------------------
15    Name: Allen Leung
16    Date: Thu Jan 11 21:03:00 EST 2001
17    Tag: leunga-20010111-labexp=mltree
18    Description:
19    
20    1.  Removed the type LabelExp and replace it by MLTree.
21    2.  Rewritten mltree-simplify with the pattern matcher tool.
22    3.  There were some bugs in alpha code generator which would break
23        64-bit code generation.
24    4.  Redo the tools to generate code with the
25    5.  The CM files in MLRISC (and in src/system/smlnj/MLRISC)
26        are now generated by perl scripts.
27    
28    ----------------------------------------------------------------------
29    Name: Matthias Blume
30    Date: 2001/01/10 21:55:00 JST
31    Tag: blume-20010110-rcc
32    Description:
33    
34    The RCC stuff now seems to work (but only on the x86).
35    This required hacking of the c-calls interface (and -implementation) in
36    MLRISC.
37    
38    Normal compiler users should be unaffected.
39    
40    ----------------------------------------------------------------------
41    Name: Matthias Blume
42    Date: 2001/01/09 01:20:00 JST
43    Tag: blume-20010109-rcc
44    Description:
45    
46    This is a fairly big patch, flushing out a large number of pending
47    changes that I made to my development copy over the last couple of days.
48    
49    Of practical relevance at this moment is a workaround for a pickling
50    bug that Allen ran into the other day.  The cause of the bug itself is
51    still unknown and it might be hard to fix it properly, but the
52    workaround has some merits of its own (namely somewhat reducing pickling
53    overhead for certain libraries).  Therefore, I think this solution should
54    be satisfactory at this time.
55    
56    The rest of the changes (i.e., the vast majority) has to do with my
57    ongoing efforts of providing direct support for C function calls from
58    ML.  At the moment there is a new primop "RAW_CCALL", typing magic
59    in types/cproto.sml (invoked from FLINT/trans/translate.sml), a new
60    case in the FLINT CPS datatype (RCC), changes to cps/convert.sml to
61    translate uses of RAW_CCALL into RCC, and changes to mlriscGen.sml to
62    handle RCC.
63    
64    The last part (the changes to mlriscGen.sml) are still known to be
65    wrong on the x86 and not implemented on all other architectures.  But
66    the infrastructure is in place. I had to change a few functor
67    signatures in the backend to be able to route the CCalls interface
68    from MLRISC there, and I had to specialize the mltree type (on the
69    x86) to include the necessary extensions. (The extensions themselves
70    were already there and redy to go in MLRISC/x86).
71    
72    Everything should be very happy as soon as someone helps me with
73    mlriscGen.sml...
74    
75    In any case, nothing of this should matter to anyone as long as the
76    new primop is not being used (which is going to be the case unless you
77    find it where I hid it :). The rest of the compiler is completely
78    unaffected.
79    
80    ----------------------------------------------------------------------
81    Name: Matthias Blume
82    Date: 2001/01/05 00:30:00 JST
83    Tag: blume-20010105-primops
84    Description:
85    
86    Added some experimental support for work that I am doing right now.
87    These changes mostly concern added primops, but there is also a new
88    experimental C library in the runtime system (but currently not enabled
89    anywhere except on Linux/X86).
90    
91    In the course of adding primops (and playing with them), I discovered that
92    Zhong's INL_PRIM hack (no type info for certain primops) was, in fact, badly
93    broken.  (Zhong was very right he labeled this stuff as "major gross hack".)
94    To recover, I made type information in INL_PRIM mandatory and changed
95    prim.sml as well as built-in.sml accordingly.  The InLine structure now
96    has complete, correct type information (i.e., no bottom types).
97    
98    Since all these changes mean that we need new binfiles, I also bumped the
99    version number to 110.32.1.
100    
101    ----------------------------------------------------------------------
102    Name: Matthias Blume
103    Date: 2000/12/30 22:10:00 JST
104    Tag: blume-20001230-various
105    Description:
106    
107    Added proxy libraries for MLRISC and let MLRISC libraries refer
108    to each other using path anchors.  (See CM manual for explanation.)
109    
110    Updated CM documentation.
111    
112    Fixed some bugs in CM.
113    
114    Implemented "proxy" libraries (= syntactic sugar for CM).
115    
116    Added "-quiet" option to makeml and changed runtime system accordingly.
117    
118    Added cleanup handler for exportML to reset timers and compiler stats.
119    
120    ----------------------------------------------------------------------
121    Name: Lal George
122    Date: 2000/12/22 22:22:58 EST 2000
123    Tag: Release_110_32
124    Description:
125    
126            Infinite precision used throughout MLRISC.
127            see MLRISC/mltree/machine-int.sig
128    
129    ----------------------------------------------------------------------
130    Name: Matthias Blume
131    Date: 2000/12/22 23:16:00 JST
132    Tag: blume-20001222-warn
133    Description:
134    
135    Corrected wording and formatting of some CM warning message which I
136    broke in my previous patch.
137    
138    ----------------------------------------------------------------------
139    Name: Matthias Blume
140    Date: 2000/12/22 21:20:00 JST
141    Tag: blume-20001222-anchorenv
142    Description:
143    
144    Fixed CM's handling of anchor environments in connection with CMB.make.
145    
146    ----------------------------------------------------------------------
147    Name: Matthias Blume
148    Date: 2000/12/22 13:15:00 JST
149    Tag: blume-20001222-cleanup
150    Description:
151    
152    Removed src/cm/ffi which does not (and did not) belong here.
153    
154    ----------------------------------------------------------------------
155    Name: Matthias Blume
156    Date: 2000/12/21 23:55:00 JST
157    Tag: blume-20001221-exn
158    Description:
159    
160    Probably most important: CM no longer silently swallows all exceptions
161    in the compiler.
162    Plus: some other minor CM changes.  For example, CM now reports some
163    sizes for generated binfiles (code, data, envpickle, lambdapickle).
164    
165    ----------------------------------------------------------------------
166    Name: Matthias Blume
167    Date: 2000/12/15 00:01:05 JST
168    Tag: blume-20001215-dirtool
169    Description:
170    
171    - "dir" tool added.
172    - improvements and cleanup to Tools structure
173    - documentation updates
174    
175    ----------------------------------------------------------------------
176    Name: Allen Leung
177    Date: Thu Dec 14 03:45:24 EST 2000
178    Description:
179    Tag:  leunga-20001214-int-inf
180    Description:
181    
182       In IntInf, added these standard functions, which are missing from our
183    implementation:
184    
185        andb : int * int -> int
186        xorb : int * int -> int
187        orb  : int * int -> int
188        notb : int -> int
189         <<   : int * word -> int
190        ~>>  : int * word -> int
191    
192       Not tested, I hope they are correct.
193    
194    ----------------------------------------------------------------------
195    Name: Allen Leung
196    Date: Fri Dec  8 19:23:26 EST 2000
197    Description:
198    Tag:  leunga-20001208-nowhere
199    Description:
200    
201      Slight improvements to the 'nowhere' tool to handle OR-patterns,
202    to generate better error messages etc.  Plus a brief manual.
203    
204    ----------------------------------------------------------------------
205    Name: Lal George
206    Date: 2000/12/08 09:54:02 EST 2000
207    Tag: Release_110_31
208    Description:
209    
210    - Version 110.31
211    ----------------------------------------------------------------------
212    Name: Allen Leung
213    Date: Thu Dec  7 22:01:04 EST 2000
214    Tag:  leunga-20001207-cell-monster-hack
215    Description:
216    
217    Major MLRISC internal changes.  Affect all clients.
218    Summary:
219    
220    1.  Type CELLS.cell = int is now replaced by a datatype.
221        As a result, the old regmap is now gone.  Almost all interfaces
222        in MLRISC change as a consequence.
223    
224    2.  A new brand version of machine description tool (v3.0) that generates
225        modules expecting the new interface.  The old version is removed.
226    
227    3.  The RA interface has been further abstracted into two new functors.
228        RISC_RA and X86RA.  These functors have much simpler interfaces.
229        [See also directory MLRISC/demo.]
230    
231    4.  Some other new source->source code generation tools are available:
232    
233        a. MLRISC/Tools/RewriteGen -- generate rewriters from rules.
234        b. MLRISC/Tools/WhereGen -- expands conditional pattern matching rules.
235           I use this tool to generate the peephole optimizers---with the new
236           cell type changes, peephole rules are becoming difficult to write
237           without conditional pattern matching.
238    
239    5.  More Intmap -> IntHashTable change.  Previous changes by Matthias didn't
240        cover the entire MLRISC source tree so many things broke.
241    
242    6.  CM files have been moved to the subdirectory MLRISC/cm.
243        They are moved because there are a lot of them and they clutter up the
244        root dir.
245    
246    7.  More detailed documentation to come...
247    
248        NOTE: To rebuild from 110.30 (ftp distribution), you'll have to do
249        a makeml -rebuild first.  This is because of other other
250        changes that Matthias has made (see below).
251    
252    
253    ----------------------------------------------------------------------
254    Name: Matthias Blume
255    Date: 2000/11/30 23:12:00 JST
256    Tag: blume-20001130-filereorg
257    Description:
258    
259    Some manual updates and some file reorganizations in CM.
260    
261    ----------------------------------------------------------------------
262    Name: Matthias Blume
263    Date: 2000/11/24 17:45:00 JST
264    Tag: blume-20001124-link
265    Description:
266    
267    Drastically improved link traversal code for the case that the dynamic
268    value was already loaded at bootstrap time.  As a result, CM and CMB
269    now both load blazingly fast -- even on a very slow machine.  Also,
270    memory consumption has been further reduced by this.
271    
272    Warning: The format of the PIDMAP file has changed.  THerefore, to
273    bootstrap you have to do this:
274    
275    1. Run CMB.make
276    2. Make a symbolic link for the boot directory:
277         ln -s sml.boot.ARCH-OS xxx
278    3. "Rebuild" the boot directory:
279         ./makeml -boot xxx -rebuild sml ; rm xxx
280    4. Boot normally:
281          ./makeml
282    
283    ----------------------------------------------------------------------
284    Name: Matthias Blume
285    Date: 2000/11/21 21:20:00 JST
286    Tag: blume-20001121-tools
287    Description:
288    
289    Continued hacking on autoloading problem -- with success this time.
290    Also changed tool-plugin mechanism.  See new CM manual.
291    
292    ----------------------------------------------------------------------
293    Name: Matthias Blume
294    Date: 2000/11/19 14:30:00 JST
295    Tag:  blume-20001119-autoload
296    Description:
297    
298    Some hacking to make autoloading faster.  Success for CMB, no success
299    so far for CM.  There is a reduced structure CM' that autoloads faster.
300    (This is a temporary, non-documented hack to be eliminated again when
301    the general problem is solved.)
302    
303    ----------------------------------------------------------------------
304    Name: Matthias Blume
305    Date: 2000/11/17 14:10:00 JST
306    Tag: blume-20001117-pickle-lib
307    Description:
308    
309    1. Eliminated comp-lib.cm
310    2. Made pickle-lib.cm
311    3. Eliminated all uses of intset.sml (from comp-lib.cm)
312    4. Replaced all uses of intmap.{sig,sml} (from comp-lib.cm) with
313       equivalent constructs from smlnj-lib.cm (INtHashTable).
314    5. Point 4. also goes for those uses of intmap.* in MLRISC.
315       Duplicated intmap modules thrown out.
316    6. Hunted down all duplicated SCC code and replaced it with
317       equivalent stuff (GraphSCCFn from smlnj-lib.cm).
318    7. Rewrote Feedback module.
319    8. Moved sortedlist.sml into viscomp-lib.cm.  Eventually it
320       should be thrown out and equivalent modules from smlnj-lib.cm
321       should be used (IntRedBlackSet, IntListSet, ...).
322    
323    Confirmed that compiler compiles to fixpoint.
324    
325    ----------------------------------------------------------------------
326    Name: Allen Leung
327    Date: 2000/11/10 18:00:00
328    Tag: leunga-20001110-new-x86-fp
329    
330    A new x86 floating point code generator has been added.
331    By default this is turned off.  To turn this on, do:
332    
333        CM.autoload "$smlnj/compiler.cm";
334        Compiler.Control.MLRISC.getFlag "x86-fast-fp" := true;
335    
336    Changes:
337    
338    1.  Changed FTAN to FPTAN so that the assembly output is correct.
339    2.  Changed the extension callback for FTANGENT to generate:
340    
341              fptan
342              fstp  %st(0)
343        instead of
344              fptan
345              fstpl ftempmem
346    
347    3.  Numerous assembly fixes for x86.
348    
349    5.  Cleaned up the machine code output module x86/x86MC.sml and added
350        support for a whole bunch of instructions and addressing modes:
351    
352          fadd/fsub/fsubr/fmul/fdiv/fdivr  %st, %st(n)
353          faddp/fsubp/fsubrp/fmulp/fdivp/fdivrp  %st, %st(n)
354          fadd/fsub/fsubr/fmul/fdiv/fdivr  %st(n), %st
355          fiadd/fisub/fisubr/fimul/fidiv/fidivr mem
356          fxch %st(n)
357          fld %st(n)
358          fst %st(n)
359          fst mem
360          fstp %st(n)
361          fucom %st(n)
362          fucomp %st(n)
363    
364        All these are now generated when the fast fp mode is turned on.
365    
366    6.  Removed the dedicated registers %st(0), ..., %st(7) from X86CpsRegs
367    
368    ----------------------------------------------------------------------
369    Name: Matthias Blume
370    Date: 2000/11/09 11:20:00 JST
371    Tag: blume-20001109-scc
372    Description:
373    
374    Eliminated some code duplication:
375    
376    1. Added "where" clause to GraphSCCFn in SML/NJ Library.
377       (Otherwise the functor is useless.)
378    2. Used GraphSCCFn where SCCUtilFun was used previously.
379    3. Got rid of SCCUtilFun (in comp-lib.cm).
380    
381    ----------------------------------------------------------------------
382    Name: Lal George
383    Date: 2000/11/06 09:02:21 EST 2000
384    Tag: Release_110_30
385    Description:
386    
387    - Version 110.30
388    ----------------------------------------------------------------------
389    Name: Matthias Blume
390    Date: 2000/11/04 14:45:00
391    Tag: blume-20001104-mlbuild
392    Description:
393    
394    - Made ml-build faster on startup.
395    - Documentation fixes.
396    
397    ----------------------------------------------------------------------
398    Name: Matthias Blume
399    Date: 2000/11/02 17:00:00 JST
400    Tag: blume-20001102-condcomp
401    Description:
402    
403    - Small tweaks to pickler -- new BOOTFILES!
404    - Version bumped to 110.29.2.
405    - Added conditional compilation facility to init.cmi (see comment there).
406    ----------------------------------------------------------------------
407    Name: Allen Leung
408    Date: 2000/10/23 19:31:00
409    Tag: leunga-20001023-demo-ra
410    
411    1. Minor RA changes that improves spilling on x86 (affects Moby and C-- only)
412    2. Test programs for the graph library updated
413    3. Some new MLRISC demo programs added
414    
415    ----------------------------------------------------------------------
416    Name: Matthias Blume
417    Date: 2000/08/31 22:15:00 JST
418    Tag: blume-20001017-errmsg
419    Description:
420    
421    More error message grief: Where there used to be no messages, there
422    now were some that had bogus error regions.  Fixed.
423    
424    ----------------------------------------------------------------------
425    Name: Matthias Blume
426    Date: 2000/08/31 17:30:00 JST
427    Tag: blume-20001017-v110p29p1
428    Description:
429    
430    I made a version 110.29.1 with new bootfiles.
431    
432    Changes:  Modified pickler/unpickler for faster and leaner unpickling.
433              CM documentation changes and a small bugfix in CM's error reporting.
434    
435    ----------------------------------------------------------------------
436    Name: Lal George
437    Date: 2000/09/27 14:42:35 EDT
438    Tag: george-20000927-nodestatus
439    Description:
440    
441    Changed the type of the nodestatus, so that:
442    
443            SPILLED(~1)             is now SPILLED
444            SPILLED(m) where m>=0   is now MEMREG(m)
445            SPILLED(s) where s<~1   is now SPILL_LOC(~s)
446    
447    ----------------------------------------------------------------------
448    Name: Matthias Blume
449    Date: 2000/09/07 14:45:00 JST
450    Tag: blume-20000907-cmerrmsg
451    Description:
452    
453    Small tweak to CM to avoid getting ML syntax error messages twice.
454    
455    ----------------------------------------------------------------------
456    Name: Matthias Blume
457    Date: 2000/08/31 18:00:00 JST
458    Tag: blume-20000831-cvsbootfiles
459    Description:
460    
461    New URL for boot files (because the 110.29 files on the BL server do
462    now work correctly with my updated install scripts for yacc and lex).
463    
464    ----------------------------------------------------------------------
465    Name: Matthias Blume
466    Date: 2000/08/08 12:33:00 JST
467    Tag: blume-20000808-manual
468    Description:
469    
470    Tiny update to CM manual.
471    
472    ----------------------------------------------------------------------
473    Name: Allen Leung
474    Date: 2000/08/7 19:31:00
475    Tag: leunga-20000807-a-whole-bunch-of-stuff
476    
477      Moby, C--, SSA, x86, machine descriptions etc.  Should only affect C--
478    and Mobdy.
479    
480    1.  x86
481    
482       a.  Fixes to peephole module by John and Dan.
483       b.  Assembly fix to SETcc by Allen.
484       c.  Fix to c-call by John.
485       d.  Fix to spilling by John.  (This one deals with the missing FSTPT case)
486       e.  Instruction selection optimization to SETcc as suggested by John.
487    
488           For example,
489    
490            MV(32, x, COND(32, CMP(32, LT, a, b), LI 1, LI 0))
491    
492           should generate:
493    
494            MOVL a, x
495            SUBL b, x
496            SHRL 31, x
497    
498    2.  IR stuff
499    
500         A bunch of new DJ-graph related algorithms added.  These
501         speed up SSA construction.
502    
503    3.  SSA + Scheduling
504    
505         Added code for SSA and scheduling to the repository
506    
507    ----------------------------------------------------------------------
508    Name: Lal George
509    Date: 2000/07/27 11:53:14 EDT
510    
511    Tag: lal-20000727-linux-ppc
512    Description:
513    
514     Made changes to support Linux PPC.
515     p.s. I have confirmation that the 110.29 boot files work fine.
516    
517    ----------------------------------------------------------------------
518    Name: Matthias Blume
519    Date: 2000/07/27 17:40:00 JST
520    Tag: blume-20000727-scripts
521    Description:
522    
523    !!!! WARNING !!!!
524    You must recompile the runtime system!
525    !!!! WARNING !!!!
526    
527    This is basically another round of script-enhancements:
528    
529    1. sml, ml-build, and ml-makedepend accept options -D and -U to define
530       and undefine CM preprocessor symbols.
531    
532    2. ml-build avoids generating a new heap image if it finds that the
533       existing one is still ok.  (The condition is that no ML file had to
534       be recompiled and all ML files are found to be older that the heap
535       file.)
536    
537       To make this work smoothly, I also hacked the runtime system as
538       well as SMLofNJ.SysInfo to get access to the heap image suffix
539       (.sparc-solaris, ...) that is currently being used.
540    
541       Moreover, the signature of CM.mk_standalone has changed.  See the
542       CM manual.
543    
544    3. ml-makedepend accepts additional options -n, -a, and -o.  (See the
545       CM manual for details.)
546    
547    4. More CM manual updates:
548        - all of the above has been documented.
549        - there is now a section describing the (CM-related) command line
550          arguments that are accepted by the "sml" command
551    
552    ----------------------------------------------------------------------
553    Name: Matthias Blume
554    Date: 2000/07/25 16:20:00 JST
555    Tag: blume-20000725-makedepend
556    Description:
557    
558    Added a script called ml-makedepend.  This can be used in makefiles
559    for Unix' make in a way very similar to the "makedepend" command for
560    C.
561    
562    The script internally uses function CM.sources.
563    
564    Synopsis:
565    
566        ml-makedepend [-f makefile] cmfile targetname
567    
568    The default for the makefile is "makefile" (or "Makefile" should
569    "makefile" not exist).
570    
571    ml-makedepend adds a cmfile/targetname-specific section to this
572    makefile (after removing the previous version of this section).  The
573    section contains a single dependency specification with targetname on
574    the LHS (targetname is an arbitrary name), and a list of files derived
575    from the cmfile on the RHS.  Some of the files on the RHS are
576    ARCH/OPSYS-specific.  Therefore, ml-makedepend inserts references to
577    "make" variables $(ARCH) and $(OPSYS) in place of the corresponding
578    path names.  The makefile writer is responsible for making sure that
579    these variables have correct at the time "make" is invoked.
580    
581    ----------------------------------------------------------------------
582    Name: Matthias Blume
583    Date: 2000/07/22 23:30:00 JST
584    Tag: blume-20000722-urlupdate
585    Description:
586    
587    Changed BOOT and config/srcarchiveurl to point to BL server:
588    
589        ftp://ftp.research.bell-labs.com/dist/smlnj/working/110.29/
590    
591    ----------------------------------------------------------------------
592    Name: Matthias Blume
593    Date: 2000/07/18 18:00:00 JST
594    Tag: blume-20000718-Version_110_29
595    Description:
596    
597    1. Updated src/compiler/TopLevel/main/version.sml to version 110.29
598    
599    2. Updated config/version to 110.29
600    
601    3. Updated config/srcarchiveurl
602    
603    3. New boot files!
604       ftp://ftp.cs.princeton.edu/pub/people/blume/sml/110.29-autofetch
605    
606    ----------------------------------------------------------------------
607    Name: Matthias Blume
608    Date: 2000/07/11 13:58:00 JST
609    Tag: blume-20000711-doctypo
610    Description:
611    
612    Fixed a few typos in CM manual.
613    
614    ----------------------------------------------------------------------
615    Name: Allen Leung
616    Date: 2000/06/15 00:38:00
617    Tag: leunga-20000704-sparc-x86
618    
619    1. x86 peephole improvement sp += k; sp -= k => nop  [from John]
620    2. fix to x86 RET bug [found by Dan Grossman]
621    3. sparc assembly bug fix for ticc instructions [found by Fermin]
622    
623       Affects c-- and moby only
624    
625    ----------------------------------------------------------------------
626  Name: Matthias Blume  Name: Matthias Blume
627  Date: 2000/07/04 15:26:00  Date: 2000/07/04 15:26:00
628  Tag: blume-20000704-trigger  Tag: blume-20000704-trigger

Legend:
Removed from v.682  
changed lines
  Added in v.775

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