CoreCore is an extension of Core_kernel with Unix APIs. The unmodified libraries can be found there.
In particular, Core has comprehensive implementation of times (Time and Time_ns), where some details are platform-specific.
Some modules are mere extensions of those existing in Core_kernel, like Bigstring, Caml, Time, and Md5, where what's added is handlers for reading from or writing to Unix sockets and file descriptors, or support for floating-point numbers. Other modules are entirely new, like:
Command, a richly featured tool for creating command-line programs.Iobuf, which lets you use contiguous ranges of bytes for I/O purposes.Linux_ext, providing a wrapper around Linux-specific system calls.Signal, for handling Unix signals like SIGHUP and SIGKILL.A few modules in Core don't have any platform-specific functionality but haven't yet been ported to Core_kernel for technical reasons (like a dependency on Time, which until recently was only in Core):
Intervalmodule Bigstring : sig ... endString type based on Bigarray, for use in I/O and C-bindings, extending Core_kernel.Bigstring.
module Caml : sig ... endmodule Command : sig ... endmodule Condition : sig ... endmodule Core_stable : sig ... endmodule Date : sig ... endmodule Filename : sig ... endWarning! this library assumes we are in a POSIX compliant OS.
module Interval : sig ... endModule for simple closed intervals over arbitrary types. Used by calling the Make functor with a type that satisfies Comparable (for correctly ordering elements).
module Interval_intf : sig ... endmodule Iobuf : sig ... endA non-moving (in the GC sense) contiguous range of bytes, useful for I/O operations.
module Iobuf_debug : sig ... endIobufs with extra controls for debugging.
module Iobuf_intf : sig ... endmodule Linux_ext : sig ... endInterface to Linux-specific system calls.
module Digest = Md5module Mutex : sig ... endmodule Signal : sig ... endSignal handlers.
module Sys : sig ... endSystem interface.
module Thread : sig ... endLightweight threads.
module Time : sig ... endmodule Time_common : sig ... endmodule Time_ns : sig ... endmodule Time_stamp_counter : sig ... endHigh-performance timing.
module Unix : sig ... endThis file is a modified version of unixLabels.mli from the OCaml distribution. Many of these functions raise exceptions but do not have a _exn suffixed name.
module User_and_group : sig ... endA pair of Unix username and primary Unix group.
module Version_util : sig ... endval sec : Base.Float.t -> Time.Span.tval (^/) : Base.String.t -> Base.String.t -> Base.String.tmodule Core_private : sig ... end