Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Mar 26, 2015
  1. harden the implementation of BatSplay against immutable-data compiler…

    Gabriel Scherer authored
    … optims
    
    BatSplay uses a bit of type-checking magic to respect the Map
    interface (which requires map types to be covariant) while internally
    keeping a mutable reference for (inobservable) rebalancing
    mutations. The previous implementation is safe for the current
    versions of the OCaml compiler, but has the fundamental issue of
    mutating (through Obj magic) constructed values of a known-immutable
    type.
    
    The new implementation creates values at an immutable type, and then
    magically coerce them into the covariant immutable type. This ensures
    that the compiler knows (at value-creation time) that the allocated
    memory is *not* immutable -- this is the same technique we use for
    destination-passing-style lists.
    
    This trick of "covariant mutable references" can be isolated as
    a small submodule, which is then used (internally) throughout the
    BatSplay implementation.
    
    Thanks to Pierre Chambart for the discussion that led to this change.
Commits on Jan 27, 2015
  1. @UnixJunkie
Commits on Jan 24, 2015
  1. @herry13

    Implement BatOption.Infix.(>>=)

    herry13 authored Gabriel Scherer committed
Commits on Jan 16, 2015
  1. @andersfugmann

    Rearrange comment

    andersfugmann authored
  2. @andersfugmann

    Add comments to modify_opt on growing the hash table when inserting n…

    andersfugmann authored
    …ew elements + minor indentation changes
Commits on Jan 15, 2015
  1. @andersfugmann

    Have the hashtbl reference the new key for Hashtbl.modify instead of …

    andersfugmann authored
    …the previous key. This is the same semantics as Hashtbl.replace
  2. @andersfugmann

    Reimplement more efficient modify_opt and modify_def. The functions o…

    andersfugmann authored
    …nly does one lookup if the key is already in the table. If the key is not found modify_opt calls add to add the key in order to ensure that the hashtbl is grown if needed.
Commits on Dec 22, 2014
  1. @acieroid

    Fix description of LazyList.range

    acieroid authored
    The previous description was incorrect. b <= a matches the implementation.
Commits on Nov 23, 2014
  1. @cakeplus

    Added "@since 2.4.0"

    cakeplus authored
  2. @cakeplus

    New: Enum.uniq_by, Enum.uniqq

    cakeplus authored
  3. @cakeplus
Commits on Nov 18, 2014
  1. @gasche

    Merge pull request #599 from UnixJunkie/run_and_read

    gasche authored
    Run and read
  2. @UnixJunkie
Commits on Nov 17, 2014
  1. @rgrinberg

    Merge pull request #515 from c-cube/set-infix

    rgrinberg authored
    Infix functions for Set
Commits on Nov 16, 2014
  1. @rgrinberg

    Merge pull request #598 from sangkilc/cache-improve

    rgrinberg authored
    use hashmap to speed up lru_cache
  2. @sangkilc
  3. @rgrinberg

    Merge pull request #573 from nukiFW/master

    rgrinberg authored
    Place substring outside of the incubator
Commits on Oct 1, 2014
  1. Revert "Revert "Queue: add filter, filter_inplace (previously filter)…

    Gabriel Scherer authored
    …, filter_map""
    
    Those functions should be available in NEXT_RELEASE.
  2. Revert "Queue: add filter, filter_inplace (previously filter), filter…

    Gabriel Scherer authored
    …_map"
    
    Those new functions shall not get included in the 2.3.1 bugfix release.
  3. Backport "new" string functions missing from the Bytes module

    Gabriel Scherer authored
    (fixes #595)
Commits on Sep 26, 2014
  1. @UnixJunkie

    Unix.get_command_output

    UnixJunkie authored
  2. fix a prefilter bound bug in batBigarray.mliv

    Gabriel Scherer authored
    (and avoid V= bound as much as possible to avoid such failures in the future.)
  3. fix a memory safety bug in BatQueue.map

    Gabriel Scherer authored
Commits on Sep 23, 2014
  1. add @since and update Changelog for recent changes in master

    Gabriel Scherer authored
  2. update @since tag for 2.3.0 release

    Gabriel Scherer authored
  3. batBigarray: manually strengthen the type definitions to pass the com…

    Gabriel Scherer authored
    …patibility test
  4. prefilter.ml: explicit version bounds

    Gabriel Scherer authored
    The current semantics of "##V3##" is not "##V=3##" but
    "##V>=3##". This means that code with the following pattern
    
      ##V3## val foo : ...
      ##V4## external foo : ...
    
    would have both lines included when compiled under V>=4.
    
    To avoid this issue, we now explicitly use a comparison operator on
    all prefilters.
  5. add 4.02 bytes-related functions to Unix

    Gabriel Scherer authored
  6. start versionning batUnix.ml

    Gabriel Scherer authored
  7. add String.mapi (4.02 compat)

    Gabriel Scherer authored
  8. add 4.02 bytes-related functions to Stream

    Gabriel Scherer authored
  9. start versionning batStream.ml

    Gabriel Scherer authored
  10. add 4.02 bytes-related functions to Marshal

    Gabriel Scherer authored
Something went wrong with that request. Please try again.