guile-rsv

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit b5ae50565dd1cd431ce0108436a08390d4966229
parent c34b2a4f433233eef34c5e452f5b23a81e1cedb6
Author: Yuval Langer <yuval.langer@gmail.com>
Date:   Sat, 13 Jan 2024 08:29:39 +0200

Check done TODOs.

Diffstat:
MTODO.org | 14++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/TODO.org b/TODO.org @@ -1,25 +1,27 @@ -- [ ] Use a single object to track RSV position. +- [X] Use a single object to track RSV position. + - [X] Tried it and it results in GC churn. Use rows and columns + instead. - [ ] I don't like the naming of the libraries. Rename things into something proper. Zipheir's points: - [X] ALL-CAPS-NAMES are not very Schemely, -- [ ] you can write hex literals, e.g. #xfd, #xff, etc., +- [X] you can write hex literals, e.g. #xfd, #xff, etc., - [ ] every 'match' expression should have a catch-all failure clause that raises an exception (probably an assertion-violation, in R6RS terms). i.e. a more *useful* exception than "no match". -- [ ] For the library, you may want to provide a way to read a large +- [X] For the library, you may want to provide a way to read a large RSV in chunks (say a row) rather than all at once. A stream or coroutine generator might be a good choice for this. For example rsv->stream might return a stream of rows which are parsed on-demand. This might take some design thinking. -- [ ] BTW, I think the row & offset numbers should be passed to +- [X] BTW, I think the row & offset numbers should be passed to 'error' as irritants instead of formatted into the error message. That way, people can easily extract them. So (error <message> row-num offset) You can then call error-object-irritants in R7RS to get them out. It's not important for the binary tools, of course. -- [ ] Oh yeah, if they're doing I/O they should definitely be called +- [X] Oh yeah, if they're doing I/O they should definitely be called read-something. -- [ ] Actually, X->Y procedures in Scheme generally return one +- [X] Actually, X->Y procedures in Scheme generally return one value. I don't think there are any exceptions.