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:
Command, a richly featured tool for creating command-line programs.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):
Interval
module Caml = Core__.Core_camlmodule Command = Core__.Core_commandmodule Core_stable = Core__.Stablemodule Date = Core__.Core_datemodule Filename = Core__.Core_filenamemodule Interval : sig ... endmodule Interval_intf : sig ... endmodule Digest = Md5module Mutex : sig ... endmodule Signal : sig ... endSignal handlers.
module Sys = Core__.Core_sysmodule Thread = Core__.Core_threadmodule Time = Core__.Core_time_floatmodule Time_common : sig ... endThis module type is basically the intersection of the module types of
Core.TimeandCore.Time_ns. We verify that that relation holds in check_std.ml.
module Time_ns = Core__.Core_time_nsmodule Unix = Core__.Core_unixval sec : Core_kernel__.Import.float -> Time.Span.tval (^/) : Core_kernel__.Import.string -> Core_kernel__.Import.string -> Core_kernel__.Import.string