Thanks for noting this. We are so accustomed to reading comments as of a point in time, but their meaning is also impacted by when they are made. In this case, a future historian may draw a different conclusion had they not seen your clarifying post. Whereas now it confirms that the community viewed it as a good thing, and HN also agreed steadfastly.
I just bought a Lenovo laptop and wiped Windows off it / installed Linux for the first time.
As largely a newcomer to Linux, it was very smooth. Had some issues getting the wifi to work, but once that got resolved, everything has been super smooth. I must admit there is a bit of a learning curve, i didn’t fully appreciate the differences between the various distributions.
Shame that an indie company who is actively selling linux machines, can’t have them working off the bat. That’s unacceptable
The biggest issues I've had with this on Lenovo laptops have been uefi based. Of course the Lenovo uefi isn't exactly great regardless of your OS choice.
System76 is really the only option making both the hardware and maintaining their own Linux distro but then you're still left with a Linux distro...
True. But I think HN is simply a constant few notches above the baseline of the Internet. As the Internet is "sinking", so is HN.
Plus, you can actually have a good discussion here. Somehow the community knows to completely shut off any kind of "me too", "this is awesome", or other useless comments.
HN is so much higher in quality compared to most places. Yes, there's a lot of 'programmer porn' links, but there are also tons of in-depth discussions.
On linux you can still install with homebrew[1], but if you prefer you can install from source as well. Follow the installation instruction for installing Go, maybe your distro has a preferred way. Then you can clone the repo and either 1. install the binary with `go install` (make sure $GOPATH/bin in in your path variable) or 2. run with `go run main.go`.
On a side note, I am looking for help to add `clx` to linux package managers.
cons is a recursive data structure. it’s not discussed much here in the comments, but a lot of its useability comes from that fact - you can write elegant recursive algorithms with cons as your data structure
with vectors that doesn’t work UNLESS you add a bit of overhead (which most optimising programs may do since for many cases vectors can be more performant)
And some Lisp implementations optimize some cons lists into vectors. The technique is called CDR encoding[1]. It's my understanding that at least the latest generation of modern CPUs actually have optimized instructions for tagged 64 bit pointers too, so this can be implemented efficiently on current hardware just as it was on Lisp machines! Of note though is that mutability complicates things, as usual.
> In the presence of mutable objects, CDR coding becomes more complex. If a reference is updated to point to another object, but currently has an object stored in that field, the object must be relocated, along with any other pointers to it. Not only are such moves typically expensive or impossible, but over time they cause fragmentation of the store. This problem is typically avoided by using CDR coding only on immutable data structures.
This is exactly what I've been saying. Thank you for providing a formal reference to the idea.
(I'm a bit confused how we wound up talking past each other, since my original proposal was identical to CDR coding on immutable cons cells.)
It's just that since decades Lisp implementations don't do this, since most implementors don't see it providing much advantage (in speed or size) and it complicates the implementation.