|
Names and primitives in SRFI 56
Hans Oesterholt-Dijkema
(17 Sep 2004 21:53 UTC)
|
|
Re: Names and primitives in SRFI 56 Alex Shinn (18 Sep 2004 02:33 UTC)
|
|
Re: Names and primitives in SRFI 56
Hans Oesterholt-Dijkema
(18 Sep 2004 09:53 UTC)
|
|
Re: Names and primitives in SRFI 56
bear
(18 Sep 2004 19:46 UTC)
|
|
Re: Names and primitives in SRFI 56
Bradd W. Szonye
(19 Sep 2004 18:08 UTC)
|
|
Re: Names and primitives in SRFI 56
bear
(19 Sep 2004 19:28 UTC)
|
|
Re: Names and primitives in SRFI 56
Dave Mason
(28 Sep 2004 11:36 UTC)
|
|
Re: Names and primitives in SRFI 56
Alex Shinn
(28 Sep 2004 15:11 UTC)
|
|
Re: Names and primitives in SRFI 56
bear
(18 Sep 2004 02:58 UTC)
|
At Fri, 17 Sep 2004 23:53:33 +0200, Hans Oesterholt-Dijkema wrote: > > I've some questions about the naming of primitives provided in SRFI-56. > > 1. Why, is the word 'binary' used in the function definitions. > Is it not clear from the way the types are provided, that these > must be binary constructs? > > read-uint32 is shorter and I think evenly clear as read-binary-uint32 > > It would spare a lot of typing work when programming. I had considered the former, but was trying to be as clear as possible. Brevity is not a strong argument, but in retrospect I'm not sure read-binary-uint32 is any more clear than read-uint32. > 2. Why are the network encodings provided as separate functions? > Why not add 'network to 'big-endian and 'little-endian? > It's just an other way to encode your information. 'network is equivalent to 'big-endian. The separate procedures are provided as shorthand for when you want to write code portable across different endians, and also to allow for a faster implementation on big-endian machines. This is biased in favor of big-endian machines; an alternative would be to have three sets of procedures with no optional argument: read-<int> ; native read-be-<int> or read-network-<int> read-le-<int> > 3. I think it must be possible to interchange port and endian, i.e. > > (read-binary-uint32 port endian) should be just as possible as > (read-binary-uint32 endian) (or even (read-binary-uint32 endian port)?) I don't see any need for this since you can already pass #f as the port: (read-binary-uint32 #f endian) ; read from (current-input-port) > 4. Why aren't there any primitives to do binary string writing and > reading, or even binary buffer reading and writing? Apart from further conflicting with possible binary/character port distinctions, this is beyond the scope of this SRFI. A general text parsing library with procedures for reading delimited or terminated strings with an optional size limit would be the right place for this. -- Alex