New draft (#2) of SRFI 214: Flexvectors Arthur A. Gleckler (14 Jan 2021 06:03 UTC)
Re: New draft (#2) of SRFI 214: Flexvectors siiky (14 Jan 2021 11:51 UTC)
Re: New draft (#2) of SRFI 214: Flexvectors Adam Nelson (05 Feb 2021 05:37 UTC)
Re: New draft (#2) of SRFI 214: Flexvectors siiky (08 Feb 2021 00:55 UTC)
Re: New draft (#2) of SRFI 214: Flexvectors Arthur A. Gleckler (08 Feb 2021 01:10 UTC)
Re: New draft (#2) of SRFI 214: Flexvectors siiky (08 Feb 2021 22:35 UTC)

Re: New draft (#2) of SRFI 214: Flexvectors Adam Nelson 05 Feb 2021 05:37 UTC

Hi André,

If you want to submit a pull request, you can submit one through the
usual GitHub process: fork the repo, make changes on your own copy, then
create a PR to merge the changes in.

With that said, although I appreciate the enthusiasm to help, I'm not
concerned about extra assertions in the sample code. Double assertions
shouldn't be a problem at all, because (ideally) 'assume' should be a
no-op in production code.[1] Not that many Schemes actually do this...

The missing assertions are probably an oversight, not a big deal, but if
you want to make a PR for it then you can.

[1] SRFI 145, Rationale section: "However, in non-debug mode, an
optimizing compiler may also remove the whole test..."

On 1/14/21 6:51 AM, siiky wrote:
> 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á
>
>