Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

core 109.19.00-rc1 #644

merged 3 commits into from Apr 20, 2013


None yet
3 participants

diml commented Apr 15, 2013

No description provided.


diml commented Apr 15, 2013



  • Added function Versioned_typed_tcp.Client.flushed : t -> [Flushed | Pending of Time.t Deferred.t ].

    This exposes whether the underlying Writer.t has been flushed.


  • Reworked a number of Reader functions to improve performance by
    avoiding deferreds.

    This is a followup to the Reader improvements in 109.14, and
    eliminates some last vestiges of performance degradation that had
    been introduced in 109.04.

  • Added function Reader.lseek : t -> int64 -> mode:[<Set | End] -> int64 Deferred.t.

    lseek t offset ~mode clears t's buffer and calls Unix.lseek on
    t's file descriptor.

  • Added function Writer.bytes_received : t -> int.

  • Added function Unix.mkfifo : ?perm:file_perm -> string -> unit Deferred.t, which was mistakenly missing.

    This is a simple wrapper around Core.Unix.mkfifo.


  • Changed Time.to_string and Time.sexp_of_t to include the

    This is an incompatible change with very old programs in which
    Time.of_string and Time.t_of_sexp did not support the timezone.

    If you have programs that are:

    • very old and do Time string/sexp handling
    • rely on reading in time values without using Time.of_string and
    • rely on chains of writing/reading/writing times across machines
      and timezones where the time is always intended to be taken as the
      local time on the currently reading machine

    you should recompile/review your code to make sure you won't have

  • Added function List.remove_consecutive_duplicates : 'a t -> equal:('a -> 'a -> bool) -> 'a t.

    This returns the input list with consecutive duplicates removed, and
    doesn't change the order of the remaining elements.

  • Added module User_and_group, which is a pair of a unix username
    and primary unix group.

    The string/sexp converters follow the usual unix convention of

  • Added function Date.first_strictly_after : t -> on:Weekday.t -> t.

    first_strictly_after t ~on:day_of_week returns the first
    occurrence of day_of_week strictly after t.

  • Added functor Type_equal.Lift.

    It is always safe to conclude that if type a equals b, then type
    a X.t equals b X.t, for any type X.t. The OCaml type checker
    uses this fact when it can. However, sometimes, e.g. when using
    Type_equal.conv, one needs to explicitly use this fact to
    construct an appropriate Type_equal.t. The Type_equal.Lift*
    functors do this.

    module Type_equal : sig
      type ('a, 'b) t
      module Lift (X : T1) : sig
        val lift : ('a, 'b) t -> ('a X.t, 'b X.t) t


  • Made with fields generate the same functions in the Fields and
    Fields_of_* modules whether the type is called t or not.


  • Removed a performance test from Pool that was nondeterministically

avsm commented Apr 18, 2013

Testing for other broken packages more widely due to the Time.of_string changes


yminsky commented Apr 19, 2013

Do you mean the Time.to_string changes? It's the generation, not consumption of strings that has changed....


avsm commented Apr 19, 2013

@yminsky -- yep, I misread it but did the extra builds anyway. @diml, can we have the final please?


diml commented Apr 19, 2013

Here it is.

@avsm avsm added a commit that referenced this pull request Apr 20, 2013

@avsm avsm Merge pull request #644 from janestreet/core-109.19.00
core 109.19.00-rc1

@avsm avsm merged commit dbd0ba6 into ocaml:master Apr 20, 2013

@diml diml deleted the unknown repository branch Apr 22, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment