SCM Repository
[smlnj] / sml / trunk / READMES / 110.40-README.html |
View of /sml/trunk/READMES/110.40-README.html
Parent Directory
|
Revision Log
Revision 1216 -
(download)
(as text)
(annotate)
Tue May 21 20:10:55 2002 UTC (18 years, 9 months ago) by blume
File size: 5890 byte(s)
Tue May 21 20:10:55 2002 UTC (18 years, 9 months ago) by blume
File size: 5890 byte(s)
forgot to mention eXene update; retagged
<html> <head> <title>SML/NJ 110.40 NEWS</title> </head> <body> <pre> S M L / N J 1 1 0 . 4 0 N E W S May 21, 2002 WARNING This version is intended for compiler hackers. The version ought to be stable, however we have not run our full regression testing. http://cm.bell-labs.com/cm/cs/what/smlnj/index.html </pre> <dl> <dt>Summary: <dd>Significant work in the MLRISC backend. Many improvements and bugfixes in various parts of the implementation.</dd> </dl> <hr> <h3>Details:</h3> <h4>Libraries:</h4> <ul> <li>added $/controls-lib.cm, a library of configurable "controls" <br>(In essence, controls are managed ref cells that can be grouped in sets and put in "registries" to facilitate configuration and customization via, e.g., environment variables and command-line arguments.) <br>$/controls-lib.cm is a distillation of what used to be a CM-only mechanism. It is now used throughout the compiler. <li>bug fixed in IntInf (parsing of hex literals) <li> <t>==</t> and <t>!=</t> added to INT_INF interface (just placeholders for now) <li>added mergeWith function to ORD_MAP interface <li>added an implementation of Danvy-style format combinators to $/smlnj-lib.cm <li>priority queues added to Util library (using Okasaki's leftist-tree implementation) <li>updates to $/hash-cons-lib.cm (consR1 ... consR5 added) <li>fixed bug in outputSubstr (in TextIO) <li>new scrollbar implementation (eXene) courtesy of Allen Stoughton </ul> <h4>Basis:</h4> <ul> <li>implemented Knuth-Morris-Pratt string matching and used it for String.isSubstring, Substring.isSubstring, and Substring.position. <li>added {String,Substring}.{concatWith,isSuffix,isSubstring} and Substring.full </ul> <h4>MLRISC:</h4> <ul> <li>jump chaining <li>static block frequency calculation <li>Ball-Larus branch prediction heuristics implemented <li>graphical viewer for control flow graphs added <li>treatment of pseudo-ops changed (get emitted first now) <li>REMT removed from mltree; DIV and MOD now take a rounding mode (DIV_TO_ZERO and DIV_TO_NEGINF) <li>made generic implementations of DIV_TO_NEGINF more efficient <li>CFG edge splitting added <li>buggy parts of x86-fp recoded <li>added instructions for 64-bit support on x86 (not enabled yet) </ul> <h4>CM:</h4> <ul> <li>a new PID generation scheme is in place; it guarantees freedom from accidental clashes that could subvert the type system but is "stable" enough to maintain cutoff recompilation properties <li>documentation updates <li>minor bug fixes <li>lambda-split aggressiveness can now be specified on a per-file basis in init.cmi as well <li>CM is now aware of (_)overload, so it calculates dependecies for it correctly <li>support for non-0 entrypoint offsets added <li>command-line argument handling for showing/setting controls added <li>bug in command-line handling of noweb (in noweb tool) fixed <li>improved handling of pathnames in make tool </ul> <h4>Runtime:</h4> <ul> <li>fix for bug 1131 (excessive heap usage) <li>heap export now silent unless GC messages are on <li>fixed assembly code so that X86.prim.asm now compiles without warnings <li>support for non-0 entrypoint offsets added </ul> <h4>Compiler:</h4> <ul> <li>cross-module inlining works much better now <li>stopgap fix for problem with ppDec in the presence of multiple declarations of the same type name within one compilation unit <li>full support for div/mod/rem/quot added to x86 code generator <li>primops added for divisions of all flavors; track those operations to the backend instead of clumsily macro-expanding them out at "translate" time <li>INLMIN, INLMAX, INLABS parameterized by numkind; use this to implement all flavors of min, max, and abs (Real.abs still maps to a separate FP primop.) <li>preliminary support for "raw record" allocation and reentrant C function calls added <li>conditional move added to cps (still buggy, therefore disabled) <li> _overload now accepted as synonym for overload (when overloading is enabled); this is for backward-compatibility <li>support for non-0 entrypoint offsets added; this (or something similar) is needed to be able to deal with block reordering <li>new, better scaling CPS spill phase <li>compiler "knows" its native C calling convention (no longer needs to be told by ml-nlffigen); X86Backend now split into X86CCallBackend and X86StdCallBackend </ul> <h4>FFI:</h4> <ul> <li>all C FFI libraries now anchored under $c <li>tweaks to type encoding (use polymorphism to emulate subtyping) <li>encoding of incomplete type is now equal to that of the corresponding complete type; no more POINTER_TO_INCOMPLETE_TYPE etc. (This restores the full generality of the translation -- something that was lost when we removed functors.) <li>support for (optional) mapping enum types to datatypes added <li>types in structures C and C_Debug are now equal <li>added "witness value" mechanism to ml-nlffi-lib.cm to implement efficient arbitrary-depth "casts" that strip away or add "const" modifiers <li>ML representation of "" changed so that conversion to C string is very efficient </ul> <h4>Installer/scripts:</h4> <ul> <li>suggestions for more preloads added to config/preloads <li>don't use ?_DEFAULT environment variables. (They no longer exist since we switched to $/controls-lib.cm.) <li>buggy transitive-closure algorithm fixed; it caused more things than necessary to be compiled </ul> <h4>Miscellanea:</h4> <ul> <li>minor bug fixes and improvements to mlrisc tools <li>mdl tool compiles again, but without anything that depends on RTL specs (since this is currently broken) <li>added #[...] expressions to mlrisc tools </ul> </body> </html>
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |