From: Jeremie Dimino <jdimino@janestreet.com>
To: caml-list@inria.fr, ocaml-core@googlegroups.com
Subject: [Caml-list] [ANN] Core Suite 109.07.00 released
Date: Wed, 30 Jan 2013 17:12:32 -0500 [thread overview]
Message-ID: <CANhEzE6DKF=smMscw+wURFLZLKmJg05MP3yY31V5cc-uNx_PpA@mail.gmail.com> (raw)
I'm pleased to announce the 109.07.00 release of the Core suite of
libraries. Core is an industrial strength alternative to OCaml's
standard library.
Tarballs can be found here:
https://ocaml.janestreet.com/ocaml-core/109.07.00/individual/
And the documentation:
https://ocaml.janestreet.com/ocaml-core/109.07.00/doc/
All packages are available through opam.
** The Core suite **
The Core suite includes a variety of useful libraries, including:
- Core: the heart of the standard library.
- Several useful syntax extensions
- type-conv: a library for building type-driven syntax extensions
- sexplib: a library for handling s-expressions, and a syntax
extension for auto-generating conversions between OCaml types and
s-expressions
- bin-prot: a syntax-extensions for generating
- pipebang
- variantslib
- comparelib
- fieldslib
- Async: a monadic concurrency library.
- Core_extended: extra components that are not as closely vetted or as
stable as Core. This includes, Shell, an interface for interacting
with the UNIX shell, and Command, a command-line parsing library.
** Repositories **
The official repositories for the Core libraries are now located on
the "janestreet" organisation on github and the "janestreet" team on
bitbucket.
github: https://github.com/janestreet
bitbucket: https://bitbucket.org/janestreet
github home page: http://janestreet.github.com/
We changed the way we are exporting our source tree; there will now be
only one visible commit per release and project. Hopefully this
simpiflied process will allow more frequent updates.
** Contribution **
If you want to contribute to core the preferred way is to submit a
pull-request, which won't be merged in the end but will be used for
working on the changes before they are accepted and added to our
development process for integration in a future release.
** Changes **
He is a list of changes since the previous public release (108.08.00):
- Switched to OCaml 4.0.
- Async:
- Add a [~perm] argument to [Writer.open_file] to set the file
permissions in the same way [Unix.openfile] does.
- Added [Async.Unix.unsetenv].
- Fixed a bug in [Reader] that in some situations would make the
reader unusable after an error in user code (e.g. a failed sexp
conversion).
- Fixed a bug in [Writer] that manifests when scheduling bigstrings
with non-zero pos parameter.
- Fixed a bug in [Scheduler.go], which previously behaved incorrectly
if an exception had been raised to the main monitor prior to
[Scheduler.go] being called. The exception is now dealt with
immediately, rather than running a cycle.
- Exposed the type and value [Async.Config.t] as sexpable.
- Improved error message when a user requests async to manage a file
descriptor that it is already managing.
- Improved error message when creation of the async scheduler fails.
- Added [val _squelch_unused_module_warning_] to [Async.Std].
- Made [Reader.load_sexp{,s}] handle exceptions other than
[Of_sexp_error].
- Fixed a bug in async's handing of file descriptors -- a missed check
for a file descriptor having been closed.
- Added [Writer.set_buffer_age_limit].
- Improved the performance of [Deferred.Queue] by changing the
implementation to use lists rather than arrays, which reduces gc
promotion.
- Added [?should_close_file_descriptor:bool] argument to [Async.Unix.close].
- Moved the implementation of finalizers from Async_unix to
Async_core. This makes it possible to unit test finalizers (and
things using them) using only the Async_core scheduler.
- Changed the async scheduler so that if there are no upcoming events,
it times out in 50ms rather than waiting forever.
- Added =Monad_sequence.iteri=, which in turn adds it to:
=Deferred.Array=, =Deferred.List=, and =Deferred.Queue=.
- Added =Pipe.init=, which is analogous to =Deferred.create=.
- Improved the performance of =Pipe.iter{,_without_pushback}=.
- Improved =Reader.read_one_chunk_at_a_time_until_eof=:
- the callback need not consume everything
- add =`Eof_with_unconsumed_data= as a possible result
- grow internal buffer of the reader when needed
- Added =Shutdown.exit=, removed =Shutdown.shutdown_and_raise=.
- Added =Scheduler.force_current_cycle_to_end=.
- Core:
- Added [Char.of_string].
- Fix [Backtrace.get], which was broken in 109.00, with the
switch to OCaml 4.0.
- Added [Heap.iter_el].
- Updated [Core.Unix.stat] so that access, modify, and change times
have nanosecond precision.
- Fixed a bug in [Nano_mutex.invariant].
- Simplified the implementation of [with_return] using a local
explicit polymorphic type variable.
- Added [Map.symmetric_diff], for returning a list of differences
between two maps. It has a fast-path implementation for maps that
share a large amount of their internal structure.
- Added a number of functions to =Bounded_int_table=: =equal=,
=exists{,i}=, =for_all{,i}=, =filter_map{,i}=, =map{,i}=. Also
added a functor, =Bounded_int_table.With_key=, that makes a
bounded-int table binable and sexpable, and adds =of_alist= and
=of_alist_exn=.
- Added =Doubly_linked.iter_elt= and =Bag.iter_elt=.
- Added =module Invariant=, which defines signatures that are to
be included in other signatures to ensure a consistent interface to
invariant-style functions.
- Added =module Ordering=, which defines:
=type t = Less | Equal | Greater=
--
Jeremie Dimino, for the Core team
reply other threads:[~2013-01-30 22:12 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CANhEzE6DKF=smMscw+wURFLZLKmJg05MP3yY31V5cc-uNx_PpA@mail.gmail.com' \
--to=jdimino@janestreet.com \
--cc=caml-list@inria.fr \
--cc=ocaml-core@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).