The compiler declares a block 'GLOBAL' containing only the 'our'-scoped variables. The runtime then makes sure the appropriate variables are bound to the variables in this block.
This test has been working since before last release, as a matter of fact.
A semi-substantial patch. Keeps track of the 'currently visible variables' to detect a use-before-declaration. This unbreaks two previously failing tests.
Yes, that's pretty low-hanging fruit at this point.
There were some Any() objects that ended up in an array expecting only Str. Fixed the symptom.
Too much whitespace ended up in a literal in a regex. isBEKaml++ for noticing.
In other news, always run the test suite before committing changes, even trivial ones. That's what it's there for.
Who kill their babbies, because they cannot frigth back?
Always take care when you deploy your workarounds, so that they retain the original meaning of the thing being replaced. Otherwise, things will start to fail, and you'll have to debug them.
This is after realizing that both 'state' variables and contextual variables are really lexical variables underneath; having all of these be called 'lexvar' just seemed wrong. So 'var' now introduces a lexical variable, and future flags (something like :dynamic and :state, perhaps) will modify those lexvars to be have like contextual variables and state variables, respectively.
Between releases, the SIC version is always the version number of the upcoming release.
No longer running alpha; no longer has a Makefile (use ufo); regressed on the use-before-declaration thing.
Basically switched out everything. Yapsi now has a new Yapsi. It runs under Rakudo master for the first time. Three tests fail in t/compiler.t. Some odd effect cause t/runtime.t to fail when nothing is printed from Yapsi.pm.
This is but a template, with several blanks needing to be filled in. You can help!
Idea shamelessly stolen from Rakudo. pmichaud++