Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Jun 23, 2015
  1. @gasche

    Merge pull request #627 from UnixJunkie/batset_update

    gasche authored
    most generic version of BatSet.update
Commits on Jun 22, 2015
  1. @UnixJunkie
  2. @gasche

    Merge pull request #626 from UnixJunkie/batset_at_rank_exn_2

    gasche authored
    added BatSet.at_rank_exn
  3. @UnixJunkie

    updated ocamldoc

    UnixJunkie authored
  4. @UnixJunkie

    added BatSet.at_rank_exn

    UnixJunkie authored
  5. @gasche

    Merge pull request #619 from UnixJunkie/batSet_pop_max

    gasche authored
    BatSet.pop max
Commits on Jun 16, 2015
  1. @rgrinberg

    Merge pull request #623 from gasche/prefilter-in-ocamlbuild

    rgrinberg authored
    Move the prefilterin logic from Makefile to ocamlbuild
Commits on Jun 15, 2015
  1. @gasche

    Merge pull request #596 from unhammer/master

    gasche authored
    BatUTF8.enum, based on BatString.enum / BatList.enum
  2. @unhammer

    qtests for BatUTF8.enum

    unhammer authored
  3. @unhammer
Commits on Jun 14, 2015
  1. Move the prefilterin logic from Makefile to ocamlbuild

    Gabriel Scherer authored
    Fixes #615: "make coverage" is broken.
    The current "make coverage" failure occurs as the coverage-checking
    tool attempts to access "src/batInnerPervasives.mlv" and does not find
    the file. It looks for this file because it is present in the
    lexer-directive comments of the preprocessed file
    (src/, and it makes sense for a coverage
    checking to display covered lines in terms of the source file instead
    of post-filtering file (which is not what developers see). But because
    the prefilter step currently happens purely in Make-land, before
    ocamlbuild is invoked, ocamlbuild does not know about this .mlv file
    and does not copy it in the _build directory, from where the coverage
    preprocessing is started.
    The solution to this problem is to teach ocamlbuild about the .mlv
    preprocessing step, instead of doing it ahead-of-time in the
    Makefile. Now ocamlbuild decides which .mlv to prefilter, and copies
    them to _build along the process, which makes "make coverage work
    again". This has one downside and some upsides.
    - The prefiltering logic was previously in the Makefile: (simple, easy
      to read, most programmers are familiar with it. It is now in less simple, most programmers avoid touching it,
      and it has a bit of cruft due to support for really old ocamlbuild
    - No more need to explicitly list all files to preprocess in the
      Makefile. This had had been a source of minor inconvenience when
      adding to the set of such files; but admittedly this could be
      automated at the Makefile level as well).
    - No more need to use "make clean-prefilter" when unsure whether the
      changes to a .mlv file have been taken into acount; now ocamlbuild
      tracks dependencies for .mlv (and prefilter.byte, which was
      previously mostly untracked by the build system) as any other file,
      and will only rebuild them when needed. This is a major improvement
      in convenience when manipulating these files.
  2. @gasche

    Merge pull request #621 from UnixJunkie/batSet_of_array

    gasche authored
Commits on Jun 11, 2015
  1. @UnixJunkie
  2. @UnixJunkie
  3. @UnixJunkie
  4. @UnixJunkie
Commits on Apr 17, 2015
  1. provide implementations of new pp_* functions for older OCaml versions

    Gabriel Scherer authored
    The implementations are inspired by the original proposal of Daniel Bünzli in
  2. @gasche

    Merge pull request #504 from c-cube/set-product

    gasche authored
    Set.Make2 for functorial cartesian product
  3. @gasche

    Merge pull request #575 from gallais/master

    gasche authored
    [ bug ] modify_opt randomly drops parts of the map
  4. @gasche

    Merge pull request #602 from choeger/master

    gasche authored
    Add some missing functions from Format
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
    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. @gasche

    Merge pull request #607 from UnixJunkie/simpler_batlist_interleave2

    gasche authored
    simpler version of interleave in batlist
  2. @UnixJunkie
Commits on Jan 24, 2015
  1. @herry13

    Implement BatOption.Infix.(>>=)

    herry13 authored Gabriel Scherer committed
Commits on Jan 17, 2015
  1. @gasche

    Merge pull request #603 from andersfugmann/improve_hashtbl_functions

    gasche authored
    Optimize hashtbl modify_{def, opt} functions
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 Jan 3, 2015
  1. @choeger

    Add comment again

    choeger authored
    Signed-off-by: Christoph Höger <>
  2. @choeger

    Add pp_print_list and pp_print_text

    choeger authored
    These were introduced in 4.02
    Signed-off-by: Christoph Höger <>
Commits on Dec 22, 2014
  1. @gasche

    Merge pull request #601 from acieroid/patch-1

    gasche authored
    Fix description of LazyList.range
  2. @acieroid

    Fix description of LazyList.range

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

    Merge pull request #570 from cakeplus/master

    gasche authored
    Fix: Enum.uniq should use structural comparison
  2. @cakeplus


    cakeplus authored
Something went wrong with that request. Please try again.