Email list hosting service & mailing list manager

Attempt at a stack of data formats to make everyone happy Lassi Kortela (19 Sep 2019 17:28 UTC)
Sketching the format stack Lassi Kortela (19 Sep 2019 18:07 UTC)
Re: Attempt at a stack of data formats to make everyone happy Arthur A. Gleckler (20 Sep 2019 22:19 UTC)
Re: Attempt at a stack of data formats to make everyone happy Alaric Snell-Pym (24 Sep 2019 09:02 UTC)
Core S-expression and binary formats John Cowan (24 Sep 2019 14:49 UTC)
Re: Core S-expression and binary formats John Cowan (25 Sep 2019 02:14 UTC)
Sharpsign syntax for hashtables, sets, bytevectors, etc. Lassi Kortela (25 Sep 2019 08:26 UTC)
Bytevector literals Lassi Kortela (25 Sep 2019 08:38 UTC)
Re: Sharpsign syntax for hashtables, sets, bytevectors, etc. Alaric Snell-Pym (25 Sep 2019 09:33 UTC)
Re: Sharpsign syntax for hashtables, sets, bytevectors, etc. Lassi Kortela (25 Sep 2019 09:53 UTC)
Re: Sharpsign syntax for hashtables, sets, bytevectors, etc. Alaric Snell-Pym (25 Sep 2019 10:32 UTC)
String literals inside bytevector literals Lassi Kortela (25 Sep 2019 10:46 UTC)
A S-expression syntax that can carry all this stuff Lassi Kortela (19 Sep 2019 20:01 UTC)

Bytevector literals Lassi Kortela 25 Sep 2019 08:38 UTC

> Do you mean this: #u8(1 2 3 4 5). [...]
>
> Would this be a terrible idea: #u8"0123456789abcdef". So it's a string
> but its contents must be an even number of hex digits.
>
> The trouble with that is splitting up long strings. Is this baroque:
>
> #u8{
> "000089f809d08b1d483e00004489e683"
> "ce0809d8448a15f13c0000410f45f445"
> "31c944380de73c0000410f45f44584d2"
> "410f45f44584c0410f45f48a05bb3c00"
> }

Or we could use the parentheses from R7RS:

#u8("000089f809d08b1d483e00004489e683"
     "ce0809d8448a15f13c0000410f45f445"
     "31c944380de73c0000410f45f44584d2"
     "410f45f44584c0410f45f48a05bb3c00")

Now it's just like R7RS but elements must be strings instead of
integers. (To be pedantic, they're not vector elements anymore, but
slices.) This is a break from RnRS but I quite like it.

We could also permit optional spaces in the strings. Is that useful? Hex
is hardly that readable to begin with.

Uppercase vs lowercase vs either for the hex digits? I don't care much.
Forcing a particular case is simpler and more uniform.

We could permit base64 bytevectors: #base64{"aGVsbG8gd29ybGQ="}