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

Legend:
Removed from v.904  
changed lines
  Added in v.1068

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