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 716, Sat Nov 4 05:42:35 2000 UTC revision 876, Wed Jul 11 15:42:20 2001 UTC
# Line 14  Line 14 
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16  Name: Matthias Blume  Name: Matthias Blume
17    Date: 2001/07/10 17:30:00 EDT
18    Tag: Release_110_34
19    Description:
20    
21    Minor tweak to 110.34 (re-tagged):
22    
23      - README.html file added to CVS repository
24      - runtime compiles properly under FreeBSD 3.X and 4.X
25    
26    ----------------------------------------------------------------------
27    Name: Matthias Blume
28    Date: 2001/07/10 17:30:00 EDT
29    Tag: Release_110_34
30    Description:
31    
32    New version number (110.34). New bootfiles.
33    
34    ----------------------------------------------------------------------
35    Name: Matthias Blume
36    Date: 2001/07/09 16:00:00 EDT
37    Tag: blume-20010709-more-varargs
38    Description:
39    
40    I changed the handling of varargs in ml-nlffigen again:
41    The ellipsis ... will now simply be ignored (with an accompanying warning).
42    
43    The immediate effect is that you can actually call a varargs function
44    from ML -- but you can't actually supply any arguments beyond the ones
45    specified explicitly.  (For example, you can call printf with its format
46    string, but you cannot pass additional arguments.)
47    
48    This behavior is only marginally more useful than the one before, but
49    it has the advantage that a function or, more importantly, a function
50    type never gets dropped on the floor, thus avoiding follow-up problems with
51    other types that refer to the offending one.
52    
53    ----------------------------------------------------------------------
54    Name: Matthias Blume
55    Date: 2001/07/09 11:25:00 EDT
56    Tag: blume-20010709-varargs
57    Description:
58    
59    1. ckit-lib.cm now exports structure Error
60    2. ml-nlffigen reports occurences of "..." (i.e., varargs function types)
61       with a warning accompanied by a source location.  Moreover, it
62       merely skips the offending function or type and proceeds with the
63       rest of its work.u  As a result, one can safely feed C code containing
64       "..." to ml-nlffigen.
65    3. There are some internal improvements to CM, providing slightly
66       more general string substitutions in the tools subsystem.
67    
68    ----------------------------------------------------------------------
69    Name: Matthias Blume
70    Date: 2001/06/27 15:10:00 EDT
71    Tag: blume-20010627-concur
72    Description:
73    
74    Fixed a small bug in CM's handling of parallel compilation.
75    (You could observe the bug by Control-C-interrupting an ordinary
76    CMB.make or CM.stabilize and then attaching some compile servers.
77    The result was that all of a sudden the previously interrupted
78    compilation would continue on its own.  This was because of
79    an over-optimization: CM did not bother to clean out certain queues
80    when no servers were attached "anyway", resulting in the contents
81    of these queues to grab control when new servers did get attached.)
82    
83    There is also another minor update to the CM manual.
84    
85    ----------------------------------------------------------------------
86    Name: Matthias Blume
87    Date: 2001/06/26 16:15:00 EDT
88    Tag: blume-20010626-cmdoc
89    Description:
90    
91    Minor typo fixed in CM manual (syntax diagram for libraries).
92    
93    ----------------------------------------------------------------------
94    Name: Matthias Blume
95    Date: 2001/06/25 22:55:00 EDT
96    Tag: blume-20010625-x86pc
97    Description:
98    
99    Fixed a nasty bug in the X86 assembly code that caused signal
100    handlers to fail (crash) randomly.
101    
102    ----------------------------------------------------------------------
103    Name: Matthias Blume
104    Date: 2001/06/25 12:05:00 EDT
105    Tag: blume-20010625-nlffigen
106    Description:
107    
108    This update fixes a number of minor bugs in ml-nlffigen as reported by
109    Nick Carter <nbc@andrew.cmu.edu>.
110    
111      1. Silly but ok typedefs of the form "typedef void myvoid;" are now accepted.
112      2. Default names for generated files are now derived from the name of
113         the C file *without its directory*.  In particular, this causes generated
114         files to be placed locally even if the C file is in some system directory.
115      3. Default names for generated signatures and structures are also derived
116         from the C file name without its directory.  This avoids silly things
117         like "structure GL/GL".
118         (Other silly names are still possible because ml-nlffigen does not do
119          a thorough check of whether generated names are legal ML identifiers.
120          When in doubt, use command line arguments to force particular names.)
121    
122    ----------------------------------------------------------------------
123    Name: Matthias Blume
124    Date: 2001/06/21 12:25:00 EDT
125    Tag: blume-20010621-eXene
126    Description:
127    
128    eXene now compiles and (sort of) works again.
129    
130    The library name (for version > 110.33) is $/eXene.cm.
131    
132    I also added an new example in src/eXene/examples/nbody.  See the
133    README file there for details.
134    
135    ----------------------------------------------------------------------
136    Name: Matthias Blume
137    Date: 2001/06/20 16:40:00 EDT
138    Tag: blume-20010620-cml
139    Description:
140    
141    CML now compiles and works again.
142    
143    Libraries (for version > 110.33):
144    
145      $cml/cml.cm            Main CML library.
146      $cml/basis.cm          CML's version of $/basis.cm.
147      $cml/cml-internal.cm   Internal helper library.
148      $cml/core-cml.cm       Internal helper library.
149      $cml-lib/trace-cml.cm  Tracing facility.
150      $cml-lib/smlnj-lib.cm  CML's version of $/smlnj-lib.cm
151    
152    The installer (config/install.sh) has been taught how to properly
153    install this stuff.
154    
155    ----------------------------------------------------------------------
156    Name: Matthias Blume
157    Date: 2001/06/19 17:55:00 EDT
158    Tag: blume-20010619-instantiate
159    Description:
160    
161    This un-breaks the fix for bug 1432.
162    (The bug was originally fixed in 110.9 but I broke it again some
163    time after that.)
164    
165    ----------------------------------------------------------------------
166    Name: Matthias Blume
167    Date: 2001/06/19 17:25:00 EDT
168    Tag: blume-20010619-signals
169    Description:
170    
171    This should (hopefully) fix the long-standing signal handling bug.
172    (The runtime system was constructing a continuation record with an
173    incorrect descriptor which would cause the GC to drop data on the floor...)
174    
175    ----------------------------------------------------------------------
176    Name: Matthias Blume
177    Date: 2001/06/15 15:05:00 EDT
178    Tag: blume-20010615-moresparc
179    Description:
180    
181    Here is a short late-hour update related to Sparc c-calls:
182    
183     -- made handling of double-word arguments a bit smarter
184    
185     -- instruction selection phase tries to collapse certain clumsily
186        constructed ML-Trees; typical example:
187    
188            ADD(ty,ADD(_,e,LI d1),LI d2)  ->  ADD(ty,e,LI(d1+d2))
189    
190        This currently has no further impact on SML/NJ since mlriscGen does
191        not seem to generate such patterns in the first place, and c-calls
192        (which did generate them in the beginning) has meanwhile been fixed
193        so as to avoid them as well.
194    
195    ----------------------------------------------------------------------
196    Name: Matthias Blume
197    Date: 2001/06/15 15:05:00 EDT
198    Tag: blume-20010615-sparc
199    Description:
200    
201    The purpose of this update is to provide an implementation of NLFFI
202    on Sparc machines.
203    
204    Here are the changes in detail:
205    
206       * src/MLRISC/sparc/c-calls/sparc-c-calls.sml is a new file containing
207       the Sparc implementation of the c-calls API.
208       * The Sparc backend of SML/NJ has been modified to uniformely use %fp
209       for accessing the ML frame.  Thus, we have a real frame pointer and
210       can freely modify %sp without need for an omit-frame-ptr phase.
211       The vfp logic in src/compiler/CodeGen/* has been changed to accomodate
212       this case.
213       * ml-nlffigen has been taught to produce code for different architectures
214       and calling conventions.
215       * In a way similar to what was done in the x86 case, the Sparc
216       backend uses its own specific extension to mltree.  (For example,
217       it needs to be able to generate UNIMP instructions which are part
218       of the calling convention.)
219       * ml-nlffi-lib was reorganized to make it more modular (in particular,
220       to make it easier to plug in new machine- and os-dependent parts).
221    
222    There are some other fairly unrelated bug fixes and cleanups as well:
223    
224       * I further hacked the .cm files for MLRISC tools (like MDLGen) so
225       that they properly share their libraries with existing SML/NJ libraries.
226       * I fixed a minor cosmetic bug in CM, supressing certain spurious
227       follow-up error messages.
228       * Updates to CM/CMB documentation.
229    
230    TODO items:
231    
232       * MLRISC should use a different register as its asmTemp on the Sparc.
233         (The current %o2 is a really bad choice because it is part of the
234         calling conventions, so things might interfere in unexpected ways.)
235    
236    ----------------------------------------------------------------------
237    Name: Matthias Blume
238    Date: 2001/06/07
239    Tag: blume-20010607-calls
240    Description:
241    
242    A number of internal changes related to C calls and calling conventions:
243    
244    1. ML-Tree CALL statements now carry a "pops" field.  It indicates the
245       number of bytes popped implicitly (by the callee).  In most cases
246       this field is 0 but on x86/win32 it is some non-zero value.  This
247       is information provided for the benefit of the "omit-frameptr" pass.
248    2. The CALL instruction on the x86 carries a similar "pops" field.
249       The instruction selection phase copies its value from the ML-Tree
250       CALL statement.
251    3. On all other architectures, the instruction selection phase checks
252       whether "pops=0" and complains if not.
253    4. The c-calls implementation for x86 now accepts two calling conventions:
254       "ccall" and "stdcall".  When "ccall" is selected, the caller cleans
255       up after the call and pops is set to 0.  For "stdcall", the caller
256       does nothing, leaving the cleanup to the callee; pops is set to
257       the number of bytes that were pushed onto the stack.
258    5. The cproto decoder (compiler/Semant/types/cproto.sml) now can
259       distinguish between "ccall" and "stdcall".
260    6. The UNIMP instruction has been added to the supported Sparc instruction
261       set. (This is needed for implementing the official C calling convention
262       on this architecture.)
263    7. I fixed some of the .cm files under src/MLRISC/Tools to make them
264       work with the latest CM.
265    
266    ----------------------------------------------------------------------
267    Name: Matthias Blume
268    Date: 2001/06/05 15:10:00 EDT
269    Tag: blume-20010605-cm-index
270    Description:
271    
272    0. The "lambdasplit" parameter for class "sml" in CM has been documented.
273    
274    1. CM can now generate "index files".  These are human-readable files
275       that list on a per-.cm-file basis each toplevel symbol defined or
276       imported.  The location of the index file for
277       <p>/<d>.cm is <p>/CM/INDEX/<d>.cm.
278       To enable index-file generation, set CM.Control.generate_index to true
279       or export an environment-symbol: export CM_GENERATE_INDEX=true.
280    
281       The CM manual has been updated accordingly.
282    
283    2. I made some slight modifications to the c-calls API in MLRISC.
284    
285         a) There is now a callback to support saving/restoring of
286            dedicated but caller-save registers around the actual call
287            instruction.
288         b) One can optionally specify a comment-annotation for the
289            call instruction.
290    
291    3. SML/NJ (mlriscGen.sml) uses this new API for the rawccall primop.
292       (For example, the comment annotation shows the C prototype of
293        the function being called.)
294    
295    ----------------------------------------------------------------------
296    Name: Matthias Blume
297    Date: 2001/06/01 13:30:00 EDT
298    Tag: blume-20010601-nlffi-cleanup
299    Description:
300    
301    This is mostly a cleanup of MLFFI stuff:
302    
303       - some signature files have been put into a more exposed place
304       - the ugly 'f type parameter is gone (simplifies types tremendously!)
305       - ml-nlffigen changed accordingly
306       - tutorial updated
307    
308    Other changes:
309    
310       - author's affiliation in CM manual(s) updated
311       - some more recognized keywords added to Allen's sml.sty
312    
313    ----------------------------------------------------------------------
314    Name: Matthias Blume
315    Date: 2001/05/25 15:30:00 EDT
316    Tag: blume-20010525-iptr
317    Description:
318    
319      - put the official 110.33-README (as it appears on the ftp server) under
320        CVS
321      - fixed a small bug related to incomplete pointer types in
322        ml-nlffigen
323      - small cosmetic change to the ml-nlffi-lib's "arr" type constructor
324        (it does not need the 'f type parameter)
325    
326    ----------------------------------------------------------------------
327    Name: Matthias Blume
328    Date: 2001/05/23 14:30:00 EDT
329    Tag: Release_110_33
330    Description:
331    
332    New version number (110.33).  New bootfiles.
333    
334    ----------------------------------------------------------------------
335    Name: Matthias Blume
336    Date: 2001/05/22 18:06:00 EDT
337    Tag: blume-20010522-targets
338    Description:
339    
340    Made install.sh use file config/targets.customized if it exists, falling
341    back to config/targets if it doesn't.  This way one can have a customized
342    version of the targets file without touching the "real thing", thus
343    eliminating the constant fear of accidentally checking something bogus
344    back into the CVS repository...  (File config/targets.customized must
345    not be added to the repository!)
346    
347    ----------------------------------------------------------------------
348    Name: Matthias Blume
349    Date: 2001/05/22 16:30:00 EDT
350    Tag: blume-20010522-minitut
351    Description:
352    
353    1. Bug fix in ml-nlffigen; now (hopefully) correctly handling
354       struct returns.
355    2. Added src/ml-nlffi-lib/Doc/mini-tutorial.txt.  This is some very
356       incomplete, preliminary documentation for NLFFI.
357    
358    ----------------------------------------------------------------------
359    Name: Matthias Blume
360    Date: 2001/05/14 11:30:00 EDT
361    Tag: blume-20010514-script
362    Description:
363    
364    Some bugs in install script fixed.
365    
366    In addition to that I also made a slight change to the NLFFI API:
367    Functors generated by ml-nlffigen now take the dynamic library as a
368    straight functor argument, not as a suspended one.  (The original
369    functor code used to force the suspension right away anyway, so there
370    was nothing gained by this complication of the interface.)
371    
372    ----------------------------------------------------------------------
373    Name: Matthias Blume
374    Date: 2001/05/11 14:35:00 EDT
375    Tag: blume-20010511-ml-nlffi
376    Description:
377    
378    I finally took the plunge and added my new FFI code to the main
379    repository.  For x86-linux it is now ready for prime-time.
380    
381    There are two new subdirectories of "src":
382    
383      - ml-nlffi-lib:
384           The utility library for programs using the FFI interface.
385           Here is the implementation of $/c.cm and its associated low-level
386           partners $/c-int.cm and $/memory.cm.
387      - ml-nlffigen:
388           A stand-alone program for generating ML glue code from C source
389           code.
390    
391    Building ml-nlffigen requires $/ckit-lib.cm.
392    
393    The config/install.sh script has been updates to do the Right Thing
394    (hopefully).
395    
396    Notice that the source tree for the C-Kit will not be put under "src"
397    but directly under the installation root directory.  (This is the
398    structure that currently exists on the CVS server when you check out
399    module "sml".)  Fortunately, config/install.sh knows about this oddity.
400    
401    Bugs: No documentation yet.
402    
403    ----------------------------------------------------------------------
404    Name: Matthias Blume
405    Date: 2001/05/09 16:35:00 EDT
406    Tag: blume-20010509-cpscontract
407    Description:
408    
409    Fixed a bug in the accounting code in cpsopt/contract.sml.  (The
410    wrapper/unwrapper elimination did not decrement usage counts and some
411    dead variables got overlooked by the dead-up logic.)
412    
413    ----------------------------------------------------------------------
414    Name: Lal George
415    Date: 2001/05/08  17:26:09 EDT
416    Tag: george-20010508-omit-frameptr
417    Description:
418    
419    Changes to implement the omit-frame-pointer optimization to support
420    raw C calls. For now, there is only support on the Intel x86, but
421    other architectures will follow as more experience is gained with this.
422    
423    
424    ----------------------------------------------------------------------
425    Name: Matthias Blume
426    Date: 2001/05/07 14:40:00 EDT
427    Tag: blume-20010507-proxies
428    Description:
429    
430    I made into "proxy libraries" all libraries that qualify for such a
431    change.  (A qualifying library is a library that has another library or
432    groups as its sole member and repeats that member's export list
433    verbatim.  A proxy library avoids this repetition by omitting its export
434    list, effectively inheriting the list that its (only) member exports.
435    See the CM manual for more explanation.)
436    The main effect is that explicit export lists for these libraries
437    do not have to be kepts in sync, making maintenance a bit easier.
438    
439    I also added copyright notices to many .cm-files.
440    
441    Last but not least, I made a new set of bootfiles.
442    
443    ----------------------------------------------------------------------
444    Name: Matthias Blume
445    Date: 2001/05/04 17:00:00 EDT
446    Tag: blume-20010504-cm-lsplit
447    Description:
448    
449    0. John merged pending changes to $/smlnj-lib.cm
450    
451    1. Allen's previous change accidentally backed out of one of Lal's
452       earlier changes.  I undid this mistake (re-introducing Lal's change).
453    
454    2. I used the new topOrder' function from graph-scc.sml (from $/smlnj-lib.cm)
455       within the compiler where applicable.  There is some code simplification
456       because of that.
457    
458    3. The "split" phase (in FLINT) is now part of the default list of phases.
459       Compiler.Control.LambdaSplitting.* can be used to globally control the
460       lambda-splitting (cross-module-inlining) engine.  In addition to that,
461       it can now also be controlled on a per-source basis: CM has been taught
462       a new tool parameter applicable to ML source files.
463    
464       - To turn lambda-splitting off completely:
465            local open Compiler.Control.LambdaSplitting in
466                val _ = set Off
467            end
468       - To make "no lambda-splitting" the global default (but allow per-source
469         overriding); this is the initial setting:
470            local open Compiler.Control.LambdaSplitting in
471                val _ = set (Default NONE)
472            end
473       - To make "lambda-splitting with aggressiveness a" the global default
474         (and allow per-source overriding):
475            local open Compiler.Control.LambdaSplitting in
476                val _ = set (Default (SOME a))
477            end
478    
479       - To turn lambda-splitting off for a given ML souce file (say: a.sml)
480         write (in the respective .cm-file):
481            a.sml (lambdasplitting:off)
482       - To turn lambda-splitting for a.sml on with minimal aggressiveness:
483            a.sml (lambdasplitting:on)
484       - To turn lambda-splitting for a.sml on with aggressiveness <a> (where
485         <a> is a decimal non-negative integer):
486            a.sml (lambdasplitting:<a>)
487       - To turn lambda-splitting for a.sml on with maximal aggressiveness:
488            a.sml (lambdasplitting:infinity)
489       - To use the global default for a.sml:
490            a.sml (lambdasplitting:default)
491         or simply
492            a.sml
493    
494    ----------------------------------------------------------------------
495    Name: Allen Leung
496    Date: 2001/05/04 01:57:00 EDT
497    Tag: leunga-20010504-sync
498    Description:
499    
500      MLRISC features.
501    
502      1. Fix to CMPXCHG instructions.
503      2. Changed RA interface to allow annotations in callbacks.
504      3. Added a new method to the stream interface to allow annotations updates.
505    
506    ----------------------------------------------------------------------
507    Name: Matthias Blume
508    Date: 2001/05/01 11:45:00 EDT
509    Tag: blume-20010501-pcedittmp
510    Description:
511    
512    Changed install.sh to use the current working directory instead of
513    /usr/tmp for a temporary file (pcedittmp).  The previous choice
514    of /usr/tmp caused trouble with MacOS X because of file premission
515    problems.
516    
517    ----------------------------------------------------------------------
518    Name: Matthias Blume
519    Date: 2001/04/20 11:10:00 EDT
520    Tag: blume-20010420-inMLflag
521    Description:
522    
523     - added vp_limitPtrMask to vproc-state.h
524       (for use by the raw-C-calls mechanism to implement proper interrupt
525        handling)
526     - made the ML compiler aware of various data-structure offsets so it
527       can generate code for accessing the vp_inML flag and vp_limitPtrMask
528     - tweaked mlriscGen.sml to have it emit interrupt-handling code for
529       raw C-calls
530    
531    ----------------------------------------------------------------------
532    Name: Lal George
533    Date: 2001/04/20 09:15:28 EDT
534    Tag: george-20010420-macosX
535    Description:
536    
537     - Changes to port to Mac OS X; Darwin.
538    
539     - In the process I found that sqrt was broken on the PPC, because the
540       fsqrt instruction is not implemented.
541    
542    ----------------------------------------------------------------------
543    Name: Matthias Blume
544    Date: 2001/04/18 12:45:00 EDT
545    Tag: blume-20010418-ccalls
546    Description:
547    
548     - fixed two off-by-4 errors in the x86-specific c-calls implementation
549       (this bug prevented structure arguments containing pointers from being
550        passed correctly)
551     - changed the raw-C-call code in mlriscGen.sml in such a way that
552       structure arguments are represented as a pointer to the beginning
553       of the structure (instead of having a series of synthesized arguments,
554       one for each structure member)
555    
556     - made makeml script's verbosity level configurable via environment
557       variable (MAKEML_VERBOSITY)
558    
559     - eliminated placeholder implementations for f32l, w16s, i16s, and f32s
560       in rawmem-x86.sml; we are now using the real thing
561    
562    ----------------------------------------------------------------------
563    Name: Matthias Blume
564    Date: 2001/03/22 16:25:00 EST
565    Tag: blume-20010322-bootfiles
566    Description:
567    
568    Created a new set of bootfiles (for your automatic installation convenience).
569    
570    ----------------------------------------------------------------------
571    Name: Matthias Blume
572    Date: 2001/03/22 15:10:00 EST
573    Tag: blume-20010322-rawmem-parcm
574    Description:
575    
576    1. All "raw memory access" primitives for the new FFI are implemented now
577       (at least on the x86).
578    2. Some further cleanup of CM's parallel make mechanism.
579    
580    ----------------------------------------------------------------------
581    Name: Matthias Blume
582    Date: 2001/03/19 17:53:00 EST
583    Tag: blume-20010319-parallel
584    Description:
585    
586    Parallel make (using compile servers) now works again.
587    
588    To this end, CM.stabilize and CMB.make have been modified to work in
589    two passes when compile servers are attached:
590       1. Compile everything, do not perform stabilization; this pass
591          uses compile servers
592       2. Stabilize everything; this pass does not use compile servers
593    If there are no compile servers, the two passes are combined into one
594    (as before).  Splitting the passes increases the inherent parallelism
595    in the dependency graph because the entire graph including all
596    libraries is available at the same time.  This, in turn, improves
597    server utilization.  The downside is that the master process will
598    have to do some extra work after compilation is done (because for
599    technical reasons it must re-read all the binfiles during stabilization).
600    
601    ----------------------------------------------------------------------
602    Name: Matthias Blume
603    Date: 2001/03/16 12:22:00 EST
604    Tag: blume-20010316-bootfiles
605    Description:
606    
607    Created a new set of bootfiles (for your automatic installation convenience).
608    
609    ----------------------------------------------------------------------
610    Name: Matthias Blume
611    Date: 2001/03/16 11:00:00 EST
612    Tag: blume-20010316-MLTREE-fixup
613    Description:
614    
615    This is a minor fixup for an (untagged) earlier commit by Allen.
616    (A file was missing).
617    
618    ----------------------------------------------------------------------
619    Name: Allen Leung
620    Date: Mon Mar  5 18:54:57 EST 2001
621    Tag: leunga-20010305-cut-support
622    
623    1. New support for alternative control-flow in MLTREE.
624       Currently we support
625    
626          FLOW_TO(CALL ...., [k1,...,kn])
627    
628       This is needed for 'cuts to' in C-- and try/handle-like constructs
629       in Moby
630    
631       New assembler flag "asm-show-cutsto" to turn on control-flow debugging.
632    
633    2. Register Allocator
634    
635       Changes in interface [from Fermin, John]
636    
637    3. Alpha 8-bit SLL support [Fermin]
638    
639    4. All architectures
640    
641       A new module (ClusterExpandCopies) for expanding parallel copies.
642    
643    ----------------------------------------------------------------------
644    Name: Allen Leung
645    Date: 2001/02/27 23:07:00 EST
646    Tag: leunga-20010227-minor-stuff
647    
648    1. Alpha bug fix for CMOVNE
649    2. Handle mltree COND(..,FCMP ...,...)
650    3. Bug fix in simplifier
651    
652    ----------------------------------------------------------------------
653    Name: Matthias Blume
654    Date: 2001/01/30 17:50:00 EST
655    Tag: blume-20010130-sync
656    Description:
657    
658    This is just a minor update to sync my devel branch with the main brach.
659    The only visible change is the addition of some README files.
660    
661    ----------------------------------------------------------------------
662    Name: Matthias Blume
663    Date: 2001/01/12 23:30:00 JST
664    Tag: blume-20010112-bootfiles
665    Description:
666    
667    Made a new set of bootfiles that goes with the current state of the
668    repository.
669    
670    ----------------------------------------------------------------------
671    Name: Matthias Blume
672    Date: 2001/01/12 21:20:00 JST
673    Tag: blume-20010112-sync
674    Description:
675    
676    I am just flushing out some minor changes that had accumulated in
677    my private branch in order to sync with the main tree.  (This is
678    mainly because I had CVS trouble when trying to merge _into_ my
679    private branch.)
680    
681    Most people should be completely unaffected by this.
682    
683    ----------------------------------------------------------------------
684    Name: Allen Leung
685    Date: Thu Jan 11 21:03:00 EST 2001
686    Tag: leunga-20010111-labexp=mltree
687    Description:
688    
689    1.  Removed the type LabelExp and replace it by MLTree.
690    2.  Rewritten mltree-simplify with the pattern matcher tool.
691    3.  There were some bugs in alpha code generator which would break
692        64-bit code generation.
693    4.  Redo the tools to generate code with the
694    5.  The CM files in MLRISC (and in src/system/smlnj/MLRISC)
695        are now generated by perl scripts.
696    
697    ----------------------------------------------------------------------
698    Name: Matthias Blume
699    Date: 2001/01/10 21:55:00 JST
700    Tag: blume-20010110-rcc
701    Description:
702    
703    The RCC stuff now seems to work (but only on the x86).
704    This required hacking of the c-calls interface (and -implementation) in
705    MLRISC.
706    
707    Normal compiler users should be unaffected.
708    
709    ----------------------------------------------------------------------
710    Name: Matthias Blume
711    Date: 2001/01/09 01:20:00 JST
712    Tag: blume-20010109-rcc
713    Description:
714    
715    This is a fairly big patch, flushing out a large number of pending
716    changes that I made to my development copy over the last couple of days.
717    
718    Of practical relevance at this moment is a workaround for a pickling
719    bug that Allen ran into the other day.  The cause of the bug itself is
720    still unknown and it might be hard to fix it properly, but the
721    workaround has some merits of its own (namely somewhat reducing pickling
722    overhead for certain libraries).  Therefore, I think this solution should
723    be satisfactory at this time.
724    
725    The rest of the changes (i.e., the vast majority) has to do with my
726    ongoing efforts of providing direct support for C function calls from
727    ML.  At the moment there is a new primop "RAW_CCALL", typing magic
728    in types/cproto.sml (invoked from FLINT/trans/translate.sml), a new
729    case in the FLINT CPS datatype (RCC), changes to cps/convert.sml to
730    translate uses of RAW_CCALL into RCC, and changes to mlriscGen.sml to
731    handle RCC.
732    
733    The last part (the changes to mlriscGen.sml) are still known to be
734    wrong on the x86 and not implemented on all other architectures.  But
735    the infrastructure is in place. I had to change a few functor
736    signatures in the backend to be able to route the CCalls interface
737    from MLRISC there, and I had to specialize the mltree type (on the
738    x86) to include the necessary extensions. (The extensions themselves
739    were already there and redy to go in MLRISC/x86).
740    
741    Everything should be very happy as soon as someone helps me with
742    mlriscGen.sml...
743    
744    In any case, nothing of this should matter to anyone as long as the
745    new primop is not being used (which is going to be the case unless you
746    find it where I hid it :). The rest of the compiler is completely
747    unaffected.
748    
749    ----------------------------------------------------------------------
750    Name: Matthias Blume
751    Date: 2001/01/05 00:30:00 JST
752    Tag: blume-20010105-primops
753    Description:
754    
755    Added some experimental support for work that I am doing right now.
756    These changes mostly concern added primops, but there is also a new
757    experimental C library in the runtime system (but currently not enabled
758    anywhere except on Linux/X86).
759    
760    In the course of adding primops (and playing with them), I discovered that
761    Zhong's INL_PRIM hack (no type info for certain primops) was, in fact, badly
762    broken.  (Zhong was very right he labeled this stuff as "major gross hack".)
763    To recover, I made type information in INL_PRIM mandatory and changed
764    prim.sml as well as built-in.sml accordingly.  The InLine structure now
765    has complete, correct type information (i.e., no bottom types).
766    
767    Since all these changes mean that we need new binfiles, I also bumped the
768    version number to 110.32.1.
769    
770    ----------------------------------------------------------------------
771    Name: Matthias Blume
772    Date: 2000/12/30 22:10:00 JST
773    Tag: blume-20001230-various
774    Description:
775    
776    Added proxy libraries for MLRISC and let MLRISC libraries refer
777    to each other using path anchors.  (See CM manual for explanation.)
778    
779    Updated CM documentation.
780    
781    Fixed some bugs in CM.
782    
783    Implemented "proxy" libraries (= syntactic sugar for CM).
784    
785    Added "-quiet" option to makeml and changed runtime system accordingly.
786    
787    Added cleanup handler for exportML to reset timers and compiler stats.
788    
789    ----------------------------------------------------------------------
790    Name: Lal George
791    Date: 2000/12/22 22:22:58 EST 2000
792    Tag: Release_110_32
793    Description:
794    
795            Infinite precision used throughout MLRISC.
796            see MLRISC/mltree/machine-int.sig
797    
798    ----------------------------------------------------------------------
799    Name: Matthias Blume
800    Date: 2000/12/22 23:16:00 JST
801    Tag: blume-20001222-warn
802    Description:
803    
804    Corrected wording and formatting of some CM warning message which I
805    broke in my previous patch.
806    
807    ----------------------------------------------------------------------
808    Name: Matthias Blume
809    Date: 2000/12/22 21:20:00 JST
810    Tag: blume-20001222-anchorenv
811    Description:
812    
813    Fixed CM's handling of anchor environments in connection with CMB.make.
814    
815    ----------------------------------------------------------------------
816    Name: Matthias Blume
817    Date: 2000/12/22 13:15:00 JST
818    Tag: blume-20001222-cleanup
819    Description:
820    
821    Removed src/cm/ffi which does not (and did not) belong here.
822    
823    ----------------------------------------------------------------------
824    Name: Matthias Blume
825    Date: 2000/12/21 23:55:00 JST
826    Tag: blume-20001221-exn
827    Description:
828    
829    Probably most important: CM no longer silently swallows all exceptions
830    in the compiler.
831    Plus: some other minor CM changes.  For example, CM now reports some
832    sizes for generated binfiles (code, data, envpickle, lambdapickle).
833    
834    ----------------------------------------------------------------------
835    Name: Matthias Blume
836    Date: 2000/12/15 00:01:05 JST
837    Tag: blume-20001215-dirtool
838    Description:
839    
840    - "dir" tool added.
841    - improvements and cleanup to Tools structure
842    - documentation updates
843    
844    ----------------------------------------------------------------------
845    Name: Allen Leung
846    Date: Thu Dec 14 03:45:24 EST 2000
847    Description:
848    Tag:  leunga-20001214-int-inf
849    Description:
850    
851       In IntInf, added these standard functions, which are missing from our
852    implementation:
853    
854        andb : int * int -> int
855        xorb : int * int -> int
856        orb  : int * int -> int
857        notb : int -> int
858         <<   : int * word -> int
859        ~>>  : int * word -> int
860    
861       Not tested, I hope they are correct.
862    
863    ----------------------------------------------------------------------
864    Name: Allen Leung
865    Date: Fri Dec  8 19:23:26 EST 2000
866    Description:
867    Tag:  leunga-20001208-nowhere
868    Description:
869    
870      Slight improvements to the 'nowhere' tool to handle OR-patterns,
871    to generate better error messages etc.  Plus a brief manual.
872    
873    ----------------------------------------------------------------------
874    Name: Lal George
875    Date: 2000/12/08 09:54:02 EST 2000
876    Tag: Release_110_31
877    Description:
878    
879    - Version 110.31
880    ----------------------------------------------------------------------
881    Name: Allen Leung
882    Date: Thu Dec  7 22:01:04 EST 2000
883    Tag:  leunga-20001207-cell-monster-hack
884    Description:
885    
886    Major MLRISC internal changes.  Affect all clients.
887    Summary:
888    
889    1.  Type CELLS.cell = int is now replaced by a datatype.
890        As a result, the old regmap is now gone.  Almost all interfaces
891        in MLRISC change as a consequence.
892    
893    2.  A new brand version of machine description tool (v3.0) that generates
894        modules expecting the new interface.  The old version is removed.
895    
896    3.  The RA interface has been further abstracted into two new functors.
897        RISC_RA and X86RA.  These functors have much simpler interfaces.
898        [See also directory MLRISC/demo.]
899    
900    4.  Some other new source->source code generation tools are available:
901    
902        a. MLRISC/Tools/RewriteGen -- generate rewriters from rules.
903        b. MLRISC/Tools/WhereGen -- expands conditional pattern matching rules.
904           I use this tool to generate the peephole optimizers---with the new
905           cell type changes, peephole rules are becoming difficult to write
906           without conditional pattern matching.
907    
908    5.  More Intmap -> IntHashTable change.  Previous changes by Matthias didn't
909        cover the entire MLRISC source tree so many things broke.
910    
911    6.  CM files have been moved to the subdirectory MLRISC/cm.
912        They are moved because there are a lot of them and they clutter up the
913        root dir.
914    
915    7.  More detailed documentation to come...
916    
917        NOTE: To rebuild from 110.30 (ftp distribution), you'll have to do
918        a makeml -rebuild first.  This is because of other other
919        changes that Matthias has made (see below).
920    
921    
922    ----------------------------------------------------------------------
923    Name: Matthias Blume
924    Date: 2000/11/30 23:12:00 JST
925    Tag: blume-20001130-filereorg
926    Description:
927    
928    Some manual updates and some file reorganizations in CM.
929    
930    ----------------------------------------------------------------------
931    Name: Matthias Blume
932    Date: 2000/11/24 17:45:00 JST
933    Tag: blume-20001124-link
934    Description:
935    
936    Drastically improved link traversal code for the case that the dynamic
937    value was already loaded at bootstrap time.  As a result, CM and CMB
938    now both load blazingly fast -- even on a very slow machine.  Also,
939    memory consumption has been further reduced by this.
940    
941    Warning: The format of the PIDMAP file has changed.  THerefore, to
942    bootstrap you have to do this:
943    
944    1. Run CMB.make
945    2. Make a symbolic link for the boot directory:
946         ln -s sml.boot.ARCH-OS xxx
947    3. "Rebuild" the boot directory:
948         ./makeml -boot xxx -rebuild sml ; rm xxx
949    4. Boot normally:
950          ./makeml
951    
952    ----------------------------------------------------------------------
953    Name: Matthias Blume
954    Date: 2000/11/21 21:20:00 JST
955    Tag: blume-20001121-tools
956    Description:
957    
958    Continued hacking on autoloading problem -- with success this time.
959    Also changed tool-plugin mechanism.  See new CM manual.
960    
961    ----------------------------------------------------------------------
962    Name: Matthias Blume
963    Date: 2000/11/19 14:30:00 JST
964    Tag:  blume-20001119-autoload
965    Description:
966    
967    Some hacking to make autoloading faster.  Success for CMB, no success
968    so far for CM.  There is a reduced structure CM' that autoloads faster.
969    (This is a temporary, non-documented hack to be eliminated again when
970    the general problem is solved.)
971    
972    ----------------------------------------------------------------------
973    Name: Matthias Blume
974    Date: 2000/11/17 14:10:00 JST
975    Tag: blume-20001117-pickle-lib
976    Description:
977    
978    1. Eliminated comp-lib.cm
979    2. Made pickle-lib.cm
980    3. Eliminated all uses of intset.sml (from comp-lib.cm)
981    4. Replaced all uses of intmap.{sig,sml} (from comp-lib.cm) with
982       equivalent constructs from smlnj-lib.cm (INtHashTable).
983    5. Point 4. also goes for those uses of intmap.* in MLRISC.
984       Duplicated intmap modules thrown out.
985    6. Hunted down all duplicated SCC code and replaced it with
986       equivalent stuff (GraphSCCFn from smlnj-lib.cm).
987    7. Rewrote Feedback module.
988    8. Moved sortedlist.sml into viscomp-lib.cm.  Eventually it
989       should be thrown out and equivalent modules from smlnj-lib.cm
990       should be used (IntRedBlackSet, IntListSet, ...).
991    
992    Confirmed that compiler compiles to fixpoint.
993    
994    ----------------------------------------------------------------------
995    Name: Allen Leung
996    Date: 2000/11/10 18:00:00
997    Tag: leunga-20001110-new-x86-fp
998    
999    A new x86 floating point code generator has been added.
1000    By default this is turned off.  To turn this on, do:
1001    
1002        CM.autoload "$smlnj/compiler.cm";
1003        Compiler.Control.MLRISC.getFlag "x86-fast-fp" := true;
1004    
1005    Changes:
1006    
1007    1.  Changed FTAN to FPTAN so that the assembly output is correct.
1008    2.  Changed the extension callback for FTANGENT to generate:
1009    
1010              fptan
1011              fstp  %st(0)
1012        instead of
1013              fptan
1014              fstpl ftempmem
1015    
1016    3.  Numerous assembly fixes for x86.
1017    
1018    5.  Cleaned up the machine code output module x86/x86MC.sml and added
1019        support for a whole bunch of instructions and addressing modes:
1020    
1021          fadd/fsub/fsubr/fmul/fdiv/fdivr  %st, %st(n)
1022          faddp/fsubp/fsubrp/fmulp/fdivp/fdivrp  %st, %st(n)
1023          fadd/fsub/fsubr/fmul/fdiv/fdivr  %st(n), %st
1024          fiadd/fisub/fisubr/fimul/fidiv/fidivr mem
1025          fxch %st(n)
1026          fld %st(n)
1027          fst %st(n)
1028          fst mem
1029          fstp %st(n)
1030          fucom %st(n)
1031          fucomp %st(n)
1032    
1033        All these are now generated when the fast fp mode is turned on.
1034    
1035    6.  Removed the dedicated registers %st(0), ..., %st(7) from X86CpsRegs
1036    
1037    ----------------------------------------------------------------------
1038    Name: Matthias Blume
1039    Date: 2000/11/09 11:20:00 JST
1040    Tag: blume-20001109-scc
1041    Description:
1042    
1043    Eliminated some code duplication:
1044    
1045    1. Added "where" clause to GraphSCCFn in SML/NJ Library.
1046       (Otherwise the functor is useless.)
1047    2. Used GraphSCCFn where SCCUtilFun was used previously.
1048    3. Got rid of SCCUtilFun (in comp-lib.cm).
1049    
1050    ----------------------------------------------------------------------
1051    Name: Lal George
1052    Date: 2000/11/06 09:02:21 EST 2000
1053    Tag: Release_110_30
1054    Description:
1055    
1056    - Version 110.30
1057    ----------------------------------------------------------------------
1058    Name: Matthias Blume
1059  Date: 2000/11/04 14:45:00  Date: 2000/11/04 14:45:00
1060  Tag: blume-20001104-mlbuild  Tag: blume-20001104-mlbuild
1061  Description:  Description:

Legend:
Removed from v.716  
changed lines
  Added in v.876

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