Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3040 from vrurg/rakudo_3028
Implement support for defining new symbols in CORE.e.setting Because loading of all CORE settings caused some tests to fail due to the way SETTING and CORE pseudo-packages behaved, this fix also includes improvements to PseudoStash class. Most notable changes are: PSEUDO::<missing-symbol> now returns Failure where previously it was Nil. Done so to conform to the way ::() works. LEXICAL:: now includes all symbols from scope's lexical chains and dynamic symbols from its caller chain. This conforms to the rule "all symbols visible at location" SETTING now includes all symbols from all CORE.settings. CORE now includes few additional symbols installed by World.loading_and_symbol_setup. Not sure about them, but seem to be harmless and doesn't affect roast though was breaking rakudo test. UNIT now includes all lexicals visible at the unit level. Also binding via chained pseudos is now supported: my $*foo; sub do-bind { CALLERS::<$*foo> := 42 } do-bind; say $*foo; # 42 EVAL doesn't load CORE.setting anymore. Effectively, use v6.X inside EVALs is just ingnored. If this approach is not getting re-considered I would suggest making it a X::Language::TooLate exception. Also EVAL context now gets !EVAL_MARKsymbol alongside with!UNIT_MARK. It is necessary to allow SETTING` pseudo find the real unit. die and fail now work with $! as default. The symbol is been searched in CALLER::LEXICAL:: as S29-context/die.t spectest suggests. new sub in CORE: CORE-SETTING-REV. Returns currently active language revision. It's purpose is to support rakudo tests. Fixed a hidden bug where request was always installing submodules into its CALLER::MY:: context. The bug was hidden until pseudo-packages started returning Failure for missing symbols.
- Loading branch information
Showing
18 changed files
with
442 additions
and
135 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
use nqp; | ||
|
||
# This dynamic is purely for testing support. | ||
PROCESS::<$CORE-SETTING-REV> := 'd'; | ||
# This sub is only to support tests. | ||
sub CORE-SETTING-REV { 'd' }; | ||
|
||
# vim: ft=perl6 expandtab sw=4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
use nqp; | ||
|
||
# This dynamic is purely for testing support. | ||
PROCESS::<$CORE-SETTING-REV> := 'e'; | ||
# This sub is only to support tests. | ||
sub CORE-SETTING-REV { 'e' } | ||
|
||
# vim: ft=perl6 expandtab sw=4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.