- Compatibility with Coq 8.20
- Add
RunIO Reset
- Rename
RunIO Builder Basic
toRunIO Builder Ocamlfind
- Extend
RunIO Builder
commands with an optional string to pass to the build executable. Example:RunIO Builder Ocamlfind "-I mydir"
. - Add
IO_Random.init
.
- Redesign
RunIO
auxiliary commands for configuring extraction.RunIO Include "dir".
copiesdir
when compiling package.RunIO Open "M".
prefixes the extracted OCaml file withopen M
.RunIO Package "pkg".
addspkg
when compiling withocamlfind opt
orocamlbuild
.RunIO Builder Basic.
(default) compiles usingocamlfind opt
.RunIO Builder Ocamlbuild.
compiles usingocamlbuild
.RunIO Builder Dune.
compiles usingdune
. This ignoresRunIO Package
; dependencies should be specified in thedune
file.RunIO Smart (On|Off).
(On
by default) enable|disable automatic detection of common package dependencies (currentlyzarith
forBig_Int_Z
andcoq-core.kernel
forUint63
).
- Add
IO_Filename
. - Use
dune
for building.
- Fix definitions of
catch_not_found
,catch_sys_error
- Add:
IO_Exceptions.catch_any_exc
- in
Stdlib
:input
,really_input
,really_input_string
IO_Sys.OSys.argv
.
-
Add
RunIO
command to compile and run executables from a Coq file -
Rename
Pervasives
toStdlib
in extracted code (for OCaml >= 4.08) -
Add new definitions from the stdlib:
IO_Stdlib.close_out_noerr
IO_Stdlib.close_in_noerr
IO_Stdlib.in_channel_length
IO_Exceptions.catch_sys_error
IO_Sys.OSys.command
- Add
IO_MonadFix
with theMonadFix
instance in its own module. - Add float arithmeti.
- Add
Bytes.sub
,Unix.getaddrinfo
,Sys.time
(and related definitions)
-
Remove instance
MonadFix_IO
(was causing universe inconsistencies) -
Add in
Unix
:inet_addr_of_string
,string_of_inet_addr
socket_bool_option
,getsockopt
, setsockopt`error_message
- Fix the extraction of core
IO
constants with type annotations to avoid type errors caused by the value restriction. - Add
IO_Sys
, based onSys
from the OCaml stdlib. - Add
file_descr_eqb
andselect
inIO_Unix
. - Fix extraction of
error
andcatch_error
inIO_Unix
. - Update
IO.Notations
to agree with coq-ext-lib 0.11.1
- Blacklisted
List
- Added module
IO_Float
- Added
OString.escaped
,OUnix.setsock_timeout
,OUnix.error
,OUnix.catch_error
,OUnix.raise_error
- Fixed extraction of
OBytes.set
- Changed
IO_Unix.recv
to no longer return the input buffer - Changed
OBytes.to_string
andOBytes.from_string
to beIO
actions instead of pure functions
- Added
IO_Stdlib
,IO_Bytes
,IO_Random
,IO_Unix
-
Big rewrite
-
IO a
is now('a -> Obj.t) -> Obj.t
(forall r. (a -> r) -> r
) -
A single main entry point:
SimpleIO.SimpleIO
(plus optional unsafe modules) -
New functions for strings and exceptions
- Removed ocaml library.
IO
is now defined in OCaml by extraction simply as('a -> unit) -> unit
. - Add
delay_io
Initial release