»ö« 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!
Set by sorear on 4 February 2011.
quietfanatic p6: my rule foo { a }; say 'a' ~~ rx/<foo>/ 00:58
p6eval rakudo 763b85: OUTPUT«「a」␤ foo => 「a」␤␤»
..niecza v19-29-ge441498: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({"foo" => #<match from(0) to(1) text(a) pos([].list) named({}.hash)>}.hash)>␤»
quietfanatic oh it does work
which means rule subcalls are lexical, which means you don't need a grammar 00:59
which will make implementing <foo>-type subrules in formats so much easier.
diakopter p6: my rule foo { a <foo> }; say 'aaa' ~~ rx/<foo>/ 01:06
p6eval niecza v19-29-ge441498: OUTPUT«Match()␤»
..rakudo 763b85: OUTPUT«#<failed match>␤»
quietfanatic why does niecza match that 01:11
diakopter it doesn't
quietfanatic oh
diakopter why don't they?
quietfanatic right
quietfanatic they don't match it because it infinitely recurses, requiring one more 'a' each iteration. 01:11
diakopter oh oops :)
p6: my rule foo { a <foo>? }; say 'aaa' ~~ rx/<foo>/ 01:12
p6eval niecza v19-29-ge441498: OUTPUT«Match()␤»
..rakudo 763b85: OUTPUT«#<failed match>␤»
quietfanatic p6: my rule foo { | '' | a <foo> }; say 'aaa' ~~ rx/<foo>/
p6eval rakudo 763b85: OUTPUT«「」␤ foo => 「」␤␤»
..niecza v19-29-ge441498: OUTPUT«#<match from(0) to(0) text() pos([].list) named({"foo" => #<match from(0) to(0) text() pos([].list) named({}.hash)>}.hash)>␤»
quietfanatic that one with the ? I have no idea why it doesn't match
also shouldn't mine ltm?
diakopter token? 01:13
quietfanatic oh, right, rule introduces sigspace and that doesn't like tlmming.
oh, that too
diakopter p6: my token foo { | '' | a <foo> }; say 'aaa' ~~ rx/<foo>/
p6eval niecza v19-29-ge441498: OUTPUT«#<match from(0) to(3) text(aaa) pos([].list) named({"foo" => #<match from(0) to(3) text(aaa) pos([].list) named({"foo" => #<match from(1) to(3) text(aa) pos([].list) named({"foo" => #<match from(2) to(3) text(a) pos([].list) named({"foo" => #<match from(3)…
..rakudo 763b85: OUTPUT«No such method 'foo' for invocant of type 'Cursor'␤ in regex foo at /tmp/xJfAngPkOS:1␤ in method INTERPOLATE at src/gen/CORE.setting:9884␤ in regex at /tmp/xJfAngPkOS:1␤ in method ACCEPTS at src/gen/CORE.setting:9941␤ in block at /tmp/xJfAngPkOS:1␤␤»…
quietfanatic the rule is wanting the space because a and a are alphanumeric
silly me
diakopter well, nieczxa liked it but rakudo didn't 01:14
quietfanatic that's odd
p6: my token foo { a }; say 'a' ~~ rx/<foo>/
p6eval rakudo 763b85: OUTPUT«「a」␤ foo => 「a」␤␤»
..niecza v19-29-ge441498: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({"foo" => #<match from(0) to(1) text(a) pos([].list) named({}.hash)>}.hash)>␤»
quietfanatic Rakudo can't recurse in a token? 01:16
diakopter p6: my token foo { | '' | a <&foo> }; say 'aaa' ~~ rx/<foo>/
p6eval rakudo 763b85: OUTPUT«「aaa」␤ foo => 「aaa」␤␤»
..niecza v19-29-ge441498: OUTPUT«#<match from(0) to(3) text(aaa) pos([].list) named({"foo" => #<match from(0) to(3) text(aaa) pos([].list) named({}.hash)>}.hash)>␤»
diakopter go figure 01:17
quietfanatic oh
p6: my rule foo { | '' | a <foo> }; say 'aaa' ~~ rx/<foo>/
p6eval rakudo 763b85: OUTPUT«「」␤ foo => 「」␤␤»
..niecza v19-29-ge441498: OUTPUT«#<match from(0) to(0) text() pos([].list) named({"foo" => #<match from(0) to(0) text() pos([].list) named({}.hash)>}.hash)>␤»
quietfanatic p6: my rule foo {|''|a<foo>}; say 'aaa' ~~ rx/<foo>/
p6eval niecza v19-29-ge441498: OUTPUT«#<match from(0) to(3) text(aaa) pos([].list) named({"foo" => #<match from(0) to(3) text(aaa) pos([].list) named({"foo" => #<match from(1) to(3) text(aa) pos([].list) named({"foo" => #<match from(2) to(3) text(a) pos([].list) named({"foo" => #<match from(3)…
..rakudo 763b85: OUTPUT«No such method 'foo' for invocant of type 'Cursor'␤ in regex foo at /tmp/CsQfUokcsi:1␤ in method INTERPOLATE at src/gen/CORE.setting:9884␤ in regex at /tmp/CsQfUokcsi:1␤ in method ACCEPTS at src/gen/CORE.setting:9941␤ in block at /tmp/CsQfUokcsi:1␤␤»…
quietfanatic it didn't get to foo because the sigspace failed it
and it's only failing at runtime.
fail[0] = failed match, fail[1] = failed execution 01:18
diakopter p6: my rule foo { | | | '' | a <foo> }; say 'aaa' ~~ rx/<foo>/
p6eval rakudo 763b85: OUTPUT«「」␤ foo => 「」␤␤»
..niecza v19-29-ge441498: OUTPUT«#<match from(0) to(0) text() pos([].list) named({"foo" => #<match from(0) to(0) text() pos([].list) named({}.hash)>}.hash)>␤»
diakopter y u no reject | | |
quietfanatic That shouldn't parse, should it? 01:19
yeah
diakopter std: my rule foo { | | | '' | a <foo> }; say 'aaa' ~~ rx/<foo>/
p6eval std 235f71b: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/H1yPN6ubCD line 1:␤------> my rule foo { | ⏏| | '' | a <foo> }; say 'aaa' ~~ rx/<foo␤Parse failed␤FAILED 00:00 41m␤»
diakopter weird, I could've sworn I'd seen that error from niecza before
quietfanatic I thought niecza used std
colomon quietfanatic: it uses a hacked version of std 01:25
it's closer than Rakudo, but it's not quite std 01:26
quietfanatic ah 01:27
dalek rl6-roast-data: 7dba696 | coke++ | / (3 files):
today
01:30
rl6-roast-data: 26dd75c | coke++ | p (2 files):
today
bavisb_ perl6: say 3; 06:33
p6eval rakudo 763b85, niecza v19-29-ge441498: OUTPUT«3␤»
tadzik japhb: I would rather not touch bootstrap.pl if it's not broken. It's very fragile, and painful when it breaks 06:35
phenny tadzik: 19 Aug 22:24Z <japhb> ask tadzik Did you mean that you agree with keeping DESTDIR out of PERL6LIB during bootstrap, but are nervous about keeping the original PERL6LIB out? Or do you mean you agree on both counts, but are nervous about both as well?
tadzik good morning #perl6
sorear good morning #perl6 06:36
shachaf good morning perl6 06:37
masak good morning #perl6 06:40
bonsaikitten good afternoon slackers ;) 06:41
diakopter O 06:42
masak works some more on slides 06:46
hm. the next morning, $dt.ymd and $dt.hms still feels like an OK idea. 06:47
it's just a shorthand for a common type of formatting.
quietfanatic good morning masak 06:48
diakopter masak: ymd
er. 06:49
I'm not sure what I meant to say there. it's late.
masak :D
well, 'ymd' is the ISO way.
quietfanatic good ymd, masak
masak I think we should only have 'hms', but for the 'ymd' permutations we might go with all the ones CPAN's DateTime has.
quietfanatic actually that should be hms, huh 06:50
masak quietfanatic: it's a good ymd indeed, quietfanatic. first day of YAPC::Europe.
quietfanatic ooh, nice
masak .oO( no, Frankfurt ) :P
quietfanatic good hms, happy ymd 06:51
masak .oO( Nice is the other way )
quietfanatic there we go :)
I...see.
diakopter all I can think of when I see .hms is Her Majesty's Ship 06:53
or whatever it is
quietfanatic well good night everyone 06:54
masak 'night, q.
quietfanatic 'q', I like that :) 06:55
masak :)
masak I found gist.github.com/355605 in the IRC logs. 07:01
.ymd and .hms aren't in there.
that makes it easier to think that it might have been just an omission. 07:02
masak is kinda glad we didn't end up with "hextime" in the Temporal spec: github.com/perl6/specs/commit/fd5d...96a#L0R151 07:06
sorear *blink* 07:12
masak well, it was good that that version got pushed, I think. for me, it was a wake-up call; the Temporal spec could be changed from something bad to something even worse. but it could also be improved through focused effort. 07:15
I think the current spec has stood the test of time. 07:16
well, apart from the parts that have drastically changed, of course ;)
but the original intent is still there: a simple, sane, subset of CPAN's DateTime.
jnthn mornin' 07:17
moritz \o 07:27
masak good UGT, jnthn, moritz 07:28
sorear o/
masak jnthn: we've been up for a while in room 607. we're planning to depart in about 12 minutes.
jnthn OK, I'll be ready around then 07:29
masak cool. 07:30
sorear hrm. I wonder if p6 could use something for incremental/state-preserving encode/decode operations 07:34
masak spec it, and they will come. 07:35
sorear heh 07:36
I have, in IO::Socket::INET, a use case for something resembling msdn.microsoft.com/en-us/library/h6w985hz 07:37
masak commute & 07:38
jnthn will head down to the lobby 07:41
&
mathw Morning 08:01
sergot hi! o/ 08:27
tadzik oh hai 08:33
moritz lol it's tadzik! 08:43
moritz tadzik: rt.perl.org/rt3/Ticket/Display.html?id=114510 09:58
pmichaud: did you have local changes to docs/ROADMAP? if yes, please commit them :-) 10:04
tadzik oh noes, a bug I have to fix /o\ 10:17
flussence rn: given 6 { fail('foo') unless 'abcdefg' ~~ / \w ** {0..$_} /; } 10:31
p6eval niecza v19-29-ge441498: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'fail' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1402 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /hom…
..rakudo 763b85: OUTPUT«===SORRY!===␤Quantifier quantifies nothing at line 2, near " {0..$_} /"␤»
flussence writing cross-platform modules is hard :/
moritz flussence: rakudo doesn't do ** plus closure yet :( 11:15
tadzik masak: gist.github.com/3403611 :) 12:11
dalek kudo/nom: bf1521c | pmichaud++ | docs/ROADMAP:
Some ROADMAP updates (moritz++ for reminding me).
[Coke] roadmap says, "as things stood in December 2011", which reads to me that it's out of date. 12:28
r: my \foo =3; say foo; 12:30
p6eval rakudo 763b85: OUTPUT«3␤»
[Coke] moritz: can we remove "sigiless variables" from the roadmap now?
[Coke] *sigilles 12:31
*sigilless !
krunen We wantss it, we needss it. Must have the preciouss ssigillssess. 12:35
colomon thinks he meant $$igi||$$e$$ 12:36
krunen But Gollum can't pronounce that... 12:38
moritz [Coke]: yes. I thought pmichaud++ had removed that already, thanks for the remainder 12:54
dalek kudo/nom: 4b54647 | moritz++ | docs/ROADMAP:
[ROADMAP] sigilless variables are done
12:55
[Coke] colomon: my kids love her music.
moritz: sadly, that is my level of contribution to the roadmap at hte moment. ;)
moritz [Coke]: no worries, we need hacker at every level 12:56
including testing and rosettacoding etc.
colomon [Coke]: her who? 12:59
[Coke] colomon: Ke$ha, of course. 13:02
colomon [Coke]: ah.
[Coke] rt.perl.org/rt3/Ticket/Display.html?id=114250 looks appliable, no?
colomon probably listens to more (digitzied) 78 rpm recordings than he does modern popular music.
*digitized 13:03
[Coke] ... except for that fact that the patch is inlined in rt and therefore screwily formatted 13:04
moritz I notice that I've never received an email for that ticket 13:06
[Coke] perlcabal.org/syn/S29.html - bad pod near "run" ? 13:10
moritz aye
sirrobert hey
moritz \o sirrobert 13:11
[Coke] did some hand rolled testing with run locally, seems like it works. 13:12
moritz I'm cleaning up the patch now, and will commit it 13:12
[Coke] moritz++ 13:13
much easier to test things things now that core compiles so much faster. :)
moritz it should really use p6box_i for the result from spawnw__IP
dalek kudo/nom: 0093252 | GlitchMr++ | src/core/control.pm:
Implement &run

