For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | hencq's commentsregister

What a great writeup! I really enjoyed reading the whole process and problem solving approach. This is why I come to Hacker news.

I studied in Trondheim for a semester and learned some Norwegian. Whenever I didn't know a word, I just pronounced the Dutch or English word in a 'Norwegian way'. Most of the time people didn't even blink. So much so that I'd then ask them if the word I just used existed and invariably the answer was that that was the correct word.

I think the website does an amazing job explaining it, but it basically takes an interpreter written in C and turns it into a JIT with minimal changes to the code of the interpreter (i.e. not to the code of the program you're running in the interpreter). For example they took the Lua interpreter and with minimal changes were able to turn it into a JIT, which runs Lua programs about 2x faster.

I bought Crumpler messenger bag about 15 years ago (in San Francisco when they still had a store there). Can confirm it’s indestructible. I’m glad to hear they’ve kept up their standards to this day!

Just had a look and seems that you can get a pretty decent range of pre-owned crumpler bags on eBay and similar. Worth a look.

I also remember how frustrating and depressing it was that they wouldn’t allow foreign teams to help with the rescue effort. At the time it was clear that the Russians lacked the capabilities to do it. I also think in hindsight it was a sign how little interest Russia had in being part of the West.

You should look into the history of the 90s again.

Russia opened up to the West in a big way in the first half of the decade, and worked with NATO and the UN in the first half of the Bosnian war.

The result was... A complete collapse of the domestic economy, and a second half of the Bosnian war where NATO no longer felt like it needed to get Russia on board to do whatever it wanted in the region.

The degradation of this relationship was not the fault of a single party. Clinton and Yeltsin (an utter turd of a man) worked hard to have a productive relationship, but then Bush gets elected and takes a more... Unipolar view of the world. As does Putin.


I looked into the history of the 90s again. The collapse of the domestic Russian economy was 100% their own fault. If they had simply accepted their place as a second-rate power under US hegemony (something like France) then everything would have been fine and they would be far more secure and prosperous today.

> The collapse of the domestic Russian economy was 100% their own fault.

It was.

But that doesn't matter - the result was incredible misery and ruin for the country, and it drove reactionary, anti-western sentiment, kind of like how reactionary sentiment over $3 eggs drove Americans to flip the table and rally behind Trump II.


Early in the Bush administration, at least, there was continuing approchement. Bush was mocked for saying something like "I looked into his [Putin's] eyes, and I trust him". I don't remember enough about the early GWOT days to pinpoint the particulars of the falling out, but I do remember thinking that there were areas of cooperation not being pursued. Like, could Russia have been brought along into Afghanistan? I thought that at the time, though I'm not sure how it looks 25 years later. Like you, however, I doubt that Russia's eventual (and justified, mind you!) current stance and status was written into stone.

> Like, could Russia have been brought along into Afghanistan?

It pretty much was. Afghanistan was a UN-sanctioned war, and Russia did not object to it from its position on the UNSC - and provided support for the invasion.

Iraq (Three permanent UNSC members voted against it), on the other hand, was a clear indication that the rules-based world is a sham and a scam... And that the only rule that matters is 'Fuck you, make me.'

You know how Trump is criticized for pursuing idiotic short-term gains that torpedo long-term trust and legitimacy? That was also the real, lasting legacy of Bush II's first term. Anyone playing by the rules is a fool.


I think ours had a turbo button that would double/half the clock speed. Good times indeed :)


I seem to recall that the turbo button didn't come along until the 80286, but some of the PC clones had them before that.

My 486 definitely had a turbo button (that was the one I built after using the original PC for so many years).


The Turbo button worked wonders for Tetris. You start it with turbo turned on, so Tetris adjusts to the computer’s speed - but it only does this once, at startup. As soon as the blocks start falling, you turn the turbo off, and now your Tetris runs at half speed. I even managed, a few times, to roll over a score of 32,768 (ah, those signed integers).


AFAIK no first-party IBM PC ever had a turbo button, only clones, and my only personal recollection of pre-286 clones running significantly faster than 4.77 MHz were the Compaq Deskpro and AT&T PC 6300.

