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?
>