6 ms·
Steel Bank Common Lisp 2.3.5 released
- vindarel 3y agoFor those who didn't follow, some news from 2022: - SBCL is now callable as a shared library - SIMD support - faster (de)compression with zstd - TRACE supports tracing macro functions, compiler-macro functions, individual methods and local functions (flet and labels) - the SBCL repository reached 20,000 commits. - Prebuilt SBCL binary for Android (Termux) (unofficial) https://lisp-journey.gitlab.io/blog/these-years-in-common-lisp-2022-in-review/#implementations https://lisp-journey.gitlab.io/blog/these-years-in-common-li...
- ravi-delia 3y agoSIMD support is huge, and if you're willing to do a little hacking (SBCL is very easy to extend) you can even use it without the intrinsics
- thoi23u4o3434 3y agoIn fairness, "SIMD support" is not exactly "the compiler can reduce code to AVX instructions" but more like "you can now write non-portable custom assembly-like code to make your code faster".
- smegsicle 3y agobut i assume a somewhat nicer interface than the internal VOP intrinsic stuff that sbcl has always had
- rice7th 3y agoStill better than no SIMD at all imo
- koito17 3y agoYup. I used to use Clozure CL all the time, but since the code I write tends to involve lots of number crunching, SB-SIMD and Loopus are indispensible. Even before SB-SIMD, SBCL has always seemed like the best Common Lisp implementation for any arithmetic. Or at least this seems to be case when you benchmark CCL against it :)
- ravi-delia 3y agoThat's what I mean by "willing to hack"! Getting the compiler to use SIMD instructions is actually pretty easy- you just specify where to use them and let it handle them. Then you pinky promise that your array really is made of floats and turn safety off.
- dmpk2k 3y agoI haven't looked in a while, so I'm wondering what SBCL's GC latency profile is like nowadays. IIRC, it used to be a non-incremental STW conservative GC, which is a bit unfortunate.
- jjtheblunt 3y agoThis might align with your interest, from 2023. https://applied-langua.ge/~hayley/swcl-gc.pdf https://applied-langua.ge/~hayley/swcl-gc.pdf
- dmpk2k 3y agoThank you!
- nickpsecurity 3y agoWhich is itself based on Immix which was really neat: https://www.cs.cornell.edu/courses/cs6120/2019fa/blog/immix/ https://www.cs.cornell.edu/courses/cs6120/2019fa/blog/immix/
- jjtheblunt 3y agoCool!
- vindarel 3y agoIt's at least good enough to release a game on Steam. Here's an experience report: https://raw.githubusercontent.com/Shinmera/talks/master/els2023-kandria/paper.pdf https://raw.githubusercontent.com/Shinmera/talks/master/els2... (https://kandria.com/ https://kandria.com/) > Overall we have needed to do surprisingly little actual performance analysis and optimisation work to make Kandria run well. This is definitely in large part thanks to SBCL’s quite good native code compiler and type inference systems, and the prior work we’ve done to design critical libraries to not be completely obscene in terms of their performance characteristics. > […]
- Archit3ch 3y agoFollow-up question: is there a way to "freeze" the GC? As in, I've done all my allocations, now I want to run a main loop uninterrupted, and force clean up inside at_exit().
- reikonomusha 3y agoFor such a small team developing SBCL, it has been hugely stable, consistent, and advancing for years. SBCL has many ways it could improve, but it definitely exceeds most bars of quality for serious—even commercial—projects.
- tmountain 3y agoThese kind of projects always impress me. Is it commercially backed or just a labor of love for the maintainers?
- reikonomusha 3y agoIt's a mix of volunteer work, contract work, and contributions from paid employees. Google historically has been a big contributor since they use SBCL for Google Flights.
- mepian 3y agoWasn't ITA Software using CCL before their acquisition by Google? I wonder why they switched to SBCL. Right now CCL seems to be rather understaffed but this wasn't the case when they switched, as far as I know.
- ratzkewatzke 3y agoBack in 2009, before the acquisition, a developer ITA software presented at the SBCL workshop (audio here: http://www.sbcl.org/sbcl10/materials/cracauer-talk.ogg http://www.sbcl.org/sbcl10/materials/cracauer-talk.ogg), talking about the company's use of SBCL. They'd also talked about using CCL; the last I heard was that they used one on desktops, the other in prod deployments.
- eep_social 3y agoCCL was primarily used for another project, and the decision to do so was dramatic and made many people unhappy. This thread has some juicy details from the time: https://news.ycombinator.com/item?id=911163 https://news.ycombinator.com/item?id=911163