From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by c5ff346549e7 (Postfix) with ESMTPS id B3C5A2DF6 for ; Thu, 14 Mar 2019 19:24:30 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.58,479,1544482800"; d="scan'208,217";a="373475674" Received: from sympa.inria.fr ([193.51.193.213]) by mail2-relais-roc.national.inria.fr with ESMTP; 14 Mar 2019 20:24:29 +0100 Received: by sympa.inria.fr (Postfix, from userid 20132) id AE2A68265F; Thu, 14 Mar 2019 20:24:29 +0100 (CET) Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id B54D282603 for ; Thu, 14 Mar 2019 20:24:25 +0100 (CET) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=xclerc@janestreet.com; spf=Pass smtp.mailfrom=xclerc@janestreet.com; spf=None smtp.helo=postmaster@mxout3.mail.janestreet.com IronPort-PHdr: =?us-ascii?q?9a23=3AqcY1ZRC1kDBa6UNEZAWgUyQJP3N1i/DPJgcQr6Af?= =?us-ascii?q?oPdwSPT4oMbcNUDSrc9gkEXOFd2Cra4d06yO6ujJYi8p2d65qncMcZhBBVcuqP?= =?us-ascii?q?49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6?= =?us-ascii?q?JvjvGo7Vks+7y/2+94fcbglVmDaxe69+IAirpgjNq8cahpdvJLwswRXTuHtIfO?= =?us-ascii?q?pWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3sp683xtBnM?= =?us-ascii?q?VhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Xymp4aV2Rx/ykC?= =?us-ascii?q?oIOD43/m/UhMJtkqxUvAmsqAZjz4POeoyZKOZyc6HbcNgHRWRBRMFRVylZD4y9?= =?us-ascii?q?dYQPEesBMvhCr4LguVYOqQWxBROwC+jyzTJJiWP53akk3OQ7DQ7Lxw4gEMgIsH?= =?us-ascii?q?vKt9X1KL0SXv6rw6nU1znMc/RW2TLk5YXObxsvr/aMXbdqfsrQz0kiDwTFgUmK?= =?us-ascii?q?pozgOzOZzOMNs3KU7+Z4WuKvinInqwFsoje03Msjlo7JhocNxlDG7yp5xpg6Jc?= =?us-ascii?q?akSE5hf9GrDodQuzuGOItxR8MvRXxjtiUiyrAet5O2fzIGxIk7yxPfcfCLbZSE?= =?us-ascii?q?7g75WOqPPzt1gGppdKyjixu260Stye3xWtOp3FtLsiZJiMfAumwR2xHV98OJUO?= =?us-ascii?q?Fy/l271jaKzw3T6v9LIUQzlafDLp4gzbkwlocPsUnNBCP2nV/5jK6Sdkk++Oin?= =?us-ascii?q?8eLnbav9pp+ALY97lB/xMrg0lsOjBuQ4NxACX2md+euiyL3u5UP0TbZQgvErjq?= =?us-ascii?q?XUsIrWKdoHqqKlGQNZzJgv5hKnAzejytsYnH0HLFxfeBKAiojkI17PL+z8Dfih?= =?us-ascii?q?mVSjjCxmx/LcMb3nHJrNNWTDkK3/crlj905Q0hY8zdda555MELEOPOrzWlPttN?= =?us-ascii?q?zfFhI2Lxa7w+PjCNlk0oMeWHmPArOCPaPJsV6I4/ovLPOWaI8Uvjb9Mfkl6OT0?= =?us-ascii?q?gX83g19ONZWuiJAebXT9GvV9Pw3NanPphpIFEHwWlgs4Vu3jzlOYB219fXG3Cp?= =?us-ascii?q?I1+DA2EsqNCYrZTcj5kLeF0T2wNp9fYG1dFkqBHGuufIKBDaRfIBmOK9Nsx2RX?= =?us-ascii?q?HYOqTJUsgEn35V3KjoF/J++RwRU28Jfq1dx7/erWzE9g9zVyAt+ByWyAUyd/mW?= =?us-ascii?q?ZaHmZqjpA6mlR0zxK46YY9m+ZRTIIB5fpPXxwmL5PR06pxDNWgAlucLOfMc06v?= =?us-ascii?q?R5CdOR90Tt81xIVeMUNtHMi+1VbG1iuuRb0ckbGQGIY5/76a1H/0dZ5w?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CKBQBEqYpcfeXIaSZkHAEBAR8EAQEFA?= =?us-ascii?q?QGBTAKCdoEDJ4QLgR2SIZo9FIFnDSWER4RSGgcBBDAJDQEBAwEBCQEDAQEBEwE?= =?us-ascii?q?BCRYITAyCOiKDGB0BASMVJTcCJBIBBQEigzUBgXUDDKFqPIoscYEvgngBAQWBM?= =?us-ascii?q?QEDAw1BhSYDBRKBHQGLLBeBQD+HQQIEgSUYAQEGRYJdgleKKgiGTZNECYdYi0c?= =?us-ascii?q?Zk0sBiAuII0SNDg8hgSaCDjMaCBsVOzEGggEBM4IWF4NLhRSFPz8zAY4Igj4BA?= =?us-ascii?q?Q?= X-IPAS-Result: =?us-ascii?q?A0CKBQBEqYpcfeXIaSZkHAEBAR8EAQEFAQGBTAKCdoEDJ4Q?= =?us-ascii?q?LgR2SIZo9FIFnDSWER4RSGgcBBDAJDQEBAwEBCQEDAQEBEwEBCRYITAyCOiKDG?= =?us-ascii?q?B0BASMVJTcCJBIBBQEigzUBgXUDDKFqPIoscYEvgngBAQWBMQEDAw1BhSYDBRK?= =?us-ascii?q?BHQGLLBeBQD+HQQIEgSUYAQEGRYJdgleKKgiGTZNECYdYi0cZk0sBiAuII0SND?= =?us-ascii?q?g8hgSaCDjMaCBsVOzEGggEBM4IWF4NLhRSFPz8zAY4Igj4BAQ?= X-IronPort-AV: E=Sophos;i="5.58,479,1544482800"; d="scan'208,217";a="373475662" X-MGA-submission: =?us-ascii?q?MDFeEaR2ZS30b2SwmGljFw5BH72oilAnyNDVWM?= =?us-ascii?q?MWke//KBY61oAxwMkD0fv/eVF4RNkQeL3u+Kk6U6skIEWt7n07eOAAYO?= =?us-ascii?q?32mPltm90Sfvb5VEzYkzDiLSWH1dADjF7sQXxClaN5w1rmUIudv+2npw?= =?us-ascii?q?F5oVXerOlzz9I4hNnkOgmiQw=3D=3D?= Received: from mxout3.mail.janestreet.com ([38.105.200.229]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Mar 2019 20:24:24 +0100 X-JS-Received: from [30.40.81.8] (helo=tot-qpr-mailcore1) by mxout3.mail.janestreet.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1h4Vxn-0000Ke-8N for caml-list@inria.fr; Thu, 14 Mar 2019 15:24:23 -0400 X-JS-Flow: external X-JS-Received: by tot-qpr-mailcore1 with ocaml/mailcore/main_production (c35580b6ead4) (envelope-from ) id Bciqpn-uxPTEA-Gg; 2019-03-14 15:24:23.223757-04:00 X-JS-Scanner-attachment: No attachments X-JS-Scanner-esets: Not scanned (internal mail) Received: from mail-qt1-f200.google.com ([209.85.160.200]) by mxgoog2.mail.janestreet.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.90_1) id 1h4Vxn-0005qT-4m for caml-list@inria.fr; Thu, 14 Mar 2019 15:24:23 -0400 Received: by mail-qt1-f200.google.com with SMTP id i21so6405577qtq.6 for ; Thu, 14 Mar 2019 12:24:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=eqWjw2RR43ldFFWDrKv2LxOblixZPKZ30+XrDh/8DFc=; b=hD6ljHxxjM04jQK7jXlGM5JFDj4WYQzq6hqb4Dvxd95zlB1UAPrpK8w58iHIsC+nW5 oqcP4+v3gjr/wg0yKGYNb+LsTEidhRPxBO1JlIPY3bBbS863EiPYNSypF+Z4tvjwqFcT vR4tYnS08YRE68gmmaL3Cny+rW78U5KRUKdsM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=eqWjw2RR43ldFFWDrKv2LxOblixZPKZ30+XrDh/8DFc=; b=HYJKjiwzqwyfuMSGt7X3nndk8vSoKA2/rE/HD3AEZ2zckKRPnkaC9/0+8Mps+WHqnc fzlSgqDSy6/1WrdUHQzdvRgnEKWcItVUNTom+GzMUnVhiGQb1Lrhj46/IB8nl18QpJwd jJgJYNrCDQjqjaeqgWZSJt4echorfESIseXyJQOVu9j4Cm3S/fhhK8v8dd0ElYyBH9y2 AGv1CaRIwCtjotwaackVrystsB6dvSnKyvRZSZrq5K/64ZhQHiQyxWavIX70SH26HIK6 OVUw/28PY8GBVHjQNijKqJxbe0GXevzz2uLV/daT5U2+baJZ2HiG/z/Z5X21ZdAta6Kq 4Etw== X-Gm-Message-State: APjAAAVa4CN5abN+SoEYhn85R+WxnfhmnprGXNROwbRploH+HrAHGyKG QGJi5OkiMMl34DQzMMj2nkfGp0+mJpQu6up3u8+mM/XrIJNuviwJO5SkxbcP9vRdSU9Lp3jJCzC h9rKvvDmEVVQQ8EOqW2uXdxqBiw== X-Received: by 2002:ae9:f209:: with SMTP id m9mr6195195qkg.72.1552591462706; Thu, 14 Mar 2019 12:24:22 -0700 (PDT) X-Google-Smtp-Source: APXvYqyqzP7TkEnadU5P3MHGhPyrR7YztZY2TBsGac0x55aj9Hn4uy1DAqT4NNydVER5lhpL4MxbA+ZmoZSpEiPX4wY= X-Received: by 2002:ae9:f209:: with SMTP id m9mr6195184qkg.72.1552591462454; Thu, 14 Mar 2019 12:24:22 -0700 (PDT) MIME-Version: 1.0 From: Xavier Clerc Date: Thu, 14 Mar 2019 19:24:11 +0000 Message-ID: To: caml-list Content-Type: multipart/alternative; boundary="00000000000099f203058412deb0" X-JS-Exim-Data-Received: 2019-03-14 15:24:23-0400 X-JS-Processed-by: mailcore Subject: [Caml-list] [ANN] v0.12 release of Jane Street packages Reply-To: Xavier Clerc X-Loop: caml-list@inria.fr X-Sequence: 17419 Errors-to: caml-list-owner@inria.fr Precedence: list Precedence: bulk Sender: caml-list-request@inria.fr X-no-archive: yes List-Id: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --00000000000099f203058412deb0 Content-Type: text/plain; charset="UTF-8" Dear OCaml developers, We are happy to announce the v0.12 release of Jane Street packages! This release comes with a lot of changes, as we ship 19 new packages, and have enhanced and refactored a number of existing ones. The documentation for this release is available on our website: https://ocaml.janestreet.com/ocaml-core/v0.12/doc/ The remainder of this mail highlights the main changes since the v0.11 release; we hope it will be useful to developers in the process of migrating to the new version. A comprehensive change log is available on discuss (it turned out to be too big for this list): https://discuss.ocaml.org/t/ann-v0-12-release-of-jane-street-packages/3499 # Comparison and Equality - The `~cmp` argument used to pass a comparison function has been renamed to `~compare`. - The `~equal` label of functions `List.equal` and `Array.equal` has been removed. # New packages - base_bigstring (https://github.com/janestreet/base_bigstring): String type based on Bigarray, for use in I/O and C-bindings. - base_quickcheck (https://github.com/janestreet/base_quickcheck): Randomized testing framework, designed for compatibility with Base. - hardcaml (https://github.com/janestreet/hardcaml): Hardcaml is an OCaml library for designing hardware. - hardcaml_waveterm (https://github.com/janestreet/hardcaml_waveterm): A terminal based digital waveform viewer for Hardcaml. - incr_dom_keyboard (https://github.com/janestreet/incr_dom_keyboard): A terminal based digital waveform viewer for Hardcaml. - incr_dom_partial_render ( https://github.com/janestreet/incr_dom_partial_render): A library for simplifying rendering of large amounts of data. - jst-config (https://github.com/janestreet/jst-config): Compile-time configuration for Jane Street libraries. - netsnmp (https://github.com/janestreet/netsnmp): An interface to the Net-SNMP client library. - notty_async (https://github.com/janestreet/notty_async): An interface to the Net-SNMP client library. - pam (https://github.com/janestreet/pam): OCaml bindings for the Linux-PAM library. - ppx_deriving_hardcaml (https://github.com/janestreet/ppx_deriving_hardcaml ): A plugin for the ppx_deriving rewriter that supports the Hardcaml syntax. - ppx_module_timer (https://github.com/janestreet/ppx_module_timer): Ppx rewriter that records top-level module startup times. - ppx_stable (https://github.com/janestreet/ppx_stable): Stable types conversions generator. - sexp (https://github.com/janestreet/sexp): S-expression swiss knife. - sexp_diff_kernel (https://github.com/janestreet/sexp_diff_kernel): Code for computing the diff of two sexps. - sexp_macro (https://github.com/janestreet/sexp_macro): Sexp macros. - shell (https://github.com/janestreet/shell): Yet another implementation of fork&exec and related functionality. - time_now (https://github.com/janestreet/time_now): Reports the current time. - zstandard (https://github.com/janestreet/zstandard): OCaml bindings to Zstandard. # Deprecations `Async`: - Deprecated `Scheduler.add_busy_poller`. `Base`: - Deprecated `Applicative`'s `Args*` module types and `Make_args*` functors, which have been superseded by the `let%map` syntax. - Deprecated `Array.replace`. `Core_kernel`: - Deprecated `Obj_array`, replacing uses with `Uniform_array`. - Deprecated the `Timing_wheel_ns.Priority_queue` module, with no intended replacement. No longer released: - `async_extended`. - `async_parallel`. - `configurator`. - `findlib_top`. - `incremental_kernel`. - `jane-street-tests`. - `jenga`. - `ppx_ast`. - `ppx_core`. - `ppx_driver`. - `ppx_metaquot`. - `ppx_traverse`. - `ppx_traverse_builtins`. - `ppx_type_conv`. # Moves `Async`: - Moved `Weak_hashtbl` module out of `Async` to its own library. - Moved `Lock_file` to a single-module library, `Lock_file_async`. - Moved `Async_extra.Udp` to a standalone library, `Async_udp`. `Async_extended`: - Moved modules out of `Async_extended` into their own libraries, aimed at deleting `Async_extended`. `Async_kernel`: - Moved the `Limiter` module to a single-module library, `Limiter_async`. - Moved `Eager_deferred` to a standalone library. `Async_unix`: - Moved modules to standalone libraries: `Thread_pool`, `Thread_safe_ivar`, `Thread_safe_pipe`. `Base`: - Moved the `Heap_block` module to `Core_kernel`. - Added top-level module `Base.Sign_or_nan`, moved out of `Float` - Added `Stack` module, moved in from `Core_kernel`. - Added `Base.Bigstring` module, moving in most of `Core_kernel.Bigstring`. - Added the `Base_bigstring` library, splitting out the `Bigstring` module from `Base`. `Core`: - Moved some modules out of `Core` to their own library: `Crc`, `Piecewise_linear`, `Syslog`, `Timing_wheel_float`, `Weak_hashtbl`. - Moved modules `Schedule_v4_deprecated` and `Schedule_v5` out of `Core` and to their own libraries. - Moved the `Daemon` module, to a single-module library. - Moved the `Uuid` module out of `Core`, to a single-module library. - Moved `Lock_file` to a single-module library, `Lock_file_blocking`. - Moved the `Mac_address` module out of `Core`, to a single-module library. - Moved modules out to standalone libraries: `Nano_mutex`, `Squeue`. `Core_kernel`: - Added `Time_ns.Ofday` submodule, moved from `Core`. - Moved module `Unpack_buffer` out of `Core_kernel` and into its own library. - Moved the implementation of `Quickcheck` into its own library, `Base_quickcheck`. - Moved the `Limiter` module to a single-module library. - Moved the `Bucket` module out to a single-module library. - Split out a `Config_h` library for generating the `config.h` file that many libraries (including `Core_kernel`) use. - Moved the `Weak_pointer` module to a standalone library. - Moved modules out to standalone libraries: `Force_once`, `Hash_heap`, `Int_set`, `Rope`, `Thread_safe_queue`, `Total_map`, `Weak_array`. `Incremental`: - Made `Incremental` be the library name rather than `Incremental_lib`, and moved all modules from `Incremental_lib` to submodules of `Incremental`. - Merged the `Incremental` and `Incremental_kernel` libraries into a single library, `Incremental`. - Moved the `Balanced_reducer` module out of `Incremental`, to a single-module library. `Sexplib`: - Moved `Sexplib.Macro` to its own library `Sexp_macro`. `ppx`: - `ppx_ast`, `ppx_core`, `ppx_driver`, `ppx_metaquot`, `ppx_traverse`, `ppx_traverse_builtins`, and `ppx_type_conv` have been merged into ppxlib (https://github.com/ocaml-ppx/ppxlib). --00000000000099f203058412deb0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dear OCaml develope= rs,

