3 ms·
> Guile has multiple dispatch as part of GOOPS A feature which is 30 years old. What I was referring to is how multi-methods SPECIFICALLY are designed & imple
by lispm 9y ago
> Guile has multiple dispatch as part of GOOPS
A feature which is 30 years old.
What I was referring to is how multi-methods SPECIFICALLY are designed & implemented in Julia, not multi-methods as such. The Julia implementation of multi-methods looks 'modern' in the context of Lisp.
- shakna 9y ago> designed & implemented in Julia Scheme specifically doesn't specify how something should be implemented, just the result. > The Julia implementation of multi-methods looks 'modern' in the context of Lisp. Does it? Guile's methods are generic functions, like in CLOS, and get JIT'd like with Julia. And the dispatch, being based on the given arguments, rather than the given object, is identical. If no qualifier is given for an argument, Guile treats it similarly to Julia's Any. Julia and Guile eliminate runtime-dispatch in a similar way.
- lispm 9y ago> Scheme specifically doesn't specify how something should be implemented, just the result. Then people implement it. Developers then choose the implementation based on the capabilities of those. > Guile's methods are generic functions, like in CLOS, and get JIT'd like with Julia Julia uses generic functions throughout and it has a JIT. Guile uses Goops almost nowhere and a JIT is not released. If one would remove Goops from Guile, would anyone notice? That's what the manual shows: a collection of unrelated/unused features.
- shakna 9y agoI've adapted to your (unusual) definitions. I asked what you would wish to see, and then provided it. I've teased details out of your sentences that are more implication than statement. You're constantly shifting the bar for what would answer the original question, "Is Guile a modern Scheme?" I'm bored of it. So, I'll spell out a few more things, and then you can happily say you've won the argument. > Then people implement it. Developers then choose the implementation based on the capabilities of those. I said the Scheme specification was modern. This seems irrelevant to that statement. If it's about Guile instead, the details are available, though it doesn't seem that you have read them. > Julia uses generic functions throughout and it has a JIT. Guile uses Goops almost nowhere and a JIT is not released. Patently false. Guile has had a JIT since 2.0.0. [0][1] I should note that was in 2011, six years ago. > If one would remove Goops from Guile, would anyone notice? If I were to remove pattern matching from Clojure would anyone notice? Now allow me to complain that usage somehow is equivalent to integration. > That's what the manual shows: a collection of unrelated/unused features. Let me quote someone else from this thread: > ...The Common Lisp spec is quite a bit more modern than 1958 ... it's a well-crafted ANSI standard. It does suffer from backwards-compatibility... [2] Seems Common Lisp also has that problem... And you don't have a problem with it. [0] http://lists.gnu.org/archive/html/guile-devel/2011-02/msg00173.html http://lists.gnu.org/archive/html/guile-devel/2011-02/msg001... [1] https://github.com/noahl/guile-jit https://github.com/noahl/guile-jit [2] https://news.ycombinator.com/item?id=15281652 https://news.ycombinator.com/item?id=15281652
- lispm 9y ago> I said the Scheme specification was modern. It's the same old Scheme, repackaged. > Patently false. Guile has had a JIT since 2.0.0. [0][1] That's simply not true. It's not in the 2.0.0 release. What you point to is experimental & abandoned code. There is a new JIT called Nash for Guile, but it's also not in the released version. https://www.youtube.com/watch?v=JM1uU07xMQs https://www.youtube.com/watch?v=JM1uU07xMQs > Now allow me to complain that usage somehow is equivalent to integration Search through the Guile code. Goops is almost nowhere used. How can it be integrated?
- shakna 9y agoProclaim thyself victor, oh stubborn one. Evidence falls on deaf ears.