3 ms·
Well, if you're aware of that blog post from February, then you should also be aware of all of the work that he and his team have done since then. They're work
by BruceM 12y ago
Well, if you're aware of that blog post from February, then you should also be aware of all of the work that he and his team have done since then. They're working on solving the problems with LLVM and more advanced GC.
As for Dylan, Dylan can use Boehm (and does for now in the C and LLVM backends), which is conservative.
However, Dylan can also use MPS (http://ravenbrook.com/project/mps http://ravenbrook.com/project/mps) which is a much more advanced GC that does copying/compacting and all that. Dylan uses MPS with the compiler backend that generates native code.
The plan is that once the LLVM backend is up and running using Boehm, efforts will be made to get it working with MPS.
Julia uses a home-grown GC, but I'm not familiar with it or its characteristics at all.
- bjourne 12y agoYes I know they are working on solving the issues I've mentioned, but I don't think they are there yet? I wasn't aware of MPS, it looks like a very interesting garbage collector. Do you know if it supports inline bump allocation (no function calls)? I skimmed the docs but couldn't find the answer. The language I'm contributing to (Factor) does that by keeping the nursery pointer in a register so you just ADD to it to allocate memory. To bad about the restrictive license. Is that why there is the Open Dylan exception in it?
- BruceM 12y agoMPS is designed so that allocation can be very fast in the common case as long as the interface to the collector in the compiler and run-time is done well. They are willing to talk to people about the licensing. They're nice folks, although often pretty busy. CLASP supports using both MPS and Boehm as well. As for the Open Dylan exception ... yes. But the other thing to understand there is that both MPS and what is now Open Dylan were developed at Harlequin in the 1990s and MPS's original "client" was Open Dylan.
- bjourne 12y agoSo if another compiler wanted to use MPS in their runtime, they couldn't, unless binary distribution of programs compiled with that compiler was forbidden? I'm not a license wonk by any means, but it seems to me that programs compiled with CLASP themselves need to be gpl:ed since CLASP itself is.
- klipt 12y ago> it seems to me that programs compiled with CLASP themselves need to be gpl:ed since CLASP itself is. Why? GCC is GPL'd but plenty of people use GCC to write non-GPL code...
- bjourne 12y agohttps://www.gnu.org/licenses/gcc-exception-3.1.html https://www.gnu.org/licenses/gcc-exception-3.1.html