I don't know about the PC 6300 — I only ever used it to run Aldus PageMaker, which, running under Windows on an 8086, could use all the speed it could get — but the Deskpro had a keystroke combination to switch between native and compatible speeds rather than a button.


Hmm, maybe my memory is betraying me. I remember our first family computer was an XT and then later we had a 386. Maybe I'm misremembering and it was the 386 that had the turbo button or maybe the earlier one was a clone. My first own PC was a 486 as well that I built together with my dad. Good memories.


I think there's something to this. And while America has always had this can-do attitude (just look at the number of self help books), it does seem to be in another gear recently. I don't know what caused it, but I think there have been a number of indicators: Trump ignoring Congress and introducing wild tariffs, Musk firing half of Twitter's staff and then later repeating this with DOGE, the quick roll-out of LLMs. There seems to be this prevailing attitude of "we can just do stuff, damn the consequences".

It appears to come with a lot of corruption and anti-intellectualism. Like you say there are also benefits to this. I think the break through of mRNA vaccines was an early indicator. I just hope we can steer this attitude back to a more optimistic world-view instead of the blatant self serving one that is currently prevailing.


A friend of mine used to once a year hang all his shirts with the open end of the cloth hangers' hooks facing forward. After wearing and washing them he'd hang them back with the hanger facing the other way. After a year he'd toss out any shirts that were still facing the original way and had thus not been worn.


I’ve gotten rid of a lot of clothing in the past 18 months. I bring a very limited amount of specific clothing traveling, don’t fuss much around the house, local hikes, the theater now and then etc. I just have no use for a lot of to the office clothing I wore into the office every day.


I like the overview given in this Stackoverflow answer [1] (based on an even earlier comment) which classifies different types of continuations:

- Asymmetric or symmetric

- Stackful or stackless

- Delimited or undelimited

- Multi-prompt or single prompt

- Reentrant or non-reentrant

- Clonable or not

Based on that these generators (or semi-coroutines as the article also calls them) seem to be asymmetric, stackful, delimited, single prompt(?), non-reentrant continuations.

[1] - https://stackoverflow.com/questions/62817878/what-are-the-sp...


That's a great overview. Yeah they are asymmetric, Wikipedia says symmetric and asymmetric correspond to coroutines and semicoroutines. They are also stackful and delimited. They are single shot by design, though I could easily make it possible to restart the generator from scratch if needed.

As for single prompt vs multiprompt... I'm not too sure about this one. I have a check to prevent recursion but nesting generators shouldn't be a problem since they keep track of their own callers.

I think lone's generators have composability issues due to the stack separation. For example, calling a generator g2 inside another generator g1 doesn't transparently yield values from g2 to g1's caller. I've been wondering about how to fix this without a Python-like yield from primitive.


Very cool stuff and great written article. Lone looks very interesting!

Are you planning to use your design to support things like exceptions as well? I think that's where that multi-prompt ability becomes important (yielding from a nested coroutine). Racket has prompts and aborts, which is essentially a 'yield to' primitive.


Thank you. Proper exception/condition handling is a high priority item on my list. It's something that is long overdue... Lone currently hard exits on literally any error.

My delimited continuations article also talks about exception handling:

https://www.matheusmoreira.com/articles/delimited-continuati...

Throw/catch are just delimited continuations which don't actually capture the continuation. The machinery is already in place. If I copied the control/transfer primitives and removed the continuation code, I'd have a functional exceptions handling mechanism.

In suppose I can use tagged prompts to catch some exceptions and not others. Place a symbol in the stack delimiter, then the transfer primitive can look for it and skip anything that doesn't match. Untagged prompts just use nil as the tag.


Yes! I was racking my brain trying to remember what it was called. Back in the early 2000s I ran BeOS on my desktop and absolutely loved it. Then when they went under, I followed the effort to come up with an open source version with guest interest. There was one effort that wanted to build everything from scratch. That's what was later renamed into Haiku (I think initially openBeOS maybe?). There was also BlueEyedOS who thought you could get there faster by building on Linux and X11.

I think Haiku got more traction because at the time people felt that it should run BeOS software without recompiling. I have long wondered what would have happened if BlueEyedOS would have gotten most of the effort.


Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search:

HN For You