diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 1998-08-07 10:04:08 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 1998-08-07 10:04:08 +0000 |
commit | c360b39bce09fac92275acbbd24b0394aeb4eaf6 (patch) | |
tree | b5415ceae50bdc477ea1d4f94ce861aca023bb28 | |
parent | 057d9f6aa4e6c2d802d9478c7edb611fc38bab9c (diff) |
MAJ pour release 2.00
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2028 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r-- | Changes | 97 | ||||
-rw-r--r-- | README | 6 |
2 files changed, 99 insertions, 4 deletions
@@ -1,3 +1,100 @@ +Objective Caml 2.00: +-------------------- + +* Language: + - New class language. See http://... + for an overview, and the manual for reference. + - Local module definitions "let module X = <module-expr> in <expr>". + - Record copying with update "{r with lbl1 = expr1; ...}". + - Array patterns "[|pat1; ...;patN|]" in pattern-matchings. + - New reserved keywords: "object", "initializer". + - No longer reserved: "closed", "protected". + +* Bytecode compiler: + - Use the same compact memory representations for float arrays, float + records and recursive closures as the native-code compiler. + - More type-dependent optimizations. + - Added the -use_runtime and -make_runtime flags to build separately + and reuse afterwards custom runtime systems + (inspired by Fabrice Le Fessant's patch). + +* Native-code compiler: + - Cross-module constant propagation of integer constants. + - More type-dependent optimizations. + - More compact code generated for "let rec" over data structures. + - Better code generated for "for" loops (test at bottom of code). + - More aggressive scheduling of stores. + - Added -p option for time profiling with gprof + (fully supported on Intel x86/Linux and Alpha/Digital Unix only) + (inspired by Aleksey Nogin's patch). + - A case of bad spilling with high register pressure fixed. + - Fixed GC bug when GC called from C without active Caml code. + - Alpha: simplified code generation for jump tables. + - Intel x86: use movzbl and movsbl systematically to load 8-bit and 16-bit + quantities, no more hacks with partial registers (better for the + Pentium Pro, worse for the Pentium) + - PowerPC: more aggressive scheduling of return address reloading. + - Sparc: scheduling bug with register pairs fixed. + +* Runtime system: + - Better printing of uncaught exceptions (print a fully qualified + name whenever possible). + +* New ports: + - Cray T3E (bytecode only) (in collaboration with CEA). + - PowerMac under Rhapsody. + - SparcStations under Linux. + +* Standard library: + - Added set_binary_mode_in and set_binary_mode_out in Pervasives + to toggle open channels between text and binary modes. + - output_value and input_value check that the given channel is in + binary mode. + - Module Arg: added option Rest. + - Module Filename: temp_file no longer loops if temp dir doesn't exist. + - Module List: added rev_append (tail-rec alternative to @). + - Oo.copy removed. + - Module Set: tell the truth about elements returning a sorted list; + added min_elt, max_elt, singleton. + - Module Sys: added Sys.time for simple measuring of CPU time. + +* ocamllex: + - Check for overflow when generating the tables for the automaton. + - Error messages in generated .ml file now point to .mll source. + - Added "let <id> = <regexp>" to name regular expressions + (inspired by Christian Lindig's patch). + +* ocamlyacc: + - Better error recovery in presence of EOF tokens. + - Error messages in generated .ml file now point to .mly source. + - Generated .ml file now type-safe even without the generated .mli file. + +* The Unix library: + - Use float instead of int to represent Unix times (number of seconds + from the epoch). This fixes a year 2005 problem on 32-bit platforms. + Functions affected: stat, lstat, fstat, tie, gmtime, localtime, + mktime, utimes. + - Added putenv. + - Better handling of "unknown" error codes (EUNKNOWNERR). + - Fixed endianness bug in getservbyport. + - win32unix (the Win32 implementation of the Unix library) now has + the same interface as the unix implementation, this allows exchange + of compiled .cmo and .cmi files between Unix and Win32. + +* The thread libraries: + - Bytecode threads: bug with escaping exceptions fixed. + - System threads (POSIX, Win32): malloc/free bug fixed; signal bug fixed. + +* The graph library: bigger color cache. + +* The str library: added Str.quote, Str.regexp_string, + Str.regexp_string_case_fold. + +* Emacs mode: + - Fixed bug with paragraph fill. + - Fixed bug with next-error under Emacs 20. + + Objective Caml 1.07: -------------------- @@ -21,7 +21,7 @@ moderate memory requirements of the bytecode compiler. The native-code compiler currently runs on the following platforms: Alpha processors: all Digital Alpha machines under Digital Unix or Linux - Sparc processors: Sun Sparcstation under SunOS 4.1, Solaris 2, NetBSD + Sparc processors: Sun Sparc under SunOS 4.1, Solaris 2, NetBSD, Linux Intel Pentium processors: PCs under Linux, NextStep, FreeBSD, Solaris 2 Mips processors: SGI workstations and mainframes under IRIX 6, DecStation 3100 and 5000 under Ultrix 4 @@ -36,9 +36,7 @@ but the compiler may work under other operating systems with little work. Before the introduction of objects, Objective Caml was known as Caml Special Light. Objective Caml is almost upwards compatible with Caml Special Light, except for a few additional reserved keywords that have -forced some renamings of standard library functions. The script -tools/csl2ocaml in the distribution can be used to automate the -conversion from Caml Special Light to Objective Caml. +forced some renamings of standard library functions. CONTENTS: |