Client for playing 300 publicly available Sokoban puzzles on a computer or phone.

abortive experiment: keep definitions independent

Functions can refer to each other, but global variable initializers shouldn't.

But this doesn't work. That comment keeps growing to capture more corner cases.

Step back. What am I trying to achieve?

I'm not trying to create a better abstraction for programming with. I'm trying to use an existing abstraction (LÖVE) without needing additional tools.

I'm not supporting end-user programming, only end-programmer programming. What happens in a regular LÖVE program if you use a global before it's defined? You get an error, and you're on the hook to fix it. But it's obvious what's going on because a file has an obvious sequence of definitions. But what if you have multiple files? It's easy to lose track of order and we mostly don't care.

The important property existing dev environments care about: merely editing a definition doesn't change the order of top-level definitions. Let's just provide this guarantee.

We'll no longer load definitions in order of their version. Just load definitions in the order they were created. Editing a definition doesn't change this order. Deleting and recreating a definition puts it at the end.

Created by  Kartik K. Agaram  on April 15, 2023
H3RX6UWRIBSSGIKCHCYBW2UMW63HLV77BULUXS3BIBKKBEOJ64EQC
Change contents