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 958, Fri Oct 12 03:54:43 2001 UTC revision 1086, Fri Feb 22 05:56:29 2002 UTC
# Line 8  Line 8 
8  The form of an entry should be:  The form of an entry should be:
9    
10  Name:  Name:
11  Date:  Date: yyyy/mm/dd
12  Tag: <post-commit CVS tag>  Tag: <post-commit CVS tag>
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Allen Leung
17    Date: 2002/02/22 01:02:00 EST
18    Tag: leunga-20020222-mlrisc-tools
19    
20    Minor bug fixes in the parser and rewriter
21    
22    ----------------------------------------------------------------------
23    Name: Allen Leung
24    Date: 2002/02/21 20:20:00 EST
25    Tag: leunga-20020221-peephole
26    
27    Regenerated the peephole files.  Some contained typos in the specification
28    and some didn't compile because of pretty printing bugs in the old version
29    of 'nowhere'.
30    
31    ----------------------------------------------------------------------
32    Name: Allen Leung
33    Date: 2002/02/19 20:20:00 EST
34    Tag: leunga-20020219-mlrisc-tools
35    Description:
36    
37       Minor bug fixes to the mlrisc-tools library:
38    
39       1.  Fixed up parsing colon suffixed keywords
40       2.  Added the ability to shut the error messages up
41       3.  Reimplemented the pretty printer and fixed up/improved
42           the pretty printing of handle and -> types.
43       4.  Fixed up generation of literal symbols in the nowhere tool.
44       5.  Added some SML keywords to to sml.sty
45    
46    ----------------------------------------------------------------------
47    Name: Matthias Blume
48    Date: 2002/02/19 16:20:00 EST
49    Tag: blume-20020219-cmffi
50    Description:
51    
52    A wild mix of changes, some minor, some major:
53    
54    * All C FFI-related libraries are now anchored under $c:
55        $/c.cm      --> $c/c.cm
56        $/c-int.cm  --> $c/internals/c-int.cm
57        $/memory.cm --> $c/memory/memory.cm
58    
59    * "make" tool (in CM) now treats its argument pathname slightly
60      differently:
61        1. If the native expansion is an absolute name, then before invoking
62           the "make" command on it, CM will apply OS.Path.mkRelative
63           (with relativeTo = OS.FileSys.getDir()) to it.
64        2. The argument will be passed through to subsequent phases of CM
65           processing without "going native".  In particular, if the argument
66           was an anchored path, then "make" will not lose track of that anchor.
67    
68    * Compiler backends now "know" their respective C calling conventions
69      instead of having to be told about it by ml-nlffigen.  This relieves
70      ml-nlffigen from one of its burdens.
71    
72    * The X86Backend has been split into X86CCallBackend and X86StdCallBackend.
73    
74    * Export C_DEBUG and C_Debug from $c/c.cm.
75    
76    * C type encoding in ml-nlffi-lib has been improved to model the conceptual
77      subtyping relationship between incomplete pointers and their complete
78      counterparts.  For this, ('t, 'c) ptr has been changed to 'o ptr --
79      with the convention of instantiating 'o with ('t, 'c) obj whenever
80      the pointer target type is complete.  In the incomplete case, 'o
81      will be instantiated with some "'c iobj" -- a type obtained by
82      using one of the functors PointerToIncompleteType or PointerToCompleteType.
83    
84      Operations that work on both incomplete and complete pointer types are
85      typed as taking an 'o ptr while operations that require the target to
86      be known are typed as taking some ('t, 'c) obj ptr.
87    
88      voidptr is now a bit "more concrete", namely "type voidptr = void ptr'"
89      where void is an eqtype without any values.  This makes it possible
90      to work on voidptr values using functions meant to operate on light
91      incomplete pointers.
92    
93    * As a result of the above, signature POINTER_TO_INCOMPLETE_TYPE has
94      been vastly simplified.
95    
96    ----------------------------------------------------------------------
97    Name: Matthias Blume
98    Date: 2002/02/19 10:48:00 EST
99    Tag: blume-20020219-pqfix
100    Description:
101    
102    Applied Chris Okasaki's bug fix for priority queues.
103    
104    ----------------------------------------------------------------------
105    Name: Matthias Blume
106    Date: 2002/02/15 17:05:00
107    Tag: Release_110_39
108    Description:
109    
110    Last-minute retagging is becoming a tradition... :-(
111    
112    This is the working release 110.39.
113    
114    ----------------------------------------------------------------------
115    Name: Matthias Blume
116    Date: 2002/02/15 16:00:00 EST
117    Tag: Release_110_39-orig
118    Description:
119    
120    Working release 110.39.  New bootfiles.
121    
122    (Update: There was a small bug in the installer so it wouldn't work
123    with all shells.  So I retagged. -Matthias)
124    
125    ----------------------------------------------------------------------
126    Name: Matthias Blume
127    Date: 2002/02/15 14:17:00 EST
128    Tag: blume-20020215-showbindings
129    Description:
130    
131    Added EnvRef.listBoundSymbols and CM.State.showBindings.  Especially
132    the latter can be useful for exploring what bindings are available at
133    the interactive prompt.  (The first function returns only the list
134    of symbols that are really bound, the second prints those but also the
135    ones that CM's autoloading mechanism knows about.)
136    
137    ----------------------------------------------------------------------
138    Name: Matthias Blume
139    Date: 2002/02/15 12:08:00 EST
140    Tag: blume-20020215-iptrs
141    Description:
142    
143    Two improvements to ml-nlffigen:
144    
145      1. Write files only if they do not exist or if their current contents
146         do not coincide with what's being written.  (That is, avoid messing
147         with the time stamps unless absolutely necessary.)
148    
149      2. Implement a "repository" mechanism for generated files related
150         to "incomplete pointer types".   See the README file for details.
151    
152    ----------------------------------------------------------------------
153    Name: Matthias Blume
154    Date: 2002/02/14 11:50:00 EST
155    Tag: blume-20020214-quote
156    Description:
157    
158    Added a type 't t_' to tag.sml (in ml-nlffi-lib.cm).  This is required
159    because of the new and improved tag generation scheme.  (Thanks to Allen
160    Leung for pointing it out.)
161    
162    ----------------------------------------------------------------------
163    Name: Lal George
164    Date: 2002/02/14 09:55:27 EST 2002
165    Tag: george-20020214-isabelle-bug
166    Description:
167    
168    Fixed the MLRISC bug sent by Markus Wenzel regarding the compilation
169    of Isabelle on the x86.
170    
171    From Allen:
172    -----------
173     I've found the problem:
174    
175         in ra-core.sml, I use the counter "blocked" to keep track of the
176         true number of elements in the freeze queue.  When the counter goes
177         to zero, I skip examining the queue.  But I've messed up the
178         bookkeeping in combine():
179    
180             else ();
181             case !ucol of
182               PSEUDO => (if !cntv > 0 then
183                     (if !cntu > 0 then blocked := !blocked - 1 else ();
184                                        ^^^^^^^^^^^^^^^^^^^^^^^
185                      moveu := mergeMoveList(!movev, !moveu)
186                     )
187                  else ();
188    
189         combine() is called to coalesce two nodes u and v.
190         I think I was thinking that if the move counts of u and v are both
191         greater than zero then after they are coalesced then one node is
192         removed from the freeze queue.  Apparently I was thinking that
193         both u and v are of low degree, but that's clearly not necessarily true.
194    
195    
196    02/12/2002:
197        Here's the patch.  HOL now compiles.
198    
199        I don't know how this impact on performance (compile
200        time or runtime).  This bug caused the RA (especially on the x86)
201        to go thru the potential spill phase when there are still nodes on the
202        freeze queue.
203    
204    
205    
206    
207    ----------------------------------------------------------------------
208    Name: Matthias Blume
209    Date: 2002/02/13 22:40:00 EST
210    Tag: blume-20020213-fptr-rtti
211    Description:
212    
213    Fixed a bug in ml-nlffigen that was introduced with one of the previous
214    updates.
215    
216    ----------------------------------------------------------------------
217    Name: Matthias Blume
218    Date: 2002/02/13 16:41:00 EST
219    Tag: blume-20020213-cmlpq
220    Description:
221    
222    Added new priority queue export symbols (which have just been added to
223    smlnj-lib.cm) to CML's version of smlnj-lib.cm.  (Otherwise CML would
224    not compile and the installer would choke.)
225    
226    ----------------------------------------------------------------------
227    Name: Matthias Blume
228    Date: 2002/02/13 16:15:00 EST
229    Tag: blume-20020213-various
230    Description:
231    
232    1. More tweaks to ml-nlffigen:
233    
234       - better internal datastructures (resulting in slight speedup)
235       - "-match" option requires exact match
236       - "localized" gensym counters (untagged structs/unions nested within
237         other structs/unions or within typedefs get a fresh counter; their
238         tag will be prefixed by a concatenation of their parents' tags)
239       - bug fixes (related to calculation of transitive closure of types
240         to be included in the output)
241    
242    2. Minor Basis updates:
243    
244       - added implementations for List.collate and Option.app
245    
246    ----------------------------------------------------------------------
247    Name: Matthias Blume
248    Date: 2002/02/11 15:55:00 EST
249    Tag: blume-20020211-gensym
250    Description:
251    
252    Added a "-gensym" option to command line of ml-nlffigen.  This can be
253    used to specify a "stem" -- a string that is inserted in all "gensym'd"
254    names (ML structure names that correspond to unnamed C structs, unions,
255    and enums), so that separate runs of ml-nlffigen do not clash.
256    
257    ----------------------------------------------------------------------
258    Name: Matthias Blume
259    Date: 2002/02/11 12:05:00 EST
260    Tag: blume-20020211-gensml
261    Description:
262    
263    A quick fix for a problem with GenSML (in the pgraph-util library):
264    Make generation of toplevel "local" optional.  (Strictly speaking,
265    signature definitions within "local" are not legal SML.)
266    
267    Other than that: updates to INSTALL and cm/TODO.
268    
269    ----------------------------------------------------------------------
270    Name: Matthias Blume
271    Date: 2002/02/08 15:00:00 EST
272    Tag: blume-20020208-uniquepid
273    Description:
274    
275    0. Version number has been bumped to 110.38.1.  NEW BOOTFILES!!!
276    
277    1. The installer (config/install.sh) has gotten smarter:
278    
279         - Configuration options are a bit easier to specify now
280           (in config/targets).
281         - Bug in recognizing .tar.bz2 files fixed.
282         - Installer automatically resolves dependencies between
283           configuration options (e.g., if you ask for eXene, you will
284           also get cml -- regardless whether you asked for it or not).
285         - Installer can run in "quieter mode" by setting the environment
286           variable INSTALL_QUIETLY to "true".  "Quieter" does not mean
287           "completely silent", though.
288         - Build HashCons library as part of smlnj-lib.
289    
290    2. A new scheme for assigning persistent identifiers to compilation
291       units (and, by extension, to types etc.) has been put into place.
292       This fixes a long-standing bug where types and even dynamic values
293       can get internally confused, thereby compromising type safety
294       (abstraction) and dynamic correctness.  See
295    
296         http://cm.bell-labs.com/cm/cs/who/blume/pid-confusion.tgz
297    
298       for an example of how things could go wrong until now.
299    
300       The downside of the new scheme is that pids are not quite as
301       persistent as they used to be: CM will generate a fresh pid
302       for every compilation unit that it thinks it sees for the first
303       time.  That means that if you compile starting from a clean, fresh
304       source tree at two different times, you end up with different
305       binaries.
306    
307       Cutoff recompilation, however, has not been compromised because
308       CM keeps pid information in special caches between runs.
309    
310    ----------------------------------------------------------------------
311    Name: Lal George
312    Date: 2002/02/07 15:34:13 EST 2002
313    Tag: <none>
314    Description:
315    
316    Compilers that generate assembly code may produce  global labels
317    whose value is resolved at link time. The various peephole optimization
318    modules did not take this in account.
319    
320    TODO. The Labels.addrOf function should really return an option
321    type so that clients are forced to deal with this issue, rather
322    than an exception being raised.
323    
324    ----------------------------------------------------------------------
325    Name: Lal George
326    Date: 2002/02/06 13:55:02 EST
327    Tag: george-20020206-ra-breakup
328    Description:
329    
330    1. A bug fix from Allen.
331    
332        A typo causes extra fstp %st(0)'s to be generated at compensation
333        edges, which might cause stack underflow traps at runtime.  This
334        occurs in fft where there are extraneous fstps right before the 'into'
335        trap instruction (in this case they are harmless since none of the
336        integers overflow.)
337    
338    2. Pulled out various utility modules that were embedded in the modules
339       of the register allocator. I need these modules for other purposes, but
340       they are not complete enough to put into a library (just yet).
341    ----------------------------------------------------------------------
342    Name: Matthias Blume
343    Date: 2002/01/31 16:05:00 EST
344    Tag: blume-20020131-sparc-ccalls
345    Description:
346    
347    1. C-calls on Sparc needlessly allocated a huge chunk (96 bytes)
348       of extra stack space by mistake.  Fixed.
349    
350    2. Bug in logic of handling of command-line options in ml-nlffigen fixed.
351    
352    ----------------------------------------------------------------------
353    Name: Allen Leung
354    Date: 2002/01/30
355    Tag: leunga-20020130-nowhere-bug-fix
356    Description:
357    
358       MLRISC bug fixes:
359       1. Fixed a bindings computation bug in the 'nowhere' program generator tool.
360       2. MachineInt.fromString was negating its value.
361    
362    ----------------------------------------------------------------------
363    Name: Matthias Blume
364    Date: 2002/01/29
365    Tag: blume-20020129-INSTALL
366    Description:
367    
368    - Added somewhat detailed installation instructions (file INSTALL).
369    - Fixed curl-detection bug in config/install.sh.
370    - It is now possible to select the URL getter using the URLGETTER
371      environment variable:
372    
373          not set / "unknown"      --> automatic detection (script tries wget,
374                                       curl, and lynx)
375          "wget" / "curl" / "lynx" --> use the specified program (script "knows"
376                                       how to properly invoke them)
377          other                    --> use $URLGETTER directly, it must take
378                                       precisely two command-line arguments
379                                       (source URL and destination file name)
380    
381    ----------------------------------------------------------------------
382    Name: Matthias Blume
383    Date: 2002/01/28
384    Tag: blume-20020128-sparc-ccalls
385    Description:
386    
387    - Fixed problem with calculation of "used" registers in sparc-c-calls.
388    - Make use of the allocParam argument in sparc-c-calls.
389    
390    ----------------------------------------------------------------------
391    Name: Matthias Blume
392    Date: 2002/01/28
393    Tag: blume-20020128-allocParam
394    Description:
395    
396    John Reppy:  Changes c-calls API to accept client-callback for
397    allocating extra stack space.
398    me: Corresponding changes to mlriscGen (using a dummy argument that
399        does not change the current behavior).
400    
401    ----------------------------------------------------------------------
402    Name: Matthias Blume
403    Date: 2002/01/28 12:00:00
404    Tag: Release_110_38
405    Description:
406    
407    This time for real!!!
408    
409    ----------------------------------------------------------------------
410    Name: Matthias Blume
411    Date: 2002/01/28 10:56:00 EST
412    Tag: blume-20020128-retraction
413    Description:
414    
415    0. Retracted earlier 110.38.  (The Release_110_38 tag has been replaced
416       with blume-Release_110_38-retracted.)
417    
418    1. Fixed a problem with incorrect rounding modes in real64.sml.
419       (Thanks to Andrew Mccreight <andrew.mccreight@yale.edu>.)
420    
421    2. A bug in ml-nlffigen related to the handling of unnamed structs, unions,
422       and enums fixed.  The naming of corresponding ML identifiers should
423       now be consistent again.
424    
425    ----------------------------------------------------------------------
426    Name: Allen Leung
427    Date: 2002/01/27
428    Tag: leunga-20020127-nowhere
429    Description:
430    
431       Added a target called nowhere in the configuration scripts.
432       Enabling this will build the MLRISC 'nowhere' tool (for translating
433       programs with where-clauses into legal SML code) during installation.
434    
435    ----------------------------------------------------------------------
436    Name: Matthias Blume
437    Date: 2002/01/25 21:27:00 EST
438    Tag: blume-Release_110_38-retracted
439    Description:
440    
441    Call it a (working) release!  Version is 110.38. Bootfiles are ready.
442    
443    README will be added later.
444    
445    !!! NOTE:  Re-tagged as blume-Release_110_38-retracted. Original tag
446    (Release_110_38) removed.  Reason: Last-minute bug fixes.
447    
448    ----------------------------------------------------------------------
449    Name: Matthias Blume
450    Date: 2002/01/25
451    Tag: blume-20020125-ffi
452    Description:
453    
454    A large number of tweaks and improvements to ml-nlffi-lib and
455    ml-nlffigen:
456    
457       - ML represenation types have been streamlined
458       - getter and setter functions work with concrete values, not abstract
459         ones where possible
460       - ml-nlffigen command line more flexible (see README file there)
461       - some bugs have been fixed (hopefully)
462    
463    ----------------------------------------------------------------------
464    Name: Lal George
465    Date: 2002/01/24
466    Tag: george-20020124-risc-ra-interface
467    Description:
468    
469       There is a dramatic simplification in the interface to the
470       register allocator for RISC architectures as a result of making
471       parallel copy instructions explicit.
472    
473    ----------------------------------------------------------------------
474    Name: Matthias Blume
475    Date: 2002/01/22
476    Tag: blume-20020122-x86-ccalls
477    Description:
478    
479    Bug fix for c-calls on x86 (having to do with how char- and
480    short-arguments are being handled).
481    
482    ----------------------------------------------------------------------
483    Name: Matthias Blume
484    Date: 2002/01/21
485    Tag: blume-20020121-ff
486    Description:
487    
488    Another day of fiddling with the FFI...
489    
490    1. Bug fix/workaround:  CKIT does not complain about negative array
491       dimensions, so ml-nlffigen has to guard itself against this possibility.
492       (Otherwise a negative dimension would send it into an infinite loop.)
493    
494    2. Some of the abstract types (light objects, light pointers, most "base"
495       types) in structure C are now eqtypes.
496    
497    3. Added constructors and test functions for NULL function pointers.
498    
499    ----------------------------------------------------------------------
500    Name: Matthias Blume
501    Date: 2002/01/18
502    Tag: blume-20020118-ready-for-new-release
503    Description:
504    
505    Made config/srcarchiveurl point to a new place.  (Will provide boot
506    files shortly.)
507    
508    Maybe we christen this to be 110.38?
509    
510    ----------------------------------------------------------------------
511    Name: Matthias Blume
512    Date: 2002/01/18
513    Tag: blume-20020118-more-ffifiddle
514    Description:
515    
516    Today's FFI fiddling:
517    
518      - Provided a structure CGetSet with "convenient" versions of C.Get.* and
519        C.Set.* that use concrete (MLRep.*) arguments and results instead
520        of abstract ones.
521    
522      - Provided word-style bit operations etc. for "int" representation
523        types in MLRep.S<Foo>Bitops where <Foo> ranges over Char, Int, Short,
524        and Long.
525    
526    ----------------------------------------------------------------------
527    Name: Matthias Blume
528    Date: 2002/01/18
529    Tag: blume-20020118-use-x86-fp
530    Description:
531    
532    Now that x86-fast-fp seems to be working, I turned it back on again
533    by default.  (Seems to work fine now, even with the FFI.)
534    
535    Other than that, I added some documentation about the FFI to
536    src/ml-nlffigen/README and updated the FFI test examples in
537    src/ml-nlffi-lib/Tests/*.
538    
539    ----------------------------------------------------------------------
540    Name: Allen Leung
541    Date: 2002/01/17
542    Tag: leunga-20020117-x86-fast-fp-call
543    Description:
544    
545       1. Fixed a problem with handling return fp values when x86's fast fp
546          mode is turned on.
547    
548       2. Minor pretty printing fix for cellset.  Print %st(0) as %st(0) instead
549          of %f32.
550    
551       3. Added a constructor INT32lit to the ast of MLRISC tools.
552    
553    ----------------------------------------------------------------------
554    Name: Matthias Blume
555    Date: 2002/01/16
556    Tag: blume-20020116-ffifiddle
557    Description:
558    
559    More fiddling with the FFI interface:
560    
561     - Make constness 'c instead of rw wherever possible.  This eliminates
562       the need for certain explicit coercions.  (However, due to ML's
563       value polymorphism, there will still be many cases where explicit
564       coercions are necessary.  Phantom types are not the whole answer
565       to modeling a subtyping relationship in ML.)
566    
567     - ro/rw coersions for pointers added.  (Avoids the detour through */&.)
568    
569     - "printf" test example added to src/ml-nlffi-lib/Tests.  (Demonstrates
570       clumsy workaround for varargs problem.)
571    
572    ----------------------------------------------------------------------
573    Name: Lal George
574    Date: 2002/01/15
575    Tag: <none>
576    Description:
577    
578    1. Since COPY instructions are no longer native to the architecture,
579       a generic functor can be used to implement the expandCopies function.
580    
581    2. Allowed EXPORT and IMPORT pseudo-op declarations to appear inside a
582       TEXT segment.
583    
584    ----------------------------------------------------------------------
585    Name: Matthias Blume
586    Date: 2002/01/15
587    Tag: blume-20020115-ffiupdates
588    Description:
589    
590    1. Fix for bug resulting in single-precision float values being returned
591       incorrectly from FFI calls.
592    
593    2. Small modifications to C FFI API:
594    
595        - memory-allocation routines return straight objects (no options)
596          and raise an exception in out-of-memory situations
597        - unsafe extensions to cast between function pointers and pointers
598          from/to ints
599        - added structure C_Debug as an alternative to structure C where
600          pointer-dereferencing (|*| and |*!) always check for null-pointers
601        - added open_lib' to DynLinkage;  open_lib' works like open_lib
602          but also takes a (possibly empty) list of existing library handles
603          that the current library depends on
604    
605    ----------------------------------------------------------------------
606    Name: Matthias Blume
607    Date: 2002/01/10
608    Tag: blume-20020110-newffigen
609    Description:
610    
611    1. Updates to portable graph code.
612    
613    2. Major update to ml-nlffigen and ml-nlffi-lib.  Things are much
614       more scalable now so that even huge interfaces such as the one
615       for GTK compile in finite time and space. :-)
616       See src/ml-nlffigen/README for details on what's new.
617    
618    ----------------------------------------------------------------------
619    Name: Lal George
620    Date: 2001/01/09 14:31:35 EST 2002
621    Tag: george-20011206-rm-native-copy
622    Description:
623    
624            Removed the native COPY and FCOPY instructions
625            from all the architectures and replaced it with the
626            explicit COPY instruction from the previous commit.
627    
628            It is now possible to simplify many of the optimizations
629            modules that manipulate copies. This has not been
630            done in this change.
631    
632    ----------------------------------------------------------------------
633    Name: Lal George
634    Date: 2001/12/06 16:50:13 EST 2001
635    Tag: george-20011206-mlrisc-instruction
636    Description:
637    
638    Changed the representation of instructions from being fully abstract
639    to being partially concrete. That is to say:
640    
641      from
642            type instruction
643    
644      to
645            type instr                              (* machine instruction *)
646    
647            datatype instruction =
648                LIVE of {regs: C.cellset, spilled: C.cellset}
649              | KILL of {regs: C.cellset, spilled: C.cellset}
650              | COPYXXX of {k: CB.cellkind, dst: CB.cell list, src: CB.cell list}
651              | ANNOTATION of {i: instruction, a: Annotations.annotation}
652              | INSTR of instr
653    
654    This makes the handling of certain special instructions that appear on
655    all architectures easier and uniform.
656    
657    LIVE and KILL say that a list of registers are live or killed at the
658    program point where they appear. No spill code is generated when an
659    element of the 'regs' field is spilled, but the register is moved to
660    the 'spilled' (which is present, more for debugging than anything else).
661    
662    LIVE replaces the (now deprecated) DEFFREG instruction on the alpha.
663    We used to generate:
664    
665            DEFFREG f1
666            f1 := f2 + f3
667            trapb
668    
669    but now generate:
670    
671            f1 := f2 + f3
672            trapb
673            LIVE {regs=[f1,f2,f3], spilled=[]}
674    
675    Furthermore, the DEFFREG (hack) required that all floating point instruction
676    use all registers mentioned in the instruction. Therefore f1 := f2 + f3,
677    defines f1 and uses [f1,f2,f3]! This hack is no longer required resulting
678    in a cleaner alpha implementation. (Hopefully, intel will not get rid of
679    this architecture).
680    
681    COPYXXX is intended to replace the parallel COPY and FCOPY  available on
682    all the architectures. This will result in further simplification of the
683    register allocator that must be aware of them for coalescing purposes, and
684    will also simplify certain aspects of the machine description that provides
685    callbacks related to parallel copies.
686    
687    ANNOTATION should be obvious, and now INSTR represents the honest to God
688    machine instruction set!
689    
690    The <arch>/instructions/<arch>Instr.sml files define certain utility
691    functions for making porting easier -- essentially converting upper case
692    to lower case. All machine instructions (of type instr) are in upper case,
693    and the lower case form generates an MLRISC instruction. For example on
694    the alpha we have:
695    
696      datatype instr =
697         LDA of {r:cell, b:cell, d:operand}
698       | ...
699    
700      val lda : {r:cell, b:cell, d:operand} -> instruction
701        ...
702    
703    where lda is just (INSTR o LDA), etc.
704    
705    ----------------------------------------------------------------------
706    Name: Matthias Blume
707    Date: 2001/11/22 21:40:00 EST
708    Tag: Release_110_37
709    Description:
710    
711    Release 110.37.  This time for real.
712    
713    ----------------------------------------------------------------------
714    Name: Matthias Blume
715    Date: 2001/11/21 16:35:00 EST
716    Tag: blume-20011121-foot-in-mouth
717    Description:
718    
719    Removed the "Release_110_37" tag because of a serious bug.
720    This will be re-tagged once the bug is fixed.
721    
722    ----------------------------------------------------------------------
723    Name: Matthias Blume
724    Date: 2001/11/21 16:14:00 EST
725    Tag: blume-20011121-forgottenfile
726    Description:
727    
728    Forgot to add a file.  (Just a .tex-file -- part of
729    the CM manual source.)
730    
731    ----------------------------------------------------------------------
732    Name: Matthias Blume
733    Date: 2001/11/21 16:10:00 EST
734    Tag: blume-20011121-invalid_110_37
735    Description:
736    
737    Note: I removed the original tag "Release_110_37" from this commit
738          because we found a serious bug in all non-x86 backends.
739          - Matthias
740    
741    1. Modifications to the SML/NJ code generator and to the runtime system
742       so that code object name strings are directly inserted into code
743       objects at code generation time.  The only business the runtime system
744       has with this is now to read the name strings on occasions.
745       (The encoding of the name string has also changed somewhat.)
746    
747    2. CM now implements a simple "set calculus" for specifying export lists.
748       In particular, it is now possible to refer to the export lists of
749       other libraries/groups/sources and form unions as well as differences.
750       See the latest CM manual for details.
751    
752    3. An separate notion of "proxy" libraries has again be eliminated from
753       CM's model.  (Proxy libraries are now simply a special case of using
754       the export list calculus.)
755    
756    4. Some of the existing libraries now take advantage of the new set
757       calculus.
758       (Notice that not all libraries have been converted because some
759       of the existing .cm-files are supposed to be backward compatible
760       with 110.0.x.)
761    
762    5. Some cleanup in stand-alone programs.  (Don't use "exnMessage" -- use
763       "General.exnMessage"!  The former relies on a certain hook to be
764       initialized, and that often does not happen in the stand-alone case.)
765    
766    ----------------------------------------------------------------------
767    Name: Lal George
768    Date: 2001/11/21  13:56:18 EST
769    Tag: george-2001121-pseudo-ops
770    Description:
771    
772      Implemented a complete redesign of MLRISC pseudo-ops. Now there
773      ought to never be any question of incompatabilities with
774      pseudo-op syntax expected by host assemblers.
775    
776      For now, only modules supporting GAS syntax are implemented
777      but more should follow, such as MASM, and vendor assembler
778      syntax, e.g. IBM as, Sun as, etc.
779    
780    ----------------------------------------------------------------------
781    Name: Matthias Blume
782    Date: 2001/11/14 11:52:00 EST
783    Tag: blume-20011114-srcname
784    Description:
785    
786    1. Routed the name of the current source file to mlriscgen where it
787       should be directly emitted into the code object.  (This last part
788       is yet to be done.)
789    
790    2. Some cleanup of the pgraph code to make it match the proposal that
791       I put out the other day.  (The proposal notwithstanding, things are
792       still in flux here.)
793    
794    ----------------------------------------------------------------------
795    Name: Lal George
796    Date: 2001/11/14 09:44:04 EST
797    Tag:
798    Description:
799    
800      Fix for a backpatching bug reported by Allen.
801    
802      Because the boundary between short and long span-dependent
803      instructions is +/- 128, there are an astounding number of
804      span-dependent instructions whose size is over estimated.
805    
806      Allen came up with the idea of letting the size of span
807      dependent instructions be non-monotonic, for a maxIter
808      number of times, after which the size must be monotonically
809      increasing.
810    
811      This table shows the number of span-dependent instructions
812      whose size was over-estimated as a function of maxIter, for the
813      file Parse/parse/ml.grm.sml:
814    
815         maxIter            # of instructions:
816            10                      687
817            20                      438
818            30                      198
819            40                        0
820    
821      In compiling the compiler, there is no significant difference in
822      compilation speed between maxIter=10 and maxIter=40. Actually,
823      my measurements showed that maxIter=40 was a tad faster than
824      maxIter=10! Also 96% of the  files in the compiler reach a fix
825      point within 13 iterations, so fixing maxIter at 40, while high,
826      is okay.
827    
828    ----------------------------------------------------------------------
829    Name: Matthias Blume
830    Date: 2001/10/31 15:25:00 EST
831    Tag: blume-20011031-pgraph
832    Description:
833    
834    CKIT:
835    * Changed the "Function" constructor of type Ast.ctype to carry optional
836      argument identifiers.
837    * Changed the return type of TypeUtil.getFunction accordingly.
838    * Type equality ignores the argument names.
839    * TypeUtil.composite tries to preserve argument names but gives up quickly
840      if there is a mismatch.
841    
842    installation script:
843    * attempts to use "curl" if available (unless "wget" is available as well)
844    
845    CM:
846    * has an experimental implementation of "portable graphs" which I will
847      soon propose as an implementation-independent library format
848    * there are also new libraries $/pgraph.cm and $/pgraph-util.cm
849    
850    NLFFI-LIB:
851    * some cleanup (all cosmetic)
852    
853    NLFFIGEN:
854    * temporarily disabled the mechanism that suppresses ML output for
855      C definitions whose identifiers start with an underscore character
856    * generate val bindings for enum constants
857    * user can request that only one style (light or heavy) is being used;
858      default is to use both (command-line arguments: -heavy and -light)
859    * fixed bug in handling of function types involving incomplete pointers
860    * generate ML entry points that take record arguments (i.e., using
861      named arguments) for C functions that have a prototype with named
862      arguments
863      (see changes to CKIT)
864    
865    ----------------------------------------------------------------------
866    Name: Allen Leung
867    Date: 2001/10/27 20:34:00 EDT
868    Tag: leunga-20011027-x86-fast-fp-call
869    Description:
870    
871       Fixed the bug described in blume-20010920-slowfp.
872    
873       The fix involves
874          1. generating FCOPYs in FSTP in ia32-svid
875          2. marking a CALL with the appropriate annotation
876    
877    ----------------------------------------------------------------------
878    Name: Matthias Blume
879    Date: 2001/10/16 11:32:00 EDT
880    Tag: blume-20011016-netbsd
881    Description:
882    
883    Underscore patch from Chris Richards (fixing problem with compiling
884    runtime system under recent NetBSD).
885    
886    ----------------------------------------------------------------------
887    Name: Allen Leung
888    Date: 2001/10/12 17:18:32 EDT 2001
889    Tag: leung-20011012-x86-printflowgraph
890    Description:
891    
892    X86RA now uses a valid (instead of dummy) PrintFlowgraph module.
893    
894    ----------------------------------------------------------------------
895  Name: Lal George  Name: Lal George
896  Date: 2001/10/11 23:51:34 EDT  Date: 2001/10/11 23:51:34 EDT
897  Tag: george-20011011-too-many-instrs  Tag: george-20011011-too-many-instrs
# Line 80  Line 959 
959    
960  ----------------------------------------------------------------------  ----------------------------------------------------------------------
961  Name: Matthias Blume  Name: Matthias Blume
 >>>>>>> 1.169  
962  Date: 2001/09/18 15:35:00 EDT  Date: 2001/09/18 15:35:00 EDT
963  Tag: blume-20010918-readme11036  Tag: blume-20010918-readme11036
964  Description:  Description:

Legend:
Removed from v.958  
changed lines
  Added in v.1086

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