pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~315 days 'til Xmas
Set by mncharity on 8 February 2009.
sahadev hello, i am using the parrot-under-rakudo approach mentioned in Moritz's blog entry (perlgeek.de/blog-en/perl-6/where-ra...ives.html) to build rakudo. "make test" in rakudo fails because the parrot exe path referred to in the test scripts (../../parrot) is incorrect. it should be ../../parrot/parrot. 01:42
sahadev is there an easy fix for this (short of fixing every test script)? 01:42
sahadev looks like this affects only a few test scripts (under t/pmc) 01:51
TimToady std: my (*@) = @*ARGS 02:02
p6eval std 25282: OUTPUT«ok 00:02 34m␤» 02:03
TimToady std: my (*) = @*ARGS
p6eval std 25282: OUTPUT«Undeclared routine:␤ my used at 0 ␤ok 00:02 35m␤»
TimToady std: (*) = @*ARGS
p6eval std 25282: OUTPUT«ok 00:02 33m␤» 02:03
diakopter std: [$]=@*ARGS 02:07
p6eval std 25282: OUTPUT«############# PARSE FAILED #############␤Unable to parse array composer; couldn't find final ']' at /tmp/3GhvbQCY5t line 1:␤------> [$]=@*ARGS␤ expecting special_variable__S_154DollarKet␤FAILED 00:02 34m␤»
diakopter std: $=@*ARGS
p6eval std 25282: OUTPUT«############# PARSE FAILED #############␤Can't understand next input--giving up at /tmp/fRqXtXBAgL line 1:␤------> $=@*ARGS␤ expecting special_variable__S_138DollarEqual␤FAILED 00:02 34m␤» 02:08
TimToady std: :($) = @*ARGS
p6eval std 25282: OUTPUT«ok 00:02 34m␤»
TimToady std: $=FOO 02:09
p6eval std 25282: OUTPUT«ok 00:02 33m␤»
TimToady std: $=($x)
p6eval std 25282: OUTPUT«############# PARSE FAILED #############␤Can't understand next input--giving up at /tmp/hzg9GvGgEo line 1:␤------> $=($x)␤ expecting special_variable__S_138DollarEqual␤FAILED 00:02 34m␤»
TimToady std: $=::($x)
p6eval std 25282: OUTPUT«Potential difficulties:␤ Variable $x is not predeclared at /tmp/CyUArCW1Cz line 1:␤------> $=::($x)␤ok 00:02 33m␤» 02:10
TimToady std: $=::($*x)
p6eval std 25282: OUTPUT«ok 00:02 33m␤»
diakopter std: ::$=3 02:11
p6eval std 25282: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/DBzvlUDXYM line 1:␤------> ::$=3␤ expecting any of:␤ POST␤ infix or meta-infix␤ infix stopper␤ morename␤ postfix␤ postfix_prefix_meta_operator␤ standard
..stopper␤ statement modifie...
TimToady now yer just makin' stuff up... 02:13
diakopter wait, how is that new 02:17
TimToady there's nothing in the syntax that allows $ after :: 02:25
diakopter :) I meant how is it new that I'm making stuff up :P 02:26
aka "what else is new"
meppl good night 02:28
pugs_svn r25283 | lwall++ | [STD] improve error messages on various keywords 02:30
SamB std: $(printf "Hello")
p6eval std 25282: OUTPUT«ok 00:03 33m␤»
SamB um. that's not good.
it didn't reject my Haskells!
TimToady perfectly valid syntax
SamB std: main = P.return () 02:31
p6eval std 25282: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/5xhddrM2uz line 1:␤------> main = P.return ()␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED
..00:02 33m␤»
TimToady std: my (*) = 1,2,3 02:35
p6eval std 25283: OUTPUT«Undeclared routine:␤ my used at 0 ␤ok 00:02 35m␤»
TimToady that should improve shortly
cooking&
frew I have to get a better computer so the tests won't take so long! 02:38
frew looks at prices on new quad core systems 02:47
s1n frew: do what i do, run then from a cron job :) 02:57
frew s1n: That's a good idea. Do you checkout and rebuild parrot then too? 03:02
s1n frew: i have a quickie shell script that does a svn and git update of parrot and rakudo, then builds everything 03:03
does the spectest too
i usually comment that out though because i only care about things i'm testing :) 03:04
frew right
hm
I think I'll do that
I'll have it start at like, 4 pm
right before I get back from work 03:05
s1n mine's not overly smart, just does each of the steps regardless of $?
i have mine run at 2am
diakopter std: my (*) = 1,2,3
frew you could just have them && chained
p6eval std 25283: OUTPUT«############# PARSE FAILED #############␤Malformed "my" declaration at /tmp/gjDyNIDwku line 1:␤------> my (*) = 1,2,3␤ expecting any of:␤ parameter␤ signature␤ type_constraint␤ whitespace␤FAILED 00:02 33m␤»
s1n frew: i could, but there's like a dozen commands
speaking of which, what happened to the rakudo Configure.pl? 03:06
it's looking in a really odd place for BUILD_DIR
where is it getting that configuration from?
anyone? 03:10
s1n wow, it's sleepy in here 03:27
okay, i figured it out, just for the people who scroll back: 03:28
i have parrot installed already (gentoo) and was built somewhere completely different, it picked up the parrot_config from that build, so i specified the --parrot-config option to the Configure.pl script 03:29
Util Thanks for posting that s1n; I was just looking for the answer. 03:33
shinobi-cl hey, the wiki at perl6.wikia.com now has 60 articles..... wanna cooperate? you know what to do (sorry for the spam) 03:34
s1n Util: np 03:47
gotta go, bad weather
Util Later 03:48
skids rakudo: class Ss is Str; my Ss $s; 04:51
p6eval rakudo e73c95: RESULT«"Ss"»
skids rakudo: class Pp is Pair; my Pp $d;
p6eval rakudo e73c95: OUTPUT«Null PMC access in get_string()␤current instr.: '!meta_trait' pc 18725 (src/builtins/guts.pir:577)␤»
pugs_svn r25284 | lwall++ | [STD] define implicit pad lexicals correctly depending on signature 07:44
moritz_ std: sub f() { @_ } 07:47
p6eval std 25284: OUTPUT«############# PARSE FAILED #############␤Malformed routine definition at /tmp/asH47Yaa8M line 1:␤------> sub f() { @_ }␤FAILED 00:02 32m␤» 07:48
moritz_ std: sub f { @_ }
p6eval std 25284: OUTPUT«############# PARSE FAILED #############␤Malformed routine definition at /tmp/0I6ar738sQ line 1:␤------> sub f { @_ }␤FAILED 00:02 32m␤»
TimToady std sub f() { @_ } 07:50
std: sub f() { @_ }
p6eval std 25284: OUTPUT«############# PARSE FAILED #############␤Malformed routine definition at /tmp/fH0W8FnShC line 1:␤------> sub f() { @_ }␤FAILED 00:02 32m␤»
TimToady hmm, must not have updated yet
moritz_ it has, but some permission problems with generating the lexers :( 07:51
std: 1+1
p6eval std 25284: OUTPUT«ok 00:02 33m␤»
moritz_ std: sub f { @_ }
p6eval std 25284: OUTPUT«ok 00:02 33m␤» 07:52
moritz_ std: sub f() { @_ }
p6eval std 25284: OUTPUT«Potential difficulties:␤ Variable @_ is not predeclared at /tmp/M8W020u7zM line 1:␤------> sub f() { @_ }␤ok 00:02 33m␤»
TimToady :)
std: -> %_ { %_ }
p6eval std 25284: OUTPUT«ok 00:02 34m␤»
TimToady std: -> %_ { @_ }
p6eval std 25284: OUTPUT«Potential difficulties:␤ Variable @_ is not predeclared at /tmp/8VvV9CliE2 line 1:␤------> -> %_ { @_ }␤ok 00:02 34m␤»
TimToady std: -> %_ { my %_; } 07:53
p6eval std 25284: OUTPUT«Potential difficulties:␤ Variable %_ declared at line 1 is redeclared at /tmp/r8tDf65ZX3 line 1:␤------> -> %_ { my %_; }␤ok 00:02 34m␤»
TimToady most of the difficulties in make testt are now real 07:54
pugs_svn r25285 | moritz++ | [t/spec] git rid of accidential interpolation of &postfix<stuff>
moritz_ aye
it's really helpful 07:55
TimToady though with the &postfix thing it *ought* to have recognized the operator and attempted to call it with 0 args, I suppose 07:59
maybe &postfix and such should require at least one ()
or maybe & interpolation is just a Bad Plan altogether 08:01
bed is a Good Plan though 08:07
zzz &
Matt-W The downside of the internet is that I get to arrive at work just in time to see other people go to bed, which is really where I'd like to be myself :( 08:20
moritz_ knows that feeling
masak what's the difference, semantically, between '($a, $b, $c) = @values;' and ($a, $b, $c, *) = @values;' ? 09:11
rakudo: (*) = 5 09:12
p6eval rakudo e73c95: OUTPUT«Class 'Perl6MultiSub' not found␤current instr.: 'parrot;Perl6Role;!add_variant' pc 2579 (src/classes/Role.pir:42)␤»
masak reboots p6eval
Matt-W masak: I have never seen that syntax before 09:13
masak moritz_: don't you get rakudobugs? :)
moritz_ ...
masak pats moritz_ 09:14
at least we're sharing the burden now. :)
masak oops, sorry. 09:15
Matt-W: don't you get rakudobugs? :)
(too many people starting with 'm' on this channel. some of you guys should change nicks. :P)
Matt-W masak: no I don't 09:16
masak Matt-W: they mostly come throught the p6c list if you're interested.
s/throught/through/
rakudo: (*) = 5
p6eval rakudo e73c95: RESULT«5»
masak ok, that works. 09:17
rakudo: my (*@) = 1,2,3
p6eval rakudo e73c95: OUTPUT«Statement not terminated properly at line 1, near "@) = 1,2,3"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
masak rakudo: my @values = 1..5; my ($a, $b, $c, *) = @values; 09:18
p6eval rakudo e73c95: OUTPUT«Unable to parse declarator; couldn't find final ')' at line 1, near ", *) = @va"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
masak huh. 09:19
oh!
rakudo: my @values = 1..5; my ($a, $b, $c); ($a, $b, $c, *) = @values;
p6eval rakudo e73c95: RESULT«[1, 2, 3, 4]»
mikehh masak: you got to consider the importance of M - even if it is the 13 letter of the English alphabet 09:38
masak mikehh: aye, 'tis important, verily.
jnthn is awake 10:09
svn up && make coffee
moritz_ nah, the web 2.0 people git-pull their coffee :-) 10:10
masak jnthn: good morning! :) 10:11
jnthn moritz_: Put I need coffee to the understand git. ;-) 10:15
masak: morning!
Matt-W Oooh coffee 10:16
I could have coffee
Thanks!
Matt-W -> make coffee
jnthn Hmm. Anyone else got a working build of Rakudo? 10:21
moritz_ 10:22
jnthn e.g. from latest svn head and git? 10:23
jnthn hmm...huh 10:23
bacek hi there
moritz_ from yesterday
bacek perl6: say +(0..*)
p6eval pugs: OUTPUT«pugs: out of memory (requested 1048576 bytes)␤»
..rakudo e73c95: OUTPUT«Use of uninitialized value␤Use of uninitialized value␤Use of uninitialized value␤1␤»
..elf 25285: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 126) line 3.␤ at ./elf_h line 4346␤»
bacek summon masak to submit bugreport :) 10:24
masak submits
bacek: or not. that's a known issue.
lazy infinite lists are not implemented.
Matt-W isn't that forcing evaluation of the infinite list anyway though 10:25
or should it be clever enough to just say Inf
bacek masak: I know. But this bug is different
masak Matt-W: depends on how you implement it, I guess.
bacek: due to the undefined values?
bacek masak: it should yeld Inf 10:26
masak bacek: sure, when lazy infinite lists are implemented :)
bacek perl6: (0..1)[2]= 3;
p6eval rakudo e73c95: OUTPUT«elements() not implemented in class 'Range'␤current instr.: 'postcircumfix:[ ]' pc 3452 (src/classes/Positional.pir:108)␤» 10:27
..pugs: OUTPUT«*** Can't modify constant item: VUndef␤ at /tmp/UfdmooI8cs line 1, column 1-13␤»
..elf 25285: OUTPUT«Can't call method "postcircumfix__91_32_93" without a package or object reference at (eval 122) line 3.␤ at ./elf_h line 4346␤»
masak submits rakudobug
bacek masak: stop. Its 60848
masak stops immediately
bacek And I have partial solution for it :)
masak great.
jnthn OK, a s{/}{\} in the makefile did it... 10:28
bacek perl6: say Inf - Inf 10:30
p6eval pugs: OUTPUT«NaN␤»
..rakudo e73c95: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
..elf 25285: OUTPUT«nan␤»
bacek perl6: say "z" - "a"
p6eval rakudo e73c95: OUTPUT«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.␤main: Packfile loading failed␤»
..elf 25285: OUTPUT«Argument "\x{61}" isn't numeric in subtraction (-) at (eval 123) line 3.␤Argument "\x{7a}" isn't numeric in subtraction (-) at (eval 123) line 3.␤0␤»
..pugs: OUTPUT«0␤»
bacek perl6: my $a = 0; say $a.does(Num) 10:32
p6eval pugs: OUTPUT«1␤»
..rakudo e73c95: OUTPUT«0␤»
..elf 25285: OUTPUT«␤»
bacek perl6: my $a = 0; say $a.does(Int)
p6eval pugs, rakudo e73c95: OUTPUT«1␤»
..elf 25285: OUTPUT«␤»
dalek kudo: 7b4118d | jnthn++ | Configure.pl:
[config] Configure needs to translate forward slashes in makefile to backwards ones for Win32, as Parrot's Configure did. Otherwise the build silently misses a bunch of important bits!
10:33
bacek perl6: my $a = 'a'..'c'; say ~$a
p6eval elf 25285: OUTPUT«1E0␤»
..pugs, rakudo e73c95: OUTPUT«a b c␤»
bacek perl6: my $a = 'a'..'3'; say ~$a 10:34
p6eval elf 25285: OUTPUT«1E0␤»
..pugs, rakudo e73c95: OUTPUT«␤»
bacek perl6: my $a = 'a'..3; say ~$a
p6eval elf 25285: OUTPUT«1E0␤»
..pugs, rakudo e73c95: OUTPUT«␤»
bacek perl6: my $a = 0..'z'; say ~$a
p6eval pugs, rakudo e73c95: OUTPUT«0␤»
..elf 25285: OUTPUT«␤»
bacek perl6: my $a = -1..'z'; say ~$a
p6eval pugs: OUTPUT«-1 0␤»
..elf 25285: OUTPUT«1E0␤»
..rakudo e73c95: OUTPUT«␤»
bacek looks... strange 10:35
pugs is correct, isn't it? 10:36
(in last case)
moritz_ dunno
depends on how infix:<..>(Any, Any) is defined 10:37
bacek perl6: my $a = -1..^'z'; say ~$a
p6eval elf 25285: OUTPUT«1E0␤»
..pugs: OUTPUT«-1␤»
..rakudo e73c95: OUTPUT«␤»
moritz_ imho there's no dwimmy way to handle such a range
bacek moritz_: agreed.
perl6: say 0>*; say 0<*; 10:38
p6eval pugs: OUTPUT«␤1␤»
..rakudo e73c95: OUTPUT«Use of uninitialized value␤0␤Use of uninitialized value␤0␤»
..elf 25285: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 122) line 3.␤ at ./elf_h line 4346␤»
moritz_ perl6: say 0 == *
p6eval elf 25285: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 120) line 3.␤ at ./elf_h line 4346␤»
..rakudo e73c95: OUTPUT«Use of uninitialized value␤1␤»
..pugs: OUTPUT«␤»
bacek ouch. 10:39
bacek summon masak again :)
moritz_ perl6: say 0 ~~ *
p6eval rakudo e73c95: OUTPUT«1␤»
..elf 25285: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 122) line 3.␤ at ./elf_h line 4346␤»
..pugs: OUTPUT«␤»
moritz_ bacek: what's wrong with numifying * to 0?
bacek moritz_: in range * means totally different. 10:40
perl6: say (0..(+*))[2]
masak bacek: sorry, didn't follow. will need to backlog to see what I was summoned for.
p6eval pugs: OUTPUT«2␤»
..rakudo e73c95: OUTPUT«Use of uninitialized value␤elements() not implemented in class 'Range'␤current instr.: 'postcircumfix:[ ]' pc 3452 (src/classes/Positional.pir:108)␤»
..elf 25285: OUTPUT«Parse error in: /tmp/kBnj7P4dyh␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say (0..(+*))[2]␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤
..STD_red/std.rb:210:...
moritz_ bacek: yes. That doesn't mean it has to have the same behaviour outside of ranges 10:41
bacek perl6: my $a = (0..(+*)); say $a[2]
p6eval pugs: No output (you need to produce output to STDOUT)
..rakudo e73c95: OUTPUT«Use of uninitialized value␤elements() not implemented in class 'Range'␤current instr.: 'postcircumfix:[ ]' pc 3452 (src/classes/Positional.pir:108)␤»
..elf 25285: OUTPUT«Parse error in: /tmp/f7Sbegt0nz␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: my $a = (0..(+*)); say $a[2]␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤
..STD_red...
bacek perl6: say (1..*)[2] 10:53
p6eval rakudo 7b4118: OUTPUT«elements() not implemented in class 'Range'␤current instr.: 'postcircumfix:[ ]' pc 3452 (src/classes/Positional.pir:108)␤»
..elf 25285: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 123) line 3.␤ at ./elf_h line 4346␤»
..pugs: OUTPUT«3␤»
jnthn Grr. The proto definedness bug turned out to be trickier than I first though. 11:23
dalek kudo: d668ca9 | jnthn++ | src/classes/ClassHOW.pir:
Fixes to make sure dispatches on proto-objects work correctly; resolves RT#62894.
11:37
pugs_svn r25286 | jnthn++ | [t/spec] Tests for proto-object being undefined.
r25287 | jnthn++ | [t/spec] Add test case for RT#62828. 11:52
dalek kudo: 59024e0 | jnthn++ | src/classes/Object.pir:
Fix .clone to deref ObjectRefs properly by calling !DEREF, which follows chains. Resolves RT#62828.
masak jnthn: I'm interested in what could have caused that .clone bug. is there an easy answer, or should I just read the commit diff myself? :) 11:54
jnthn masak: The commit message pretty much tells the story. :-) 11:55
masak ah. yes. 11:58
thank you for fixing that. it was a very frustrating error.
jnthn Welcome. proto one should be fixed also. 11:59
masak that's good. will lead to a couple of simplifications and '# RAKUDO' comment removals. :)
ruoso Hello! 12:01
masak oh hai 12:02
jnthn ponders 63002 12:03
ruoso feels one day closer to the day when GLOBAL dies ;) 12:05
ruoso just reading ClassHOW.pir... convergence++ 12:12
when a role puns a class, should it look for "Object" from the perspective of the code that is causing then pun? or may it consider Object from its own perspective? 12:14
that question really means.. 12:15
jnthn Not sure.
I prefer the second for implementation ease. ;-)
ruoso if I re-define what Object means in my lexical scope, should a punned class use the custom Object or the canonical Object?
jnthn Or the Object as it was in the scope where the role was defined... ;-) 12:16
Canonical object is sure easiest though.
ruoso right.. right
jnthn It's what we're doing in Rakudo for now.
ruoso there are three options indeed
in the case of being th efirst 12:17
we need the punned class to be lexically scoped
jnthn Yeah
ruoso in the case of being the second, we need the module loading to be lexically scoped
jnthn Given the punned class is attached to the role, I don't see that flying.
(The first option.) 12:18
ruoso (not the name aliasing, but the actual module loading)
or maybe not, because lexically, it does not relate to the code that imports it 12:19
but how would you override the meaning of Object there then?
role SubRole does Role { my class Object { ... }; }; 12:20
or... 12:21
jnthn That would probably still not override the meaning of Object for the pun. just within that class.
erm
within that role's body, I mean.
Oh, hmm. It could do.
jnthn (Classes inside roles are interesting within themselves, when you start to consider parametric roles...) 12:22
ruoso so... my role Role does OUTER::Role { my class Object is OUTER::Object {...}; }; 12:23
or maybe you need... 12:24
my class Object is OUTER::Object {...}; my role Role does OUTER::Role;
my class Object is OUTER::Object {...}; my role Role does OUTER::Role {...};
jnthn Hang on, are you using Role here as if it were Foo, just as an example role name, or are you trying to re-define the built-in Role type? :-) 12:25
ruoso heh.. yeah... bad example code...
my class Object is OUTER::Object {...}; my role Foo does OUTER::Foo {...};
jnthn Phew! :-)
Hmm. That'd I guess pun to the lexical Object if we take the "it puns from the view of where the role is defined" approach. 12:26
Which to me seems fairly sane.
ruoso so it would be equally possible to: 12:27
use CustomObjectImpl; role Foo does OUTER::Foo {}; 12:28
jeremiah OHAI
jnthn jeremiah: HAI! 12:29
ruoso actually
use Foo;
use CustomObjectImpl;
jeremiah Hey jnthn
ruoso role Foo does OUTER::Foo {};
jeremiah I have an email in the works for you, details about Gothenburg before Oslo. :)
jnthn jeremiah: The awesome! :-)
Looking forward do it.
jeremiah If you haven't made plans for housing in Oslo I know a cheap and good hostel. 12:30
Called Perminalen.
jnthn I didn't make plans yet, no. 12:31
Cheap? Is Oslo? -) 12:32
;-)
ruoso hmmm... I think "use Foo; role Foo does OUTER::Foo {}" is not going to work...
jnthn I suspect that'd be a re-declaration error.
jeremiah heh, relatively cheap
ruoso jnthn, so how could I redefine it without it being an error? 12:33
jnthn ruoso: If you're going to re-define it, why'd you just import it? :-P 12:36
use Foo; { my role Foo does OUTER::Foo { ... } } 12:37
ruoso because I want to export a customized version of Foo
jnthn Hmm...
Maybe do it under a different name? ;-) 12:38
ruoso but that won't solve the problem on how to lexically customize behavior of some code
where things happen sintatically 12:39
likle
my @a = (1,2,3);
in order to customize the behavior of @a
I need to replace the meaning of the Array role
(of course I could say "my @a is SomethingElse = (1,2,3)" but that's not the poitn) 12:40
jnthn Hmm. 12:42
Yes, see what you're getting at.
ruoso maybe... 12:45
BEGIN { require Foo;
argh
the problem is that the name Foo is always lexically bound either by use or require 12:46
maybe we would need something like... use Foo as OriginalFoo;
so we can say "role Foo does OriginalFoo {}" 12:47
jnthn But that assumes that the module Foo will export one symbol Foo that we wish to re-define.
But some way to do name-mapping on import may work, yes. 12:48
ruoso jnthn, I think the name "Foo" is aliased by the "use" or "require" itself 12:54
I was thinking this is a assumption made to know what to bind to the current scope 12:56
meaning
if you "use Foo"
it will find Foo.pm
then Foo.pm might have
class Foo {}; class Bar {}; 12:57
does Bar gets aliased into your lexical scope?
I was assuming it doesn't
jnthn Not sure - would have to read the spec to check that. 12:58
ruoso and that it will know which package to alias, exactly because of the "use Foo" and "class Foo"
jnthn Haven't been looking at import/export much myself - I think pmichaud and particle have been, though...
pugs_svn r25288 | jnthn++ | [t/spec] Test for range constructed from parameter. 13:00
dalek kudo: 1beabec | jnthn++ | src/ (3 files):
We need to call .clone() rather than just using Parrot's clone vtable method fairly generally, I expect. This does that in a couple of places, which in turn resolves RT#63002 and gets an integration test passing.
13:01
pugs_svn r25289 | jnthn++ | [t/spec] Untodo an integration test that Rakudo now can pass. 13:02
jnthn std: my WTF $x; 13:16
p6eval std 25289: OUTPUT«############# PARSE FAILED #############␤Malformed "my" declaration at /tmp/18w1hgIpuy line 1:␤------> my WTF $x;␤ expecting any of:␤ scoped declarator␤ typename␤FAILED 00:02 32m␤»
masak jnthn: I have to go now and will be offline for the rest of the day -- studying Chinese and washing clothes -- but I'm really happy about the bugs that you have already fixed. will go home and improve November and Druid accordingly, so that I can push newer, shinier versions tomorrow. :) 13:30
jnthn masak: Nice! And welcome. Thanks for the bug reports. :-)
masak there's more where that came from :) 13:31
jnthn wants to try and get us back down to 250 tickets in the nost too distant future. 13:35
masak it used to be 150. :) 13:39
jnthn Yeah...I don't see us getting down to *that* for quite a while... 13:43
Matt-W isn't it entirely masak's fault? :P
jnthn Largely. ;-) 13:44
moritz_ don't blame the one who delivers the message :-) 13:46
Matt-W Nonsense, my entire working life is based around blaming the testers who find the bugs in my code 13:47
If they didn't find them, nobody would ever notice
dalek kudo: fba805c | jnthn++ | src/parser/grammar.pg:
Add panic on malformed declaration, as seen in STD.pm (with note on our little difference against STD.pm). Also we accidentally parsed/passed a private method test; add something to mitigate that to keep the spectests clean.
14:06
mikehh my latest build of rakudo passes the spectests 14:19
dalek kudo: 1b7a3e3 | jnthn++ | src/parser/grammar.pg:
A few more panics on malformed code from STD.pm. Resolves RT#59828.
14:29
pugs_svn r25290 | jnthn++ | [t/spec] Add some parens to a test to clarify precedene. This now allows it to pass in Rakudo (we're not actually testing parsing of item assignment here, but subset stuff). 14:43
dalek kudo: cad0468 | jnthn++ | src/classes/Grammar.pir:
Implement .parsefile method on Grammar.
14:55
pugs_svn r25291 | jnthn++ | [t/spec] Tests for .parse and .parsefile on Grammar objects. 15:09
dalek kudo: 8b8095c | jnthn++ | src/classes/Grammar.pir:
Avoid an infinite exception handler loop by popping a handler before calling Rakudo's 'die'. Resolves RT#62700.
15:21
kudo: 1a2f50c | jnthn++ | t/spectest.data:
Add S05-grammar/parse_and_parsefile.t to spectests.
15:23
TimToady moritz_: what's wrong with numifying * to 0? only that nearly all the numeric operators should return a closure instead... 16:15
+* means { +$_ } 16:16
dalek kudo: 45cf376 | jnthn++ | src/builtins/op.pir:
++ and -- in both their prefix and postfix forms now use infix:<=>, which means they do read-only checking properly. This corrects RT#60380, but does cause some failures in for.t since <-> is not implemented, but accidentally worked before; will fix that in my next commit.
16:16
pugs_svn r25292 | jnthn++ | [t/spec] Unfudge test for $x++ where $x is readonly. 16:17
moritz_ TimToady: nothing's wrong, but bacek considered that a bug
TimToady std: say 0>*; say 0<*;
p6eval std 25291: OUTPUT«############# PARSE FAILED #############␤(Possible runaway string from line 1)␤Unable to parse quote-words subscript; couldn't find right angle quote at /tmp/9YopMvyQGq line 0:␤------> ␤FAILED 00:02 33m␤»
TimToady bacek: see ^^
dalek kudo: c66322e | pmichaud++ | src/builtins/match.pir:
Add 'make' function (partial RT #63152, chrisdolan++)
16:21
moritz_ so how can I use $/.make without closures in regexes? 16:31
via the {*} hooks? do they work right now?
dalek kudo: bb2cdb7 | jnthn++ | src/ (2 files):
Implement <-> (lambda that makes things rw), which gets S04-statements/for.t passing again.
16:49
pugs_svn r25293 | lwall++ | [STD] improved error message on "my WTF $x", jnthn++ 17:01
r25293 | lwall++ | suppress whitespace expectation when it's the only one
jnthn damm, I copy STD.pm and lwall++ goes and changes it! 17:04
;-)
pugs_svn r25294 | jnthn++ | [t/spec] Some more tests to exercise <->. 17:25
dalek kudo: 2e70f2d | jnthn++ | src/ (2 files):
Improve handling of <-> so any traits explicitly set in the signature are not overridden with rw.
ruoso trying to find a way out of typesystem bootstrap circularity 17:45
dalek kudo: d44d19c | pmichaud++ | src/parser/grammar.pg:
Add parsing of $/ as a param_var (RT #63152).
17:48
dalek kudo: 4367761 | jnthn++ | src/ (2 files):
If optional parameter not supplied, don't do type checks. Resolves RT#61528 and RT#63048.
19:31
kudo: 50a61ae | jnthn++ | src/parser/grammar.pg:
Merge branch 'master' of [email@hidden.address]
pugs_svn r25295 | jnthn++ | [t/spec] Unfudge optional typed parameter checks for Rakudo. 19:32
r25296 | jnthn++ | [t/spec] Basic tests for typed named parameters including optional check - seems we didn't have any such tests. 19:40
r25297 | lwall++ | History as written by the winners: 19:45
r25297 | lwall++ | The Long-Promised Grand Unification of + and * Twigils
r25297 | lwall++ | History as written by the losers:
r25297 | lwall++ | The Genocidal Slaughter of Innocent + Twigils
r25297 | lwall++ |
r25297 | lwall++ | (anyway, rouso++ for reminding me again)
r25297 | lwall++ |
r25297 | lwall++ | Also:
r25297 | lwall++ | cleanup of %*ENV semantics, wrt run()
r25297 | lwall++ | removal of postfix:<::> from S02
r25297 | lwall++ | clarification of %*OPTS scoping
ruoso TimToady++ # but I'd still kill GLOBAL ;) 19:53
TimToady we could rename it MONKEY_GLOBAL
ruoso but I'm not sure defaulting to lookup in $*ENV is really a good idea 19:54
%*ENV actualyl
but it might make sense 19:55
since that are the variables in the shell calling this perl program
TimToady, but I was envisioning a "dynamic prelude" where a set of contextual variables was defined 19:56
that not necessarly would be in GLOBAL or PROCESS
or even %*ENV
I mean... 19:57
what I had in mind was that $*OUT was defined in the dynamic prelude as an alias to PROCESS::<$OUT>
ruoso not that $*OUT did go look in PROCESSS 19:57
ruoso "temp $*LANG = "ja_JP.utf8"; # WRONG" 20:01
I think this is a pretty good example of misunderstanding caused by automatic %*ENV lookup
(and it just feels wrong, as it looks like PHP) ;) 20:02
dalek kudo: b2e7ac9 | jnthn++ | src/parser/actions.pm:
If we use is also, we need to check the class we're trying to extend already exists.
20:06
pugs_svn r25298 | jnthn++ | [t/spec] Test for making sure 'is also' on a non-existent class fails. 20:07
jnthn std: role A::B {}; A 20:11
p6eval std 25298: OUTPUT«Undeclared name:␤ A used at 1 ␤ok 00:02 33m␤»
ruoso jnthn, I'd presume "role A::B {}" is the same as "module A { role B {} }" 20:27
std: module A { role B {} }; A
p6eval std 25298: OUTPUT«ok 00:02 33m␤»
jnthn std: role A::B { }
p6eval std 25298: OUTPUT«ok 00:02 32m␤» 20:28
jnthn std: role A::B { }; A
p6eval std 25298: OUTPUT«Undeclared name:␤ A used at 1 ␤ok 00:02 33m␤»
jnthn ruoso: But STD.pm doesn't treat it that way.
pugs_svn r25299 | lwall++ | [STD] fix jnthn++'s role A::B {}; A
ruoso oops
jnthn ruoso: I agree it's a...oh...nice.
:-)
ruoso the fatest commiter in the west ;)
*fastest, that is 20:30
jnthn epic typo!
std: role A::B { }; A 20:31
p6eval std 25299: OUTPUT«Undeclared name:␤ A used at 1 ␤ok 00:02 33m␤»
TimToady ETOOSOON
jnthn std: role A::B { }; A 20:37
p6eval std 25299: OUTPUT«ok 00:02 33m␤»
pmichaud TimToady: btw, I noticed a possible issue with parsing $! as a param_var -- I think the ! gets eaten as a twigil. 20:39
lambdabot pmichaud: You have 1 new message. '/msg lambdabot @messages' to read it.
TimToady looking 20:40
pmichaud (I didn't test it... only looked by visual inspection.)
std: sub foo($!) { say $!; } 20:41
p6eval std 25299: OUTPUT«ok 00:02 34m␤»
pmichaud it may be treating that as a placeholder as opposed to $! though.
TimToady yeah, looks like it sees a twigil
pmichaud anyway, not critical for anything I'm doing at the moment-- just wanted to register that I had observed it. 20:42
TimToady I though it might be a mandatory $, but it's a twigil :)
*thought
pmichaud the important one for us ($/) parses okay at the moment.
afk for a bit # pick up kids 20:43
TimToady interesting that it will probably be necessary to write mandatory $ and $ ! rather than $!
but at least it's unlikely to be written on purpose
since an anonymous placeholder would only be used on params that are already mandatory 20:44
ruoso TimToady, while we're on old issues... any chance we have a solution for the Capture DWIMmery? 20:52
pugs_svn r25300 | lwall++ | [STD] don't treat $! param as sigiltwigil, pmichaud++ 21:19
KsEma Hello. How can i login with LWP::USerAgent and maintain a session while downloading some files ? Being logged in is needed fo rdownloading files 21:51
allbery_b that sounds like a perl5 question. this channel is for perl6 development 21:55
try #perl
KsEma tried. 21:56
diakopter starts to think of all statements (indeed, all parse nodes) as declarations (of *something*), in some compilation/execution phase/scope or another. 22:19