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

Legend:
Removed from v.929  
changed lines
  Added in v.1073

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