caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Yaron Minsky <yminsky@janestreet.com>
To: Simon Cruanes <simon.cruanes.2007@m4x.org>
Cc: OCaml users <caml-list@inria.fr>
Subject: Re: [Caml-list] [ANN] containers 0.3.3
Date: Thu, 7 Aug 2014 11:47:13 -0400	[thread overview]
Message-ID: <CACLX4jR-X2NCqBbQ6G4YjOybP-nMNrH+WyorXg0n+cB593qrcA@mail.gmail.com> (raw)
In-Reply-To: <20140807113704.GC2825@fuck_yeah>

For what it's worth, soon after the OCaml 4.02 release, Core and
Core_kernel and the rest of Jane Street's libraries will switch to no
longer being packed.  This should greatly reduce executable sizes and
compilation times for packages that use Core, essentially allowing
people to link in just the bits they actually use.

That said, the modules are not self contained.  Pervasive use of
things like s-expressions for error reporting do mean that there is
more complexity than in a simple system like the one you're
describing.

On Thu, Aug 7, 2014 at 7:37 AM, Simon Cruanes
<simon.cruanes.2007@m4x.org> wrote:
> Hello everyone,
>
> I am very pleased to announce the first official release of
> containers[1], a BSD-licensed extension to the compiler standard library
> that focused on modularity, efficiency and a small footprint,
> for OCaml >= 4.01. In particular, no pack, and almost every modules are
> self-contained (i.e., if you link one module, you don't pay for the
> other ones).  The purpose is not to compete with Batteries or Core,
> which will always be more exhaustive, but to provide a lightweight
> and modular approach.
>
> You can find the API online [2].
>
> Containers is split into several parts:
> - a "core" library, just called "containers"; every module it contains
>   is prefixed with "CC"[3] and lives in the global namespace.
>   Most modules provide iterators (especially sequence [4]).
>   In a nutshell:
>
>   * CCList, with tail-recursive version of fold_right, append and map,
>     and other new functions
>   * CCOpt, CCPair, CCFun, providing useful combinators for pairs,
>     options (map, >>=), functions (id,const,compose)
>   * combinators for printing, equality, comparisons, random generators, etc.
>   * CCError, an error monad (with polymorphic variants, same as D. Bünzli)
>   * other data structures: CCArray, CCVector, CCTrie, CCMultiMap,
>     CCMultiSet, CCHeap, bitvectors
>
> - a tiny string library, in "containers.string" (module
>   Containers_string) with a few algorithms on strings.
> - a heap of unstable, experimental things ("containers.misc") that
>   shouldn't be used in production, but might one day be promoted to core.
>
> Contributions and bugreports/fixes are very welcome, the library is
> still very young[5]. Although some might think it's bad practice, you can
> also copy individual modules (.mli + .ml) into your own project if for
> some reason you want to avoid dependencies.
>
> Cheers!
>
> [1] https://github.com/c-cube/ocaml-containers
> [2] http://cedeela.fr/~simon/software/containers/
> [3] as in "core containers", or "companion cube" if you suspect me of
>     megalomania
> [4] https://github.com/c-cube/sequence
> [5] some other attempts at writing a container library:
>     http://img.myconfinedspace.com/wp-content/uploads/2007/07/shipping_gone_wrong.jpg
>
> --
> Simon
>
> http://weusepgp.info/
> key 49AA62B6, fingerprint 949F EB87 8F06 59C6 D7D3  7D8D 4AC0 1D08 49AA 62B6

      reply	other threads:[~2014-08-07 15:47 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-07 11:37 Simon Cruanes
2014-08-07 15:47 ` Yaron Minsky [this message]

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=CACLX4jR-X2NCqBbQ6G4YjOybP-nMNrH+WyorXg0n+cB593qrcA@mail.gmail.com \
    --to=yminsky@janestreet.com \
    --cc=caml-list@inria.fr \
    --cc=simon.cruanes.2007@m4x.org \
    /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).