Hi, In the past year I often had to make code work on different versions on Guile. Either because my laptop has a different distribution than my Desktop (Trisquel vs. Guix) or because my server has yet another distribution and may be on Debian stable (or oldstable).
The main problem for me was #:declarative? — a real showstopper. To get the same behavior for mutating module bindings in Guile 3 and in Guile 2 (for example for live development or for changing a function; having a live REPL in Chickadee and building a game iteratively is a great experience), I must mark the module as non-declarative: (define-module (my-module) #:declarative? #f) But #:declarative? is illegal in Guile 2.x, so I have to use different code for 2.x and 3.x. And hitting that when I try to run a program on another system is a really bad experience. The problem is that #:declarative? is #true by default in Guile 3. But I cannot change it if my code should work for Guile 2 *and* for Guile 3. Would it be an alternative to explicitly mark all modules shipped with Guile as #:declarative? #t but have user-code non-declarative by default? Would that already yield most of the performance improvements? Best wishes, Arne -- Unpolitisch sein heißt politisch sein, ohne es zu merken. draketo.de
signature.asc
Description: PGP signature