Page
Library
Module
Module type
Parameter
Class
Class type
Source
Extended_list.fold_left_term
is no longer needed - we now have List.fold_until
.core[_kernel]
evolution.N.B. Some interface changes occured in Core which are repercuted in this package, they are not all list in this file though.
Interval_map.t
with monad operations.Update the interval_map_intf.ml
file to try to make the documentation clearer.
This mostly constitutes splitting out the core operations into a separate module type earlier in the file, so that their documentation occurs before the various more specific module types in reading order.
Various bits of documentation have been tweaked with examples or laws.
Fix core_extended stubs on openbsd
Closes #7 Closes #2
Core_extended.Std.Sys.home
to Core.Std.Sys.home_directory
.Add a module whose type 'a t
acts as a container of ordered items of type 'a (morally, a 'a list
) but which supports efficient append operations.
Sometimes called a Rope, or Concatenable_list.
Expose the constructors of Ascii_table.Align.t
so that we can write
Column.create ~align:Left ...
instead of
Column.create ~align:Align.left
Interval_map
a more complete set of operations.Core_extended.Sexp.filter_record
, which has been superseded by Core.Std.Sexp.of_sexp_allow_extra_fields
.Interval_map
an Interval
module, with the type of intervals used in an interval map.Color_print
, added sprintf
functions, and changed formatting to compose properly.Stats_reporting
module.Quickcheck
module to Quickcheck_deprecated
. It's replaced by Janecheck, which for now is a separate library in the core_extended package, but will soon be merged into core.Selector
module to its own library. This is for internal reasons related for code review; it is included as a library within the core_extended package for now, but may move to another home in the future.Extended_unix.terminal_width : int Lazy.t
.Interval_map
module.Sendmail.send
additional optional arguments: ?message_id:string
, ?in_reply_to:string
.Shell.set_defaults
a ?preserve_euid:bool
argument, which causes Shell
to use bash -p
.Array.Access_control
, now that there is Core.Std.Array.Permissioned
.Fast_int_div
.Added functions to Low_level_debug
to get a sexp or string representation of any type.
This could be handy when debugging polymorphic code.
String.is_substring
to is_substring_deprecated
. Use Core.String.is_substring
instead.Bin_io_utils.save
.Unix.Mac_address
match Hashable.S
.Sped up String.is_substring
by replacing the OCaml implementation with a call to libc memmem
.
memmem
runs in 20% of the time, incurs minimal GC pressure, is portable among UNIXen that we target, AND it's clearer than the ML version.
Float_ref
support bin_io
and sexp
.gettid
, which is now available in Core.Unix
.Fast_int_div
module, which speeds up integer division by a fixed divisor.Sexp.of_sexp_allow_extra_fields
to core_kernel.Added Float_ref
module, which is like float ref
but faster for sets due to bypassing the write barrier.
Benchmark results on Sandy Bridge:
[float_ref.ml:] float ref set | 2_886.94ns | 8.00w | |
[float_ref.ml:] Float_ref.set | 355.76ns | 6.00w | |
[float_ref.ml:] float ref get | 415.52ns | 6.00w | |
[float_ref.ml:] Float_ref.get | 416.19ns | 6.00w |
Added Bin_io_utils.Wrapped.t
, which defines an 'a t with bin_io
that supports size-prefixed serialization and deserialization.
Wrapped
has two useful submodules, Opaque
and Ignored
, for efficient handling of size-prefixed bin-io values in cases where serialization can be bypassed. See the comments in the module for more details.
Int.gcd
using binary GCD in C, for improved performance.Added Bin_io_utils.Serialized
, which stores a value in memory as its bin-io representation.
Writing such a value just blits the value.
Text_block
from Core_extended
into Textutils
.Hashtbl2
and Hashtbl2_pair
.Quickcheck
from core
.Added some functions to Splay_tree
:
length
keys
data
to_alist
delete_{after,before}
map
map_range
split
.Patience_diff
out of Core_extended
into its own library.Flang
, added ordering to fields, and added abs
, min
, and max
to the language.Loggers
module.Set_lang
, a DSL for sets with constants, union, intersection, and difference.In Process
, use epoll
rather than select
when possible,
This prevents errors when selecting on file descriptors numbered greater than FD_SETSIZE
(1024).
Syslog
module. There is now Unix.Syslog
in core instead; the APIs are not compatible, but they are similar.Stats_reporting
moduleService_command.acquire_lock_exn
, for acquiring a service's lock.Flang
and Olang
to round-trip via sexps, i.e. (t_of_sexp (sexp_of_t t)) = t
.Sexp.load_sexp_with_includes
; one should use the new Sexplib.Macro
functions.Added Blang
-like languages Flang
and Olang
.
Flang
-- terms over a field.Olang
-- predicates over an ordered set.Fixed Core_extended.Sys.groups
to use Unix.Group.getbygid
rather than Unix.Group.getbygid_exn
.
This handles when a group is deleted and its gid remains in the cache, which causes Unix.Group.getbygid_exn
to fail because the gid no longer resolves to a group.
Stats_reporting.Delta
, for recording deltas of values.Sexp
module, added ability to expand and compress bash-like brace wildcards.Selector
module.Improved Sexp.Diff
.
Labeled arguments, put them in the right order (old before new), and rework the code to follow the same convention, and produce the output where deletions precede insertions.
Shell
functions, made the amount of captured stderr/stdout configurable.In module Sexp
, changed and renamed load_includes_in_sexp
.
From:
val load_includes_in_sexp : ?max_depth:int -> Sexp.t -> Sexp.t
to:
val load_sexp_with_includes: ?max_depth:int -> ?buf:string -> string -> Sexp.t
Sexp.Diff.to_string
.Out_channel
.