Re: New draft (#2) of SRFI 214: Flexvectors
siiky 14 Jan 2021 11:51 UTC
On 1/14/21 6:03 AM, Arthur A. Gleckler wrote:
> I've just published draft #2 of SRFI 214
> <https://srfi.schemers.org/srfi-214/>. It was submitted by Adam Nelson,
> author of the SRFI.
>
> Here are Adam's comments on the draft:
>
> I've made some of the small updated I talked about, and this should
> hopefully be the last draft of SRFI 214.
>
> Changes:
>
> * Removed all references to SRFI 10
> * Changed all discussion of big-O complexity to specify that
> flexvector operations are only as fast as the equivalent vector
> operations in a given Scheme
> * Added flexvector-append-map and flexvector-append!
> * Removed flexvector-unfold!
> * Added a table of contents for the API
> * Increased test coverage in the sample implementation
> * Fixed a bug in flexvector-copy! in the sample implementation
> * I will reply to the remaining email threads soon.
>
> Here is the commit summary:
>
> * add implementation source
> * Apply changes from Adam Nelson.
> * Follow US Copyright Office guidelines.
> * Fix error reported by W3C HTML Validator.
> * Copy edits. Publish second draft.
>
> Here's the diff:
>
> https://github.com/scheme-requests-for-implementation/srfi-214/compare/draft-1..draft-2
> <https://github.com/scheme-requests-for-implementation/srfi-214/compare/draft-1..draft-2>
>
> Regards,
>
>
> SRFI Editor
>
Hello,
I'm not sure this is the right place, so please forgive me if it's not,
but I found a couple of possible improvement points in the reference
implementation:
1. `flexvector-copy`[0], when called with a flexvector, or with a
flexvector and a start, will (assume (fexvector? fv)) twice;
2. `flexvector-copy!`[1], when called with all the supported
arguments, `(flexvector-copy! to at from start end)`, doesn't (assume
(flexvector? from)).
`vector->flexvector` and `flexvector->vector` also suffer from (1), so
it's possible more functions could be improved.
I don't know what the development process is, but I can contribute
instead of just "complaining", if you point me in the right direction.
[0]:
https://github.com/scheme-requests-for-implementation/srfi-214/blob/983ee1afbab1108c3608ba4228824f6944301d69/implementation/flexvectors-body1.scm#L193
[1]:
https://github.com/scheme-requests-for-implementation/srfi-214/blob/983ee1afbab1108c3608ba4228824f6944301d69/implementation/flexvectors-body1.scm#L212
Regards,
André Sá