Currently does not distinguish between a failure to launch a program and a program that returns with a non-zero exit status. Seems that parrot doesn't support that distinction :(
With some cleanups from moritz. Closes RT #114250.
13:19
GlitchMr :)
phenny GlitchMr: 19 Aug 21:31Z <raiph> tell GlitchMr www.equinoxbase.com/p5p6regconv/ is a p5 to p6 regex converter (last updated 2009?)
tadzik jnthn++ has presented a Perl 6 debugger in his talks 13:25
tadzik about 700 lines of awesome, and makes Perl 6 jealoius 13:25
erm Perl 5 jealous that is
colomon Perl 6 debugger?! 13:26
tadzik yeah
it totally kicks ass
colomon jnthn++
is it on github yet? ;)
tadzik Perl 5 folks were like "I CAN HAS?"
nope, will be 13:27
pmichaud jnthn++ promises to push the debugger soon
hoelzro what's so cool about this debugger?
pmichaud we expect to include it in the 2012.08 R* release
it's interactive
it's like tracing code from the REPL
tadzik it has colours
pmichaud it comes with batteries
moritz hoelzro: we didn't have a debugger before
\o/ jnthn++
moritz wonders how exactly it relates to the "exceptions" topic 13:28
hoelzro moritz: well, that's a definite advantage =)
I guess what I mean to ask is what makes it superior to Perl 5's debugger =)
pmichaud moritz: he was able to use the debugger to introspect the exceptions at the point they were thrown
tadzik it helps you debug when you have an exception, obviously :)
pmichaud i.e., in the debugger one can say "run until breakpoint or exception"
tadzik hoelzro: the awesome
pmichaud when an exception is thrown, the debugger takes over, displays where you are, and you can introspect the exception and other things at the point of the throw 13:29
hoelzro pmichaud: I'm guessing you can filter on exception type?
pmichaud hoelzro: I don't know about that.
I suspect that might be possible.
moritz probably just a SMOP :-)
hoelzro or even a generic predicate? ex. break exception { $^ex.can('method') }
moritz that's basically just a type 13:30
pmichaud the code is only ~800 lines of NQP+Perl 6 code, so it should be very very hackable
moritz subset CanMethod of Any where .can('method');
gfldex so i could see not only what exception was thrown where, but also the state (and therefore variables) at the point where it was thrown?
pmichaud gfldex: yes, that's what it looked like
moritz wants to see the code
gfldex do want!
i found it always a little silly to have a stacktrace but not the parameters of the top function in that trace 13:31
you can get that with setting breakpoints, but you have to run the program twice for that
moritz well, there's always the question on how to represent objects
you don't want a .perl output that spans 50 screen pages in a backtrace 13:32
[Coke] eager awaits the commit. jnthn++ 13:33
*eagerly
pmichaud it's a separate module, atm
at least I understand it to be that way 13:34
hoelzro I think it'd be cool if you could write debugging profiles as roles
pmichaud twitter.com/pmichaud/status/237542903138881536
hoelzro so do something like \load Profile.pm6
which would contain a role that would be applied to the debugger object, so you can automatically set breakpoints and such
[Coke] has an idea for a bot! 13:37
[Coke] has a $DAYJOB. dammit!
Do we have any existing written-in-perl6 irc bots? 13:38
hoelzro I have a Perl6 XMPP bot 13:38
(which is unfinished)
which reminds me...I should really try to fix that bug that's blocking my bot for the next R* 13:40
pmichaud note that the rakudo compiler release is scheduled for Thursday. 13:41
hoelzro well, I'm not going to make it =P
[Coke] wonders if JSON::RPC::Client can be told to follow 3xx responses. 13:44
can we invoke methods with "." 13:46
er... with "." in the method name?
flussence after trying to sift through >1MB of dump output full of DBIC at $dayjob for the millionth time, I'm thinking a hidden_from_{gist,perl} like the hidden_from_backtrace trait we've got might be useful at some point 13:48
[Coke] aw, http::client isn't in star. 13:49
tadzik [Coke]: doesn't p6rd run on perl 6?
p6rd: next
p6rd parrot 2012-08-21, rakudo 2012-08-23, niecza 2012-08-27
[Coke] p6rd: source?
p6rd: help
p6rd Perl 6 release dates. Usage: p6rd: [ 'next' | 'next month' | YYYY-MM | YYYY-MM-DD ]
[Coke] so, with star, are there any modules other than "JSON::RPC" that I can use to download a web page? 13:50
tadzik [Coke]: github.com/moritz/p6-release-dates...e-dates.pl
jnthn github.com/jnthn/rakudo-debugger/ 13:51
[Coke] tadzik: nifty, danke.
moritz star: use LWP::Simple; say LWP::Simple.get('perl6.org/').substr(0, 10) 13:52
p6eval star 2012.07: OUTPUT«<?xml vers␤»
moritz [Coke]: see above
[Coke] moritz: ah. it would be helpful if lwp had a description that made it more amenable to searching on modules.perl6.org, thanks!
tadzik pardon my offtopic, but p.twimg.com/A0u20JfCMAAGWQD.jpg is just too awesome 13:53
sirrobert heh
tadzik [Coke]: stay tuned :)
there's a fork of modules.perl6.org that has readmes included and other stuff
sirrobert I would love to see user tagging (always wanted that for the CPAN). 13:54
tadzik so arbitrary users can tag modules?
sirrobert to allow a soft tie between modules that play well together
in a sort of stackoverflow way
tadzik: yeah 13:55
hoelzro so someone (I think jnthn) recommended I use nqp::findmethod($!pun, $name)($inv, |@pos, |%named) to fix qualified method calls to a method in a Role. I tried this, but it doesn't seem to work (type check failure). Any recommendations on how to fix qualified method calls?
sirrobert like... adding a module to a collection (tag) or something
hoelzro s/$/ with roles/
tadzik sirrobert: could you open an issue on github.com/sergot/modules.perl6.org ?
sirrobert tadzik: sure
tadzik: I don't seem to be able to access the issues section 13:57
tadzik huh, hold on
sirrobert I'd love to contribute to the modules.perl6.org development. It didn't even occur to me that it was an open project =) 13:59
flussence star: my $s = IO::Socket::INET.new(:host<perl6.org>, port => 80); $s.send(qq{GET / HTTP/1.1\r\nHost: perl6.org\r\n\r\n}); $s.recv.chars.say; # who needs LWP? :)
p6eval star 2012.07: OUTPUT«Could not find symbol 'IO::Socket::&INET'␤ in block <anon> at /tmp/j5Ey3EawG3:1␤␤»
flussence star: use IO::Socket::INET; my $s = IO::Socket::INET.new(:host<perl6.org>, port => 80); $s.send(qq{GET / HTTP/1.1\r\nHost: perl6.org\r\n\r\n}); $s.recv.chars.say; # who needs LWP? :) 14:00
p6eval star 2012.07: OUTPUT«===SORRY!===␤Could not find IO::Socket::INET in any of: /home/p6eval/.perl6/lib, /home/p6eval/star/lib/parrot/4.6.0/languages/perl6/lib␤»
flussence works on the repl :(
jnthn flussence: it's just the p6eval protection
flussence oh, makes sense. 14:01
tadzik jnthn: can has debugger patch 14:03
jnthn tadzik: You want a commit bit?
tadzik: You got one
tadzik jnthn: pull req... thanks 14:04
jnthn is curious what it'll be :)
tadzik ^D was broken 14:04
I hope I didn't just break windows
sirrobert: issues are up 14:05
sergot hi o/! :) 14:05
tadzik ohai 14:06
jnthn tadzik: er
It breaks stuff it seems
tadzik oh
sirrobert tadzik: ok, thanks =) will do in a few (off to a meeting)
tadzik sure
jnthn: in what way?
jnthn yeah, it ignores all the commands...
tadzik uh, crap
stupid me
lemmee fix it
"it's the heat, of course" 14:07
jnthn when Str { # eof
duh :P
I see what you wanted to do :)
tadzik ok, fixed
jnthn pusehd? 14:08
tadzik yep
oh, my repo
jnthn was gonna say... :)
tadzik ok it's up 14:09
jnthn fixed things :) 14:11
tadzik there'll be another thing to fix mebbe
isn't that masak who doesn't like REPLs not exiting with "say \n"? :)
japhb tadzik, I have to change bootstrap.pl at least a little to fix the "DESTDIR shouldn't go into a subdir of cwd" problem -- the first of my questions comes down to "fix or delete". The second question (re: external PERL6LIB) we can table, no problem. 14:15
tadzik japhb: ok cool, go ahead
japhb chuckles ... er, are you saying I should fix or delete? ;-) 14:16
tadzik oh :) 14:16
it's hot in here, I'm thinking slowly
japhb It's quite alright, I understand completely. :-)
tadzik slowly starts to understand his code 14:17
tadzik okay, I suspect that the whole DESTDIR case is just me being stupid in the first place 14:17
so you may want to try removing that {cwd}/DESTDIR thing and seeing if that works 14:18
if it doesn't then I think it's better to remove it instead of having it wrong, I can try to recreate that later on
japhb OK, I'll nuke those lines then and test. (In a couple hours, have to take kids to first day of school.) 14:19
tadzik sure, family goes first :) 14:20
have fun
japhb thx
[Coke] wishes that feather automatically had the latest star installed every time instead of the very old 2010.08 14:35
[Coke] do folks have a perl6 twitter search that is more interesting than "#perl6" ? 14:37
tadzik "perl 6" sometimes has more stuff 14:38
[Coke] sorry, "#perl6 OR #p6p5"
so, '#perl6 OR #p6p5 OR "perl 6"' 14:39
moritz would love to have some default searches merged into his "home" twitter stream 14:40
tadzik yeah
there are some third-party web clients which allow that
or that's what I seem to recal
PerlJam jnthn++ (that debugger is cool) 14:46
moritz needs a META.info 14:47
tadzik so panda needs makefiles after all
* support makefiles
or we need another mechanism to build non -perl67 stuff
I'll talk to Module People of Perl 5 about that 14:48
moritz maybe an entry in META.info what command to launch
(I like the default that pure p6 modules don't need any build commands themselvs to work under panda, we should preserve that) 14:49
[Coke] star: use Net::Bot::IRC; #awww. 14:52
p6eval star 2012.07: OUTPUT«===SORRY!===␤Could not find Net::Bot::IRC in any of: /home/p6eval/.perl6/lib, /home/p6eval/star/lib/parrot/4.6.0/languages/perl6/lib␤»
[Coke] so, if I have several local installs of rakudo, can I use panda in each of them, or is panda tied to my home dir? 14:53
moritz [Coke]: currently it's tied to the home dir :-)
erm, :-(
that annoys me as well
flussence
.oO( you could always use multiple home dirs... )
14:54
PerlJam wonders if it's worth it to have perlbrew-like functionality built-in to perl 6
[Coke] so, if I use panda, I should have a separate dir I work in panda out of, and not try to use the various rakudo build dirs.
moritz what I sometimes do is cp -r ~/.perl6/lib/* `perl6 -e 'say @*INC[1]` 14:55
and then change $PATH to swap in another rakudo binary
sirrobert tadzik: added feature request issue (modules.perl6.org) 14:56
moritz and then run 'repanda', which is my script to blank out ~/.perl6/lib and install panda and my most commonly used modules
[Coke] gist.github.com/3404935 #panda boostrap doesn't work
[Coke] did panda not work with rakudo-star 2012.07? 14:57
raiph std: my \f = 1; f = 2
p6eval std 235f71b: OUTPUT«ok 00:00 42m␤»
[Coke] (and if I use a newer rakudo compiler to boostrap panda, can I still use that panda with the older 2012.07?)
raiph r: my \f = 1; f = 2
p6eval rakudo 009325: OUTPUT«Cannot assign to a non-container␤ in block at /tmp/xvcAJIh0xT:1␤␤»
moritz [Coke]: (no) 14:58
[Coke] moritz: ... so panda only ever works with one installed rakudo, no switchies? 14:59
moritz [Coke]: panda worked with 2012.07. But there's no need to run bootstrap together with star, because 'make install' installs panda too
[Coke]: correct
[Coke] no need shouldn't == "BOOM"
if I run ".../path/to/star/panda help" it dies with the same Shell::Command error. 15:00
that is: ~/sandbox/cjsix/rakudo-star-2012.07/install/bin/panda help
there is a ~/.panda, but I cannot claim to know how old it is. 15:02
.. and it's empty
sirrobert ls -l ?
err, I guess -g =) 15:03
[Coke] sirrobert: Yes, I can do that. I mean, "I have no idea how the hell it got there, or if I ever used it."
sirrobert Coke: oh, I thought you meant it might give you a clue as to the origin =)
[Coke] so, at this point, I have no working panda (and therefore, cannot install Net::IRC::Bot)
sirrobert I've used panda's bootstrap successfully a number of times
even a week ago 15:04
raiph std: my \f = 1; f =2; f := 3
[Coke] yes, but I'm not running bootstrap against a rakudo from a week ago.
p6eval std 235f71b: OUTPUT«ok 00:00 42m␤»
sirrobert ah
[Coke] so, my question is, with a fresh, local install of rakudo star 2012.07... how can I use panda? 15:05
raiph moritz: please note my p6evals of last few minutes 15:06
tadzik [Coke]: doesn't panda come with 2012.07? 15:12
raiph moritz: is rakudo going to allow "my \foo = 1; foo := 2"? "my \bar = 2; bar = 3"? "my \baz;"? 15:14
moritz raiph: no 15:33
erm wait, maybe "yes" to the binding
moritz r: my \foo = 1; foo := 2 15:33
p6eval rakudo 009325: OUTPUT«===SORRY!===␤Cannot use bind operator with this left-hand side␤at /tmp/hyI4o93nx9:1␤»
moritz n: my \foo = 1; foo := 2
p6eval niecza v19-29-ge441498: ( no output )
moritz but not assignment 15:34
moritz should read what the spec says to that, if it says something at all 15:35
maybe we shouldn't call them variables
"lexical terms"
bbkr r: grammar G { rule TOP { \%TES } }; G.parse(q{%TEST%}).say' 15:56
p6eval rakudo 009325: OUTPUT«===SORRY!===␤Confused␤at /tmp/Gyw3XiFuUC:1␤»
bbkr r: grammar G { rule TOP { \%TES } }; G.parse(q{%TEST%}).say
p6eval rakudo 009325: OUTPUT«#<failed match>␤»
bbkr r: grammar G { rule TOP { \%TEST } }; G.parse(q{%TEST%}).say
p6eval rakudo 009325: OUTPUT«「%TEST」␤␤»
bbkr who can explain this? :) 15:57
PerlJam bbkr: whitespace. 15:58
(okay, not an explanation, but rather a guess; and it looks like the guess may be wrong) 15:59
bbkr grammar G { rule TOP { \% } }; G.parse(q{%TEST%}).say # and it gets even more weird 16:00
above one matches
PerlJam r: grammar G { token { \%TEST } }; G.parse(q{%TEST%}).say 16:01
p6eval rakudo 009325: OUTPUT«No such method 'TOP' for invocant of type 'G'␤ in method parse at src/gen/CORE.setting:9937␤ in block at /tmp/vmI5LYK2Cf:1␤␤»
PerlJam r: grammar G { token TOP { \%TEST } }; G.parse(q{%TEST%}).say
p6eval rakudo 009325: OUTPUT«「%TEST」␤␤»
PerlJam r: grammar G { token TOP { \%TES } }; G.parse(q{%TEST%}).say
p6eval rakudo 009325: OUTPUT«「%TES」␤␤»
PerlJam r: grammar G { token TOP { :sigspace \%TES } }; G.parse(q{%TEST%}).say 16:02
p6eval rakudo 009325: OUTPUT«#<failed match>␤»
PerlJam r: grammar G { token TOP { :sigspace \%TEST } }; G.parse(q{%TEST%}).say
p6eval rakudo 009325: OUTPUT«「%TEST」␤␤»
bbkr is confused, there is no space between last "T" and "%" so why sigspace matters? 16:04
moritz because the implicit <.ws> at the end of rule TOP does not match between two alphanumeric chars 16:05
nr: say so 'ab' ~~ /a <.ws> b/'
p6eval niecza v19-29-ge441498: OUTPUT«===SORRY!===␤␤Confused at /tmp/s7_IB23zGv line 1:␤------> say so 'ab' ~~ /a <.ws> b/⏏'␤␤Parse failed␤␤»
..rakudo 009325: OUTPUT«===SORRY!===␤Confused␤at /tmp/0mwYWYUO_Y:1␤»
moritz nr: say so 'ab' ~~ /a <.ws> b/
p6eval rakudo 009325, niecza v19-29-ge441498: OUTPUT«False␤»
moritz nr: say so 'a' ~~ /a <.ws> / 16:06
p6eval rakudo 009325, niecza v19-29-ge441498: OUTPUT«True␤»
moritz nr: say so 'ab' ~~ /a <.ws> /
p6eval rakudo 009325, niecza v19-29-ge441498: OUTPUT«False␤»
PerlJam moritz++ 16:07
bbkr I didn't know about implicit <.ws> , everything works now, tahnks. moritz++ PerlJam++ 16:08
moritz bbkr: that's what 'rule' adds over 'token'
faq.perl6.org/#rule 16:09
PerlJam Looks like that FAQ entry should be modified slightly for the new :sigspace semantics. 16:17
(i.e. leading whitespace on the regex or alternations is not signficant) 16:18
dalek atures: 2c59021 | moritz++ | features.json:
require in rakudo does arglists; $=POD is now spelled $=pod
16:19
dalek q: 856e7a1 | moritz++ | answers.md:
[rule] mention that leading whitespace is ignored, PerlJam++
16:21
[Coke] tadzik: yes, panda comes with 2012.07. it doesn't work.
whenever I run it, I get an error about "Shell::Command" 16:22
tadzik: gist.github.com/3405487
now, I did try to run bootstrap at some point. Could that have sabotaged a working panda? 16:24
hurm. I can always reinstall and check, I suppose.
moritz something is odd with that installation 16:25
the install location is ./rakudo-star-2012.07/install
but it has /home/ingy/local/lib/parrot/2.7.0/languages/perl6/lib in @*INC
[Coke] arrrgh.
I just cd'd to rakudo-star-2012.07, rm -rf install, make install... "nqp is too old" 16:26
moritz: I just did "perl Configure.pl --gen-parrot; make; make install" in that dir.
bah. I'll remove the whole build and try again.
moritz hm, maybe some part of the star installation uses the perl6 from $PATH, not the right one 16:27
[Coke] that would suck. 16:28
moritz it would indeed
[Coke] ... I'll kill this and redo it again, capturing the output. 16:29
[Coke] I wonder if it's the installed panda that's the issue. 16:40
[Coke] will check the shebang once this monster finishes.
hoelzro pmichaud: do you happen to know if your YAPC::NA lightning talk was recorded at all? 16:40
[Coke] feather.perl6.nl/~coke/star-install-bad-panda 16:55
aye: panda's shebang is: #!/usr/bin/env perl6
when we install perl scripts with star, we should probably change their shebang to the perl6 doing the installing.
moritz +1 16:56
colomon +1 16:57
[Coke] so, to make it work, I can either change my path, or edit panda. I edited panda.
(my local installed copy)
[Coke] urk. panda error messages very verbose. 16:59
[Coke] bah. Net::IRC::Bot doesn't build with panda on 2012.07-star 17:07
[Coke] is this why it wasn't included, perhaps? moritz, what version of Net::IRC::Bot and rakudo are you using on your bot 17:07
?
colomon: I would expect it to return the number 2. no? 17:09
(re issue # 145)
colomon [Coke]: are we supposed to handle any numeric system that Unicode recognizes? 17:15
moritz I think so, yes 17:20
[Coke]: I use some rakudo after 2012.07 and the latest Net::IRC::Bot commit 99e638df1ec548aab32d1e6f756301400f487237 17:21
[Coke] bah. 17:22
[Coke] arglebargle. I will delay this project until I have a star/panda/net::bot::irc combo that works. 17:22
moritz pmichaud: any objections to adding Net::IRC::Bot to star? 17:25
colomon moritz: is there a guide to doing that anywhere? does rakudo manage it?
[Coke] r: ೨.say 17:26
p6eval rakudo 009325: OUTPUT«===SORRY!===␤'೨' is not a valid number at line 2, near ".say"␤»
colomon what happens if you mix digits from different number systems?
[Coke] r: ೨;
p6eval rakudo 009325: OUTPUT«===SORRY!===␤'೨' is not a valid number at line 2, near ";"␤»
[Coke] std: ೨;
p6eval std 235f71b: OUTPUT«ok 00:00 40m␤»
moritz colomon: there are two files to which you have to add the module URL in the rakudo/star repo, Makefile and skel/tools/build/Makefile.in 17:27
colomon 's interaction in this issue is not helped by the fact that none of his software displays that digit as anything but a box.
moritz you "just" need a hash with all digit characters and their integer values 17:32
[Coke] supposes he could try to fix the build failure on net::bot::irc so that it /does/ work with 2012.07; that seems like the path of least resistance. 17:34
diakopter Unicode's DerivedNumericValues.txt
unicode.org/Public/UNIDATA/extracte...Values.txt 17:35
the 4th field could be split by "/" to get numerator and denominator for Rats
colomon diakopter: I am looking, believe me. 17:36
[Coke] u .0f32 17:40
diakopter .u 0f32
moritz .u 0f32
phenny U+0F32 TIBETAN DIGIT HALF NINE (༲)
colomon is hacking on niecza
diakopter I'll half nine you
[Coke] wonders how long until someone requests that we ignore TTIAR for roman numerals. 17:41
moritz U+XXXXX STAR TREK DIGIT SEVEN OF NINE
diakopter haha 17:42
[Coke] or would that even bee TTIAR? what do we expect to happen if someone has 4 numbers in a row from 3 different numeric systems.
diakopter that'd be one curvy character
[Coke]: I don't know. that file doesn't specify the base or RTL/LTR direction of the numbers 17:43
sirrobert hey, why would I want to use rakudo over niecza or vice versa?
besides implementation of particular features, which I don't care about right now.
[Coke] sirrobert: it passes slightly more spec tests than niecza, and has a star release that includes several modules from modules.perl6.org 17:44
then you'd have to care about speed and or back end platform.
sirrobert ok, great -- thanks =)
[Coke] niecza is MONO/.NET, rakudo is parrot
sirrobert ohh, I didn't realize 17:45
good to know
[Coke] std: say \x301f 17:46
p6eval std 235f71b: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'x301f' used at line 1␤Check failed␤FAILED 00:00 41m␤»
[Coke] std: say "\x301f"
p6eval std 235f71b: OUTPUT«ok 00:00 41m␤»
[Coke] std: say \x0AE6
p6eval std 235f71b: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'x0AE6' used at line 1␤Check failed␤FAILED 00:00 41m␤»
[Coke] std: say +"\x0AE6"
p6eval std 235f71b: OUTPUT«ok 00:00 41m␤»
[Coke] how can I make that a literal number without having to cut and paste the codepoint in or trick my keyboard? 17:47
diakopter colomon: it would be nice if we knew the base and left/right direction of those number chars 17:48
and non-arabic number layouts/syntaxes 17:49
I guess most are base 10
all? 17:50
colomon there's no clue in the Numeric values file that it might be anything other than base 10
colomon loves the fact that half zero is -0.5 17:51
diakopter do you see the pattern?
[Coke] was reading those "halfs" kind of like "quarter to" on a clock. 17:52
colomon to the tibetan half digits? it's minus .5 from the normal digits
moritz sirrobert: I guess I should write an FAQ entry about that
sirrobert =) 17:53
colomon it seems like niecza isn't handling the Numeric_Value table properly (or I just haven't figure out how to use it), so adding other digits will not be trivial.
or possibly I am a numbskull 17:54
both possibilities may be true. 17:55
colomon niecza> "\x0F2E".unicode_digit 17:56
9/2
.u 0F2E 17:57
phenny U+0F2E TIBETAN DIGIT HALF FIVE (༮)
colomon :)
moritz n: class A { has $.x }; my $a = A.new; $a.x = 42; say $a.x
p6eval niecza v19-29-ge441498: OUTPUT«42␤»
moritz gist.github.com/3406172 # my very first and very subjective comparison 17:58
since I'm a regular rakudo contributor and user (more so than niecza), I'm very biased 17:59
so I'd like to hear from others ( colomon, sorear, [Coke], masak, * ) what they have to add
diakopter might point out included in the library support is threading
GlitchMr .u 0F2D 18:00
phenny U+0F2D TIBETAN DIGIT HALF FOUR (༭)
GlitchMr Those numbers look for me like squares. Lack of font, I guess 18:00
༭ is 3.5?
moritz diakopter: added 18:01
+ heredocs
colomon GlitchMr: let's ask niecza.
GlitchMr niecza: print +༭
p6eval niecza v19-29-ge441498: OUTPUT«===SORRY!===␤␤Prefix requires an argument at /tmp/Mh9wQpMfRm line 1:␤------> print +⏏༭␤␤Parse failed␤␤»
colomon niecza> "༭".unicode_digit
7/2
GlitchMr: my local copy of niecza is the only one that shows any knowledge of these digits. (see above) 18:02
GlitchMr So, Text::Unidecode is correct :)
diakopter moritz: what's the difference between "development pool" and "developer pool" under rakudo?
moritz diakopter: I meant to only put in "developer pool" 18:03
double entries are double
fixed.
diakopter++
diakopter might add ability to precompile modules to rakudo
moritz niecza precompiles its setting 18:04
diakopter oh oops
moritz can't that be used for modules too?
moritz has no idea
diakopter yes I'm sure you're right
my brain cut out for a second
diakopter on second thought.. colomon do you know how to precompile a module on niecza and then use it? 18:05
geekosaur quick google search indicates the half digits are dubious at best 18:06
colomon diakopter: I believe niecza automatically precompiles modules the first time you try to use them.
it's got some sort of cache for them.
diakopter oh 18:07
colomon yup
in my Niecza/obj directory I see files with names like Run.ABC.Grammar.dll and Run.ABC.Grammar.ser. 18:08
diakopter I'm curious whether anyone has systematically studied performance of regexes on either niecza or rakudo... getting basic rates such as "eat any character", "repeat one character", "alternate between a ton of alternatives", "backtrack geometrically" 18:11
hoelzro I have good news and bad^H^H^Hnews 18:13
The good news is I implemented my first Rakudo bugfix =) 18:14
the other news is I had to turn off nominal type checking to do it =/
is it possible to check what roles an object's class consumes from C?
moritz from what kind of C code? 18:15
C-in-the-Rakudo-source code?
hoelzro yes 18:16
binder.c
iirc
er, src/binder/bind.c
moritz are you looking into the typed array thing? 18:17
hoelzro I'm looking at line 419
moritz r: class A { }; role R { }; say (A but R) ~~ (A but R) 18:22
p6eval rakudo 009325: OUTPUT«False␤»
moritz iirc jnthn++ said that the fix is to cache those mixins 18:24
r: class A { }; role R { }; say (A but R) === (A but R)
p6eval rakudo 009325: OUTPUT«True␤»
moritz oh WTF
benabik r: class A {}; roll R {}; say (A but R) ~~ A; say (A but R) ~~ R
p6eval rakudo 009325: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&R' called (lines 1, 1, 1, 1)␤»
benabik :-/ 18:25
r: class A { }; role R { }; say (A but R) ~~ A; say (A but R) ~~ R
p6eval rakudo 009325: OUTPUT«True␤True␤»
hoelzro moritz: jnthn said something like this: 18:30
nqp::findmethod($!pun, $name)($inv, |@pos, |%named)
which works
but it doesn't pass the typecheck
moritz so of what type is $inv, and what type is expected? 19:15
hoelzro moritz: my test is in S12-methods/qualified.t 19:17
$inv is a Consumer object, which consumes R
hoelzro self is expected to be something that consumes R 19:18
moritz so, pure speculation 19:19
R is generic in its invocant type
so the R composed into Consumer is really R[Consumer]
and R[Consumer] doesn't typecheck against R 19:20
hoelzro that sounds about right.
it seems that the Rakudo C stuff doesn't check roles when typechecking
which, from my limited understanding of the internals, makes sense
moritz erm 19:21
sub f(@a) { }; f 'foo'
r: sub f(@a) { }; f my $ = 'foo'
p6eval rakudo 009325: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Str instead␤ in sub f at /tmp/Kgt4DbmsLw:1␤ in block at /tmp/Kgt4DbmsLw:1␤␤»
hoelzro huh.
moritz that's a type check against a role
hoelzro wonders why he can't find a single reference to roles in src/*/*.c
moritz nr: role R { method me() { } }; class Consumer does R { }; say Consumer ~~ R 19:22
p6eval rakudo 009325, niecza v19-29-ge441498: OUTPUT«True␤»
moritz nr: role R[$x] { method me() { } }; class Consumer does R[Int] { }; say Consumer ~~ R 19:23
p6eval niecza v19-29-ge441498: OUTPUT«===SORRY!===␤␤No value for parameter '$x' in 'role-R'␤ at /tmp/x527Q_Ode0 line 0 (role-R @ 1) ␤ at <unknown> line 0 (ExitRunloop @ 0) at /tmp/x527Q_Ode0 line 1:␤------> () { } }; class Consumer does R[Int] { }⏏; say Cons…
..rakudo 009325: OUTPUT«True␤»
hoelzro the failure I'm seeing is happening with qualified method calls 19:27
and I'm not sure how to check role consumption from C... 19:28
moritz I guess that's what the STABLE(...)->type_check does 19:30
hoelzro yeah, that's what I would think
although it doesn't seem to work 19:31
I'll try some other stuff out...
hoelzro ok 19:50
here's the deal
$inv.does($obj), but $inv doesn't have a relationship to the pun object
so Rakudo tries to typecheck Consumer against Any+{R}, which fails
arnsholt IIRC there're some issues with roles in Rakudo. It's a problem for Zavolaj as well 19:59
Could be something related to parametrized roles if your code above is representative 20:00
hoelzro my test doesn't use parameterized roles at all
is there a way to get the code for a Role's method other than nqp::findmethod? 20:08
moritz sure 20:21
YourRole.^find_method
hoelzro that's implemented via RolePunning, right? 20:22
moritz you can also look into the various files in src/Perl6/Metamodel/ and see if you find some low level access 20:25
sirrobert r: class A is Array { has $.str = "foo"; }; say A.new.str; 20:33
p6eval rakudo 009325: OUTPUT«Any()␤»
sirrobert That seems to work if I do something like "does Positional", but then I don't get Iterable 20:35
any tips for making an array-like thing?
moritz is that related to Array.new doing funky stuff? 20:36
sirrobert hmmm dunno
how could I check?
moritz r: class A is Array { has $.str = "foo"; submethod BUILD(:$!str) {} }; say A.new.str 20:37
p6eval rakudo 009325: OUTPUT«Any()␤»
moritz sirrobert: see what List.new and Array.new do
sirrobert ok, one sec
moritz maybe it doesn't go through bless
hoelzro wishes the build cycle for Rakudo were a little shorter...
sirrobert yeah, array has its own new method... it doesn't seem to use bless, but I don't know what it does do =) 20:39
some nqp and pir stuff
pmichaud good evening, #perl6
hoelzro o/ pmichaud
sirrobert hi pmichaud
moritz: same with List
moritz sirrobert: it's bless that is (indirectly) responsible for attribute initialization 20:40
pmichaud I might be able to get List.new and Array.new to go through bless.
sirrobert out of curiosity, why wouldn't they go through bless? 20:41
pmichaud speed
sirrobert ah
I'm trying to make an List-like thing
pmichaud lists are fundamental and used by a lot of internals; you don't always want things going through the extra work of bless and the BUILDALL sequence
sirrobert yeah
moritz r: class A is Array { has $.str = "foo"; method new(*@elems, *%attrs) { my $cand = self.Array::new(@elems); self.bless($cand, |%attrs) } }; say A.new.str
p6eval rakudo 009325: OUTPUT«foo␤» 20:42
moritz sirrobert: that should fix it
sirrobert moritz++
thanks
moritz r: class A is Array { has $.str = "foo"; method new(*@elems, *%attrs) { my $cand = self.Array::new(@elems); self.bless($cand, |%attrs) } }; say A.new(<a b c>)[1]
p6eval rakudo 009325: OUTPUT«b␤»
pmichaud the internals don't use .new very much, though, so it wouldn't surprise me if I could refactor (Array|List).new to use BUILD and work with bless
moritz that's the first time that the candidate argument to bless is actually useful 20:43
I mean, that I find it useful for stuff
sorear [Coke]: to test the numeric literal parser, I suggest evanl
sirrobert thanks, that's super helpful guys. 20:44
moritz now tests a local patch that changes the shebang lines of ufo and panda upon installing 20:46
sorear diakopter: seems relevant, www.unicode.org/reports/tr44/ search for "Numeric_Type" 20:49
diakopter eh? 20:50
what question are you answering
oh, base/syntax of numbers 20:51
dalek ar: 089584d | moritz++ | skel/tools/build/ (2 files):
adapt shebang line on installing
20:56
diakopter .u HEXAGRAM 21:06
phenny U+4DCA HEXAGRAM FOR PEACE (䷊)
diakopter .u HEXAGRAM HEAVEN
phenny U+4DC0 HEXAGRAM FOR THE CREATIVE HEAVEN (䷀)
jnthn evening o/ 21:07
colomon .u HEXAGRAM HELL 21:09
phenny colomon: Sorry, no results for 'HEXAGRAM HELL'.
jnthn hoelzro: For raw method table access there's .^method_table
hoelzro oooo
jnthn: thanks!
jnthn hoelzro: oh, I see you asked something about how role type checking works 21:13
The answer is that the ->type_check stuff is implemented in the 6model core 21:14
(thus in the nqp repo)
but the interesting logic of what types are accepted is held completely in src/Perl6/Metamodel
hoelzro yeah, I've spent the last couple of hours wrapping my head around both of those =) 21:16
jnthn :)
hoelzro but at least now I have a (slightly) better idea of how Rakudo works
which will make future work easier =)
[Coke] moritz++ #shebanginatorinator 21:20
jnthn Yes, it can take a little getting into :)
hoelzro be back later 21:23
japhb_ phenny, ask tadzik, Can panda GitHub issue #15 "install for windows, Could not find Shell::Command" be closed now? 21:36
phenny japhb_: I'll pass that on when tadzik is around.
jnthn -> sleep 21:37
masak evening, #perl6 21:38
japhb_ o/ jnthn
o/ masak 21:39
(I love the symmetry of waving, like "Aloha!")
masak colomon: I believe that the Chinese have a notion of "hell", but it's not nearly as popular as the notion of "heaven".
japhb_ There is more than one way to read that ... :-) 21:40
masak colomon: ...the latter which seems to mean more "the awesome place that decides over us all" than "desirable destination".
though I'm not a scholar in these matters, just an amateur.
colomon masak: I guess I was just being optimistic. ;) 21:53
sergot good night! :) 22:34
masak 'branoc, sergocie 22:35
masak 'night, #perl6 23:09
japhb_ o/ 23:10
sorear 'night.
dalek rl6-roast-data: 7b45cd4 | coke++ | p (2 files):
today
23:25
dalek nda: 984edf3 | (Geoffrey Broadwell)++ | TODO:
Add open GitHub issues to TODO as a quick reference
23:35
nda: a540262 | (Geoffrey Broadwell)++ | bin/panda:
Narrow the installed for dependency marker in 'panda list'

Remove completed TODO
japhb_ Boom! Take that, dalek! 23:36
[Coke] tadzik: why is muEvent not in modules.perl6.org? 23:41