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

Legend:
Removed from v.771  
changed lines
  Added in v.873

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