Hey folks!
I wanted to send out an update on Guile 3. Do take a look at
https://git.savannah.gnu.org/cgit/guile.git/tree/NEWS to see where we've
come; basically the JIT is done, and we're ready to release soonish.
Guile powered by JIT was confirmed to increase at least 20% performance for Artanis.
And this is a rough result of the early-bird version of Guile-2.9. I haven't tried the latest.
I'm looking forward to an official release of Guile-3 so that I can manage to support the version detection correctly. It was 2.9 but should detect as 3.0, IIRC.
But! Now we have bootstrapping problems; how to get the implementation
in boot-9? Exceptions in SRFI-35, R6RS, R7RS, and Racket are these
hierarchical things: they form a DAG of subtypes. But core records in
Guile aren't subtypeable, so what to do?
Are you talking about Guile specific record-type?
Personally, I've gradually reduced my usage of Guile records. I think R6RS records are better for me.
I didn't know the Guile bootstrapping requires Guile specific record-type. So I don't know better advice.
There will be bijections
between a Guile's "throw" arguments and structured exceptions, mostly
inspired with what Julian did in the R6RS layer already.
That's cool!
Thoughts welcome! Also: should these structured error objects be named
exceptions or conditions? SRFI-35, R6RS, and R7RS say "conditions", but
racket and my heart say "exceptions"; wdyt?
I never say "condition" to describe an exception. I always say "exception".
Most other languages use "exception" too. The term "condition" sounds like conditional branching.
Best regards.