We are happy to announce the v0.12 release= of Jane Street packages!

This release comes with = a lot of changes, as we ship 19 new
packages, and have enhanced a= nd refactored a number of existing
ones. The documentation for th= is release is available on our
website:

= =C2=A0=C2=A0https://ocaml.janestreet.com/ocaml-core/v0.12/doc/

The remainder of this mail highlights the main chang= es since the v0.11
release; we hope it will be useful to develope= rs in the process of
migrating to the new version. A comprehensiv= e change log is available
on discuss (it turned out to be too big= for this list):

=

# Comparison and Equality

- Th= e `~cmp` argument used to pass a comparison function has been
=C2= =A0 renamed to `~compare`.

- The `~equal` label of= functions `List.equal` and `Array.equal`
=C2=A0 has been removed= .


# New packages

=C2=A0 String type based on Bigarray, for use in I/O and C-bindi= ngs.

=C2=A0 Randomized testing framework, d= esigned for compatibility with Base.

- hardcaml (<= a href=3D"https://github.com/janestreet/hardcaml" target=3D"_blank">https:/= /github.com/janestreet/hardcaml):
=C2=A0 Hardcaml is an OCaml= library for designing hardware.

=C2= =A0 A terminal based digital waveform viewer for Hardcaml.

=C2=A0 A terminal based digital waveform viewer for H= ardcaml.

