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 916, Fri Aug 24 21:13:58 2001 UTC revision 1030, Fri Jan 18 21:45:37 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/01/18
18    Tag: blume-20020118-ready-for-new-release
19    Description:
20    
21    Made config/srcarchiveurl point to a new place.  (Will provide boot
22    files shortly.)
23    
24    Maybe we christen this to be 110.38?
25    
26    ----------------------------------------------------------------------
27    Name: Matthias Blume
28    Date: 2002/01/18
29    Tag: blume-20020118-more-ffifiddle
30    Description:
31    
32    Today's FFI fiddling:
33    
34      - Provided a structure CGetSet with "convenient" versions of C.Get.* and
35        C.Set.* that use concrete (MLRep.*) arguments and results instead
36        of abstract ones.
37    
38      - Provided word-style bit operations etc. for "int" representation
39        types in MLRep.S<Foo>Bitops where <Foo> ranges over Char, Int, Short,
40        and Long.
41    
42    ----------------------------------------------------------------------
43    Name: Matthias Blume
44    Date: 2002/01/18
45    Tag: blume-20020118-use-x86-fp
46    Description:
47    
48    Now that x86-fast-fp seems to be working, I turned it back on again
49    by default.  (Seems to work fine now, even with the FFI.)
50    
51    Other than that, I added some documentation about the FFI to
52    src/ml-nlffigen/README and updated the FFI test examples in
53    src/ml-nlffi-lib/Tests/*.
54    
55    ----------------------------------------------------------------------
56    Name: Allen Leung
57    Date: 2002/01/17
58    Tag: leunga-20020117-x86-fast-fp-call
59    Description:
60    
61       1. Fixed a problem with handling return fp values when x86's fast fp
62          mode is turned on.
63    
64       2. Minor pretty printing fix for cellset.  Print %st(0) as %st(0) instead
65          of %f32.
66    
67       3. Added a constructor INT32lit to the ast of MLRISC tools.
68    
69    ----------------------------------------------------------------------
70    Name: Matthias Blume
71    Date: 2002/01/16
72    Tag: blume-20020116-ffifiddle
73    Description:
74    
75    More fiddling with the FFI interface:
76    
77     - Make constness 'c instead of rw wherever possible.  This eliminates
78       the need for certain explicit coercions.  (However, due to ML's
79       value polymorphism, there will still be many cases where explicit
80       coercions are necessary.  Phantom types are not the whole answer
81       to modeling a subtyping relationship in ML.)
82    
83     - ro/rw coersions for pointers added.  (Avoids the detour through */&.)
84    
85     - "printf" test example added to src/ml-nlffi-lib/Tests.  (Demonstrates
86       clumsy workaround for varargs problem.)
87    
88    ----------------------------------------------------------------------
89    Name: Lal George
90    Date: 2002/01/15
91    Tag: <none>
92    Description:
93    
94    1. Since COPY instructions are no longer native to the architecture,
95       a generic functor can be used to implement the expandCopies function.
96    
97    2. Allowed EXPORT and IMPORT pseudo-op declarations to appear inside a
98       TEXT segment.
99    
100    ----------------------------------------------------------------------
101    Name: Matthias Blume
102    Date: 2002/01/15
103    Tag: blume-20020115-ffiupdates
104    Description:
105    
106    1. Fix for bug resulting in single-precision float values being returned
107       incorrectly from FFI calls.
108    
109    2. Small modifications to C FFI API:
110    
111        - memory-allocation routines return straight objects (no options)
112          and raise an exception in out-of-memory situations
113        - unsafe extensions to cast between function pointers and pointers
114          from/to ints
115        - added structure C_Debug as an alternative to structure C where
116          pointer-dereferencing (|*| and |*!) always check for null-pointers
117        - added open_lib' to DynLinkage;  open_lib' works like open_lib
118          but also takes a (possibly empty) list of existing library handles
119          that the current library depends on
120    
121    ----------------------------------------------------------------------
122    Name: Matthias Blume
123    Date: 2002/01/10
124    Tag: blume-20020110-newffigen
125    Description:
126    
127    1. Updates to portable graph code.
128    
129    2. Major update to ml-nlffigen and ml-nlffi-lib.  Things are much
130       more scalable now so that even huge interfaces such as the one
131       for GTK compile in finite time and space. :-)
132       See src/ml-nlffigen/README for details on what's new.
133    
134    ----------------------------------------------------------------------
135    Name: Lal George
136    Date: 2001/01/09 14:31:35 EST 2002
137    Tag: george-20011206-rm-native-copy
138    Description:
139    
140            Removed the native COPY and FCOPY instructions
141            from all the architectures and replaced it with the
142            explicit COPY instruction from the previous commit.
143    
144            It is now possible to simplify many of the optimizations
145            modules that manipulate copies. This has not been
146            done in this change.
147    
148    ----------------------------------------------------------------------
149    Name: Lal George
150    Date: 2001/12/06 16:50:13 EST 2001
151    Tag: george-20011206-mlrisc-instruction
152    Description:
153    
154    Changed the representation of instructions from being fully abstract
155    to being partially concrete. That is to say:
156    
157      from
158            type instruction
159    
160      to
161            type instr                              (* machine instruction *)
162    
163            datatype instruction =
164                LIVE of {regs: C.cellset, spilled: C.cellset}
165              | KILL of {regs: C.cellset, spilled: C.cellset}
166              | COPYXXX of {k: CB.cellkind, dst: CB.cell list, src: CB.cell list}
167              | ANNOTATION of {i: instruction, a: Annotations.annotation}
168              | INSTR of instr
169    
170    This makes the handling of certain special instructions that appear on
171    all architectures easier and uniform.
172    
173    LIVE and KILL say that a list of registers are live or killed at the
174    program point where they appear. No spill code is generated when an
175    element of the 'regs' field is spilled, but the register is moved to
176    the 'spilled' (which is present, more for debugging than anything else).
177    
178    LIVE replaces the (now deprecated) DEFFREG instruction on the alpha.
179    We used to generate:
180    
181            DEFFREG f1
182            f1 := f2 + f3
183            trapb
184    
185    but now generate:
186    
187            f1 := f2 + f3
188            trapb
189            LIVE {regs=[f1,f2,f3], spilled=[]}
190    
191    Furthermore, the DEFFREG (hack) required that all floating point instruction
192    use all registers mentioned in the instruction. Therefore f1 := f2 + f3,
193    defines f1 and uses [f1,f2,f3]! This hack is no longer required resulting
194    in a cleaner alpha implementation. (Hopefully, intel will not get rid of
195    this architecture).
196    
197    COPYXXX is intended to replace the parallel COPY and FCOPY  available on
198    all the architectures. This will result in further simplification of the
199    register allocator that must be aware of them for coalescing purposes, and
200    will also simplify certain aspects of the machine description that provides
201    callbacks related to parallel copies.
202    
203    ANNOTATION should be obvious, and now INSTR represents the honest to God
204    machine instruction set!
205    
206    The <arch>/instructions/<arch>Instr.sml files define certain utility
207    functions for making porting easier -- essentially converting upper case
208    to lower case. All machine instructions (of type instr) are in upper case,
209    and the lower case form generates an MLRISC instruction. For example on
210    the alpha we have:
211    
212      datatype instr =
213         LDA of {r:cell, b:cell, d:operand}
214       | ...
215    
216      val lda : {r:cell, b:cell, d:operand} -> instruction
217        ...
218    
219    where lda is just (INSTR o LDA), etc.
220    
221    ----------------------------------------------------------------------
222    Name: Matthias Blume
223    Date: 2001/11/22 21:40:00 EST
224    Tag: Release_110_37
225    Description:
226    
227    Release 110.37.  This time for real.
228    
229    ----------------------------------------------------------------------
230    Name: Matthias Blume
231    Date: 2001/11/21 16:35:00 EST
232    Tag: blume-20011121-foot-in-mouth
233    Description:
234    
235    Removed the "Release_110_37" tag because of a serious bug.
236    This will be re-tagged once the bug is fixed.
237    
238    ----------------------------------------------------------------------
239    Name: Matthias Blume
240    Date: 2001/11/21 16:14:00 EST
241    Tag: blume-20011121-forgottenfile
242    Description:
243    
244    Forgot to add a file.  (Just a .tex-file -- part of
245    the CM manual source.)
246    
247    ----------------------------------------------------------------------
248    Name: Matthias Blume
249    Date: 2001/11/21 16:10:00 EST
250    Tag: blume-20011121-invalid_110_37
251    Description:
252    
253    Note: I removed the original tag "Release_110_37" from this commit
254          because we found a serious bug in all non-x86 backends.
255          - Matthias
256    
257    1. Modifications to the SML/NJ code generator and to the runtime system
258       so that code object name strings are directly inserted into code
259       objects at code generation time.  The only business the runtime system
260       has with this is now to read the name strings on occasions.
261       (The encoding of the name string has also changed somewhat.)
262    
263    2. CM now implements a simple "set calculus" for specifying export lists.
264       In particular, it is now possible to refer to the export lists of
265       other libraries/groups/sources and form unions as well as differences.
266       See the latest CM manual for details.
267    
268    3. An separate notion of "proxy" libraries has again be eliminated from
269       CM's model.  (Proxy libraries are now simply a special case of using
270       the export list calculus.)
271    
272    4. Some of the existing libraries now take advantage of the new set
273       calculus.
274       (Notice that not all libraries have been converted because some
275       of the existing .cm-files are supposed to be backward compatible
276       with 110.0.x.)
277    
278    5. Some cleanup in stand-alone programs.  (Don't use "exnMessage" -- use
279       "General.exnMessage"!  The former relies on a certain hook to be
280       initialized, and that often does not happen in the stand-alone case.)
281    
282    ----------------------------------------------------------------------
283    Name: Lal George
284    Date: 2001/11/21  13:56:18 EST
285    Tag: george-2001121-pseudo-ops
286    Description:
287    
288      Implemented a complete redesign of MLRISC pseudo-ops. Now there
289      ought to never be any question of incompatabilities with
290      pseudo-op syntax expected by host assemblers.
291    
292      For now, only modules supporting GAS syntax are implemented
293      but more should follow, such as MASM, and vendor assembler
294      syntax, e.g. IBM as, Sun as, etc.
295    
296    ----------------------------------------------------------------------
297    Name: Matthias Blume
298    Date: 2001/11/14 11:52:00 EST
299    Tag: blume-20011114-srcname
300    Description:
301    
302    1. Routed the name of the current source file to mlriscgen where it
303       should be directly emitted into the code object.  (This last part
304       is yet to be done.)
305    
306    2. Some cleanup of the pgraph code to make it match the proposal that
307       I put out the other day.  (The proposal notwithstanding, things are
308       still in flux here.)
309    
310    ----------------------------------------------------------------------
311    Name: Lal George
312    Date: 2001/11/14 09:44:04 EST
313    Tag:
314    Description:
315    
316      Fix for a backpatching bug reported by Allen.
317    
318      Because the boundary between short and long span-dependent
319      instructions is +/- 128, there are an astounding number of
320      span-dependent instructions whose size is over estimated.
321    
322      Allen came up with the idea of letting the size of span
323      dependent instructions be non-monotonic, for a maxIter
324      number of times, after which the size must be monotonically
325      increasing.
326    
327      This table shows the number of span-dependent instructions
328      whose size was over-estimated as a function of maxIter, for the
329      file Parse/parse/ml.grm.sml:
330    
331         maxIter            # of instructions:
332            10                      687
333            20                      438
334            30                      198
335            40                        0
336    
337      In compiling the compiler, there is no significant difference in
338      compilation speed between maxIter=10 and maxIter=40. Actually,
339      my measurements showed that maxIter=40 was a tad faster than
340      maxIter=10! Also 96% of the  files in the compiler reach a fix
341      point within 13 iterations, so fixing maxIter at 40, while high,
342      is okay.
343    
344    ----------------------------------------------------------------------
345    Name: Matthias Blume
346    Date: 2001/10/31 15:25:00 EST
347    Tag: blume-20011031-pgraph
348    Description:
349    
350    CKIT:
351    * Changed the "Function" constructor of type Ast.ctype to carry optional
352      argument identifiers.
353    * Changed the return type of TypeUtil.getFunction accordingly.
354    * Type equality ignores the argument names.
355    * TypeUtil.composite tries to preserve argument names but gives up quickly
356      if there is a mismatch.
357    
358    installation script:
359    * attempts to use "curl" if available (unless "wget" is available as well)
360    
361    CM:
362    * has an experimental implementation of "portable graphs" which I will
363      soon propose as an implementation-independent library format
364    * there are also new libraries $/pgraph.cm and $/pgraph-util.cm
365    
366    NLFFI-LIB:
367    * some cleanup (all cosmetic)
368    
369    NLFFIGEN:
370    * temporarily disabled the mechanism that suppresses ML output for
371      C definitions whose identifiers start with an underscore character
372    * generate val bindings for enum constants
373    * user can request that only one style (light or heavy) is being used;
374      default is to use both (command-line arguments: -heavy and -light)
375    * fixed bug in handling of function types involving incomplete pointers
376    * generate ML entry points that take record arguments (i.e., using
377      named arguments) for C functions that have a prototype with named
378      arguments
379      (see changes to CKIT)
380    
381    ----------------------------------------------------------------------
382    Name: Allen Leung
383    Date: 2001/10/27 20:34:00 EDT
384    Tag: leunga-20011027-x86-fast-fp-call
385    Description:
386    
387       Fixed the bug described in blume-20010920-slowfp.
388    
389       The fix involves
390          1. generating FCOPYs in FSTP in ia32-svid
391          2. marking a CALL with the appropriate annotation
392    
393    ----------------------------------------------------------------------
394    Name: Matthias Blume
395    Date: 2001/10/16 11:32:00 EDT
396    Tag: blume-20011016-netbsd
397    Description:
398    
399    Underscore patch from Chris Richards (fixing problem with compiling
400    runtime system under recent NetBSD).
401    
402    ----------------------------------------------------------------------
403    Name: Allen Leung
404    Date: 2001/10/12 17:18:32 EDT 2001
405    Tag: leung-20011012-x86-printflowgraph
406    Description:
407    
408    X86RA now uses a valid (instead of dummy) PrintFlowgraph module.
409    
410    ----------------------------------------------------------------------
411    Name: Lal George
412    Date: 2001/10/11 23:51:34 EDT
413    Tag: george-20011011-too-many-instrs
414    Description:
415    
416    The representation of a program point never expected to see more
417    than 65536 instructions in a basic block!
418    
419    ----------------------------------------------------------------------
420    Name: Lal George
421    Date: 2001/10/09 09:41:37 EDT
422    Tag: george-20011008-mlrisc-labels
423    Description:
424    
425    Changed the machine description files to support printing of
426    local and global labels in assembly code, based on host assembler
427    conventions.
428    
429    ----------------------------------------------------------------------
430    Name: Matthias Blume
431    Date: 2001/09/25 15:25:00 EDT
432    Tag: blume-20010925-exninfo
433    Description:
434    
435    I provided a non-hook implementation of exnName (at the toplevel) and
436    made the "dummy" implementation of exnMessage (at the toplevel) more
437    useful: if nothing gets "hooked in", then at least you are going to
438    see the exception name and a message indicating why you don't see more.
439    
440    [For the time being, programs that need exnMessage and want to use
441    ml-build should either use General.exnMessage (strongly recommended) or
442    refer to structure General at some other point so that CM sees a
443    static dependency.]
444    
445    [Similar remarks go for "print" and "use":  If you want to use their
446    functionality in stand-alone programs generated by ml-build, then use
447    TextIO.output and Backend.Interact.useFile (from $smlnj/compiler.cm).]
448    
449    ----------------------------------------------------------------------
450    Name: Matthias Blume
451    Date: 2001/09/20 17:28:00 EDT
452    Tag: blume-20010920-slowfp
453    Description:
454    
455    Allen says that x86-fast-fp is not safe yet, so I turned it off again...
456    
457    ----------------------------------------------------------------------
458    Name: Matthias Blume
459    Date: 2001/09/20 17:20:00 EDT
460    Tag: blume-20010920-canonicalpaths
461    Description:
462    
463    0. Updated the BOOT file (something that I forgot to do earlier).
464    
465    1. Small internal change to CM so that it avoids "/../" in filenames
466       as much as possible (but only where it is safe).
467    
468    2. Changed config/_run-sml (resulting in a changed bin/.run-sml) so
469       that arguments that contain delimiters are passed through correctly.
470       This change also means that all "special" arguments of the form
471       @SMLxxx... must come first.
472    
473    3. Changed install script to put relative anchor names for tool commands
474       into pathconfig.
475    
476    ----------------------------------------------------------------------
477    Name: Matthias Blume
478    >>>>>>> 1.169
479    Date: 2001/09/18 15:35:00 EDT
480    Tag: blume-20010918-readme11036
481    Description:
482    
483    Added README files.
484    
485    ----------------------------------------------------------------------
486    Name: Matthias Blume
487    Date: 2001/09/18 11:45:00 EDT
488    Tag: Release_110_36 (retag)
489    Description:
490    
491    Fixed mistake in config/preloads. Retagged as 110.36.
492    
493    ----------------------------------------------------------------------
494    Name: Matthias Blume
495    Date: 2001/09/18 09:40:00 EDT
496    Tag: Release_110_36_orig (tag changed)
497    Description:
498    
499    New version (110.36).  New bootfiles.
500    
501    ----------------------------------------------------------------------
502    Name: Matthias Blume
503    Date: 2001/09/14 16:15:00 EDT
504    Tag: blume-20010914-x86fastfp
505    Description:
506    
507    John committed some changes that Allen made, in particular a (hopefully)
508    correctly working version of the x86-fp module.
509    
510    I changed the default setting of the Control.MLRISC.getFlag "x86-fast-fp"
511    flag to "true".  Everything seems to compile to a fixpoint ok, and
512    "mandelbrot" speeds up by about 15%.
513    
514    ----------------------------------------------------------------------
515    Name: Matthias Blume
516    Date: 2001/09/13 11:20:00 EDT
517    Tag: blume-20010913-minimal
518    Description:
519    
520    1. Stefan Monnier's patch to fix a miscompilation problem that
521       was brought to light by John Reppy's work on Moby.
522    
523    2. Implemented a minimal "structure Compiler" that contains just
524       "version" and "architecture".  The minimal version will be
525       available when the full version is not.  This is for backward-
526       compatibility with code that wants to test Compiler.version.
527    
528    ----------------------------------------------------------------------
529    Name: Matthias Blume
530    Date: 2001/08/28 14:03:00 EDT
531    Tag: blume-20010828-ml-lex
532    Description:
533    
534    Fix for bug 1581, received from Neophytos Michael.
535    
536    ----------------------------------------------------------------------
537    Name: Matthias Blume
538    Date: 2001/08/27 11:20:00 EDT
539    Tag: blume-20010827-readme11035
540    Description:
541    
542    Fleshed out the README file for 110.35.
543    
544    ----------------------------------------------------------------------
545    Name: Matthias Blume
546  Date: 2001/08/24 17:10:00 EDT  Date: 2001/08/24 17:10:00 EDT
547  Tag: Release_110_35  Tag: Release_110_35
548  Description:  Description:
# Line 2923  Line 3452 
3452       elaborator). There were a lot of changes during my "linkpath" trials       elaborator). There were a lot of changes during my "linkpath" trials
3453       that could have been reverted to their original state but weren't.       that could have been reverted to their original state but weren't.
3454       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
3455       than what was strictly necessary...  (I _did_ resist the tempation       than what was strictly necessary...  (I _did_ resist the temptation
3456       of doing any "global reformatting" to avoid an untimely death at       of doing any "global reformatting" to avoid an untimely death at
3457       Dave's hands. :)       Dave's hands. :)
3458    

Legend:
Removed from v.916  
changed lines
  Added in v.1030

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