SerenityOS / jakt

The Jakt Programming Language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Stage 1 and stage 0 runtimes should be the same

Sidneys1 opened this issue · comments

The stage 1 runtime (runtime/) and the stage 0 runtime (bootstrap/stage0/runtime) have divergent contents, which you can see with diff -bur runtime/ bootstrap/stage0/runtime/.

As far as I can tell, there's no reason for these not to be identical, and the stage 0 runtime should be removed (and references adjusted to point to the stage 1 runtime) or should be a symbolic link to ../../runtime.

Stage 0 is a complete snapshot, so it can be out of date (so long as it's capable of building stage 1, an update is not necessary)

Perhaps then it's the documentation that needs to be clearer - if I want to make a change to the runtime, where do I need to make it? How do changes in one affect the other? Do I ever (as a contributor) need to change the stage 0 runtime? How divergent can the two get before it becomes a problem?

The docs could certainly be clearer, yeah.
Generally you don't need to care about the bootstrap compiler unless you want to use the new feature you're adding (or fixing) in the compiler. In that case, you can use meta/update_bootstrap.sh to update the snapshot.