Patches welcome. Burton
> On Dec 19, 2017, at 3:41 AM, David McClain <d...@refined-audiometrics.com> > wrote: > > >> >>> And the conversions to octet vectors may work for strings, but not in >>> general for arbitrary integer or float values… >> >> I’m not sure what you mean there. This code? >> >> (defun to-byte-array (x) >> (let ((retval (make-array 0 :adjustable t >> :fill-pointer t >> :element-type '(unsigned-byte 8)))) >> (map 'nil (lambda (c) (vector-push-extend (char-code c) retval)) >> (format nil "~A" x)) ; >> (coerce retval 'ironclad::simple-octet-vector))) >> >> I would think the ~A in the format would give a solid textual representation >> for any type that has a printable expression. Am I incorrect in that? >> > > Sorry, I might have got a bit ahead of myself there. But in general, objects > that might be involved in a transaction could have values that are difficult > to print. > > Take for example a structure, or a class instance. And for floating point > values, the ~A is too lenient in terms of digits printed, rounding, etc. This > code will also be dependent on the current value of *PRINT-BASE*, which I > noticed that you permanently set to 16 along the way. > > But I saw your intent, and I substituted my own network byte encoding which > handles everything except compiled closures. > > - DM