=C2=A0 A l= ibrary for simplifying rendering of large amounts of data.

=C2=A0 Compile-time configuration for Jane Street libraries.
=C2= =A0 An interface to the Net-SNMP client library.

=C2= =A0 An interface to the Net-SNMP client library.

=C2=A0 OCaml bindings for the = Linux-PAM library.

=C2=A0= A plugin for the ppx_deriving rewriter that supports the Hardcaml syntax.<= /div>

=C2=A0 Ppx rewriter that records top-lev= el module startup times.

=C2=A0 Stable types conversions g= enerator.

- sexp (https://github.com/janestreet/sexp):
=C2=A0 S-expression swiss knife.

=C2=A0 Code for computing the diff of two sexps.

- sexp_macro (https://github.com/janestreet/sexp_macro):
=C2=A0= Sexp macros.


=C2=A0 Reports the current time.
=C2=A0 OCaml bindings to Zstandard.


# Deprecations

`Async`:

- Deprecated `Scheduler.add_busy_poller`.


`Base`:

- Deprecated `Applicative`'s = `Args*` module types and `Make_args*`
=C2=A0 functors, which have= been superseded by the `let%map` syntax.

- Deprec= ated `Array.replace`.

`Core_kernel`:
- D= eprecated `Obj_array`, replacing uses with `Uniform_array`.

<= /div>
- Deprecated the `Timing_wheel_ns.Priority_queue` module, with no=
=C2=A0 intended replacement.


=
No longer released:

- `async_extended`.
=

- `async_parallel`.

- `configu= rator`.

- `findlib_top`.

= - `incremental_kernel`.

- `jane-street-tests`.

- `jenga`.

- `ppx_ast`.

- `ppx_core`.

- `ppx_driver`.=

- `ppx_metaquot`.

- `ppx= _traverse`.

- `ppx_traverse_builtins`.
<= br>
- `ppx_type_conv`.


# = Moves

`Async`:

- Moved `W= eak_hashtbl` module out of `Async` to its own library.

=
- Moved `Lock_file` to a single-module library, `Lock_file_async`.

- Moved `Async_extra.Udp` to a standalone library, `A= sync_udp`.


`Async_extended`:
<= div>
- Moved modules out of `Async_extended` into their own l= ibraries,
=C2=A0 aimed at deleting `Async_extended`.

`Async_kernel`:

- Move= d the `Limiter` module to a single-module library,
=C2=A0 `Limite= r_async`.

- Moved `Eager_deferred` to a standalone= library.


`Async_unix`:
<= br>
- Moved modules to standalone libraries: `Thread_pool`,
=
=C2=A0 `Thread_safe_ivar`, `Thread_safe_pipe`.


`Base`:

- Moved the `Heap_block` = module to `Core_kernel`.

- Added top-level module = `Base.Sign_or_nan`, moved out of `Float`

- Added `= Stack` module, moved in from `Core_kernel`.

- Adde= d `Base.Bigstring` module, moving in most of
=C2=A0 `Core_kernel.= Bigstring`.

- Added the `Base_bigstring` library, = splitting out the `Bigstring`
=C2=A0 module from `Base`.


`Core`:

- Moved so= me modules out of `Core` to their own library: `Crc`,
=C2=A0 `Pie= cewise_linear`, `Syslog`, `Timing_wheel_float`, `Weak_hashtbl`.
<= br>
- Moved modules `Schedule_v4_deprecated` and `Schedule_v5` ou= t of
=C2=A0 `Core` and to their own libraries.

- Moved the `Daemon` module, to a single-module library.
<= br>
- Moved the `Uuid` module out of `Core`, to a single-module l= ibrary.

- Moved `Lock_file` to a single-module lib= rary, `Lock_file_blocking`.

- Moved the `Mac_addre= ss` module out of `Core`, to a single-module
=C2=A0 library.

- Moved modules out to standalone libraries: `Nano_mut= ex`, `Squeue`.


`Core_kernel`:
=

- Added `Time_ns.Ofday` submodule, moved from `Core`.

- Moved module `Unpack_buffer` out of `Core_kernel`= and into its own
=C2=A0 library.

- Move= d the implementation of `Quickcheck` into its own library,
=C2=A0= `Base_quickcheck`.

- Moved the `Limiter` module t= o a single-module library.

- Moved the `Bucket` mo= dule out to a single-module library.

- Split out a= `Config_h` library for generating the `config.h` file
=C2=A0 tha= t many libraries (including `Core_kernel`) use.

- = Moved the `Weak_pointer` module to a standalone library.

- Moved modules out to standalone libraries: `Force_once`,
=C2=A0 `Hash_heap`, `Int_set`, `Rope`, `Thread_safe_queue`, `Total_map`,
=C2=A0 `Weak_array`.


`Incr= emental`:

- Made `Incremental` be the library name= rather than
=C2=A0 `Incremental_lib`, and moved all modules from= `Incremental_lib` to
=C2=A0 submodules of `Incremental`.

- Merged the `Incremental` and `Incremental_kernel` libra= ries into a
=C2=A0 single library, `Incremental`.

<= /div>
- Moved the `Balanced_reducer` module out of `Incremental`, to a<= /div>
=C2=A0 single-module library.


=
`Sexplib`:

- Moved `Sexplib.Macro` to its own= library `Sexp_macro`.


`ppx`:
=

- `ppx_ast`, `ppx_core`, `ppx_driver`, `ppx_metaquot`, = `ppx_traverse`,
=C2=A0 `ppx_traverse_builtins`, and=C2=A0 `ppx_ty= pe_conv` have been merged into

--00000000000099f203058412deb0--