This occurs because repl shares a single module. Currently compile each line one at a time which in term nukes the inline cache. When we then attempt a lookup for @a = 10 we miss the cache and bail out.
There are many options here for how to address.
We could have each line block of code entered be a module with all previous modules exporting all symbols forward.
We could compile all the statements that have been put into repl as one increasing long script. We'd then need a mechanism to jump to the instruction indicating the start of the current line.
Probably several more but I'll need time to thing about it.
Running the following in the repl blows up
This occurs because repl shares a single module. Currently compile each line one at a time which in term nukes the inline cache. When we then attempt a lookup for
@a = 10
we miss the cache and bail out.There are many options here for how to address.