The Unofficial Programming Thread

A meeting room for Black Knights to discuss topics that don't fit into any of the other subforums.
User avatar
RadioHades Offline
Reactions: 25
Posts: 34
Joined: Sun Jun 07, 2026 2:54 pm
Location: France
Website: https://world-playground-deceit.net/
Waifus: 0

Re: The Unofficial Programming Thread

Post by RadioHades »

dokyun wrote: Mon Jul 06, 2026 6:15 pm
Funny thing is, CL actually has this too, though it's a bit of an obscure feature: you can pass :DISPLACED-TO and :DISPLACED-INDEX-OFFSET as options to MAKE-ARRAY to make an indirect array that points to a slice of an existing one. When I was looking at Go's docs and they start talking about slices, I was all like "Oh yeah, that's like indirect arrays".
Yes, you're right. Though the combination of displaced arrays and VECTOR-PUSH[-EXTEND] is a bit more specified. Even cooler (though you probably know about it) is the feature that CL didn't get from LispM: conformal displacement.
The only place I've seen this feature used is in the LispM's Chaosnet NCP, where it uses it to make an 8-bit-byte mirror of the packet arrays, which themselves are stored as 16-bit-byte arrays. Modern CL won't let you munge the types like that, so for my port I had to use Mezzano's own memory-indirect arrays to ignore it; I also had to replicate it allocating the packets into an area where they won't get GC'ed.
Huh, interesting tidbit! Indeed, one would have thought CL would have something near C's union concept, but that was a bit too dirty for them, I guess.
Plan 9 from Bell Labs. Sun said The Network Is The Computer. Plan 9 actually took it to heart, and it's a goddamn delight to use. Like Lisp Machines it's a true hacker's system, but unlike them you can run it on actual hardware and there's an actively developed fork of it. When I get into self-hosting stuff I plan on building out a grid of 9 machines to actually do the stuff, I can run linux boxes from a ramfossil that's backed up by Venti rootscores.
You're preaching to the choir, I love most of Plan 9 and the features Linux got from it (UTF-8, bind/union mounts and per process filesystem namespaces for /dev/stdin, /proc/self and co.); would love to switch from NFS to 9P2000[.L] but I worry about the maturity/performance.

I just don't like their boner for the mouse in ACME. Good ol' Emacs (or Climacs, one day) for me.
Yeah, I never got why people were so hot and horny for Scheme's hygenic macros: traditional macros are like half of what makes the whole damn format so flexible.
Academics got the last word over programmers in this case, nothing more, nothing less.
LOOP is just a crufty shortcut someone hacked up from the MIT days and I'm honestly fine with that, no one's forcing you to use it. I think it's funny that a couple of the popular replacements for LOOP are basically just the same thing as LOOP but with more parens. I use DO more often anyway.
Eh, looking like Lisp, not duplicating IF/WHEN with a strange syntax and not requiring DO to integrate with the host language is already a big plus. It's no coincidence ITERATE is one the most popular systems ever.
Personally, while I'm still using ITERATE when stuff doesn't fit neatly into a single DO-X macro, I'm getting ready to switch to STAR + separate collect macros.
Yeah, I want a better coroutine interface. Every implementation has threads and there's BT2 and all that, but it's barebones shit: when you have a sane communication model you shouldn't need to fuck around with locks and mutexes. What I want is CSP, basically, and part of my plan when I'm done with Go is to come back to CL with a more cultured outlook and give it Go-styled CSP and coroutine management.
Nobody fucks around with mutexes/condvars, though, since we either got LPARALLEL.QUEUE or SB-CONCURRENCY for faster SBCL-only stuff.
I also agree that the message passing queue paradigm is the only generalist one that's easy to reason with for multithreaded stuff.
I also want better networking and ways to use streams (for all the different ways CL gives you to plumb streams together, simply just trying to use them as network pipes in my experience fails epically and that's pretty bad in general, especially for the kind of stuff I wanna do), I can take a page out of Go for those as well, I think.
No experience with that but USOCKET is considered quite robust these days.
There's definitely a lot of cool shit going on. I heard SBCL is supposed to be getting lightweight threads soon
Don't count on it, it was vibe-prototyped and dumped on the mailing list just like that.
1 Image
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest