package rocq-runtime

  1. Overview
  2. Docs
The Rocq Prover -- Core Binaries and Tools

Install

dune-project
 Dependency

Authors

Maintainers

Sources

rocq-9.1.0.tar.gz
sha256=b236dc44f92e1eeca6877c7ee188a90c2303497fe7beb99df711ed5a7ce0d824

doc/rocq-runtime.lib/ObjFile/index.html

Module ObjFileSource

Sourceval magic_number : int32
Sourcetype 'a segment = private {
  1. name : string;
  2. pos : int64;
  3. len : int64;
  4. hash : Digest.t;
}
Sourcetype 'a id = private {
  1. id : string;
}

Private to ensure the phantom tag is injective

Sourcetype in_handle
Sourcetype out_handle
Sourceval make_id : string -> 'a id
Sourceval open_in : file:string -> in_handle
Sourceval close_in : in_handle -> unit
Sourceval marshal_in_segment : in_handle -> segment:'a id -> 'a * Digest.t
Sourceval get_segment : in_handle -> segment:'a id -> 'a segment
Sourceval open_out : file:string -> out_handle
Sourceval close_out : out_handle -> unit
Sourceval marshal_out_segment : out_handle -> segment:'a id -> 'a -> unit
Sourceval marshal_out_binary : out_handle -> segment:'a id -> out_channel * (unit -> unit)

marshal_out_binary oh segment is a low level, stateful, API returning oc, stop. Once called no other API can be used on the same oh and only Stdlib.output_* APIs should be used on oc. stop () must be invoked in order to signal that all data was written to oc (which should not be used afterwards). Only after calling stop the other API can be used on oh.