»ö« 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.
00:04 GinoMan left 00:05 envi joined
jnthn sleep & 00:05
00:05 plobsing joined, GinoMan joined 00:09 mikehh joined 00:11 patrick[BROWSING joined
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
00:31 nymacro joined 00:36 shi left 00:38 ashleydev left 00:42 carlos left 00:43 risou joined 00:53 envi left 00:58 plobsing left 01:00 GinoMan left
snarkyboojum patrick[BROWSING: I can reproduce the error - looks like a bug 01:01
01:06 plobsing joined 01:07 QinGW joined 01:12 patrick[BROWSING left 01:15 plobsing left 01:16 arlinius joined 01:19 risou left
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
01:47 plobsing joined 02:00 cafesofie left, noganex_ joined 02:03 noganex left 02:13 ashleydev joined 02:20 Chillance left 02:29 helv joined, helv is now known as helv12 02:31 gbacon joined 02:35 cafesofie joined 02:38 nakashiman joined 02:39 masonkramer joined 02:43 molaf_ joined 02:44 molaf left 02:46 cafesofie left 02:57 nakashiman left 02:59 nakashiman joined 03:00 cafesofie joined 03:11 cafesofie left 03:13 masonkramer left 03:20 nakashiman left 03:22 nakashiman joined 03:23 nakashiman left
dalek rixel: dd8aa4e | diakopter++ | sprixel/ (7 files):
lots & lots of mono vs .net behavior sync'ing fixes, wrt SRE madness. :)
03:36
03:38 cafesofie joined 03:45 ashleydev left 03:47 s1n left 03:57 am0c^ left 04:06 HarryS left 04:09 HarryS joined 04:13 flatwhatson_ left, ashleydev joined
snarkyboojum description of the bug affecting --version for Rakudo Star distributions, and a little patch - gist.github.com/775688 04:15
04:16 orafu left 04:17 orafu joined
snarkyboojum raised by patrick[BROWSING earlier today 04:17
04:20 s1n joined 04:26 nadim left, Su-Shee left 04:28 cafesofie left, Su-Shee joined 04:35 ponbiki left 04:40 gbacon left 04:41 agentzh joined 04:45 ponbiki joined 04:48 orafu left 04:49 orafu joined 05:04 sjn left 05:06 sjn joined, cotto joined
dalek ecza: 1b79755 | sorear++ | v6/ (6 files):
[v6] mergeback
05:12
ecza: 28f62bc | sorear++ | v6/harness:
[v6] Fix adverb parsing
05:24 agentzh left 05:39 estrabd left 05:42 agentzh joined
dalek rixel: 0c25ee5 | diakopter++ | / (10 files):
fix parsing of static fields, properties (on type literals, essentially)
06:09
06:14 cjk101010 joined 06:23 hatseflats left 06:38 cafesofie joined 06:39 nymacro left 06:45 rgrau left 06:46 agentzh left 06:47 dayangkun joined 06:50 ashleydev left 06:52 wtw joined 06:55 sjn left 06:59 typepeter joined, kaare_ joined 07:04 agentzh joined 07:20 mberends left 07:21 am0c joined 07:23 hatseflats joined 07:30 Bzek joined 07:31 IllvilJa left
moritz_ www.perlmonks.org/?node_id=881785 another thread where I couldn't resist providing a Perl 6 answer :-) 07:38
07:39 flatwhatson joined
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
07:41 Bzek left 07:42 woosley joined
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 :)
08:00 stepnem left
sorear bizarre... managed to break A::B::C but not A::B 08:05
08:27 _twitch joined 08:32 QinGW1 joined 08:33 QinGW left 08:37 stepnem joined 08:44 justatheory left 08:46 kaare_ left, kensanata joined, kaare__ joined 08:47 f00li5h joined 08:50 kaare__ left 08:54 _twitch left 08:59 jerome joined 09:00 mberends joined
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
09:09 daxim joined
snarkyboojum tadzik: not the source code, but where the module came from praps e.g. github url.. I don't know :) 09:09
09:10 am0c left, nadim joined, mberends left
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
09:14 kaare_ joined
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
09:18 masak joined
tadzik sorear: pastie.org/1451570 09:18
masak morning, zebras. 09:22
tadzik morning masak
09:22 holzbit joined 09:23 dayangkun left 09:24 dayangkun joined
sorear hi masak. 09:25
tadzik snarkyboojum: github.com/tadzik/neutro/issues#issue/2 :) 09:27
09:27 fhelmberger joined
snarkyboojum tadzik: I like :) 09:27
09:27 fhelmberger left
tadzik bbl, gotta go 09:28
09:28 fhelmberger joined
snarkyboojum tadzik: there ya go - gist.github.com/775944 :D 09:41
09:47 dayangkun left 09:48 ekki joined 09:49 ekki left
snarkyboojum tadzik: Feel free to clean up or throw away entirely :D gist.github.com/775953 09:51
09:59 noganex_ is now known as noganex 10:02 QinGW1 left 10:08 dakkar joined 10:13 woosley left
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␤»
10:45 tzhs joined
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
10:55 dip joined
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
11:12 cognominal_ joined
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
11:23 typepeter left
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
11:40 am0c joined
tadzik snarkyboojum: applied, thanks! 11:45
snarkyboojum tadzik: w00t - welcome
11:52 IllvilJa joined 11:56 mj41 joined
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
12:08 redicaps joined
tadzik the only blocker is the module authors, there are still too many important modules in the old format 12:08
12:09 agentzh left 12:11 gimix left 12:16 xinming left, xinming joined 12:27 holzbit left 12:33 cafesofie left 12:36 coldhead left, coldhead joined
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
13:06 envi joined, estrabd joined 13:08 am0c left
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
13:12 gbacon joined
tadzik but I'm afraid that'll result in some of the old modules never being fixed 13:12
unless we set some deadline
13:17 icwiener left 13:18 coldhead left
daxim oooo funky p3rl.org/Whatever 13:19
13:20 icwiener joined, icwiener left 13:21 MayDaniel joined 13:26 Fuad joined
Fuad hi 13:26
takadonet Fuad: hey 13:27
13:31 Fuad left, Fuad joined
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
13:38 MayDaniel left, ashleydev joined 13:43 ashleydev left
Fuad masak 13:53
13:55 simon_ joined 14:01 lurker joined, lurker is now known as lurkftw, lurkftw is now known as lurkingnoob
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
14:05 Fuad left
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
14:06 lurkingnoob left
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"
14:11 mj41 left, plobsing left
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
14:13 IllvilJa left
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
14:24 mj41 joined
takadonet mj41: welcome back 14:25
14:25 hanekomu joined 14:32 bluescreen joined, bluescreen is now known as Guest91158
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>) }}
14:41 envi left
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
14:48 mtk joined
PerlJam Hmm. 14:54
aha! 14:58
cognominal_: See S12:1215
14:59 kaare_ left 15:01 takadonet left 15:02 takadonet joined
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
15:08 plainhao joined
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)
15:10 amkrankruleuen joined 15:12 alester joined 15:13 am0c joined 15:23 matthias_ joined, MayDaniel joined
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
15:29 GinoMan joined 15:31 risou joined 15:32 hanekomu left 15:33 hanekomu joined 15:36 redicaps left 15:40 zby_home_ joined 15:41 hercynium joined 15:42 wtw left
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}␤»
15:45 plobsing joined 15:46 holzbit joined
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"?
15:49 Patterner left
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
15:51 Psyche^ joined, Psyche^ is now known as Patterner
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
15:57 exodist is now known as Exodist
colomon matthias_: hmmm... 15:57
15:57 simon_ left
colomon rakudo: my %h = 'a' => 10, 'a' => 20; say %h.perl 15:57
p6eval rakudo 9b8bad: OUTPUT«{"a" => 20}␤»
15:58 plainhao left
PerlJam colomon: He's correct AFAIK 15:58
colomon yup.
15:58 plainhao joined, plainhao left
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
16:07 pyrimidine left, pyrimidine joined
pyrimidine takadonet++ # updates to bioperl6 16:07
16:07 justatheory joined
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
16:13 matthias_ left 16:14 Guest91158 left
tadzik masak: hmm, right 16:14
16:17 lamstyle left
tadzik takadonet: commit bit given 16:18
16:21 lamstyle joined 16:25 risou_ joined 16:27 hanekomu left, ashleydev joined 16:28 risou left
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
16:46 kaare_ joined 16:59 am0c left 17:02 MayDaniel left
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
17:05 kensanata left
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
17:10 Guest91158 joined
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
17:13 cdarroch joined, cdarroch left, cdarroch joined
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␤»
17:19 sasha joined
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
17:24 plobsing left
masak the Pauli exclusion principle of Things People Do :) 17:24
TimToady is uncertain whether it's exclusive 17:25
17:27 holzbit left
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
17:28 holzbit joined
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
17:29 cjk101010 left, risou_ left 17:30 us874 joined
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
17:34 justatheory left, dakkar left 17:36 plobsing joined 17:40 risou joined 17:45 nadim left
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///
17:46 nadim joined 17:47 plainhao joined 17:49 tibzloh joined 17:50 holzbit left
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?
18:06 Guest91158 left
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␤»
18:11 tzhs left
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
18:12 sasha left
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.
18:14 justatheory joined
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
18:22 plobsing left
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
18:29 plobsing joined
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
18:32 us874 left
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
18:33 gbacon left
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
18:48 molaf_ left
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
18:51 risou left
TimToady but it is good to make that explicit :) 18:51
18:52 gbacon joined
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
18:59 Guest91158 joined
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++
19:12 KatrinaTheLamia joined
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
19:15 mberends joined 19:20 daxim left 19:24 kulp joined
diakopter but... return exceptions? 19:27
19:27 ashleydev left, plobsing left
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
19:28 fhelmberger left 19:29 plobsing joined
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
19:32 koushi joined, koushi left, koushi joined
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
19:35 kulp left, koushi is now known as kulp
TimToady anyway, excptions are one of the biggest hammers out there that make parallel processing look like a thumb 19:35
19:36 Guest91158 left 19:37 Guest91158 joined 19:49 plobsing left
TimToady phone 19:59
20:00 tibzloh left 20:03 holzbit joined 20:09 tylerni7 left 20:12 plobsing joined
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
20:24 tylerni7 joined, tylerni7 left 20:26 justatheory left 20:27 mikehh left 20:28 tibzloh joined, holzbit left, ashleydev joined 20:33 tibzloh left, holzbit joined, jaldhar left 20:34 KatrinaTheLamia left 20:37 tibzloh joined 20:38 jaldhar joined
sorear hmm. Is there anything I can do in exchange for the return of the minutes? 20:40
re. phone
20:40 edenc left, edenc joined 20:41 holzbit left 20:50 shortcircuit joined 20:52 Layla_91 joined
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
21:15 plobsing left
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
21:16 molaf joined
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
21:17 shortcircuit left 21:18 shortcircuit joined
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 :)
21:19 tibzloh left
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
21:20 holzbit joined
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 :)
21:23 holzbit left
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
21:25 plobsing joined
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
21:26 dual left
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
21:29 dual joined
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"
21:34 zby_home___ joined, zby_home_ left
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
21:41 pmurias_ joined
sorear since STD doesn't know how to sorry on unimplemented operators 21:41
hi pmurias_
pmurias_ sorear: hi
21:42 justatheory joined
diakopter at least it doesn't say "the first person singular linking/existential" 21:42
21:42 pmurias_ is now known as pmurias
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
21:45 kulp left
pmurias tadzik: i'm from zielona góra, but i study in wrocław 21:46
21:46 kulp joined, Guest91158 left, kulp left
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
21:52 envi joined
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
21:53 amkrankruleuen left
sorear pmurias: 6399 fewer 21:53
moritz_ rakudo's src/core/*.pm is 6.9k lines
21:53 Patterner left
moritz_ find src/ -name \*.pm | xargs wc -l 21:54
=> 22.4k
21:54 plobsing left
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
21:55 kaare_ left
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
21:56 Psyche^ joined, Psyche^ is now known as Patterner
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/
22:03 Layla_91 left, plobsing joined 22:05 zby_home___ left 22:12 vts joined 22:13 kjeldahl left 22:18 cafesofie joined 22:21 Guest91158 joined 22:23 vts left 22:24 estrabd is now known as estrabd_afk
[Coke] (every's middle name is the) - coke the curmudgeon? 22:27
22:36 kulp joined 22:39 mberends left 22:42 crythias left
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... :)
22:48 kulp left
pmurias /connect irc.perl.org 22:48
sorry 22:49
22:50 coldhead joined
pmurias sorear: STD_P5 seems to be more promising for a translator 22:50
22:53 alester left
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
23:10 stkowski joined 23:13 rgrau joined 23:14 KatrinaTheLamia joined 23:18 Guest91158 left 23:19 pmurias left 23:21 KatrinaTheLamia left 23:25 KatrinaTheLamia joined 23:29 hercynium left 23:32 plobsing left
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
23:40 IllvilJa joined
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