Porting implementation to more Schemes Lassi Kortela (07 Oct 2019 14:32 UTC)
Re: Porting implementation to more Schemes Linus Björnstam (08 Oct 2019 19:58 UTC)
Re: Porting implementation to more Schemes Linus Björnstam (08 Oct 2019 20:17 UTC)

Re: Porting implementation to more Schemes Linus Björnstam 08 Oct 2019 19:57 UTC

That would be great!

My computer time is currently very limited (my main computer is dead, so I am limited by some ssh time on various SBCs). In the beginning there was an r6rs implementation, but that got scrapped because I didn't want to spend time testing new ideas in chez as well (back then I provided a lot of extras, such as "random-selection" and things that depended on non-standard scheme).

The porting would be simple: change it to r6rs records and r6rs hash tables and write a  vector->list with support for start+end arguments. Since none of the details of the implementation is really exposed to the user, these changes could be made to the guile version without breaking anything for guile. I would not mind changing the implementation I provided as reference to an r6rs one.

I will not be able to play with that until late next week. If you want to have a go, I would go about as following: break out <reduced> and <nothing> from the xxx-impl.scm files and make the r7rs library definition declare them. Make the guile version an r6rs library (with r6rs define-record-type in the library definition). As written above, that should be trivial.

Best regards
  Linus Björnstam

On Mon, 7 Oct 2019, at 16:32, Lassi Kortela wrote:
> Transducers are a nice abstraction and the implementation looks easy to
> port. Would you like help testing/porting it to more implementations? If
> so, do you want to include R6RS in the reference implementation?
>