Module Core

Core 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:

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):

module Caml = Core__.Core_caml
module Command = Core__.Core_command
module Core_stable = Core__.Stable
module Date = Core__.Core_date
module Filename = Core__.Core_filename
module Interval : sig ... end
module Interval_intf : sig ... end
module Digest = Md5
module Mutex : sig ... end
module Signal : sig ... end

Signal handlers.

module Sys = Core__.Core_sys
module Thread = Core__.Core_thread
module Time = Core__.Core_time_float
module Time_common : sig ... end

This module type is basically the intersection of the module types of Core.Time and Core.Time_ns. We verify that that relation holds in

module Time_ns = Core__.Core_time_ns
module Unix = Core__.Core_unix
module Version_util = Version_util
val sec : Core_kernel__.Import.float -> Time.Span.t
val (^/) : Core_kernel__.Import.string -> Core_kernel__.Import.string -> Core_kernel__.Import.string