Didn't one of the Elbrus CPUs have an x86 translation layer in hardware? Trying to get that to execute code at reasonable speeds, Transmeta style, to use as a replacement to western-supplied hardware wherever you have an explicit need for x86 wouldn't sound particularly far-fetched to me, if I didn't know so little about what's going on within Russia.
Seems to be this[1] guy, which you can find out by skulking around an older snapshot of his website from the Wayback Machine, where he displayed his real name within the footer on every page, and went by a slightly different username up to seemingly as late as April this year. Maybe a rather poor attempt at dissociating his real identity from the website somehow? (on second thought, he still links to the webpage from his GitHub profile, so that wouldn't make much sense, I think. Hmm.)
9front, seemingly Plan 9's de-facto successor, is almost surely quirky, often whimsical, at times nostalgic. It might even be functional, depending on how you define that[1]. Is actively developed, has a vibrant community. Puts an interesting spin on how you lay out systems, but doesn't diverge much from the Bell Labs formula. I'd certainly recommend giving it a shot, for the UNIX-inclined.
[1] I've daily driven it back in high-school, for all that's worth. Wrote assignments in troff and all. Some people might be able to tell of less mundane success stories as well.
I tried Plan9 as a minimalist desktop. I soon realised that three-button mouse chording isn't doable in this decade, and wish someone had written a Platinum-like window manager to replace rio.
Not entirely on topic, but it is such a pleasant touch to see the titles for the properties displayed before the shell all lining up just by word choice alone. I've seen people who pad out code comments like that; it has this rather capricious, sculpture-like feeling to it.
It's mostly checking Gestalt() and scanning the unit table for specific graphics drivers, occasionally peeking in low memory. (My own v68k core identifies itself through undefined CCR bits in the CHK instruction.)
Have a look at tools/mac/system-info/system-info.cc and mac/libs/mac-sys-utils/mac_sys/has/virtualization.hh in the metamage_1 repository.
I think one of the reasons recursion is often emphasized in relation to Lisp is because one of Lisp's core data structures, the linked list, can be defined inductively, and thus lends itself well to transformations expressed recursively (since they follow the structure of the data to the letter). But recursion in itself isn't something particularly special. Though it is more general than loops, and so it is nice to have some grasp on it, and how looping and iteration relate to each other, and it is often easier to reason about a problem in terms of a base case and a recursive case rather than a loop, at a higher level you will usually come to find bare recursion mostly counterproductive. You want to abstract it out, such that you can then compose your data transformations out of higher level operations which you can pick and match at will, APL-style. Think reductions, onto which you build mappings and filters and groupings and scans and whichever odd transformations one could devise, at which point recursion isn't much more than an implementation detail. This is about collections, but anything inductive would follow a similar pattern. Most functional languages will edge you towards the latter, and I find Lisp won't particularly, unless you actively seek it out (though Clojure encourages it most explicitly, if you consider that a Lisp).
>the pleasantness of being able to get 'inside' the program
Indeed, that's one of the things makes Common Lisp in specific particularly great (and it is something other contemporary dialects seem to miss, to varying degrees). It lets you sit within your program and sculpt it from the inside, in a Smalltalk sort of way, and the whole language is designed towards that. Pervasive late-binding means redefining mostly anything takes effect pretty much immediately, not having to bother recompiling or reloading anything else depending on it. The object system specifies things such as class redefinitions and instance morphing and dependencies and so on, such that you can start with a simple class definition, then go on to to interactively add or remove slots, or play with the inheritance chain, and have all of the existing instances just do the right thing, most of the time. Many provided functions that let you poke and prod the state of your image don't make much sense outside of an interactive environment.
There is a point to be made about abstraction, maths, and giving instructions to silicon (and metaprogramming!), but I'll have to pass for now. I apologize if this is too rambly, I tend to get verbose when tired.
> I think one of the reasons recursion is often emphasized in relation to Lisp is because one of Lisp's core data structures, the linked list, can be defined inductively
Lisp was used in computer science education to teach "recursion". We are not talking about software engineering, but learning new ways to think about programming. That can be seen in SICP, which is not a Lisp/Scheme text, but a computer science education book, teaching students ways to think, from the basics upwards.
Personally I would not use recursion in programs everywhaere, unless the recursive solution is somewhat easier to think about. Typically I would use a higher order function or some extended loop construct.
"If a revolution destroys a systematic government, but the systematic patterns of thought that produced that government are left intact, then those patterns will repeat themselves in the succeeding government." - Robert Pirsig, Zen and the Art of Motorcycle Maintenance
Though I don't know enough about Chinese politics to tell how much the quote actually fits.
Born and raised and stuck here, I can tell you that it absolutely fits. It is kind of a vicious cycle, the government breed ignorant people and these people cultivate the ruthless authoritarian regime continuously. But I do believe history is on an upward trajectory, just with some twists and turns, or "spirals" as the people here call it. The problem is that maybe few of the people alive will live long enough to reap the benefit of it.
> People on the side of The People always ended up disappointed, in any case. They found that The People tended not to be grateful or appreciative or forward-thinking or obedient. The People tended to be small-minded and conservative and not very clever and were even distrustful of cleverness.
> And so the children of the revolution were faced with the age-old problem: it wasn't that you had the wrong kind of government, which was obvious, but that you had the wrong kind of people.
Reminds me, some fortunes on LAMBDA.TXT[1] seem to hint at the existence of an "Alice's LispM", seemingly a parody on the PDP-10 version, but a quick search for it doesn't seem to come up with much (I haven't looked very hard). Does anybody know anything about this?
Oh yes, I love that one -- it inspired me to become a Window System Hacker, and write the ugly and nasty and horrible and kludgy "Bouncy pushy window mixin", which made the windows bounce all around the screen!
There was all kinds of mean, nasty, ugly-lookin' people on
the bench there ... there was Microcoders, DPL hackers, File System
hackers, and Window System Hackers!! Window System hacker sittin'
right there on the bench next to me! And the meanest, ugliest,
nastiest one... the kludgiest Window System hacker of them all... was
comin' over to me, and he was mean and ugly and nasty and horrible and
all kinds of things, and he sat down next to me. He said, "Kid, you
get a new copy of the sources?" I said, "I didn't get nothin'. I had
to rebuild the world load."
He said, "What were you arrested for, kid?" and I said,
"Littering..." And they all moved away from me on the bench there,
with the hairy eyeball and all kinds of mean, nasty things, 'til I
said, "And making gratuitous modifications to LMIO; sources..." And
they all came back, shook my hand, and we had a great time on the
bench talkin' about microcoding, DPL designing, file-system hacking,
... and all kinds of groovy things that we was talkin' about on the
bench, and everything was fine.
We was drinking Coke smoking all kinds of things, until the
RA came over, had some paper in his hand, held it up and said:
"KIDS-THIS-EXAM-S-GOT-FOURTY
SEVEN-WORDS-THIRTY-SEVEN-MULTIPLE-CHOICE-QUESTIONS
FIFTY-EIGHT-WORDS-WE-WANT-TO-KNOW-THE-DETAILS
OF-THE-HACK-THE-TIME-OF-THE-HACK-AND-ANY
OTHER-KIND-OF-THING-YOU-GOT-TO-SAY
PERTAINING-TO-AND-ABOUT-THE-HACK-ANY-OTHER
KIND-OF-THING-YOU-GOT-TO-SAY-WE-WANT-TO-KNOW
THE-ARRESTED-PROCESS'-NAME-AND-ANY
OTHER-KIND-OF-THING..."
And he talked for forty-five minutes and nobody understood a word that
he said. But we had fun rolling the mice around and clickin' on the
buttons.