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.

Reply via email to