Just comenting only on Alexis's suggestion here, since sounds like John
is happy with sexps for now.
I don't see how `racket/fasl` is suitable for heterogeneous interop,
which is a very common case needing this, perhaps the most common.
Spec-wise, `racket/fasl` is not defined, beyond that it can be shared
between instances of the same Racket version. This FASL is fine for
writing out compiled code files that are already specific to Racket
version, or perhaps IPC or stored serialization when you're certain that
the same Racket version will be used to write and read. Everything else
I can think of, you want an open spec.
You could make simple *specified* sexp serialization that is stable
between Racket versions and can also be implemented independent of
Racket (e.g., write type tag byte according to spec, write byte(s)
prefixes for length of variable-length objects, possibly references to
pre-shared strings/symbols, and possibly do some kind of string table
compression as you go, etc.). There's also always off-the-shelf specs,
like Google protobufs. Protobufs are overkill for most purposes, and
can be unnecessarily cumbersome/bureaucratic to work with, but are
available, with lots of implementations.
Neil V.
--
You received this message because you are subscribed to the Google Groups "Racket
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.