Skip to content
TODO 2.5 KiB
Newer Older
Nathan Froyd's avatar
Nathan Froyd committed
-*- mode: org -*-

* add documentation for the library
Nathan Froyd's avatar
Nathan Froyd committed
** DONE basic documentation for ENCODE/DECODE
   CLOSED: [2010-09-29 Wed 22:40]
** extended documentation on incremental encoding/decoding
* add decoding gray streams
Hard because we really want to decode groups at a time.  But ascii85 screws
that paradigm up with variable-sized groups.
Nathan Froyd's avatar
Nathan Froyd committed
* fix ascii85 encoding
Must SHRINK-VECTOR on NIL destination in case we encoded 'z'.
* line-breaking encoded output
This is probably really only doable for encoding to freshly-consed vectors.
Certainly it's much more doable for clients with the upcoming async
interface.
Nathan Froyd's avatar
Nathan Froyd committed
* compiler macros for optimizing constant-format versions of encode/decode
The trick will be to do this without adding too much bloat.  Will
probably only do this for a NIL destination, as that's the case where we
have the most to win from inlining the writer closure.
* testing
** separate encode/decode tests
** tests for encoding to octet vectors
** tests for encoding to streams
** tests for encoding to fill-pointered things
** tests for decoding strings
** tests for decoding to fill-pointered things
** tests for decoding to streams
Going to be hard because there's not a standard interface for octet streams.
* still not sure the decoding interface is right
Trying to do minimal allocation; might have to just suck it up and
admit that we are going to over-allocate fairly often.

Especially in the ascii85 case, over-allocation is just a fact of life.
* figure out how to make the library fast for non-CMUCL/SBCL
We might just have to accept a bit of code bloat everyplace else, by
duplicating logic/functions for simple vs. non-simple.
I don't want to restrict clients to always using simple arrays everywhere.

CCL looks like it ought to be able to get around this, but I can't find
the magic call.
Nathan Froyd's avatar
Nathan Froyd committed
* ignoring whitespace when decoding
We are definitely going to over-allocate if we permit whitespace.
* other formats
Python's binascii module has a few we might consider adding.
* convert to async API
** encode
Nathan Froyd's avatar
Nathan Froyd committed
*** DONE base16
    CLOSED: [2010-02-09 Tue 22:26]
*** DONE base32
    CLOSED: [2010-02-09 Tue 22:26]
*** DONE base64
    CLOSED: [2010-02-09 Tue 22:27]
*** DONE base85
    CLOSED: [2010-02-09 Tue 22:27]
*** DONE ascii85
    CLOSED: [2010-02-09 Tue 22:27]
Nathan Froyd's avatar
Nathan Froyd committed
*** DONE base16
    CLOSED: [2010-02-09 Tue 22:27]
*** DONE base32
    CLOSED: [2010-02-09 Tue 22:27]
*** DONE base64
    CLOSED: [2010-02-09 Tue 22:27]
*** DONE base85
    CLOSED: [2010-02-13 Sat 15:33]
*** DONE ascii85
    CLOSED: [2010-02-13 Sat 15:33]