Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
142 lines (121 sloc) 5.63 KB
This is Batteries Included version 0.9.2
= Changes from beta 1
== General
* Reorganized all files, redoing the fundamental structure of batteries
* Changed build system to OMake
* Simplified documentation generation
* Removed most dependencies (camlp4 optional, only needs camomile,findlib)
This is the first beta release of Batteries Included.
= Changes since alpha 3
== General
* New drop-in replacement for ocamlbuild.
* New drop-in replacement for ocamldep.
* New drop-in replacement for ocaml, both as toplevel and as interpreter
== Toplevel
* New directive "#browse".
* Toplevel now supports .ocamlinit .
== Language
* The syntax of [open ... include] has been changed into [open ... with]
* A new construction [p"foo"] allows new-style extensible printf formats.
* UTF-8 strings are now validated at compile-time.
* Conversion between literal Latin-1 and UTF8 strings now takes place at compile-time.
== Library
* New naming convention for modules.
* A new module [Print] provides a modular replacement for [Printf].
* New module [Seq] for integer segments.
* New module [Future.Logger].
* Module [Digest] now compatible with IO.
* Module [Scanf] now compatible with IO.
* Module [Format] now compatible with IO.
* Module [Lexing] now compatible with IO.
* New modules [StringSet], [RopeSet], [IStringSet], [IRopeSet], [IntSet], [StringMap], [RopeMap], [IStringMap], [IRopeMap], [IntMap].
* Files may now be opened with mmapping.
* Module [Compiler] may now be used to invoke [ocaml].
* Module [Vect] now follows order of argument conventions, is enumerable, comprehensible, etc.
* Enumerations of random values are now clonable.
* [Random] now can offer random characters.
* Bigarray can now be enumerated, mapped, iterated, etc.
* Some operators have been renamed: ( ~~ ) becomes ( --~), etc.
* More informations on the system configuration are now available through [Batteries_config].
* New experimental module [Safe_float].
* Numerous new functions on [String], [String.Cap], [Set], [PSet], [RefList], [UChar], [Pervasives] etc.
* Speed improvements in [String], [LazyList], [Rope], clients of [IO].
* [Standard.result] is now sexplib-compatible.
== Build
* Test-suite created.
* Now using optcomp.
* Now detecting default installation directory when necessary.
* Now permitting parallel build.
* Slightly faster compilation.
== Bugfixes
* Drop-in replacement for ocamlc, ocamlopt now use syntax extensions.
* Garbage-collection of open outputs now more robust.
* [Safe_int.mul] should now work on 64-bit platforms.
= Changes since alpha 2
== General
* Batteries Included is now available for both OCaml 3.10 and 3.11 .
== Language extensions
* It is now possible to merge several modules into one.
* General (and extendable) structure comprehension, working on lists, arrays, lazy lists, enumerations, ...
* (OCaml 3.11 only) Native Unicode strings, including pattern-matching and constant expression elimination.
== Library
* Module hierarchy completely reworked.
* Thread-safe input/output when required.
* A new abstract thread-safety module, to ensure future compatibility with coThreads.
* Old-style ListLabels, ArrayLabels, etc. replaced with List.Labels, Array.Labels, etc.
* Plenty of new functions in Enum, Array, Hashtbl, Pervasives, String, Rope, Bingarray, Dllist, DynArray, Arg, Sys.
* The File module now permits using temporary files.
* Several modules have been renamed (SafeInt, Labels).
* New compatibility layer with OCamlNet.
* New Unix module, compatible with IO.
* New module Future.Path for manipulating paths.
* New module CharEncoding for transcoding inputs/outputs.
* New module Date for manipulating time.
== Documentation
* New documentation by topic
* New documentation generator, with topic management
* A number of additions, e.g. a tutorial on [fold], [iter], [map] in the documentation of Pervasives.
== Bugfixes
* bug 100 (Enum.seq) fixed
* Set.enum/backwards now enumerate in the right order
== Toplevel
* Pretty-printers for UChar, Rope, String.Cap, UTF8.
* Loading speed improved.
== Docfixes
* bug 101 (Enum.for_all) fixed
* Documentation fixes in List.
= Changes since alpha 1
* Plenty of bugfixes
* Plenty of docfixes
* We now have a custom ocaml, ocamlc, ocamlopt which may be used as (near) drop-in replacements for the regular ocaml, ocamlc, ocamlopt
* We now have a working toplevel
* We now have a parser combinator library
* Many additional functions
* We now have a set of standard operators for function composition, etc.
* Unicode characters and strings now have all the features of their non-Unicode counterparts
* Improved type-safety of Unicode
* Most data structures now support enumerations, s-expressions, printing to an output
* Inputs and outputs may now be either garbage-collected, closed manually, closed by their dependencies
or closed when leaving the program
* We now have transparent on-the-fly gzip compression/decompression of channels.
* Additional examples
* Additional documentation
* Access to some elements of the system configuration
* We are now mostly rid of [in_channel]/[out_channel]
* The toplevel now offers a tutorial and on-line help
* In [Ref], now using the same naming conventions as C, Java...
* Build system now uses autoconf
* The documentation generator now builds an external index of values which may be used for auto-completion
= Changes since pre-release 4
* Plenty of additional functions
* Plenty of bugfixes
* Several syntax extensions for auto-opening Batteries, etc.
* Serialization/deserialization using S-Expressions (SExplib)
* Unicode strings
* Unicode ropes
* A few examples
* New test-cases
* Much more documentation
* Extended streams
* Two different libraries, one with threads, one without
For more informations, see the ChangeLog
Jump to Line
Something went wrong with that request. Please try again.