10 ms·
SBCL: A Sanely-Bootstrappable Common Lisp (2008) [pdf]
- praptak 7mo agoSBCL seems pretty actively developed. A proposal for coroutines implementation appeared recently and AFAIK it is being actively discussed and improved upon.
- geospeck 7mo agoDo you have a link to the proposal and the discussion? I am quite interested to see the implementation details. Thanks!
- Antibabelic 7mo agoHere's an SBCL coroutines talk at the European Lisp Symposium from 2024: https://www.youtube.com/watch?v=S2nVKfYJykw https://www.youtube.com/watch?v=S2nVKfYJykw
- praptak 7mo agoYeah, so I believe that this proposal kind of petered out at proof of concept phase but the author of the one being discussed references it.
- yacin 7mo agoit came up in the SBCL mailing list as well, and its author has been commenting there as well. seems like it has some legs! would be a very nice feature to have.
- praptak 7mo agoIt's on the devel mailing list: https://sourceforge.net/p/sbcl/mailman/sbcl-devel/thread/CAF5LJ4AQp54Ze8orw1O9W4buvXp4N8uG%3DOEv0bfvjRe1JSYXug%40mail.gmail.com/#msg59302350 https://sourceforge.net/p/sbcl/mailman/sbcl-devel/thread/CAF...
- atgreen 7mo agoI'm the author. https://atgreen.github.io/repl-yell/posts/sbcl-fibers/ https://atgreen.github.io/repl-yell/posts/sbcl-fibers/
- ivanb 7mo agoThis is fantastic! Godspeed.
- gibsonf1 7mo agoIncredible! Is this ready for at scale production use?
- atgreen 7mo agoNo. I have yet to propose the patches formally. The SBCL maintainers are reviewing the high-level proposal (on my blog) first. You can try the implementation, however. There's a pointer to the repo/branch on my blog. I need to build a proper benchmarking framework and publish some real numbers that people can reproduce before I am confident enough to submit the patches for review. Let me know if you try it out. I would love some feedback (via github)
- TurboHaskal 7mo agoAnd arena support, and a parallel GC... there's always something exciting and promising coming up. The proprietary implementations are also quite good.
- pjmlp 7mo agoTo note that you will find arena like stuff on old Lisps, like those from Xerox, TI and Genera.
- cardanome 7mo agoArena support would make it amazing for game dev. Yes please!
- vindarel 7mo agoTo be clear, we can talk in present tense: https://github.com/sbcl/sbcl/blob/master/doc/internals-notes/arena-allocation.txt https://github.com/sbcl/sbcl/blob/master/doc/internals-notes... discussion (2023): https://news.ycombinator.com/item?id=38052564 https://news.ycombinator.com/item?id=38052564
- krishSingaria 7mo agoI am learning scheme(dr racket), which is i think derived from lisp, what is this actually used for and do people build anything with lisp???
- mkreis 7mo agoScheme is mostly used for teaching, but there are many production applications out there written in Lisp (Emacs for example). Also I'd like to mention Clojure, which is "lispy" and used by big cooperations.
- e12e 7mo agoCurrent racket is running on top of chez scheme - which is maintained by Cisco - and reportedly extensively used in commercial products (router firmware/os etc). https://cisco.github.io/ChezScheme https://cisco.github.io/ChezScheme
- drob518 7mo agoIt was brought into Cisco to do that but the project was eventually shelved, which was a shame because the prototypes delivered some really interesting reliability features. Most Cisco hardware products run firmware written in C. Management systems are often Java and (increasingly) Go. Clojure is used for one of the security product lines, but that was developed as a startup that was later purchased by Cisco. One of the management systems, NSO, is written in Erlang (brought in through the tail-f acquisition). There are certainly a lot of people in Cisco that understand the power of Lisp (I was one), but they are spread out and surrounded by people that just want to push whatever the latest thing is (now Go). C.f. the blub paradox and “worse is better.” They have a lot of legacy code that was written over the last 30 years that powers their devices, and that’s all in C.
- mapcars 7mo agoI used a few different lisps for pet projects and honestly today for me the biggest problem of lisps is the typing. ADTs (and similar systems) are just super helpful when it comes to long term development, multiple people working on code, big projects or projects with multiple pieces (like frontend+backend) and it helps AI tools as well. And this in not something lisps explored much (is there anything at all apart from Racket/typed dialect?), probably due to their dynamic nature. And this is why I dropped lisps in favour of Rust and Typescript.
- larsbrinkhoff 7mo agoJonathan Blow: "It’s about a compiler written in Python FFS."
- phtrivier 7mo agoMissing the joke here. The pdf if about a Common Lisp compiler, written in Common Lisp, C, and assembly for good measure.
- bmacho 7mo agoSeems some rando posted something factually false on twitter, got corrected and apologized.
- Antibabelic 7mo agohttps://x.com/Jonathan_Blow/status/2028906867368550563 https://x.com/Jonathan_Blow/status/2028906867368550563
- larsbrinkhoff 7mo agohttps://twitter.com/Jonathan_Blow/status/2028903268265672728 https://twitter.com/Jonathan_Blow/status/2028903268265672728
- nilamo 7mo agoIs there any way to see the whole conversion, and not one specific reply in the middle of it?
- yacin 7mo agoa little bit more: https://xcancel.com/Jonathan_Blow/status/2028906867368550563 https://xcancel.com/Jonathan_Blow/status/2028906867368550563
- blenderob 7mo agoHere you go: https://nitter.net/Jonathan_Blow/status/2028906867368550563 https://nitter.net/Jonathan_Blow/status/2028906867368550563
- vindarel 7mo agoPreviously: SBCL (16 days ago) https://news.ycombinator.com/item?id=47140657 https://news.ycombinator.com/item?id=47140657 (107 comments) Porting SBCL to the Nintendo Switch https://news.ycombinator.com/item?id=41530783 https://news.ycombinator.com/item?id=41530783 (81 comments) An exploration of SBCL internals https://news.ycombinator.com/item?id=40115083 https://news.ycombinator.com/item?id=40115083 (106 comments) Arena Allocation in SBCL https://news.ycombinator.com/item?id=38052564 https://news.ycombinator.com/item?id=38052564 (32 comments) SBCL (2023) https://news.ycombinator.com/item?id=36544573 https://news.ycombinator.com/item?id=36544573 (167 comments) Parallel garbage collection for SBCL [pdf] https://news.ycombinator.com/item?id=37296153 https://news.ycombinator.com/item?id=37296153 (45 comments) SBCL 2.3.5 released https://news.ycombinator.com/item?id=36107154 https://news.ycombinator.com/item?id=36107154 (31 comments) Using SBCL Common Lisp as a Dynamic Library (2022) https://news.ycombinator.com/item?id=31054796 https://news.ycombinator.com/item?id=31054796 (67 comments) etc
- pfdietz 7mo agoHacker News now runs on top of Common Lisp https://news.ycombinator.com/item?id=44099006 https://news.ycombinator.com/item?id=44099006 (435 comments) (this was mentioned below but repeated here)
- anonzzzies 7mo agoSBCL is lovely and very well optimised. Been using it for many personal projects as it just works and it is so easy to work with and debug. I cry a lot when I have to use 'modern' things. But those make money, they are just far worse.
- meken 7mo ago> Current Common Lisp implementations can usually support both image-oriented and source-oriented development. Image-oriented environments (for example, Squeak Smalltalk) have as their interchange format an image file or memory dump containing all the objects present in the system, which can be later restarted on the same or distinct hardware. By contrast, a source-oriented environment uses individual, human-readable files for recording information for reconstructing the project under development; these files are processed by the environment to convert their contents into material which can be executed. Am I reading this right that people can (and do??) use images as a complete replacement for source code files?
- dfox 7mo agoAll the magic of Smalltalk is in the development tools that work by means of introspection into the running image, writing source code in text files causes you to lose all that. Add to that the fact that Smalltalk when written as source files is quite verbose. Smalltalk does have standard text source file format, but that format is best described as human-readable, not human-writable. The format is essentially a sequence of text blocks that represent operations done to the image in order to modify it to a particular state interspersed with "data" (mostly method source code, but the format can store arbitrary stuff as the data blocks). One exception to this is GNU Smalltalk which is meant to be used with source files and to that end uses its own more sane source file syntax.
- meken 7mo agoFascinating. Thanks for the explanation.
- tzot 7mo agoMaybe you understood image as in photo-image instead of image as in memory-image (like disk-image); a glorified memory dump, more-or-less.
- meken 7mo agoI understood it as the latter.
- rusakov-field 7mo agoAs someone who fell in love with Lisp with Scheme and SICP, I think I agree with the push for minimalism and a bit dubious about the changes in Lisp-2 ... Is that only a recency bias ? Because I learned Scheme first ? When I try CL I find my mind resisting some things due to purely elegance reasons. If someone put a gun to my head and asked me for a deliverable quickly I will go with CL to save my life of course, but for my own personal pleasure I will always prefer Scheme.
- tmtvl 7mo agoAs someone who also first got introduced to Lisp through SICP and Scheme, I don't really care about Lisp-1 versus Lisp-2, but I don't much fancy minimalism. I switched to CL for the type declarations and just got used to funcall and number sign+apostrophe; and minimalism means the things a larger language would provide out of the box (say, hash tables) you either need to write yourself or find a library for. Hence why various Schemes (Guile, Gauche, Chicken) have a ton of libraries beyond the standard. In fact, I'd say CL is too minimalist, hence CLDR (a bit like SRFIs) and various libraries which form a sort of unofficial extended core (Alexandria, Bordeaux threads, CL-PPCRE,...)
- sl_convertible 7mo agoBut there's a value in having a defined, stable language definition. Being able to rely on the basic language not changing is a feature, not a bug. Though it does mean you have to sometimes search for a good lib if you don't have a feature built into the language.
- tmtvl 7mo agoDid you respond to the wrong comment? My comment said nothing about language permanence, though I would say that some measure of evolution can sometimes be for the better. I doubt many people would prefer programming in Java 1.4 over Java 21.