Skip to content

Instantly share code, notes, and snippets.

@tadzik
Created August 4, 2011 12:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tadzik/1125058 to your computer and use it in GitHub Desktop.
Save tadzik/1125058 to your computer and use it in GitHub Desktop.
diff --git a/src/Perl6/Actions.pm b/src/Perl6/Actions.pm
index 59ad479..150aa71 100644
--- a/src/Perl6/Actions.pm
+++ b/src/Perl6/Actions.pm
@@ -1054,6 +1054,7 @@ class Perl6::Actions is HLL::Actions {
# Compose.
$*ST.pkg_compose($*PACKAGE);
+ # Document
document($*PACKAGE, $*DOC);
make PAST::Stmts.new(
@@ -1256,6 +1257,8 @@ class Perl6::Actions is HLL::Actions {
}
my $code := $*ST.create_code_object($block, 'Sub', $signature,
$*MULTINESS eq 'proto');
+
+ # Document it
document($code, $*DOC);
# Install PAST block so that it gets capture_lex'd correctly and also
@@ -3833,12 +3836,11 @@ class Perl6::Actions is HLL::Actions {
}
sub document($what, $with) {
- if $with {
+ unless %*COMPILING<%?OPTIONS><setting> eq 'NULL' {
my $true := $*ST.add_constant('Int', 'int', 1)<compile_time_value>;
- my $doc :=
- $*ST.add_constant('Str', 'str', $with)<compile_time_value>;
+ my $doc := $*ST.add_constant('Str', 'str', $with)<compile_time_value>;
$*ST.apply_trait('&trait_mod:<is>', $what, $doc, :docs($true));
-}
+ }
}
}
diff --git a/src/core/traits.pm b/src/core/traits.pm
index de13409..fbf8f14 100644
--- a/src/core/traits.pm
+++ b/src/core/traits.pm
@@ -55,8 +55,11 @@ multi trait_mod:<is>(Routine:D \$r, :$export!) {
}
multi trait_mod:<is>(Any:D $docee, Mu:D $doc, :$docs!) {
- my $d = $doc; #XXX Bug
- $docee does role { method WHY() { $d } }
+ $docee does role {
+ has $.WHY;
+ method set_docs($d) { $!WHY = $d }
+ }
+ $docee.set_docs($doc);
}
multi trait_mod:<is>(Any:U $docee, Mu:D $doc, :$docs!) {
@tadzik
Copy link
Author

tadzik commented Aug 4, 2011

./perl6 --setting=NULL --target=pir --output=src/gen/CORE.setting.pir src/gen/CORE.setting
Method 'Bool' not found for invocant of class 'Attribute'
current instr.: '_block3486' pc 55134 (src/gen/perl6-metamodel.pir:17751) (src/gen/Metamodel.pm:1962)
called from Sub 'nqp;Perl6;Actions;_block1071' pc 11393 (src/gen/perl6-actions.pir:3226) (src/Perl6/Actions.pm:975)
... call repeated 1 times
called from Sub 'nqp;Perl6;Actions;make_variable_from_parts' pc 11075 (src/gen/perl6-actions.pir:3104) (src/Perl6/Actions.pm:924)
called from Sub 'nqp;Perl6;Actions;make_variable' pc 9949 (src/gen/perl6-actions.pir:2674) (src/Perl6/Actions.pm:910)
called from Sub 'nqp;Perl6;Actions;variable' pc 48860 (src/gen/perl6-actions.pir:0) (src/Perl6/Actions.pm:904)
called from Sub 'nqp;Regex;Cursor;!reduce' pc 2703 (src/Regex/Cursor.pir:1023)
called from Sub 'nqp;Regex;Cursor;!cursor_pass' pc 2116 (src/Regex/Cursor.pir:660)
called from Sub 'nqp;Perl6;Grammar;variable' pc 124835 (src/gen/perl6-grammar.pir:34492) (src/Perl6/Grammar.pm:968)
called from Sub 'nqp;Perl6;Grammar;term:sym' pc 92362 (src/gen/perl6-grammar.pir:25177) (src/Perl6/Grammar.pm:714)
called from Sub 'nqp;Regex;Cursor;!protoregex' pc 4055 (src/Regex/Cursor.pir:94)
called from Sub 'nqp;Perl6;Grammar;term' pc 175696 (src/gen/perl6-grammar.pir:48282) (src/Perl6/Grammar.pm:1570)
called from Sub 'nqp;Perl6;Grammar;termish' pc 207185 (src/gen/perl6-grammar.pir:56883) (src/Perl6/Grammar.pm:1910)
called from Sub 'nqp;HLL;Grammar;EXPR' pc 24261 (src/stage2/gen/NQPHLL.pir:6573) (src/stage2/gen/NQPHLL.pm:558)
called from Sub 'nqp;Perl6;Grammar;EXPR' pc 208078 (src/gen/perl6-grammar.pir:57175) (src/Perl6/Grammar.pm:1931)
called from Sub 'nqp;Perl6;Grammar;statement' pc 59976 (src/gen/perl6-grammar.pir:16259) (src/Perl6/Grammar.pm:440)
called from Sub 'nqp;Perl6;Grammar;statementlist' pc 58857 (src/gen/perl6-grammar.pir:0) (src/Perl6/Grammar.pm:427)
called from Sub 'nqp;Perl6;Grammar;blockoid' pc 63549 (src/gen/perl6-grammar.pir:17333) (src/Perl6/Grammar.pm:493)
called from Sub 'nqp;Perl6;Grammar;method_def' pc 153389 (src/gen/perl6-grammar.pir:42489) (src/Perl6/Grammar.pm:1308)
called from Sub 'nqp;Perl6;Grammar;routine_declarator:sym' pc 148968 (src/gen/perl6-grammar.pir:41348) (src/Perl6/Grammar.pm:1270)
called from Sub 'nqp;Regex;Cursor;!protoregex' pc 4018 (src/Regex/Cursor.pir:81)
called from Sub 'nqp;Perl6;Grammar;routine_declarator' pc 148275 (src/gen/perl6-grammar.pir:41184) (src/Perl6/Grammar.pm:1266)
called from Sub 'nqp;Perl6;Grammar;term:sym<routine_declarator>' pc 93187 (src/gen/perl6-grammar.pir:25412) (src/Perl6/Grammar.pm:717)
called from Sub 'nqp;Regex;Cursor;!protoregex' pc 4018 (src/Regex/Cursor.pir:81)
called from Sub 'nqp;Perl6;Grammar;term' pc 175696 (src/gen/perl6-grammar.pir:48282) (src/Perl6/Grammar.pm:1570)
called from Sub 'nqp;Perl6;Grammar;termish' pc 207185 (src/gen/perl6-grammar.pir:56883) (src/Perl6/Grammar.pm:1910)
called from Sub 'nqp;HLL;Grammar;EXPR' pc 24261 (src/stage2/gen/NQPHLL.pir:6573) (src/stage2/gen/NQPHLL.pm:558)
called from Sub 'nqp;Perl6;Grammar;EXPR' pc 208078 (src/gen/perl6-grammar.pir:57175) (src/Perl6/Grammar.pm:1931)
called from Sub 'nqp;Perl6;Grammar;statement' pc 59976 (src/gen/perl6-grammar.pir:16259) (src/Perl6/Grammar.pm:440)
called from Sub 'nqp;Perl6;Grammar;statementlist' pc 58857 (src/gen/perl6-grammar.pir:0) (src/Perl6/Grammar.pm:427)
called from Sub 'nqp;Perl6;Grammar;blockoid' pc 63549 (src/gen/perl6-grammar.pir:17333) (src/Perl6/Grammar.pm:493)
called from Sub 'nqp;Perl6;Grammar;package_def' pc 135661 (src/gen/perl6-grammar.pir:0) (src/Perl6/Grammar.pm:1155)
called from Sub 'nqp;Perl6;Grammar;package_declarator:sym' pc 131019 (src/gen/perl6-grammar.pir:36171) (src/Perl6/Grammar.pm:1029)
called from Sub 'nqp;Regex;Cursor;!protoregex' pc 4018 (src/Regex/Cursor.pir:81)
called from Sub 'nqp;Perl6;Grammar;package_declarator' pc 128933 (src/gen/perl6-grammar.pir:35694) (src/Perl6/Grammar.pm:1005)
called from Sub 'nqp;Perl6;Grammar;term:sym<package_declarator>' pc 92637 (src/gen/perl6-grammar.pir:25276) (src/Perl6/Grammar.pm:715)
called from Sub 'nqp;Regex;Cursor;!protoregex' pc 4018 (src/Regex/Cursor.pir:81)
called from Sub 'nqp;Perl6;Grammar;term' pc 175696 (src/gen/perl6-grammar.pir:48282) (src/Perl6/Grammar.pm:1570)
called from Sub 'nqp;Perl6;Grammar;termish' pc 207185 (src/gen/perl6-grammar.pir:56883) (src/Perl6/Grammar.pm:1910)
called from Sub 'nqp;HLL;Grammar;EXPR' pc 24261 (src/stage2/gen/NQPHLL.pir:6573) (src/stage2/gen/NQPHLL.pm:558)
called from Sub 'nqp;Perl6;Grammar;EXPR' pc 208078 (src/gen/perl6-grammar.pir:57175) (src/Perl6/Grammar.pm:1931)
called from Sub 'nqp;Perl6;Grammar;statement' pc 59976 (src/gen/perl6-grammar.pir:16259) (src/Perl6/Grammar.pm:440)
called from Sub 'nqp;Perl6;Grammar;statementlist' pc 58857 (src/gen/perl6-grammar.pir:0) (src/Perl6/Grammar.pm:427)
called from Sub 'nqp;Perl6;Grammar;blockoid' pc 63549 (src/gen/perl6-grammar.pir:17333) (src/Perl6/Grammar.pm:493)
called from Sub 'nqp;Perl6;Grammar;routine_def' pc 151177 (src/gen/perl6-grammar.pir:41988) (src/Perl6/Grammar.pm:1289)
called from Sub 'nqp;Perl6;Grammar;multi_declarator:sym' pc 140186 (src/gen/perl6-grammar.pir:38993) (src/Perl6/Grammar.pm:1197)
called from Sub 'nqp;Regex;Cursor;!protoregex' pc 4018 (src/Regex/Cursor.pir:81)
called from Sub 'nqp;Perl6;Grammar;multi_declarator' pc 139769 (src/gen/perl6-grammar.pir:38850) (src/Perl6/Grammar.pm:1194)
called from Sub 'nqp;Perl6;Grammar;term:sym<multi_declarator>' pc 93494 (src/gen/perl6-grammar.pir:25507) (src/Perl6/Grammar.pm:718)
called from Sub 'nqp;Regex;Cursor;!protoregex' pc 4055 (src/Regex/Cursor.pir:94)
called from Sub 'nqp;Perl6;Grammar;term' pc 175696 (src/gen/perl6-grammar.pir:48282) (src/Perl6/Grammar.pm:1570)
called from Sub 'nqp;Perl6;Grammar;termish' pc 207185 (src/gen/perl6-grammar.pir:56883) (src/Perl6/Grammar.pm:1910)
called from Sub 'nqp;HLL;Grammar;EXPR' pc 24261 (src/stage2/gen/NQPHLL.pir:6573) (src/stage2/gen/NQPHLL.pm:558)
called from Sub 'nqp;Perl6;Grammar;EXPR' pc 208078 (src/gen/perl6-grammar.pir:57175) (src/Perl6/Grammar.pm:1931)
called from Sub 'nqp;Perl6;Grammar;statement' pc 59976 (src/gen/perl6-grammar.pir:16259) (src/Perl6/Grammar.pm:440)
called from Sub 'nqp;Perl6;Grammar;statementlist' pc 58857 (src/gen/perl6-grammar.pir:0) (src/Perl6/Grammar.pm:427)
called from Sub 'nqp;Perl6;Grammar;comp_unit' pc 56670 (src/gen/perl6-grammar.pir:15157) (src/Perl6/Grammar.pm:397)
called from Sub 'nqp;Perl6;Grammar;TOP' pc 31112 (src/gen/perl6-grammar.pir:7576) (src/Perl6/Grammar.pm:31)
called from Sub 'nqp;Regex;Cursor;parse' pc 1781 (src/Regex/Cursor.pir:470)
called from Sub 'nqp;HLL;Compiler;parse' pc 37463 (src/stage2/gen/NQPHLL.pir:12166) (src/stage2/gen/NQPHLL.pm:1456)
called from Sub 'nqp;HLL;Compiler;_block1981' pc 37013 (src/stage2/gen/NQPHLL.pir:11968) (src/stage2/gen/NQPHLL.pm:1432)
called from Sub 'nqp;HLL;Compiler;compile' pc 36890 (src/stage2/gen/NQPHLL.pir:11897) (src/stage2/gen/NQPHLL.pm:1430)
called from Sub 'nqp;HLL;Compiler;eval' pc 33794 (src/stage2/gen/NQPHLL.pir:10607) (src/stage2/gen/NQPHLL.pm:1251)
called from Sub 'nqp;HLL;Compiler;evalfiles' pc 36268 (src/stage2/gen/NQPHLL.pir:11607) (src/stage2/gen/NQPHLL.pm:1416)
called from Sub 'nqp;HLL;Compiler;command_eval' pc 35175 (src/stage2/gen/NQPHLL.pir:11160) (src/stage2/gen/NQPHLL.pm:1361)
called from Sub 'nqp;Perl6;Compiler;command_eval' pc 862 (src/gen/perl6-compiler.pir:312) (src/Perl6/Compiler.nqp:13)
called from Sub 'nqp;HLL;Compiler;command_line' pc 34847 (src/stage2/gen/NQPHLL.pir:11051) (src/stage2/gen/NQPHLL.pm:1346)
called from Sub 'MAIN' pc 715 (src/gen/perl6.pir:257) (src/main.nqp src/gen/main-version.nqp:28)
called from Sub '_block1000' pc 100 (src/gen/perl6.pir:69) (src/main.nqp src/gen/main-version.nqp:1)
make: *** [CORE.setting.pbc] Error 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment