versioning scheme - earlier version was 113.33.03. As per the thread on
https://mail-index.netbsd.org/tech-pkg/2016/11/26/msg017548.html
and the example given by archivers/lz4, I've just changed the version
number without further ado.
Changes up until 113.43.00 (there seems to be no later changelog) include:
Sexps and EOF are a mess. Try to improve the situation somewhat!
In particular, this feature makes improvements to when
Parsing_whitespace sexp parser state is reported: it now
distinguishes the case Parsing_toplevel_whitespace from
Parsing_nested_whitespace and it's only a valid empty parse if eof
happens in Parsing_toplevel_whitespace. See test diffs for examples
of strings that were previously valid empty parses, but are now
incomplete. One of the craziest is probably "(foo #| bar".
- Changes `Sexp.to_string` to escape all non-ASCII characters.
Previously chars >= 127 are escaped or not depending on:
1. other character in the string
2. the system
3. environment variable settings
(2) and (3) are because `String.escaped` from the stdlib uses the C
function `isprint` which is locale and OS dependent.
This can cause invalid UTF-8 sequence to be printed by sexplib, which
is annoying:
https://github.com/janestreet/sexplib/issues/18
Starting with this release, sexplib:
1. copies the `String.escaped` function of OCaml 4.03 which escapes
all non-ascii characters
2. make sure we escape the string when it contains characters >= 127
- Clean up the documentation for sexplib, modernizing it to include
`ppx_sexp_conv`, and breaking up the documentation between sexplib and
`ppx_sexp_conv`. Also changed the formatting to use org-mode, so it
will render properly on github. Markdown doesn't render well by
default, unless you use quite different conventions about linebeaks.
- In sexp macro library, avoid returning success when there is any error
reading a sexp. In particular, this prevents
sexp resolve <(echo '(:use x)')
from silently succeeding.
Also, now we no longer read an included file multiple times.
This lets even crazy stuff like this to work:
$ echo 'hi ' | sexp resolve <(echo '((:include /dev/stdin) (:include /dev/stdin))')
Switch code in lib subdir to ppx-style.
Inline some calls that js_of_ocaml was unable to recognise as tail-recursive
(cf. issue 14)
Minor update: documentation.
Added sexp_of_ support for GADTs, and remove the not-quite-working support
for of_sexp.
Improved the implementation of Exn.sexp_of_t, using the unique id in
exceptions in OCaml 4.02.
We use the identifier to map exception constructors to converters.
ocaml.mk. It was becoming more trouble than it was worth: only a minority
of packages used it, and it only made Makefiles more confusing.
(I've left out some packages: these will be updated forthwith)