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

Legend:
Removed from v.749  
changed lines
  Added in v.875

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