lokke-org / lokke

Lokke: Clojure for Guile
Other
200 stars 11 forks source link

Use Immer for immutable data-structures #11

Open arximboldi opened 3 years ago

arximboldi commented 3 years ago

Hi!

This project looks fantastic and it is very promising way of having Clojure everywhere the JVM is not desirable (which happens to be most of my projects) :clap:

I see that you have provided your own implementation of immutable vectors and have no native implementation of immutable maps. I'd suggest experiment with using my implementation of immutable data-structures in C++, which is designed with this use-case in mind: https://github.com/arximboldi/immer

In fact, I already did some experimenting with Guile integrations: https://sinusoid.es/immer/guile.html https://github.com/arximboldi/immer/tree/master/extra/guile

There is also a paper from ICFP'17 about this work: https://public.sinusoid.es/misc/immer/immer-icfp17.pdf

Cheers!

rlbdv commented 3 years ago

Thanks, I'll make a note to look at that later. For now I am leaning notably toward keeping the external dependency (and C code) set small when feasible, but if/when I or someone else has time, we can test it against both the existing code (and for vectors, maybe the fash companion fector code which I'd also noticed more recently).