»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | tinyurl.com/p6contest
Set by moritz_ on 28 December 2010.
jnthn sleep & 00:05
patrick[BROWSING hello 00:12
I've just installed the new Rakudo star and first ran it with perl6 --version and got an error, is that one already known? 00:13
sorear We can't answer that without knowing the error you got. 00:14
patrick[BROWSING Null PMC access in get_bool() 00:15
sorear How did you install the new Rakudo star?
patrick[BROWSING perl Configure.pl --gen-parrot && make && make install 00:16
before that, I downloaded it from github and untared it 00:17
sorear is not familiar with this one, but doesn't follow Rakudo* too closely 00:19
patrick[BROWSING it's not a big problem though, perl6 itself seems to work, but “perl6 --version” was the first run I did
sorear ha
dalek ecza: b0be6ab | sorear++ | v6/ (3 files):
[v6] Fix shadowing of postcircumfix operators
00:20
snarkyboojum patrick[BROWSING: I can reproduce the error - looks like a bug 01:01
dalek ecza: 8f7f9e8 | sorear++ | v6/harness:
[v6] Fix parsing of @_ placeholder
01:25
ecza: aa7ce49 | sorear++ | v6/harness:
[v6] Fix method not found in RxOp::Subrule.clone
ecza: d4cf9df | sorear++ | v6/harness:
[v6] Fix regex_infix parsing
dalek rixel: dd8aa4e | diakopter++ | sprixel/ (7 files):
lots & lots of mono vs .net behavior sync'ing fixes, wrt SRE madness. :)
03:36
snarkyboojum description of the bug affecting --version for Rakudo Star distributions, and a little patch - gist.github.com/775688 04:15
snarkyboojum raised by patrick[BROWSING earlier today 04:17
dalek ecza: 1b79755 | sorear++ | v6/ (6 files):
[v6] mergeback
05:12
ecza: 28f62bc | sorear++ | v6/harness:
[v6] Fix adverb parsing
dalek rixel: 0c25ee5 | diakopter++ | / (10 files):
fix parsing of static fields, properties (on type literals, essentially)
06:09
moritz_ www.perlmonks.org/?node_id=881785 another thread where I couldn't resist providing a Perl 6 answer :-) 07:38
dalek kudo: 9b8bad7 | snarkyboojum++ | src/Perl6/Compiler.pir:
Parrot revision for --version fix

Check to see that the Parrot rev is available before trying to use it.
Signed-off-by: Moritz Lenz [email@hidden.address]
07:39
snarkyboojum moritz_: cheers 07:50
moritz_ snarkyboojum: thank you for the patch
snarkyboojum: I meant to write basically the same patch after the 2010.11 release, but forgot :-) 07:51
snarkyboojum will "fix" the --version issue for Rakudo Star next release
moritz_: ah :)
sorear bizarre... managed to break A::B::C but not A::B 08:05
tadzik snarkyboojum: that's what I did 09:04
phenny tadzik: 11 Jan 22:55Z <snarkyboojum> tell tadzik so in that case it might be worth moving your commands to --<command> switches? a la cpanm etc
snarkyboojum tadzik: cool 09:06
tadzik I was writing the USAGE looking at the cpanm --help
snarkyboojum tadzik: in that case, I have a feature request :) .. --info switch or similar to just return info about a particular module 09:07
tadzik: e.g. the source of the module 09:09
snarkyboojum tadzik: not the source code, but where the module came from praps e.g. github url.. I don't know :) 09:09
tadzik snarkyboojum: awesome idea, well volunteered! 09:11
snarkyboojum tadzik: I was going to just give you a patch, but wanted to wait until you had changed the command line args stuff :)
sorear tadzik: what sorts of features does neutro need of the implementation? 09:12
tadzik bah, META.info has no author
sorear: I check it on niecza from time to time, let me see
oh, file operations definitely
and it's not dependency-free, so JSON, File::Tools and Module::Tools
snarkyboojum: the args stuff was fixed yesterday 09:13
sorear also, I beleive you meant to say "baile"
tadzik (in the branch of course)
probably, I'm not even A1 in Spanish :)
sorear calling a function bailar is like calling it to_dance
A1?
tadzik yeah, that's right
tadzik there is this scale on learning languages, A1, A2, B1, B2, C1, C2 09:14
sorear is not competent in the language by any means
tadzik B2~C1 is what native speakers speak, iirc
sorear tadzik: I do not beleive that system is used in the US
tadzik maybe
sorear so I have no experience with it
tadzik have you heard of this FCE thingy? 09:16
that's B2, so sort of "the basic understand and usage of the language". A1, which I'm not at yet, is like "I can understand basic sentences from the topics I know and say something in easy words about the topics I know" 09:17
iirc
tadzik sorear: pastie.org/1451570 09:18
masak morning, zebras. 09:22
tadzik morning masak
sorear hi masak. 09:25
tadzik snarkyboojum: github.com/tadzik/neutro/issues#issue/2 :) 09:27
snarkyboojum tadzik: I like :) 09:27
tadzik bbl, gotta go 09:28
snarkyboojum tadzik: there ya go - gist.github.com/775944 :D 09:41
snarkyboojum tadzik: Feel free to clean up or throw away entirely :D gist.github.com/775953 09:51
masak std: my Int sub foo(--> Bool) returns Str { ... } 10:25
p6eval std 625303c: OUTPUT«===SORRY!===␤Extra 'of' type; already declared as type Int at /tmp/ckDRYuSFdy line 1:␤------> my Int sub foo(--> Bool⏏) returns Str { ... }␤Extra 'of' type; already declared as type Bool at /tmp/ckDRYuSFdy line 1:␤------> my Int sub
..foo(-->…
masak :) 10:26
std: my Int sub foo() returns Str { ... }
p6eval std 625303c: OUTPUT«===SORRY!===␤Extra 'of' type; already declared as type Int at /tmp/W3pBx0dUzU line 1:␤------> my Int sub foo() returns Str ⏏{ ... }␤Check failed␤FAILED 00:01 120m␤»
masak there's no fooling STD.
moritz_ TimToady++
there are areas where STD is quite thorough 10:27
tadzik snarkyboojum: I'd go for @args».&install unless $info; !$info looks a bit like $!info, but nice patch 10:36
snarkyboojum tadzik: good-o :)
tadzik: want me to send you another patch then? 10:37
tadzik snarkyboojum: if you wish :) I'm on a discrete maths classes now anyways :)
snarkyboojum tadzik: nps
masak rakudo: my &r := &return; sub f { my sub return($v) { say "LOL!"; &r($v) }; return 42 }; say f 10:45
p6eval rakudo 9b8bad: OUTPUT«LOL!␤42␤»
masak rakudo: my &r := &return; sub f { my sub return($v) { say "LOL!"; &r($v + 10) }; return 42 }; say f 10:45
p6eval rakudo 9b8bad: OUTPUT«LOL!␤52␤»
masak wow! that *works*! 10:46
moritz_! :D
moritz_: I have a workaround for one of your RT tickets.
masak adds it to that ticket
moritz_ masak: I have too. I just name the new return differently :-)
masak now you don't have to :) 10:47
moritz_ masak: fwiw my workaround in the submission for p4 :-)
masak right. haven't looked at it yet. will soon, hopefully today. 10:49
moritz_ it's used for reverting the coordinate transformation that I do interenally to get rid of the cyclic boundary conditions 10:50
dalek ecza: 6c3d380 | sorear++ | / (2 files):
[v6] More misc fixes
11:02
ecza: a21bc67 | sorear++ | v6/ (3 files):
[v6] More random fixes - first 674 tests pass
sorear delightful, my *-currying tests are broken 11:05
ok (* + 5)(2) == 7 # This means ok -> $a { ($a + 5)(2) == 7 }, and blocks are true 11:06
moritz_ you shouldn't curry code invocation :-)
mux so that's how perl6 allows currying 11:08
masak mux: there's also .assume
moritz_ .assuming iirc 11:09
sorear * is mostly just for operators
although I've used *.&defined in a couple evil places in niecza-v6 :> 11:10
mux so, * for left and right sections, and .assuming for partial application
(that shouldn't be called currying actually)
masak right, .assuming
mux googles .assuming
sorear "left and right sections"... I know where YOU came from
mux hides :-) 11:11
masak it's ok, we like lambdapeople.
mux heh, I like that name: "whatever-star"
masak mux: and I might be a bit confused about what currying really is, still, so maybe .assuming doesn't count, no.
moritz_ thinks it does 11:12
sorear wonders if mux remembers me
mux mmmm, your nickname clearly rings a bell, but I can't say more 11:12
dalek ecza: 6e17857 | sorear++ | v6/harness:
[v6] Fix whatever-star currying
11:13
sorear wtf. "all tests successful"
ah well, best be happy.
moritz_ just means you don't have enough tests :-)
sorear -> sleep, tomorrow will see if niecza-v6 can compile itself 11:14
mux sorear: please tell me when I met you already, I feel bad about it
moritz_ sorear: you can also exclude smart-matching and binding from whatever currying
sorear mux: I was pretty active in #haskell ca. 2007
mux sorear: aaaah. okay :)
have a good night 11:15
tadzik snarkyboojum: writing a patch? 11:16
snarkyboojum tadzik: have done.. will generate it
tadzik cool 11:20
snarkyboojum tadzik: doh - don't know how to squash the two commits into one patch, and don't have time to learn atm :D 11:21
moritz_ git rebase -i HEAD~3 11:24
then change the last line to "s $commit_id"
save and exit
snarkyboojum moritz_: the last line? 11:26
moritz_ snarkyboojum: you will be offered a file with commits in your favorite $EDITOR
snarkyboojum moritz_: gotcha I think - and what do you mean by "s $commit_id" 11:27
moritz_ snarkyboojum: do it, you'll see
the lines are of the form <command> <commit_id>
just change the command to s
snarkyboojum ha - I stuffed it up I think - oh well 11:30
I "just tried it" before you explained ;)
moritz_: ooh - but fixed it, and it worked! thanks 11:33
moritz_ \o/ 11:34
you're welcome
snarkyboojum git rebase --abort let me start again it seemed
moritz_ it does
snarkyboojum nifty!
tadzik: and so after all of that, I have the same patch as before with 3 characters different :P gist.github.com/775953 11:35
tadzik snarkyboojum: applied, thanks! 11:45
snarkyboojum tadzik: w00t - welcome
masak tadzik: I've now read ttjjss.wordpress.com/2011/01/08/per...and-ideas/ 12:00
tadzik: kudos.
I really like how the ecosystem evolves bit by bit like this. it's very different now from when proto got started two years ago. 12:01
jnthn wonders if Neutro will one day win the Peace Prize too. :)
tadzik Peace Prize? 12:04
ah :)
maybe, like proto evolved into pls, neutro will evolve into noble :) 12:05
masak: today I realised I forgot to add an author field to META.info :) 12:06
so, what would you say for merging the neutro branch, pulling tadzik/ecosystem into perl6/ecosystem and adjusting modules.perl6.org in, say, a few days? 12:07
tadzik the only blocker is the module authors, there are still too many important modules in the old format 12:08
moritz_ .u ♥ 12:42
phenny U+2665 BLACK HEART SUIT (♥)
daxim p6eval, my $f = sub ($n) { return 1 if $n < 2; return $n * $?SUB.($n - 1); }; $f(6).say; 12:46
perl6, my $f = sub ($n) { return 1 if $n < 2; return $n * $?SUB.($n - 1); }; $f(6).say; 12:47
DWIM for FSM's sake! 12:48
perl6: my $f = sub ($n) { return 1 if $n < 2; return $n * $?SUB.($n - 1); }; $f(6).say;
p6eval rakudo 9b8bad: OUTPUT«===SORRY!===␤Symbol '$?SUB' not predeclared in <anonymous> (/tmp/3A0pFR5V1b:22)␤»
..pugs: OUTPUT«*** No such subroutine: "$?SUB"␤ at /tmp/GaSi9TN0Kr line 1, column 47-66␤»
..niecza v1-138-g6e17857: OUTPUT«Potential difficulties:␤ Unrecognized variable: $?SUB at /tmp/3OvXXMoGse line 1:␤------> { return 1 if $n < 2; return $n * $?SUB⏏.($n - 1); }; $f(6).say;␤␤Unhandled Exception: System.Exception: Unable to find lexical $?SUB in ANON␤ at
..Niecza.CLRBackend.NamProc…
takadonet morning all 12:49
colomon tadzik: couldn't you use deps.proto to make a fake META.info if a real META.info is not available? 12:57
tadzik: just as a stop gap? 12:58
tadzik colomon: that's a bit complicated. If there's no META.info registered in the ecosystem, the installer does not know what/were the memory is 13:11
but it should be possible to write a class faking the META.info if not present, as a stop 13:12
tadzik but I'm afraid that'll result in some of the old modules never being fixed 13:12
unless we set some deadline
daxim oooo funky p3rl.org/Whatever 13:19
Fuad hi 13:26
takadonet Fuad: hey 13:27
daxim perl6: <In des Waldes tiefsten Gründen ist kein Räuber mehr zu finden.>.sort.say 13:36
p6eval pugs: OUTPUT«decodeUTF8': bad data: '\252'␤decodeUTF8': bad data: '\228'␤GründenInRäuberWaldesdesfinden.istkeinmehrtiefstenzu␤»
..rakudo 9b8bad: OUTPUT«GründenInRäuberWaldesdesfinden.istkeinmehrtiefstenzu␤»
..niecza v1-138-g6e17857: OUTPUT«Gründen In Räuber Waldes des finden. ist kein mehr tiefsten zu␤»
daxim perl6: <In des Waldes tiefsten Gründen ist kein Räuber mehr zu finden.>.sort(*.chars <=> *.chars).say 13:37
p6eval pugs: OUTPUT«decodeUTF8': bad data: '\252'␤decodeUTF8': bad data: '\228'␤0GründenInRäuberWaldesdesfinden.istkeinmehrtiefstenzu␤»
..niecza v1-138-g6e17857: OUTPUT«␤Unhandled Exception: System.Exception: Unable to find lexical &infix:<<=>> in ANON␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤ at
..Niecza.CLRBackend.NamProcessor.RawAccessLex (System.S…
..rakudo 9b8bad: OUTPUT«InzudesistkeinmehrWaldesRäuberGründenfinden.tiefsten␤»
Fuad Im looking for PERL gaming bots
daxim rakudo wins
Fuad i have made one
idleRPG bot on perl
is there any other perl gaming bots ?
perl is great 13:38
Fuad masak 13:53
lurkingnoob Fuad: there's openkore =) 14:02
tadzik oh, I know how to handle this 14:03
I can create a module shelter, with a META.info for each orphaned module, with additional "note" : "ORPHANED"
So if someone wants to continue work, he/she can adopt his/her module back
daxim what sort of format is .info? 14:04
tadzik json, actually 14:05
if that's what you mean
daxim they why isn't it named so? 14:05
tadzik hrm 14:06
for I stole it from S22
daxim aha
tadzik where it's said to be YAML
tadzik META.info is more general, it won't look stupid if one day we'll change json to something else 14:06
daxim I'll teach you data design because we do not have a proper librarian here, that would be a job for one. 14:09
tadzik hm?
daxim note is signifying nothing, a hollow key where all the meaning is in the value ORPHANED
tadzik warnings? 14:10
gotchas? :)
daxim no
tadzik or we can put ORPHANED in the description, then it'll show up on the listing
daxim invent a key that is self-explaining, like: adopted-status: orphaned
lack of that key would imply the default value "actively maintained"
daxim adding metadata into a name/description is right out. that's the same stupid mistake as tieing the file type to the name as "extension", and we have been suffering from this the last 20, 30 years 14:12
daxim since that key name I just made up is not standardised in a spec, it is customary to prefix it with x- 14:14
tadzik daxim: adding ORPHANED to the description has this good side, that users will clearly see the state and module author will get ashamed 14:16
and that's what I'd really like to achieve.
Generally, putting metadata in name/description is stupid, I agree
daxim that responsibility does not belong in the data, but in the toolchain. whatever web page displays it can put a big fat warning in red and blink when it sees that value 14:17
takadonet tadzik: speaking about being ashamed... you forgot to add one of my modules up there to your META list!
tadzik :O
tadzik is ashamed
takadonet: wanna commit bit, Justin Case?
takadonet github.com/Takadonet/Text-Tabs-Wra.../META.info 14:18
if i get one... then I have no excuse!
tadzik my git diff is non-empty :( I have no excuse!
tadzik pushes
ee, ETOORESTRICTIVEFIREWALL 14:19
oh wait, it worked
ahh, pushing is via ssh
daxim: if I were about to redesign META.info now, I'd probably add some field as you say. But with the possibilities that are there now, description is imho the best place to use 14:21
takadonet thanks!
daxim well, it's wrong. I can't keep you from doing it 14:22
takadonet mj41: welcome back 14:25
tadzik daxim: it's temporary, and it's the most effective thing I can work out w/o adjusting the toolchain 14:34
github.com/tadzik/ecosystem/tree/master/SHELTER -- the "still not there" modules 14:36
takadonet shit! forgot to add bioperl6 META.info file.... 14:37
tadzik it works! \o/ 14:40
cognominal_ In Grammar.pm, I see rule param_sep { $<sep>=[','|':'|';;'|';'] { @*seps.push($<sep>) }}
cognominal_ I can't remember what the ';' separator is used for 14:41
takadonet tadzik: what works?
tadzik takadonet: what works?
ah
takadonet: creating a shelter
it magically makes module maintainer remember about the changes :) 14:42
cognominal_ Also in Actions.pm, I don't see that case handler in the signature method
*handled
PerlJam cognominal_: Assuming I've got the right context, the semicolon is for multiple dimensions 14:44
cognominal_ PerlJam, what is the relationship with a parameter separator? 14:45
Is that some kind of pattern matching? 14:46
PerlJam Hmm. 14:54
aha! 14:58
cognominal_: See S12:1215
PerlJam I wonder if Rakudo implements that since the whole paragraph is conjectural 15:02
cognominal_ PerlJam++ # so it is parsed but not yet handled 15:03
PerlJam After reading that paragraph 3 times that usage of semicolon still seems bizarre 15:05
cognominal_ Indded, It does not seem to involve parameter separators 15:07
PerlJam The fact that the paragraph itself questions whether or not there is a use-case for it makes me think YAGNI and perhaps the paragraph could be shortened to "semicolon is treated as comma" 15:10
(and moved to S06)
takadonet bioperl6 is not an ORPHAN ! 15:24
masak tadzik: re author field. it feels like you, to some extent, are duplicating data that originally resides in the module tags inside the .pm files
matthias_ rakudo: my %h.=push( a => 1 ); 15:42
p6eval rakudo 9b8bad: OUTPUT«Odd number of elements found where hash expected␤ in '!STORE' at line 5210:CORE.setting␤ in main program body at line 22:/tmp/wAoYz1IeN8␤» 15:43
matthias_ rakudo: my %h.=push('a' => 1);
p6eval rakudo 9b8bad: OUTPUT«Odd number of elements found where hash expected␤ in '!STORE' at line 5210:CORE.setting␤ in main program body at line 22:/tmp/cTQzVbcRKH␤»
matthias_ rakudo: my %h = %h.push('a' => 1);
p6eval rakudo 9b8bad: OUTPUT«Odd number of elements found where hash expected␤ in '!STORE' at line 5210:CORE.setting␤ in main program body at line 22:/tmp/Gd1guQMCAu␤»
matthias_ rakudo: my %h; %h.push('a' => 1); say %h.perl; 15:44
p6eval rakudo 9b8bad: OUTPUT«{"a" => 1}␤»
PerlJam I guess Hash.push doesn't return the hash 15:47
colomon rakudo: my %h; say %h.push('a' => 1).perl; 15:48
p6eval rakudo 9b8bad: OUTPUT«Any␤»
matthias_ hm.. But maybe there is a general way to avoid "empty declarations"?
colomon rakudo: my %h = 'b' => 2; say %h.push('a' => 1).perl; 15:49
p6eval rakudo 9b8bad: OUTPUT«Any␤»
colomon rakudo: my @h = 'b'; say @h.push('a').perl;
p6eval rakudo 9b8bad: OUTPUT«["b", "a"]␤»
matthias_ I would like to be able to use the declared variable right away in its initialization :)
PerlJam The spec says it should return the hash. That seems like it should be LHF
colomon indeed.
matthias_ cool :) 15:50
PerlJam matthias_: you can and you did :)
colomon though I really don't see the point in using " the declared variable right away in its initialization" -- at least like this?
I mean, why not initialize it directly, rather than trying to push to it during initialization? 15:51
matthias_ I just find it annoying to write my X; X = ... in several situations :) 15:51
colomon but you can say my X = ... 15:52
matthias_ yeah but it fails if I want to use the variable on the rhs
PerlJam rakudo: my %h = 'a' => 1; say %h.perl;
p6eval rakudo 9b8bad: OUTPUT«{"a" => 1}␤»
PerlJam matthias_: it failed for reasons totally unrelated to being able to use the var as soon as it is declared. 15:53
masak diakopter: I'm not fully backlogged yet, but... three days ago you asked about non-self private attribute access. sorear answered $obj!attr. my impression is that sorear's proposed syntax only concerns private method calls, not private attributes, and that in Perl 6, objects are so opaque that not even non-self objects of the same class can see self's private attributes. 15:54
matthias_ perljam: I meant: I want to be able to use the variable on the rhs of the assignment: my %h = %h.push(); for example fails
PerlJam matthias_: no, it works just fine except that Hash.push doesn't return the hash for assignment. 15:55
colomon matthias_: but how is that construct in any way an improvement of my %h = whatever you were going to push?
PerlJam :)
matthias_ oh!
you're right, mea culpa :)
colomon I can imagine complicated lazy constructs where you might want to use a variable in its own definition, but those won't work with = anyway. :) 15:56
matthias_ colomon: I thought push() has special semantics, so it creates arrays where keys appear multiple times
colomon matthias_: hmmm... 15:57
colomon rakudo: my %h = 'a' => 10, 'a' => 20; say %h.perl 15:57
p6eval rakudo 9b8bad: OUTPUT«{"a" => 20}␤»
PerlJam colomon: He's correct AFAIK 15:58
colomon yup.
matthias_ other constructs I thought about are my $x; $x = ... while unsuitable($x); which would be cool to write as my $x = ... while unsuitable($x) though I understand that the while-condition probably doesn't know about the $x that I want to initialize :) 15:59
colomon so I guess that is a potential use for my %h .=push(...). huh. learn something every day!
I've got a whistle lesson now, but if no one else has it when I'm done, it's trivially easy to make Hash.push return self. 16:00
PerlJam colomon: I'm adding a test for it now and I'll implement it
colomon PerlJam++
dalek ast: 77ad197 | duff++ | S32-hash/push.t:
[push.t] Hash.push should return a Hash
16:06
PerlJam My computer is überslow this morning for some reason 16:07
pyrimidine takadonet++ # updates to bioperl6 16:07
dalek kudo: 8681daf | perlpilot++ | src/core/Hash.pm:
Make Hash.push return the hash
16:11
masak rakudo: my @a = 1, 2, 3; say (@a.push: 4, 5).perl 16:12
p6eval rakudo 9b8bad: OUTPUT«[1, 2, 3, 4, 5]␤»
masak PerlJam++ # consistency
PerlJam Has the rakudo build time gotten slower lately and I've only noticed today?
matthias_ thank you very much PerlJam++ :) Now I'm gonna send masak my solutions but p4, which I still have to solve (I think it is akin to the "paper strip game" (euler project)...) 16:13
tadzik masak: hmm, right 16:14
tadzik takadonet: commit bit given 16:18
masak rakudo: my @a = "def".comb; my %h.=push( @a Z 0..* ) 16:41
p6eval rakudo 8681da: ( no output )
masak rakudo: my @a = "def".comb; my %h.=push( @a Z 0..* ); say %h.perl
p6eval rakudo 8681da: OUTPUT«{}␤»
masak ah -- that's the change that just went in. :) 16:42
(was wondering why matthias_++ solution didn't work locally)
masak rebuilds Rakudo
colomon has become unhealthily obsessed with p4 17:03
masak the scope of any such obsession is limited to the next three or so days. 17:04
arnsholt ^_^
Indeed
masak send in submissions, people! :)
arnsholt I'll probably submit soon
Just need to finish my p4 solution
masak it's also possible to submit solutions one at a time. 17:05
arnsholt True, true
And submit several times
But it has to be PERFECT!
*ahem* =)
masak std: True, true 17:06
p6eval std 625303c: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'true' used at line 1␤Check failed␤FAILED 00:01 120m␤»
masak std: True, so
p6eval std 625303c: OUTPUT«===SORRY!===␤Prefix requires an argument at /tmp/4XxL5YuMgT line 1 (EOF):␤------> True, so⏏<EOL>␤Parse failed␤FAILED 00:01 120m␤»
masak std: so True
arnsholt std: so True
p6eval std 625303c: OUTPUT«ok 00:01 118m␤»
masak :)
arnsholt Indeed
tadzik wow
arnsholt Perl poetry won't go out of fashion with Perl 6, evidently =D 17:07
moritz_ so True
:-)
arnsholt =D
masak rakudo: sub exclaim { say $^thing.uc, '!!!' }; exclaim 'bam' 17:09
p6eval rakudo 8681da: OUTPUT«BAM!!!␤»
masak is easily amused
tadzik rakudo: sub exclaim { say $^thing.uc, '!!!' }; exclaim 'bam', 'bam' 17:11
p6eval rakudo 8681da: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in 'exclaim' at line 1:/tmp/qqs8aOdXQa␤ in main program body at line 22:/tmp/qqs8aOdXQa␤»
masak tadzik: if you want slurp behavior, you have to use an explicit signature, I think. 17:12
tadzik rakudo: sub exclaim { say @^nother_thing.join.uc, '!!!' }; exclaim 'bam', 'bam'
p6eval rakudo 8681da: OUTPUT«Nominal type check failed for parameter '@nother_thing'; expected Positional but got Str instead␤ in 'exclaim' at line 1:/tmp/OpKgeM83_M␤ in main program body at line 22:/tmp/OpKgeM83_M␤»
tadzik hmmm
rakudo: sub exclaim { say *@^nother_thing.join.uc, '!!!' }; exclaim 'bam', 'bam'
p6eval rakudo 8681da: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
tadzik bah
rakudo: sub exclaim { say @_.join.uc, '!!!' }; exclaim 'bam', 'bam' 17:13
moritz_ you can't to self-declared slurpies
p6eval rakudo 8681da: OUTPUT«BAMBAM!!!␤»
masak tadzik: what I said.
tadzik yeah, was just looking for a funky way
flussence std: ????? ... ZZZZZZZZZZZZZZZ... (...).WHAT !!!!! 17:15
p6eval std 625303c: OUTPUT«===SORRY!===␤Ternary !! seems to be missing its ?? at /tmp/eM7FvnkqsF line 1:␤------> ??? ... ZZZZZZZZZZZZZZZ... (...).WHAT !!⏏!!!␤Undeclared name:␤ 'ZZZZZZZZZZZZZZZ' used at line 1␤Parse failed␤FAILED 00:01 121m␤»
moritz_ rakudo: sub exclaim { say @^nother_thing.join.uc, '!!!' }; exclaim ['bam', 'bam']
p6eval rakudo 8681da: OUTPUT«BAMBAM!!!␤»
flussence :( works in rakudo.
moritz_ ternary parsing in rakudo is not very robust 17:16
flussence std seems to be matching ?? instead of ??? first
moritz_ std: 1 ?? 2, 3 !! 4
p6eval std 625303c: OUTPUT«===SORRY!===␤Precedence of , is too loose to use between ?? and !!; please use parens around inner expression at /tmp/tsjBC6zJi6 line 1:␤------> 1 ?? 2,⏏ 3 !! 4␤Parse failed␤FAILED 00:01 119m␤»
moritz_ rakudo: 1 ?? 2, 3 !! 4
p6eval rakudo 8681da: OUTPUT«===SORRY!===␤Confused at line 22, near "1 ?? 2, 3 "␤»
flussence wait, not ???
moritz_ we should start a list with LTA parsing error messages
flussence std: ??? ?? ... ZZZZZZZZZZZZZZZ... (...).WHAT !! !!!
p6eval std 625303c: OUTPUT«===SORRY!===␤Expecting a term, but found either infix ?? or redundant prefix ?␤ (to suppress this message, please use space between ? ?) at /tmp/3FG__aflxY line 1:␤------> ??? ??⏏ ... ZZZZZZZZZZZZZZZ... (...).WHAT !! !!␤Parse failed␤FAILED
..00:0…
moritz_ ??? can take an argument 17:17
flussence oh.
moritz_ rakudo: say (???).()
p6eval rakudo 8681da: OUTPUT«Stub code executed in <anon> at line 22:/tmp/bw_vRGNWJa␤Null PMC access in invoke()␤ in main program body at line 22:/tmp/bw_vRGNWJa␤»
moritz_ rakudo: say (??? 'foo').()
p6eval rakudo 8681da: OUTPUT«Stub code executed in <anon> at line 22:/tmp/hNVzi4cmgO␤Null PMC access in invoke()␤ in main program body at line 22:/tmp/hNVzi4cmgO␤»
moritz_ and rakudo ignores it
TimToady rakudo: 'Feel free to clean up or throw away entirely'.trans('up' => 'away', 'away' => 'up').say; # known bug? 17:19
p6eval rakudo 8681da: OUTPUT«Feel free to cleun aw or throp upup entirelp␤»
TimToady I thought someone put LTMish semantics into trans 17:20
masak yeah, I thought so too.
flussence rakudo: 'Feel free to clean up or throw away entirely'.subst('up' => 'away', 'away' => 'up').say; # does this one work?
masak TimToady: don't you have to put those in arrays?
p6eval rakudo 8681da: OUTPUT«Feel free to clean up or throw away entirely␤»
flussence aw.
masak rakudo: 'Feel free to clean up or throw away entirely'.trans(['up', 'away'] => ['away', 'up']).say 17:21
p6eval rakudo 8681da: OUTPUT«Feel free to clean away or throw up entirely␤»
masak \o/
TimToady: you just need to know the API, that's all :) 17:22
TimToady DWIM!!!
masak TimToady: you could always improve S05 if you want.
TimToady: I've always felt there's something slightly wanting in just that area...
TimToady if I always do one think I can never do something else
*thing 17:23
masak the Pauli exclusion principle of Things People Do :) 17:24
TimToady is uncertain whether it's exclusive 17:25
masak rakudo: s:g/ /a/ 17:27
p6eval rakudo 8681da: OUTPUT«Method 'subst' not found for invocant of class ''␤ in main program body at line 22:/tmp/k5CBubyVvk␤»
masak rakudo: my $_ = 'foo'; s:g/ /a/; say 'alive'
p6eval rakudo 8681da: OUTPUT«===SORRY!===␤Redeclaration of symbol $_ at line 22, near " = 'foo'; "␤»
masak er.
rakudo: $_ = 'foo'; s:g/ /a/; say 'alive'
p6eval rakudo 8681da: OUTPUT«alive␤»
masak std: $_ = 'foo'; s:g/ /a/
p6eval std 625303c: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/Lk7KnyYPsM line 1:␤------> $_ = 'foo'; s:g/ ⏏/a/␤ expecting quantifier␤Parse failed␤FAILED 00:01 122m␤»
masak submits rakudobug 17:28
tadzik rakudo: say $_.perl 17:28
p6eval rakudo 8681da: OUTPUT«Any␤»
tadzik rakudo: $_ = 'foo'; s:g/ /a/; say $_.perl
p6eval rakudo 8681da: OUTPUT«"afaoaoa"␤»
TimToady it's doing s:g/ '' /a/ as we noted the other day 17:29
masak yes, I just backlogged over that one. 17:31
what it's doing rather than failing isn't really that interesting. it should just fail, at parse time. 17:32
jnthn rakudo: // 17:45
p6eval rakudo 8681da: OUTPUT«===SORRY!===␤Null regex not allowed at line 22, near ""␤»
jnthn rakudo: / /
p6eval rakudo 8681da: OUTPUT«===SORRY!===␤Null regex not allowed at line 22, near ""␤»
jnthn hm.
masak right, it's only s///
tadzik rakudo: my $one = "name"; my $reg = eval "regex { \$<$one>=[ .+ ] }"; say 'alive' # how do I do this? 17:51
p6eval rakudo 8681da: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
masak tadzik: remember that {} interpolates in "" 17:52
tadzik: so probably start by escaping them.
tadzik oh, right 17:53
masak: that helped, thanks
TimToady there oughta be a way to do it without eval
arnsholt It makes me a bit sad that the UI code for my p4 solution will probably be more complicated than my AI code =)
TimToady you just need to develop artificial users now 17:54
tadzik TimToady: any idea how?
pmichaud good afternoon, #perl6 18:08
TimToady o/
pmichaud we create artificial users all of the time. Those are the ones that know how to debug their programs without us providing useful error diagnostics.
jnthn o/ pmichaud
colomon \o 18:09
TimToady std: regex { $($/{'foo'}) = [ .* ] } 18:10
p6eval std 625303c: OUTPUT«ok 00:01 122m␤»
masak pmichaud! \o/
TimToady std: regex { ( .* ) { $/{'foo'} = $0 } 18:11
p6eval std 625303c: OUTPUT«===SORRY!===␤Regex not terminated at /tmp/1p9E3j1LH5 line 1 (EOF):␤------> regex { ( .* ) { $/{'foo'} = $0 }⏏<EOL>␤ expecting quantifier␤Parse failed␤FAILED 00:01 123m␤»
TimToady std: regex { ( .* ) { $/{'foo'} = $0 } }
p6eval std 625303c: OUTPUT«ok 00:01 123m␤»
TimToady something like that 18:11
tadzik ah, cute 18:12
much better, thanks TimToady
TimToady that's assuming $/ is mutable, of course
and ends up in the final Match object
TimToady STD currently tends to do that sort of stuff with assignment to $¢<name> though supposedly the cursor is immutable 18:13
masak it feels odd to think of $/ as containing something other than a Match object during parsing.
pmichaud I thought $/ contained the partially completed match object (or the state of the match as of that point in the regex) 18:14
(haven't read backscroll, btw) 18:15
TimToady it's a funny thing to deal with in a match engine where cursors are supposedly immutable; the block has to manufactur a new cursor from the final value of the $/ after the block is called 18:16
STD is basically cheating on immutability by assigning directly into a cursor
pmichaud nqp-rx cheats a fair bit on cursors also, although to the external world they appear immutable 18:17
TimToady one almost wishes for versioned immutable objects 18:18
but that's probably more overhead for small objects than simply copying 18:19
a sufficiently ropey string implementation might usually provide immutable strings as versioned mappings to ropes 18:21
TimToady s/usually/usefully/ 18:23
sorear good * #perl6 18:25
pmichaud: why does rakudo do the $/.from > $/.to thing?
niecza's cursors are quite immutable... when porting STD, lines like $¢.<onlystar> = 1 were one of the biggest issues 18:26
to get things to work I added a slightly ad-hoc extension 18:27
niecza: "" ~~ / $<x> = {2 + 2} /; say $/.<x>
p6eval niecza v1-138-g6e17857: OUTPUT«4␤»
pmichaud sorear: left over from PGE, I suspect 18:28
it was just an easy way to indicate a failed match
sorear niecza has mutable cursoroids deep inside, but they're never exposed to user code; $/ in a regex block is a Cursor created as a snapshot
TimToady sorear: that's cute, but maybe we should have sugar to do that inside a block 18:29
s/sugar/API/
TimToady thinks about the viability of $¢.=meth 18:31
sorear masak: As I understand it, $!attribute actually means $( self!attribute ). 18:32
TimToady now thinks about the general question of whether $foo .= meth guarantees that $foo.WHICH is invariant
sorear it can't. consider my $foo = "HI"; $foo .= flip 18:33
colomon huh. I thought it was important that it didn't.
sorear unless you want to allow "HI" === "IH"
TimToady but @foo.=method stays the same WHICH 18:34
doesn't it?
well, maybe just as a normal optimization
I don't suppose it's guaranteed either
colomon @foo.=grep certainly doesn't... 18:35
TimToady right
I guess if we define .= in terms of assignment, there's no such invariant
masak sorear: but self!attribute would be a method call, and S12 *specifically* says that private attributes are slots/storage locations, not accessed by methods.
masak thinks it probably should be defined by assignment 18:36
diakopter TimToady: I'd be grateful for a comment on masak's comment at 09:54 CST today 18:38
TimToady so that argues for a $¢.=push( x => 2+2 ) inside regex blocks
or some such
diakopter: I run my irssi in PST :P 18:39
TimToady is still backlogging in any case
diakopter oh..
masak diakopter: what's that in UTC? 18:40
PerlJam UTC++ 18:41
diakopter I dunno; it's your thought about access to private attributes & methods to objects other than self (but of the same class as self), in methods of a given class
TimToady irclog.perlgeek.de/perl6/2011-01-12#i_3179322
PerlJam (I'm in CST, but I run my irssi in UTC so I have the same problem as everyone else ... what time was that?)
diakopter 2.8 hours ago 18:42
masak diakopter: I'm surprised that sorear was the one bringing this up; I generally feel his metamodel and mine are fairly close when it comes to Perl 6 OO.
pmichaud 9:54 CST = 15:54 UTC
TimToady I don't think private attributes are that opaque; a class hopefully can trust itself
pmichaud = 7:54 PST
masak pmichaud++
pmichaud keeps three clocks in his head. 18:43
and yes, my irssi runs in UTC :)
PerlJam pmichaud: because a man with 2 clocks nevers knows what time it it? :)
diakopter masak: sorear was the one bringing this up?
masak TimToady: is S12 specific about that? what's the syntax for private attribute access out of self?
TimToady but it might need to use the trusted syntax, not the self syntax, to get at another object's privates...er...
pmichaud this question has come up several times before
looking :)
masak afk
pmichaud github.com/perl6/mu/blob/master/misc/pm.txt#L76 18:44
diakopter tries to figure out where r28932 is 18:45
pmichaud it's in S12, iirc
TimToady also, note that all of these private accessors are really just function calls into the underlying repr; there's no dispatch going on here 18:46
so yes, these "accessors" are just ways of naming slots and controlling access via the "trusts" mechanism
PerlJam S12:1319 18:47
diakopter sorry for the question, whose answer I'm sure I knew/read before... there's no __PACKAGE__ alias/macro? 18:48
moritz_ diakopter: 09a7b9b266e3ab13c6ec30ae02ff02a5e7c338e1 in specs repo 18:48
PerlJam diakopter: there's $?PACKAGE 18:49
TimToady diakopter: grep is your friend
PerlJam s/grep/ack/
TimToady in this case grep works find because it's in a top-level pod :)
*fine
diakopter moritz_: thanks :) 18:50
PerlJam except that I find I don't use grep anymore :)
(as I'm almost always looking through directory trees)
TimToady well, to be sure, I actually use my own ack-ish program that I wrote long ago
which I called "dgrep" 18:51
sorear self!attribute doesn't really do dispatch either; in particular it can always be inlined (something I plan to do soonish)
you don't even need gradual typing
TimToady I was including that notation in my remarks
TimToady but it is good to make that explicit :) 18:51
diakopter std: class A { has $!attr; method foo { my $obj = A.new(); say($obj!$?PACKAGE.attr()) } }; say A.new.foo 18:52
p6eval std 625303c: OUTPUT«ok 00:01 122m␤»
diakopter rakudo: class A { has $!attr; method foo { my $obj = A.new(); say($obj!$?PACKAGE.attr()) } }; say A.new.foo 18:53
p6eval rakudo 8681da: OUTPUT«===SORRY!===␤Symbol '$?PACKAGE' not predeclared in foo (/tmp/Xo5w5R_VKn:22)␤»
TimToady how does that parse in STD!?!
diakopter niecza: class A { has $!attr; method foo { my $obj = A.new(); say($obj!$?PACKAGE.attr()) } }; say A.new.foo
p6eval niecza v1-138-g6e17857: OUTPUT«␤Unhandled Exception: System.Exception: Unable to find lexical $?PACKAGE in A.foo␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤ at 18:54
..Niecza.CLRBackend.NamProcessor.RawAccessLex (System.Str…
PerlJam TimToady: perhaps you have an infix:<!> somewhere
sorear that syntax is absurd
diakopter agrees with sorear 18:55
TimToady $obj!TrustsMe::slot is the normal syntax, iirc
PerlJam std: class A { has $!attr; method foo { my $obj = A.new(); say($obj!"$?PACKAGE".attr()) } }; say A.new.foo # just checking
p6eval std 625303c: OUTPUT«===SORRY!===␤Unsupported use of . to concatenate strings or to call a quoted method; in Perl 6 please use ~ to concatenate, or if you meant to call a quoted method, please supply the required parentheses at /tmp/onwtXso80q line 1:␤------> my $obj =
..A.new(); …
diakopter pm's note says there's a .
TimToady we could, perhaps, make $obj!slot assume the current class, but only if I've had enough coffee, which I haven't. 18:56
diakopter oh wait.
I'm blind
diakopter would be ephemerally grateful 18:57
TimToady well, a day is a significan period of time
sorear $obj!"$?PACKAGE".attr means ($obj!"$?PACKAGE").attr
PerlJam oh, precedence.
sorear I think you meant $obj!"{$?PACKAGE}::attr", but I'm not convinced that should work
diakopter sorear: I see now; I got the . wrong; it shoulda been ::
sorear $obj!$?PACKAGE::attr is right out though 18:58
package names need to be barewords, period
TimToady it would be a bit of a burden to support symbolic refs on slot names, but the "my class" special case can probably be sugared 18:59
diakopter std: 2!"$a" 19:00
p6eval std 625303c: OUTPUT«===SORRY!===␤Variable $a is not predeclared at /tmp/2IjT356sUZ line 1:␤------> 2!"$a⏏"␤Unsupported use of . to concatenate strings or to call a quoted method; in Perl 6 please use ~ to concatenate, or if you meant to call a quoted method,
..please…
TimToady then method new could do $obj!slot = if it wanted to
diakopter Unsupported use of . to concatenate strings or to call a quoted method?
TimToady hmm, probably assuming there was a . there 19:01
when there was a !
diakopter wants the sugar
diakopter
TimToady std: $obj!meth 19:03
p6eval std 625303c: OUTPUT«===SORRY!===␤Variable $obj is not predeclared at /tmp/jILbgRc1os line 1:␤------> $obj⏏!meth␤Check failed␤FAILED 00:01 118m␤»
TimToady std: my $obj; $obj!meth
p6eval std 625303c: OUTPUT«ok 00:01 119m␤»
TimToady the sugar's already there, you just have to semanticalize it
sorear niecza: class Foo { has $.bar = 7; method x { say self!"b{"a"}r" } }; Foo.new.x 19:05
p6eval niecza v1-138-g6e17857: OUTPUT«===SORRY!===␤Unsupported use of . to concatenate strings or to call a quoted method; in Perl 6 please use ~ to concatenate, or if you meant to call a quoted method, please supply the required parentheses at /tmp/BhRosImVmt line 1:␤------> $.bar
..= 7; method x …
TimToady we should probably carp at CHECK time if meth isn't a known method in the current class, since it probably indicates an attempt to cross a class boundary
niecza: class Foo { has $.bar = 7; method x { say self!"b{"a"}r"() } }; Foo.new.x
p6eval niecza v1-138-g6e17857: OUTPUT«7␤»
TimToady if lookbehinds worked we could check for . there I guess 19:06
the error is a bit LTA as it stands 19:07
but the concat warning is going to be crucial for recovering P5 programmers, so we can't just take it out 19:08
arnsholt "recovering P5 programmers" ^_^ 19:09
TimToady we have this 12,000 step program, you see
niecza: my $a = "a"; class Foo { has $.bar = 7; method x { say self!"b{$a}r"() } }; Foo.new.x 19:10
p6eval niecza v1-138-g6e17857: OUTPUT«7␤» 19:11
TimToady sorear++
TimToady niecza: my $a = "ee"; class Foo { has $.bar = 7; method x { say self!"b{$a}r"() } }; Foo.new.x 19:12
p6eval niecza v1-138-g6e17857: OUTPUT«Unhandled exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.␤ at System.Collections.Generic.Dictionary`2[System.String,Niecza.IP6].get_Item (System.String key) [0x00000] in <filename unknown>:0 ␤ at
..Niecza.DynMetaObject.Ge…
TimToady ooh, explosive hash, should probably be classified as a munition 19:13
TimToady despises the modern tendency to use exceptions to indicate expected conditions 19:14
I'm looking at you, Python 19:15
diakopter but... return exceptions? 19:27
PerlJam Everything you do is exceptional! Who cares if you came in 53rd in a race with 55 people? You get a trophy anyway! 19:28
TimToady return exceptions are an exception :P 19:30
dalek ecza: dc92b63 | sorear++ | / (5 files):
[v6] Improve timing display, translate NieczaBackendClisp
TimToady exceptions are great for figuring out how far to unwind the call chain
they're not great for returning an "oopsie" value
TimToady "We're sorry, that flight is completely booked. We will now shoot you." 19:33
"and everyone else standing in line"
"at every counter" 19:34
PerlJam TimToady: Careful ... you might give the TSA some ideas.
TimToady if they haven't had that idea up till now, I have no hope for them
TimToady anyway, excptions are one of the biggest hammers out there that make parallel processing look like a thumb 19:35
TimToady phone 19:59
PerlJam really wishes that "Python is better than Perl 6" post wouldn't continue to get "air time" on the Internet. 20:18
tadzik this post is hell stupid
flussence if it was really better, they wouldn't need to try and force the point so much ;)
PerlJam though the #5 thing in that post makes me think the Perl community (including Perl 5) needs to spend a little time making and marketing "perl distributions". But I think Perl 6 will have to lead the way in that endeavor. 20:21
tadzik chromatic_x Funny thing is, #perl 6 shipped in Fedora *before* Python 3 did
(twitter)
perigrin Perl 6 lead/can lead the way in a lot of endevours marketting wise. 20:22
er 'will lead/can lead' 20:23
sorear hmm. Is there anything I can do in exchange for the return of the minutes? 20:40
re. phone
sorear hello Layla_91 21:03
tadzik seen Eric_Clapton 21:06
aloha Eric_Clapton was last seen in #perl6 4 days 1 hours ago saying "you knocked me on my knees!".
Layla_91 helo all.. am here just to watch :) who is Eric_Clapton? ..... :S 21:07
tadzik :D
this fella singing about some Layla lady
Layla_91: wrote some nice Perl 6 recently? 21:08
Layla_91 tadzik: I am preparing to go to the UK for a couple of RHCA exams.. so was a little busy.. :(
tadzik RHCA? 21:09
dalek ecza: 7905557 | sorear++ | v6/harness:
[v6] Fix :$foo parsing
Layla_91 tadzik: red hat certified architect.. 21:10
tadzik oh, cool
Layla_91 tadzik: I hope so.. I actually want to become a programmer.. but some sysadmin knowledge is ok :) 21:12
tadzik a certificate is a nice thing too
Layla_91 tadzik: Yeah.. one more thing to hang on the wall :D Did certificates have good use for you? 21:14
TimToady my brother-in-law once told me that my sysadmin job was a dead end, but that's how we got Perl :) 21:15
Layla_91 TimToady: are you really larry wall?!!!!!! :-S 21:16
tadzik :D
TimToady some days I am
flussence he's (larry wall).Str on here 21:16
moritz_ he's rather .Stringy in here :-)
TimToady the rest of the time I just pretend to be Larry Wall by making up witticisms 21:17
sorear if $name !~~ /::/ { # This bug was just fixed in niecza. I wonder if it should have warned. 21:18
tadzik Layla_91: well, the only certificate I have is a CAE, and the use it have was giving me the highest grade from English classes on the Uni w/o a need to say a word in English :)
TimToady sorear: was it trying to match /'::'/ ? 21:19
sorear TimToady: it was supposed to, yes
but it actually matches more like /''/ 21:20
TimToady was it originally a m:p5/::/ ?
sorear yes
TimToady well, it is legal, I think 21:20
it says if LTM matches nothing else, match ''
though if we treated it more like a conjunction, we'd get an error 21:21
std: /|/
p6eval std 625303c: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/0P4oARCHjR line 1:␤------> /|⏏/␤Parse failed␤FAILED 00:01 117m␤»
TimToady like that
Layla_91 tadzik: my english is terrible.. I hardly pass my english classes :D But I know Russian, Arabic, and Ukranian.. by the way I bought programming perl (3d ed).. to improve my perl and english skills :D
tadzik Layla_91: where are you from? 21:22
Layla_91 tadzik: now or born in? 21:23
flussence (your english is better than most people's russian, so we can't really complain :)
tadzik Layla_91: * :) 21:24
rakudo: say *.WHAT
p6eval rakudo 8681da: OUTPUT«Whatever()␤»
Layla_91 tadzik: :D
TimToady niecza: say *.WHAT
p6eval niecza v1-139-gdc92b63: OUTPUT«Sub()<instance>␤»
TimToady hah
TimToady niecza: say *.HOW 21:25
p6eval niecza v1-139-gdc92b63: OUTPUT«Sub()<instance>␤» 21:26
Layla_91 flussence: Thanks, but you should hear me speaking English xD
Layla_91 tadzik: currently in jordan (trace my IP :P) born in Russia.. lived in Israel, Turkey, Russia.. never been to the US.. you? 21:27
TimToady niecza: say 42.HOW
p6eval niecza v1-140-g7905557: OUTPUT«ClassHOW()<instance>␤» 21:28
TimToady niecza: say (*.HOW)(42)
p6eval niecza v1-140-g7905557: OUTPUT«Sub()<instance>␤»
TimToady oopsie
diakopter niecza: say .HOW
p6eval niecza v1-140-g7905557: OUTPUT«===SORRY!===␤Can't call method "isa" on unblessed reference at /home/p6eval/niecza/src/Niecza/Actions.pm line 2306.␤Check failed␤»
diakopter OO 21:29
tadzik Layla_91: oh, interesting. Born in Poland, still there. Been there and around, never in USA too 21:29
TimToady still using P5 underneath
sorear TimToady: niecza does whatevercode currying on postfix operators, including postcircumfix:<( )> 21:30
moritz++ has hinted that I should probably excempt that operator 21:31
TimToady perhaps
sorear like how infix:<=> doesn't curry ever
diakopter I wonder if irssi's tab completion can be extended to auto-add the ++
moritz_ diakopter: I'm pretty sure it can
TimToady the uc ones are really supposed to be treated as macros
so it's really a question of macro precedence
also, .HOW desugars to something that can't be a straight method call 21:32
since it has to supply the original object as 1st arg
sorear it's not a straight method call
but it's still a curryable operator
TimToady so it's really macro precedence
sorear { $^a.HOW } makes sense 21:33
I am not familiar with this use of "prcedence"
TimToady just as in "order of application"
TimToady rakudo is apparently do the .WHAT before it does the *.method transform, so it gets Whatever() 21:35
this is a place where we'll have to thrash out inter-implementational issues
moritz_ rakudo cheats horribly :-) 21:36
TimToady Larry the Ref: "In this corner we have Jnthn the Sturdy, and in that corner Sorear the Speedy." 21:37
PerlJam
.oO(Everyone's middle name is "the"!)
21:39
TimToady niecza: say *i.WHAT
p6eval niecza v1-140-g7905557: OUTPUT«␤Unhandled Exception: System.Exception: Unable to find lexical &postfix:<i> in ANON␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤ at
..Niecza.CLRBackend.NamProcessor.RawAccessLex (System.S…
TimToady rakudo: say *i.WHAT 21:40
p6eval rakudo 8681da: OUTPUT«WhateverCode()␤»
diakopter some people's first and last names are also "the"
TimToady I have a jar that says "THE"
sorear I should probably add a bunch of implementations of operators that just call die() so people don't get those backend failures
TimToady yes, you should, especially if while doing that you decide it would be easier to implement them instead. :) 21:41
sorear since STD doesn't know how to sorry on unimplemented operators 21:41
hi pmurias_
pmurias_ sorear: hi
diakopter at least it doesn't say "the first person singular linking/existential" 21:42
pmurias sorear: how's the bootstrap 21:42
?
sorear pmurias: v6-niecza passes all tests, although it's still choking on itself
diakopter (the jar, I mean) 21:43
pmurias tadzik: which city are you from?
TimToady diakopter: "THE" is just French for "TEA", I'm led to believe 21:44
pmurias sorear: that means the tests are too weak ;)
tadzik pmurias: warsaw
diakopter TimToady: oh; I thought it was claiming to be the definitive jar 21:45
pmurias tadzik: i'm from zielona góra, but i study in wrocław 21:46
TimToady P6 is really an AI in disguise, so not choking on itself is the *main* test. 21:46
tadzik pmurias: are there PM groups there? 21:48
diakopter does AI == Anteperfectus Infinitus ?
pmurias tadzik: i don't think so 21:49
sorear 13,311 total lines if you count my hacked version of STD.pm6. I wonder if this is the largest Perl 6 program in existance.
diakopter er, Aeternus Imperfectus 21:50
pmurias sorear: and withought STD.pm6? 21:51
colomon hmmm... seems like it may be on the same scale as Rakudo's source? though of course, some portion of that is nqp and some is pir. 21:52
moritz_ well, NQP *is* Perl 6... mostly :-) 21:53
sorear pmurias: 6399 fewer 21:53
moritz_ rakudo's src/core/*.pm is 6.9k lines
moritz_ find src/ -name \*.pm | xargs wc -l 21:54
=> 22.4k
moritz_ wait, that counts src/gen/core.pm too 21:54
so, minus 7.6k 21:55
rakudo: say 22.4 - 7.6
p6eval rakudo 8681da: OUTPUT«14.8␤»
moritz_ including grammar and action
Layla_91 * I wonder how draw the first picture of Camelia.. as a girl am sure it was a girl ^_^ much different than the camel image on my perl5 book :D 21:55
TimToady er... 21:56
or it was drawn by a guy who wanted to make Perl 6 more attractive to girls...
tadzik TimToady: was that you? :) 21:57
Layla_91 TimToady: Oops :) I guess so :D
TimToady looks like it worked, at least this time :D
I have two daughters who are artists, so I kinda know how to fake it. :) 21:58
Layla_91 TimToady: But you did a great job :) I really loved it :D there will be a p6 community of girls somday.. you will see B-) 21:59
TimToady I hope so; I also hope you will stick around and help make it so, 'cause just a cartoon won't do it all by itself. :) 22:00
Layla_91 I will.. :) 22:02
dinner time! good night all :D 22:03
TimToady o/
[Coke] (every's middle name is the) - coke the curmudgeon? 22:27
sorear #p5p is talking about MAD being broken 22:45
snarkyboojum 13,311 lines of Perl 6 in Niecza and 14,800 lines or Perl 6 in Rakudo - there's quite a bit of Perl 6 out there! :O 22:47
wolverian whoa, that's a lot.
I really really want to migrate already @ work to Perl 6... :)
pmurias /connect irc.perl.org 22:48
sorry 22:49
pmurias sorear: STD_P5 seems to be more promising for a translator 22:50
diakopter pmurias: if we can prod TimToady enough ;) 23:01
pmurias most of work on STD_P5 doesn't require TimToady 23:09
it's just changing rules to reflect Perl 5 instead of Perl 6 23:10
sorear std: /(<?before moo>)/ 23:37
p6eval std 625303c: OUTPUT«ok 00:01 120m␤»
sorear this manages to not work in the niecza-compiled std 23:38
Unrecognized regex metacharacter >
but without the () it works fine
sorear oh, hm, looking at the source it seems niecza is correct and viv isn't 23:42
TimToady: why does Regex.infixstopper use <?before '>' 23:43
TimToady: why does Regex.infixstopper use <?before '>' <-[ \> \) ]> > ?
colomon rakudo: <A B C D>.reverse.say 23:49
p6eval rakudo 8681da: OUTPUT«DCBA␤»
colomon rakudo: sub swap-em(@a) { @a.map(-> $a, $b { $b, $a }).flat; } say swap-em(<A B C D>); 23:50
p6eval rakudo 8681da: OUTPUT«===SORRY!===␤Confused at line 22, near "sub swap-e"␤»
colomon rakudo: sub swap-em(@a) { @a.map(-> $a, $b { $b, $a }).flat; }; say swap-em(<A B C D>);
p6eval rakudo 8681da: OUTPUT«BADC␤» 23:51
colomon rakudo: sub swap-em(@a) { @a.map(-> $a, $b { $b, $a }).flat; }; say swap-em(<A B C D>).reverse; say swap-em(<A B C D>.reverse)
p6eval rakudo 8681da: OUTPUT«CDAB␤CDAB␤»
TimToady sorear: because >> and >) are valid tokens in their own right
>> is a Texas » 23:52
er, well, maybe it's really )>
so dunno abou tthat one
probably a bug 23:54
sjohnson bugs are cute 23:55
TimToady I will try a before/after with snaptest to see if anything shows up that I've forgotten 23:56