@danderson@hachyderm.io
@danderson@hachyderm.io avatar

danderson

@danderson@hachyderm.io

Software developer by day, other kinds of nerd the rest of the time. ADHD says current hobbies are 3D printers, building CNC machines, old computers in space, and general shitposting on whatever grabs my interest.

Nazis, TERFs, other terrible people: please go away, there's nothing for you here.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

danderson, to random
@danderson@hachyderm.io avatar

Really "loving" this learned response I have of finding something that sounds neat, but it's on a podcast so I have to go research the host because there's a significant chance the reason they're podcasting is they're a fascist or sex pest and a self-published podcast is the remaining avenue for "speaking truth to power" or whatever.

Brought to you by: yup, sex pest this time.

danderson, to random
@danderson@hachyderm.io avatar

Having a normal one at the adhd factory again today.

Screen 1: CAD with a partial SNES controller connector, and a dozen reference images for said connector.

Screen 2: MSDS for Americium 241, and related tabs on the limitations of detector technology and calculating exposure (no, I don't have any, and don't intend to acquire any, have not been exposed. Knowing things is just fun).

Screen 3: Common Lisp HyperSpec, open at the definition of RETURN-FROM.

Screen 4: It you, you're in it.

danderson, to random
@danderson@hachyderm.io avatar

Saw Guix described as the closest to a modern Lisp machine there is. It's a niche pitch, but damn if it isn't compelling.

I'd discounted guix system as a post-nixos option because as an unabashed systemd fan, not having it makes the OS materially worse to live with - not to mention that the rich facilities it provides are increasingly required by the nice desktop environments and such.

... But when framed as "it's not lisp, why would a lisp machine run that"...

danderson,
@danderson@hachyderm.io avatar

I expect GNU Shepherd is still going to drive me nuts in terms of how many nice things I'm used to are missing, but there's been at least one release since I last looked, and maybe the trajectory is something I can get behind.

danderson,
@danderson@hachyderm.io avatar

Inside me this morning, there are two wolves apparently:

"Ugh a bunch of software really sucks to run if you're not on vanilla Ubuntu, not sure it's worth being different"

"You know what might make me happier, an OS that is almost but not quite entirely unlike every other linux-based OS, even more than NixOS"

astrid, to random
@astrid@fedi.astrid.tech avatar

/.well-gnome

danderson,
@danderson@hachyderm.io avatar

@astrid don't forget to set out a little bit of your shell history every day for the well gnome! A displeased well gnome is a significant reliability risk, as they tend to install snapd while you're not looking.

danderson, to random
@danderson@hachyderm.io avatar

> Note: anonymous scopes are not considered scopes.

Once again begging people inventing DSLs to just grab a lisp. Guile is embeddable and everything!

danderson,
@danderson@hachyderm.io avatar

And if you then still want a syntax that's "less weird" or whatever, do feel free to write a separate frontend that produces the lisp as an AST, so long as you still let me use the lisp directly.

With lisp as IR, questions like "how do scopes work" already have good answers, and you can focus all your time on new syntax for list comprehensions, while your users can ignore the weird DSL and use the nice lisp directly. Everbody wins!

danderson,
@danderson@hachyderm.io avatar

"We have lists and list comprehension!"

"Cool, and slice notation right?

"..."

"... And slice notation, right?"

Sigh, C-style for loop it is.

danderson,
@danderson@hachyderm.io avatar

@creachadair The two genders of DSL design:

"My main focus was pleasing syntax, hopefully the semantics work out"

"My semantics allow for concise, orthogonal, elegant expression of entire bottle universes. The syntax is a blend of cuneiform and ancient aramaic script, with a few anatolian hieroglyphs (ca. 800BC form, not the legacy typology) thrown in for readability."

danderson,
@danderson@hachyderm.io avatar

@mcdanlj Well, to a degree. The default for many decades now is lexical scope across all lisps. The CL primitive to mark a name as having dynamic binding is even called SPECIAL! :)

If someone grabs a lisp without learning too much, they're very likely to end up with lexical scoping. And if they do go deeper and learn about dynamic bindings, good for them! Maybe they can make use of this powerful concept in their DSL (or maybe decide lisp seems to have thought of a lot, maybe use it directly!)

danderson,
@danderson@hachyderm.io avatar

@mcdanlj Amusingly I thought of dynamic binding as a CL-ish thing, but turns out no, Scheme's had some dynamic variables since R5RS at least, and R6RS+SFRI 39 and R7RS have explicit facilities for the user to create more.

Conventional style of each remains quite different of course, but it's amusing how the surface diffs are being sanded down, leaving only the fundamental lisp-1 vs. lisp-2 schism :)

danderson,
@danderson@hachyderm.io avatar

@mcdanlj yeah TIL also, dynamic scoping is one of those grubby industrially handy things that I'd expected Scheme to rid itself of. But according to the change, Scheme ended up with a few well known identifiers with dynamic binding behavior (for the usual reasons like stdout redirection), and I guess having special cases felt more icky than having a general dynamic binding facility 🙂 and it seems syntactically noisier to use, which I suspect also means it's used less eagerly than in CL.

danderson,
@danderson@hachyderm.io avatar

@mcdanlj weirdly I think the last holdout on dynamic variables is emacs lisp. Lexical scoping was introduced as a per-file opt in with emacs 24, in 2012! Most modern code turns it on, but for compatibility with the untold decades of elisp that came before, you still have to enable it for every new file. Otherwise, surprise! All dynamic.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • thenastyranch
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • ngwrru68w68
  • provamag3
  • magazineikmin
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • anitta
  • Leos
  • tester
  • JUstTest
  • All magazines