You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The earlier entry with the same daystamp was written in the small hours, before going to bed. This one was written during the day.
Just pushed the PR for heap allocating runtime class instances. (By runtime classes I mean classes defined at runtime, instead of at compile-time.)
3 files changed, 147 insertions(+), 2 deletions(-), ~third of which is tests.
A small change, but a big impact
This was the missing piece from being able to get to transpiling the self-hosted interpreter, since it needs to be able to create classes and allocate their instances at runtime in order to process class definitions, etc.
This makes me so excited! Self-hosting has always been a big deal for me, sign of my unpractical proglang nerdery most probably.
While Foolang is only ~two years old, I've been working on its predecessors for around 5 years at this point, since summer of 2016. Trying to find a harmonious combination ideas, pushing forward, backtracking, and pushing again. Repeat and rinse.
While current Foolang is still missing a mountain of things, and contains many things I want to change, I feel that most of the core ideas have been increasingly settling down: the backtracking has largely stopped, turning into "future changes" instead of "scrap that".
Next steps, if all goes according to plan:
transpile the parser and pretty-printer. (Might as well the pretty-print the codebase at that point!)
transpile the evaluator, giving me an interpreter and a repl. Strictly speaking this qualifies as self-hosting, since at that point I should be able to run the transpiler in the self-transpiled interpreter. (I'm super curious to find out how the performance compares to the Rust bootstrap interpreter - but I assume badly.)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
The earlier entry with the same daystamp was written in the small hours, before going to bed. This one was written during the day.
Just pushed the PR for heap allocating runtime class instances. (By runtime classes I mean classes defined at runtime, instead of at compile-time.)
3 files changed, 147 insertions(+), 2 deletions(-)
, ~third of which is tests.A small change, but a big impact
This was the missing piece from being able to get to transpiling the self-hosted interpreter, since it needs to be able to create classes and allocate their instances at runtime in order to process class definitions, etc.
This makes me so excited! Self-hosting has always been a big deal for me, sign of my unpractical proglang nerdery most probably.
While Foolang is only ~two years old, I've been working on its predecessors for around 5 years at this point, since summer of 2016. Trying to find a harmonious combination ideas, pushing forward, backtracking, and pushing again. Repeat and rinse.
While current Foolang is still missing a mountain of things, and contains many things I want to change, I feel that most of the core ideas have been increasingly settling down: the backtracking has largely stopped, turning into "future changes" instead of "scrap that".
Next steps, if all goes according to plan:
Beta Was this translation helpful? Give feedback.
All reactions