Daily Thought - 2024-09-30
< back to listThere are some subtleties to the approach I presented yesterday. For example, why do we append new code instead of updating existing functions? Well, because we might have added more instructions, so the new function might not fit where the old one was located.
And why replace old instructions with jumps to new ones? Wouldn't it be enough to just replace the calls to new functions? Turns out, I didn't really consider that recursion is the only form of iteration; so yes, it is enough to just replace the calls. Helping me think is 90% of the reason I write these daily thoughts.
On top of that, there are some problems that need solving. Like, we can't append new code forever. At some point we have to garbage-collect code that's no longer active. And what happens, if new code expects or produces different types than the old code? Short answer: The initial implementation will be far from perfect. I'll have more details tomorrow.