Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-09-17

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:12 Psyche^ joined #perl6
00:15 TgMts joined #perl6
00:22 ssutch joined #perl6
00:32 btyler joined #perl6
00:39 jnap joined #perl6
00:49 kbaker joined #perl6
01:16 FROGGS_ joined #perl6
01:24 EvanTeitelman joined #perl6
01:29 dayangkun joined #perl6
01:34 Vlavv` joined #perl6
01:35 btyler joined #perl6
02:57 xenoterracide joined #perl6
03:06 benabik joined #perl6
03:07 preflex_ joined #perl6
03:13 BenGoldberg .ping
03:13 yoleaux There is no ping command; nor can this be construed as a response.
03:21 kbaker joined #perl6
03:38 BenGoldberg 3,4foo
04:07 moritz \o
04:10 diakopter o/
04:10 * [Coke] just waves goodnight quickly before nipping off to bed.
04:15 [Coke] diakopter: you beat me home? wow.
04:15 [Coke] Guess that drive was longer than I thought. ;)
04:22 johnny5_ so someone with some Perl5 experience what can we do to help with Perl6?
04:25 moritz hi johnny5_. You could learn Perl 6, and port some Perl 5 modules to Perl 6
04:29 perigrin or write new ones that don't have the baggage of the perl5 ones.
04:31 krokite joined #perl6
04:31 krokite joined #perl6
04:39 diakopter I like Perl 5's baggage. it's easy to notice in the baggage claim
04:43 tba joined #perl6
04:44 daniel-s joined #perl6
04:47 raiph joined #perl6
04:52 SamuraiJack_ joined #perl6
05:40 larks joined #perl6
06:03 mathw_ joined #perl6
06:03 salv01 joined #perl6
06:03 gshank_ joined #perl6
06:11 Vlavv` joined #perl6
06:12 lue joined #perl6
06:13 Maddingu1 joined #perl6
06:13 danaj joined #perl6
06:13 risou_awy_ joined #perl6
06:13 tokuhirom_ joined #perl6
06:14 DrEeevil joined #perl6
06:14 gabriel_ joined #perl6
06:14 LordV joined #perl6
06:14 slavik joined #perl6
06:14 nine_ joined #perl6
06:15 integral_ joined #perl6
06:15 integral_ joined #perl6
06:15 sivoais_ joined #perl6
06:27 _ilbot joined #perl6
06:27 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
06:35 kaleem joined #perl6
06:47 aindilis joined #perl6
06:50 domidumont joined #perl6
06:53 rom1504 joined #perl6
06:53 preflex joined #perl6
06:53 lizmat joined #perl6
06:53 kaleem joined #perl6
06:53 domidumont joined #perl6
06:55 p5eval joined #perl6
06:55 ksh joined #perl6
06:58 dag_ joined #perl6
06:58 dag_ left #perl6
07:01 domidumont joined #perl6
07:22 jnthn morning, #perl6
07:22 yoleaux 02:32Z <JimmyZ> jnthn: how about 'const MVMREPROps_Attribute *attr_funcs;' => 'MVMREPROps_Attribute attr_funcs;' etc in struct MVMREPROps?
07:22 FROGGS morning
07:23 jnthn hm, seems I have a day of meetings...
07:23 isBEKaml joined #perl6
07:34 moritz \o
07:36 isBEKaml moritz: o/
07:37 FROGGS jnthn: btw, I think you are the best Kursledare I ever had... I just know one teacher of my electrical engineering apprenticeship who could explain stuff that well
07:38 isBEKaml Kursledare? Course leader? Lecturer? :)
07:38 FROGGS Course leader, yeah
07:38 FROGGS he was our Fuehrer basically :P
07:40 isBEKaml :)
07:42 jnthn :P
07:42 jnthn I get lots of teaching practice, thanks to $dayjob
07:43 jnthn Talking of which...commute &
07:43 tadzik oh hai #perl6
07:43 tadzik masak: you may find some autopuns on https://twitter.com/BadJokeCat :)
07:44 isBEKaml hello, tadzik!
07:44 tadzik hello isBEKaml!
07:44 isBEKaml Crap, badjokecat is, um... bad!
07:45 isBEKaml duvet had my cover blown. :P
07:45 isBEKaml tadzik: how goes things?
07:46 zakharyas joined #perl6
07:47 tadzik pretty cool :)
07:47 tadzik sorting out the barrage of emails at work
07:47 isBEKaml ah, emails - the bane of working mornings. :)
07:55 hoelzro morning #perl6!
08:03 moritz "So, I hear reincarnation is making a comeback."
08:06 sqirrel joined #perl6
08:07 masak morning, #perl6
08:07 masak haha, no way jnthn is gonna make it here in time if he was still at the keyboard at 09:43 :P
08:07 domidumont joined #perl6
08:07 masak tadzik: many of which are of the "self-defeating" kind, IIRC.
08:09 tadzik yep
08:09 tadzik they're mostly just puns
08:12 raiph joined #perl6
08:12 fhelmberger joined #perl6
08:13 masak puns often classify as bad jokes. :)
08:17 dalek Heuristic branch merge: pushed 24 commits to Perlito/replito by creaktive
08:31 jnthn haha, I made it here on late
08:31 jnthn where's the coffee...
08:31 masak told you :)
08:32 jnthn I blame my alarm clock for not looking convincing enough when it went off.
08:33 zakharyas joined #perl6
08:35 masak idea for a gift to jnthn: a scowling alarm clock.
08:42 dakkar joined #perl6
08:44 denis_boyun joined #perl6
08:49 jnthn .oO( What an alarming thought... )
08:50 p5eval joined #perl6
08:55 moritz .oO( what a scowlinig thought )
08:56 * masak .oO( back to scowl )
08:57 dmol joined #perl6
09:08 sqirrel joined #perl6
09:32 isBEKaml joined #perl6
10:03 daxim joined #perl6
10:06 hoelzro fun fact: ConfigureJVM.pl --prefix=$HOME/jakudo doesn't configure the build probably if the prefix doesn't exist
10:06 * hoelzro adds it to personal todo list
10:14 denis_boyun joined #perl6
10:40 iSlug joined #perl6
10:53 sqirrel joined #perl6
11:02 denis_boyun joined #perl6
11:02 [Sno]_ joined #perl6
11:09 hoelzro what's the standard for adding tests to rakudo? any bug, or only serious ones?
11:09 hoelzro I believe I found a bug in JVM rakudo
11:09 jnthn omg A BUG?!
11:09 jnthn It does fail some tests that pass on Rakudo Parrot still, fwiw
11:10 hoelzro oh, ok
11:10 hoelzro the bug I found looks like this:
11:10 hoelzro r: my $word; my regex word { \w+ } ; 'foo' ~~ /<word> { $word = $<word }/ ok($word eq 'foo');
11:10 camelia rakudo 223075: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/yuGgRGc17Kâ�¤Unable to parse quote-words subscript; couldn't find right angle quoteâ�¤at /tmp/yuGgRGc17K:1â�¤------> [32m { $word = $<word }/ ok($word eq 'foo');[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤    â€¦Â»
11:11 hoelzro grrr
11:11 hoelzro r: my $word; my regex word { \w+ } ; 'foo' ~~ /<word> { $word = $<word> }/ ok($word eq 'foo');
11:11 camelia rakudo 223075: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/g6ef0SXryHâ�¤Two terms in a rowâ�¤at /tmp/g6ef0SXryH:1â�¤------> [32m; 'foo' ~~ /<word> { $word = $<word> }/ [33mâ��[31mok($word eq 'foo');[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤    â€¦Â»
11:11 hoelzro ok, ;
11:11 hoelzro r: my $word; my regex word { \w+ } ; 'foo' ~~ /<word> { $word = $<word> }/; ok($word eq 'foo');
11:11 camelia rakudo 223075: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/7FcXhGFbCOâ�¤Undeclared routine:â�¤    ok used at line 1â�¤â�¤Â»
11:11 hoelzro ugh
11:11 hoelzro r: use Test; my $word; my regex word { \w+ } ; 'foo' ~~ /<word> { $word = $<word> }/; ok($word eq 'foo');
11:11 camelia rakudo 223075: OUTPUT«ok 1 - ␤»
11:11 hoelzro there we go
11:11 hoelzro (sorry for the fail spam)
11:11 FROGGS and the rakudo-jvm fails this?
11:11 FROGGS wow
11:12 jnthn How does it fail it?
11:12 FROGGS rakudo-jvm$ ./perl6 -e 'use Test; my $word; my regex word { \w+ } ; "foo" ~~ /<word> { $word = $<word> }/; ok($word eq "foo");'
11:12 FROGGS ok 1 -
11:13 jnthn That doesn't look like failure... )
11:14 * masak .oO( my $word... ) :P
11:14 masak but yes, I agree. 'ok 1' means it didn't fail. :)
11:32 hoelzro huh
11:32 hoelzro it fails on mine
11:32 hoelzro hang on
11:32 masak well, the above 'r: ' was Rakudo on Parrot.
11:32 hoelzro hmm
11:33 hoelzro ok, that snippet succeeds
11:33 hoelzro but I have a failing test file
11:33 hoelzro lemme one-liner-ify it
11:34 moritz http://blogs.perl.org/users/damien_dams_krotkine/2013/09/p5-mop.html
11:37 hoelzro ok, here we go:
11:37 hoelzro perl6 -e 'use Test; my $word; my regex word { \w+ } ; my regex my-re { <word> { $word = $<word> } } ; "foo" ~~ /<my-re>/; ok($word eq "foo");'
11:37 hoelzro it's when it's a submatch
11:45 lizmat fwiw, that's indeed ok on my parakudo
11:46 * [Coke] wakes up.
11:47 lizmat [Coke] o/
11:49 [Coke] lizmat: o/ ~~
11:49 [Coke] thanks again for a great workshop!
11:50 * lizmat hopes the wine arrived in one piece  :)
11:52 hoelzro lizmat: it's ok on pakudo
11:52 hoelzro but not jakudo
11:52 hoelzro at least for me
11:53 jnthn lizmat: Mine did, at least :)
11:53 jnthn So, nothing to wine at the baggage handlers for this time :)
11:53 hoelzro moar pull requests
11:53 hoelzro well, more for Rakudo =)
11:53 * diakopter doesn't wake up
11:54 diakopter hm, what in the world day/time is it
11:54 tadzik in the world it's all the time
11:55 fhelmberger_ joined #perl6
11:57 FROGGS hoelzro: I can confirm that on my box
11:58 hoelzro \o/
12:03 [Coke] lizmat: the wine arrived safely, aye!
12:05 dalek perl6-roast-data: 94a579e | coke++ | p (2 files):
12:05 dalek perl6-roast-data: today (automated commit)
12:05 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/94a579e793
12:06 masak I think the submatch problem on Rakudo/JVM has been identified before.
12:06 masak not sure if it was RT'd.
12:10 dayangkun_ joined #perl6
12:11 sivoais joined #perl6
12:13 pernatiy joined #perl6
12:22 sqirrel joined #perl6
12:32 benabik joined #perl6
12:34 grondilu joined #perl6
12:34 grondilu Ukkonen's algorithm for suffix trees in Perl 6.  Translated from C++.  https://gist.github.com/grondilu/6593733
12:35 grondilu (lots of room for style improvement, though)
12:38 timotimo huh, what are the =begin validation and =end validation for?
12:38 timotimo wouldn't that turn the code inside into a pod comment?
12:38 dalek Perlito: 171ea16 | (Flavio S. Glock)++ | / (3 files):
12:38 dalek Perlito: Perlito5 - js - next/redo/return in term position
12:38 dalek Perlito: review: https://github.com/fglock/Perlito/commit/171ea166c3
12:41 grondilu timotimo: that code doesn't work yet, so I commented it.
12:43 timotimo OK
12:43 PacoAir joined #perl6
12:43 grondilu it does give the correct edges with the typical example banana$, so I thought it was worth publishing.
12:52 alester joined #perl6
12:57 ajr joined #perl6
13:02 domidumont joined #perl6
13:05 dalek Perlito: c701f67 | (Flavio S. Glock)++ | / (4 files):
13:05 dalek Perlito: Perlito5 - grammar - alfanumeric quoting delimiters
13:05 dalek Perlito: review: https://github.com/fglock/Perlito/commit/c701f67a20
13:05 [Sno] joined #perl6
13:09 kaare_ joined #perl6
13:16 jnap joined #perl6
13:17 sqirrel joined #perl6
13:22 denisboyun joined #perl6
13:24 PacoAir joined #perl6
13:31 hoelzro ugh
13:31 hoelzro can someone do me a favor and look at my single commit on https://github.com/hoelzro/rakudo?
13:32 hoelzro it's a fix for ConfigureJVM.pl, and GH isn't letting me make a PR
13:32 tadzik hoelzro: maybe mkpath would be better here?
13:32 tadzik as in mkdir -p
13:32 hoelzro oh, you're right
13:37 pmurias joined #perl6
13:39 pmurias jnthn: why does my $foo;if $foo<a><b><c> {};say("didn't die"); work?
13:40 timotimo because there's a candidate for postcircumfix:<{ }> for undefined LHS
13:40 timotimo (not 100% sure, but that's how i remember it)
13:40 btyler joined #perl6
13:40 timotimo r: Any{'hi'}.perl.say
13:40 camelia rakudo 223075: OUTPUT«Any␤»
13:40 * jnthn suspects pmurias means "in NQP"
13:40 timotimo oh
13:41 timotimo of course he would
13:41 pmurias jnthn: yes ;)
13:41 jnthn I think there's two pieces. One is that we emit a QAST::VarWithFallback that massages a null into an NQPMu.
13:41 jnthn The second piece is that the at_pos and at_key ops on a type object hand back null instead of throwing.
13:42 jnthn uh, atpos and atkey are the op names...
13:42 isBEKaml joined #perl6
13:42 * jnthn bbi10
13:44 benabik joined #perl6
13:50 kbaker joined #perl6
13:58 FROGGS joined #perl6
14:01 diakopter can a p6 module/extension load a new trait?  (I'm imagining "is persistent", which would be an extension to "is memoized" or whatever it's called), where the compiler's smart enough to persist (accurately) caches of invocation args/results to disk)
14:02 moritz diakopter: yes. For example NativeCall.pm6 export the 'is native' trait.
14:02 diakopter cool
14:02 diakopter .. I'm sure I've "learned" that before
14:02 diakopter ;)
14:03 diakopter keep in mind that when you're communicating with me, you're usually only communicating with about 1/4-1/2 of me
14:03 moritz 's ok
14:03 tadzik you should replicate better
14:03 diakopter sorry for the insane-ish disclaimer
14:06 * moritz wonders what a quater diakopter looks like
14:07 geekosaur "di:"
14:08 moritz geekosaur++
14:08 diakopter :)
14:08 diakopter commutamentarian &
14:10 * jnthn back
14:10 yoleaux 14:06Z <diakopter> jnthn: 100 gc runs in total run time 280ms, including 4 threads allocating 1e6 each
14:10 yoleaux 14:08Z <diakopter> jnthn: that's, like, far less than 1ms per gc run
14:10 jnthn I'm guessing those mostly are throwing away dead things...
14:10 diakopter yes, tiny alive heaps
14:11 xenoterracide joined #perl6
14:11 jnthn In realistic workloads I'd suspect a slightly higher survivor ratio, but yeah, Moar's nursery GC is optimized for death.
14:12 alester joined #perl6
14:12 tadzik The Nursery of Death
14:12 tadzik Moar!
14:15 hoelzro GitHub FAIL
14:15 hoelzro Bitbucket has my Perl6 highlighter
14:15 lowpro30 joined #perl6
14:15 hoelzro BitBucket++++++++
14:16 hoelzro sub postfix:<+++++++>() { say 'Bitbucket is teh win' }
14:16 jnap joined #perl6
14:16 masak postfix ops take one parameter :)
14:16 hoelzro gah
14:17 hoelzro fail
14:17 FROGGS hoelzro++ # \o/
14:17 hoelzro we need to move all of the Perl 6 stuff to BB!
14:17 hoelzro =P
14:17 FROGGS >.<
14:17 hoelzro I'm thinking of setting up a mirror, though
14:17 hoelzro just to demonstrate the GH fail
14:17 FROGGS yeah
14:17 tadzik r: multi postfix:<++>('github') { die "boo! BOO!" }; my $g = 'github'; $g++
14:18 camelia rakudo 223075: OUTPUT«boo! BOO!␤  in sub postfix:<++> at /tmp/lojFVvQ2_9:1␤  in sub postfix:<++> at src/gen/CORE.setting:2164␤  in block  at /tmp/lojFVvQ2_9:1␤␤»
14:23 pmurias hoelzro: what's the problem with github?
14:24 hoelzro they won't merge my stupid PR
14:24 hoelzro after...
14:24 * hoelzro checks
14:24 hoelzro 4 months
14:24 hoelzro "I'll be bumping to latest pygments very soon, so we'll see this in shortly."
14:24 hoelzro 3 months ago
14:24 hoelzro I'm filing a ticket with GH
14:26 tadzik 3 months of Valve Time, surely
14:26 tadzik https://developer.valvesoftware.com/wiki/Valve_Time
14:27 lizmat commuting to Niederrhein.pm&
14:29 hoelzro bug filed
14:34 Mouq joined #perl6
14:40 * moritz hugs hoelzro
14:40 moritz hug filed
14:41 hoelzro could someone check/merge my commit from hoelzro/rakudo?
14:41 hoelzro GH *still* won't let me make a PR
14:42 woolfy1 left #perl6
14:42 tadzik you make me dislike gihtub
14:42 tadzik hoelzro, stahp
14:43 hoelzro I normally like GH
14:43 hoelzro but today they fail to impress =/
14:43 tadzik y u no have commit bit
14:44 lowpro30_ joined #perl6
14:44 moritz hoelzro: fwiw I'm not sure that's the right approach
14:44 moritz hoelzro: configuring and building shouldn't require write priviliges outside the build dir
14:45 hoelzro hmm
14:45 hoelzro I suppose that's true
14:45 hoelzro well, then maybe we shouldn't use realpath?
14:46 hoelzro Configure.pl doesn't
14:46 moritz right
14:46 moritz rather use File::Spec->rel2abs
14:46 moritz Configure.pl uses abs_path, which is a synonym for realpath
14:46 moritz so it too needs fixing
14:48 moritz hoelzro: but I can't reproduce that here
14:48 moritz $ perl -MCwd=abs_path -wE 'say abs_path("doesnotexist")'
14:48 moritz /home/mlenz/doesnotexist
14:48 moritz $ perl -MCwd=abs_path -wE 'say abs_path("/doesnotexist")'
14:48 moritz /doesnotexist
14:48 moritz so it works as it should both for relative and absolute paths
14:48 moritz or maybe it's platform specific
14:49 hoelzro "Have you tried taking it up with the maintainer"
14:49 hoelzro no, GH, I hadn't thought to do that
14:49 hoelzro http://hoelz.ro/files/table-flip.jpg
14:49 hoelzro hmm
14:49 hoelzro moritz: what platform are you on?
14:50 moritz hoelzro: linux mint (debian derivate), perl 5.14.2
14:51 hoelzro curious
14:51 hoelzro I wonder what's wrong with mine
14:51 sqirrel joined #perl6
14:52 moritz hoelzro: have you tried the two one-liners I pasted above?
14:53 hoelzro lemme try, hang on
14:53 hoelzro huh
14:53 hoelzro yeah, those work
14:54 GlitchMr Just wondering, how do I specify list with at least one arguments in sub MAIN?
14:54 moritz hoelzro: also with s/abs_path/realpath/g ?
14:54 hoelzro I'll look into it more after $work
14:54 moritz GlitchMr: *@a where @a   maybe
14:55 moritz maybe '@a where so @a'
14:55 moritz or *@a [$, *@]
14:55 lowpro30 joined #perl6
14:55 GlitchMr Can I do it in such way that option parser notices it?
14:56 lowpro30__ joined #perl6
14:56 hoelzro no, that works too
14:56 GlitchMr Because this gives me [<arguments> ...]
14:56 GlitchMr And [] looks like optional.
14:56 hoelzro it *would* be nice to be able to override the MAIN helper stuff from a P6 program
14:59 moritz GlitchMr: I don't think so
14:59 moritz hoelzro: aye
15:00 jnthn You can override the USAGE message, no?
15:01 hoelzro yes
15:01 hoelzro I was thinking more like overriding the automatic @*ARGV processing
15:05 doy joined #perl6
15:05 doy http://paste.tozt.net/2013-09-17vofIScs2
15:06 doy why does adding a BUILD submethod to Foo affect whether Bar's attributes are initialized?
15:06 census joined #perl6
15:06 moritz it shouldn't; looks like a rakudobug to me
15:07 GlitchMr And how can I specify named argument which doesn't take arguments? I want --a b to not take "b". I tried Bool, but it doesn't work.
15:07 doy okay, thanks
15:07 TimToady_ doy: metoo
15:08 doy TimToady_: hmmm?
15:08 TimToady_ agree that it looks like a bug
15:08 doy okay
15:08 TimToady_ I would have expected it to leave only $.foo uninitialized
15:08 doy yeah
15:09 GlitchMr Actually, whatever, Bool works.
15:09 TimToady_ guessing the submethiod is being treated like a method there
15:09 moritz r: class A { submethod f() { say 42 } }; class B is A { }; B.f()
15:09 camelia rakudo 223075: OUTPUT«No such method 'f' for invocant of type 'B'␤  in block  at /tmp/UMK_u2mzec:1␤␤»
15:09 TimToady_ and being inheritied when it shouldn't
15:09 TimToady_ except that doesn't explain it either
15:10 TimToady_ oh wait, it does
15:10 lowpro30__ joined #perl6
15:10 jnthn I'm afraid it's much more subtle than that.
15:10 TimToady_ no, I can't count
15:10 jnthn submethod BUILD { say self }
15:10 * TimToady_ shouldn't try to think this early
15:10 jnthn When you do "say self" you touch the two attribute slots when introspecting.
15:11 jnthn That in turn vivifies the containers inside of them, which is what has to happen if you are going to have $!foo = ...; work.
15:11 TimToady_ arguably foo should not know about bar yet
15:11 jnthn Then, when it goes to check if it should run the defaults closures, the attributes were already touched, so it doesn't run them.
15:12 TimToady_ also arguably the program is erroneous for assuming the object is all created
15:12 doy yeah, i'd kind of almost expect the first say to print Bar.new(foo => Any) or Foo.new(foo => Any), or something like that
15:12 jnthn r: class Foo { has $.foo = 1; submethod BUILD { say "here"; } }; class Bar is Foo { has $.bar = 2 }; say Bar.new
15:12 camelia rakudo 223075: OUTPUT«here␤Bar.new(bar => 2, foo => 1)␤»
15:12 jnthn There you go.
15:12 jnthn It's the "say self" that is to blame.
15:13 TimToady_ do we have any way of referring to the subpart of the object that has been constructed so far?
15:13 jnthn Not really.
15:13 TimToady_ seems like that might be a useful concept ish.
15:13 jnthn And we shouldn't go putting lots of tracking of stuff into object construction time.
15:13 jnthn We just went and re-worked that stuff to make it performant.
15:13 TimToady_ that's the ish part
15:14 jnthn Please dont' go and complicate it again. :)
15:14 TimToady_ well, if you happen to notice a way to get it for free at some point, lemme know
15:14 jnthn *nod*
15:14 jnthn It's generally hard to statically figure these things, is all...
15:14 doy so is it worth reporting a rakudobug then?
15:14 doy or is it just a wontfix
15:15 TimToady_ I think it's my second speculative notion: erroneous to refer to the entire object
15:15 jnthn It's more of a "I don't know how I would fix it" :)
15:15 PerlJam TimToady_: +1 (I was just about to suggest that)
15:15 TimToady_ so more in the category of "Doctor it hurts..."
15:16 TimToady joined #perl6
15:16 doy also, on a related note, if you have "class Foo { has $.foo = 1; submethod BUILD { ... } }", is there any way to see what the default would have been had the BUILD submethod not been there?
15:18 moritz the Attribute object has a .default method, iirc
15:18 TimToady you're saying the class's right hand doesn't know what the left hand is doing? :)
15:18 PerlJam doy: why would you want that?
15:18 moritz which you can get by introspection (YourClass.^attributes)
15:18 doy PerlJam: well, it just seems odd that it would be allowed to both set a default and define a BUILD method without getting a warning or something
15:18 doy since the default is just going to be ignored entirely
15:19 jnthn doy: It's not ignored
15:19 TimToady either it's static, and you know it already, or you should have declared a "constant MYDEFAULT =" and used it both places
15:19 jnthn doy: If you don't touch an attribute in your BUILD, the default is applied.
15:19 doy oh, okay
15:19 jnthn doy: the problem is you did "say self", which touches all the attributes.
15:19 doy right, yeah, guess i was still confused by that
15:19 * TimToady still wonders if the default should just be attached to the FETCH, so that you can initialize with +=, for instance
15:20 TimToady has $.foo = 42; submethod BUILD () { $!foo += 1 };  # that sort of thing
15:21 TimToady not sure it works right for natives though
15:21 masak IO::Path in the setting contains 'has Str $.path', but then 'method path(IO::Path:D:) { self; }' -- IMO it shouldn't do both. opinions?
15:22 masak (the method wins, of course. but the attribute being public confuses the matter.)
15:22 masak turns out the way to get at $!path is to do .Str
15:22 TimToady that seems a bit confused, yes
15:23 TimToady $.path is probably misnamed
15:23 TimToady pathstr or some such
15:23 * masak prepares a patch
15:24 TimToady or string_path_as_OS_thinks_it :)
15:24 TimToady or *
15:24 jnthn TimToady: I think it comes under "possible but not easy to make work, then we need to work out how to make it fast". :))
15:25 pmurias joined #perl6
15:25 TimToady does the 'touch' mechanism extend properly to natives currently?
15:25 TimToady would have to be out-of-band, obviously...
15:26 * TimToady doesn't actually know how rakudo does it...
15:27 silug_ joined #perl6
15:27 jnthn TimToady: No, we've no way to do it for those yet.
15:28 jnthn TimToady: We do it by using a NULL in the object body to indicate "untouched", and the first touch vivifies the Scalar container.
15:28 jnthn (Or Array or Hash...)
15:28 doy left #perl6
15:28 TimToady so it probably all needs a rethink anyway...
15:29 TimToady of course, for natives, you could probably just statically initalize the chunk of memory more efficiently
15:29 masak hey! volunteer? https://gist.github.com/masak/6595941 -- I can't build this right now, I'm using Rakudo.
15:29 jnthn Yeah, that's basically what happens...
15:30 masak if someone wants to build and spectest that patch, that'd be lovely.
15:30 masak I can push it myself, if only I know the spectests pass.
15:30 cognominal joined #perl6
15:30 jnthn Of course, since we normally get zeroe'd memory, only floating point things need fiddling with to make them NaN.
15:31 TimToady just thinking if you had a template, you could poke 42's and such into it as well
15:31 TimToady then it's just a memcpy
15:31 TimToady (before BUILD)
15:32 jnthn true
15:32 jnthn That still doesn't free us from needing some flags somewhere for initialized.
15:33 jnthn (for natives)
15:33 TimToady why not, other than the spec says otherwize?
15:34 TimToady well, I guess if you have to run code for the =, it's a problem
15:34 jnthn Because there's no "sentinel" value we can use for, say, a native int...
15:34 jnthn Right, it's a closure in general...
15:34 TimToady was just thinking you don't need a sentinal for a native int if you know the initial value is static
15:34 jnthn And you really, really can't trigger running code from inside the low-level getattr.
15:34 TimToady but it's not always static, I guess
15:34 jnthn Right.
15:35 jnthn We can probably convey enough to the REPR about this to let it be smart...
15:35 TimToady but you could know enough at compile time to optimize the statics into the initial memcpy
15:35 jnthn (only have the flags for the non-static case)
15:35 TimToady nodnod
15:35 jnthn Right, that's do-able.
15:35 TimToady d'accord
15:36 jnthn I'd really like working with natives to not bring about pain :)
15:36 jnthn (compared to not using them)
15:37 TimToady ¡cc, señor!
15:37 [Sno] joined #perl6
15:37 lowpro30 joined #perl6
15:37 jnthn .oO( cc señor.c )
15:38 * TimToady thinks fondly of dmr
15:38 rindolf joined #perl6
15:38 * masak .oO( cm³, señor )
15:40 geekosaur .oO { what's modula3 got to do with it? }
15:40 jnthn http://6guts.wordpress.com/2013/09/17/material-from-the-rakudo-and-nqp-internals-course/
15:40 * TimToady parsed cm³ as centi-stère...
15:42 JimmyZ jnthn: it's not in http://planetsix.perl.org/ yet
15:42 jnthn .oO( I think you mean centi-tri, not centri-štyri :P )
15:42 jnthn JimmyZ: Why are you telling me this?
15:42 jnthn I can't make an aggregator go faster :P
15:43 JimmyZ jnthn: I thought you didn't tag as Perl 6  :P
15:44 jnthn JimmyZ: Ah, ok. No, I don't tag anything, and the whole blog goes there :)
15:46 jnthn Appears planetsix has caught it now. :)
15:46 jnthn Guess it polls...
15:47 JimmyZ yeah
15:50 daxim excellent read, jnthn++
15:50 masak jnthn++
15:51 masak jnthn: it's "Adam and tri", not "Adam and štyri"! :P
15:54 daxim tell the decision makers a thank you from me for releasing the materials
15:54 JimmyZ lizmat++, jnthn++
15:55 bloonix joined #perl6
15:55 masak lizmat++
15:55 colomon jnthn++ lizmat++
15:56 FROGGS stitching++ (needs a bit improvement though): http://i.imgur.com/FwjxCI0.jpg?1
15:56 colomon preground Szechuan peppercorns+=
15:56 colomon preground Szechuan peppercorns++
15:56 masak FROGGS: wow!
15:57 colomon FROGGS++
15:57 FROGGS masak: takes about an hour though... and the green in the wings is actually a green, the cam is just rap
15:57 FROGGS crap*
15:58 jnthn FROGGS++ # wow, nice!
15:58 jnthn daxim: have passed it along :)
15:59 FROGGS if this works out nice, then we make shirts on request... (without making profit)
16:00 * TimToady appriciates that FROGGS++ has preserved various subtle asymmetries
16:00 FROGGS hehe
16:00 TimToady appreciates, even
16:01 TimToady particularly the slight wall-eye-ness, as well as the mona lisa smile
16:01 TimToady *eyed
16:03 FROGGS yeah, true
16:03 TimToady well, maybe more like what mona lisa's smile woulda look like if she were smiling for reals, I guess...
16:04 FROGGS the stitches arn't perfect though, we need to figure out that
16:04 TimToady material too stretchy maybe?
16:05 FROGGS TimToady: is that okay if we make shirts with that logo if we don't make money with it?
16:05 FROGGS TimToady: no, it isnt stretchy at all
16:05 FROGGS 100% cotton
16:05 TimToady well, T-shirt weave is intrinsically a bit stretchy
16:06 masak FROGGS: yes, what first struck me is how similar to the digital logo it was, asymmetries and all.
16:06 masak FROGGS++
16:10 TimToady FROGGS: I'm fine with that use of Camelia
16:10 FROGGS TimToady: it is a shirt, not a t-shirt... but elastan (t-shirts) would be trickier
16:10 FROGGS awesome!
16:11 FROGGS masak: well, that software I have has a wizard that takes a picture (like an svg or jpg) and within two minutes you have a file you can copy to the machine
16:11 FROGGS maybe we need to improve that file as well
16:13 masak oh, it's done by machine? cool.
16:14 FROGGS yeah :o)
16:16 dalek nqp: c3bcf9e | (Pawel Murias)++ | t/nqp/81-radix.t:
16:16 dalek nqp: Add test for nqpp::radix.
16:16 dalek nqp: review: https://github.com/perl6/nqp/commit/c3bcf9e5b7
16:18 pmurias argh typo in commit description ;)
16:18 FROGGS nqpp is like cpp?
16:18 FROGGS :o)
16:19 geekosaur not quite pretty perl?
16:19 GlitchMr nqpp: Not quite PERL Perl?
16:20 domidumont joined #perl6
16:20 FROGGS uaargghhh
16:22 fhelmberger joined #perl6
16:24 pmurias FROGGS: yes, we use nqpp to apply our source filters ;)
16:26 FROGGS hmmm, interesting name for fudge
16:29 masak r: my @names = <jnthn lizmat moritz>; my %h = ($_ => [] for @names); say %h.perl
16:29 camelia rakudo 223075: OUTPUT«("jnthn" => [], "lizmat" => [], "moritz" => []).hash␤»
16:29 benabik joined #perl6
16:30 masak quick poll: how would all y'all write the second statement above?
16:30 masak this was the nicest way I could think of.
16:30 masak X=> doesn't really apply, and .map felt too unwieldy.
16:30 jnthn r: my %h = <jnthn lizmat moritz> Z=> [] xx *; say %h.perl
16:30 camelia rakudo 223075: OUTPUT«("jnthn" => [], "lizmat" => [], "moritz" => []).hash␤»
16:31 hoelzro w00t
16:31 masak yeahbut.
16:31 hoelzro the GitHub guy came through!
16:31 masak jnthn: are those individual arrays?
16:31 masak oh, I guess they are, because xx.
16:31 jnthn masak: yeah xx
16:31 masak yeah, that's nicer.
16:31 jnthn thukns it's LHS :)
16:31 masak that's what I was groping for :)
16:31 jnthn *thunks
16:31 masak its* :)
16:32 jnthn that also
16:32 jnthn gah
16:32 tadzik woow
16:32 tadzik edument++
16:34 kbaker joined #perl6
16:34 masak we're hiring. ;)
16:34 masak (not only meant for tadzik) ;)
16:35 * masak awaits the first comments about edument's course material toolchain
16:35 tadzik toolchain?
16:36 tadzik oh, there are sources of everything
16:36 masak tadzik: yeah, see https://github.com/edumentab/rakudo-and-nqp-internals-course/blob/master/Makefile
16:36 colomon joined #perl6
16:40 [Sno] joined #perl6
16:40 lizmat joined #perl6
16:42 jnthn .oO( I love the smell of net cologne... )
16:43 perigrin .NET cologne ... for when you want them to open Windows
16:45 lizmat arrived in Cologne
16:49 arnsholt masak: Any particular reason your toolchain is latex -> dvips -> ps2pdf rather than just pdflatex?
16:49 masak arnsholt: yes.
16:49 masak arnsholt: jnthn's (Wintel) setup didn't like pdflatex, so we had to detour.
16:49 jnthn heh, thought it was gonna be my fault :P
16:49 arnsholt That's a good reason
16:50 masak arnsholt: thanks for checking, though. your concern is noted. :)
16:50 raiph joined #perl6
16:51 sqirrel joined #perl6
16:53 hoelzro I think I know why realpath isn't working
16:53 arnsholt I was a happier man when I realized I could just pdflatex, so I was wondering if there actually was a reason or just legacy process
16:55 * TimToady starts backlogging aga...OOH, look, shiny!!!
16:57 ponbiki joined #perl6
16:57 * benabik prefers xetex these days.  Handles fonts and unicode better.
16:58 tba joined #perl6
16:59 * perigrin finds xanax useful when dealing with fonts and unicode.
17:00 masak arnsholt: pdflatex vs dvips+ps2pdf behave differently with .eps files, and with alpha-channel transparency. those are the differences I remember finding.
17:01 masak arnsholt: I also believe I concluded that sometimes one path is better, sometimes the other.
17:01 * moritz usually converts all included vector graphics to pdf and uses pdflatex directly
17:02 moritz mostly because the quality of ps viewers and p2pdf sometimes is not quite optimall
17:03 FROGGS edument++ # this is awesome!
17:04 spider-mario joined #perl6
17:07 masak moritz: hm, we could probably have gone that way, too.
17:08 masak by the way, if someone wants to *use* our course material toolchain for something, you hereby have my explicit permission.
17:08 masak if you need help, give me a ping.
17:08 moritz (though my experiences are also a few years old by now)
17:08 lizmat masak++
17:09 lowpro30 joined #perl6
17:10 masak we also accept both issues and pull requests for that particular course, should the need arise.
17:11 moritz edument++
17:13 sjohnson knowledge++
17:17 moritz r: sub MAIN(:foo($alias)!) { }
17:17 camelia rakudo 223075: OUTPUT«Usage:␤  /tmp/ukhN_qfEF2 --foo=<Any> ␤»
17:17 moritz r: sub MAIN(:foo($:alias)!) { }
17:18 camelia rakudo 223075: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/eWnZSR3xtV�In signature parameter, placeholder variables like $:alias are illegal�you probably meant a named parameter: ':$alias'�at /tmp/eWnZSR3xtV:1�------> [32msub MAIN(:foo($:alias[33m�[31m)!) { }…»
17:18 moritz r: sub MAIN(:foo(:$alias)!) { }
17:18 camelia rakudo 223075: OUTPUT«Usage:␤  /tmp/C8E7V021uk --foo|--alias=<Any> ␤»
17:18 moritz GlitchMr: you see, the aliasing syntax is actually implemented for MAIN
17:18 GlitchMr Huh?
17:19 GlitchMr Weird
17:19 moritz no, awesome! :-)
17:20 jnthn r: sub MAIN(:h(:$help)!) { }
17:20 camelia rakudo 223075: OUTPUT«Usage:␤  /tmp/2nZ_vF6Yjo -h|--help=<Any> ␤»
17:20 jnthn :D
17:21 moritz r: sub MAIN(Bool :h(:$help)!) { }
17:21 camelia rakudo 223075: OUTPUT«Usage:␤  /tmp/qKcVhe1EPD -h|--help ␤»
17:24 SamuraiJack_ joined #perl6
17:26 flussence one thing I've noticed the default USAGE lacks: it doesn't show subset type names or stuff like that. Not a big problem but it'd be nice...
17:27 flussence r: subset Filename of Str where *.IO.e; sub MAIN(Filename $input) {...}
17:27 camelia rakudo 223075: OUTPUT«Usage:␤  /tmp/dNR5a4QAL9 <input> ␤»
17:27 flussence r: subset Filename of Str where *.IO.e; sub MAIN(Filename :$input) {...}
17:27 camelia rakudo 223075: OUTPUT«use of uninitialized value of type Str in string context  in block  at /tmp/YKbCzQ9kha:1␤␤use of uninitialized value of type Str in string context  in block  at /tmp/YKbCzQ9kha:1␤␤Stub code executed␤current instr.: 'throw' pc 407854 (src/gen/CORE.setting.pir:17…»
17:27 flussence r: subset Filename of Str where *.IO.e; sub MAIN(Filename :$input?) {...}
17:27 camelia rakudo 223075: OUTPUT«use of uninitialized value of type Str in string context  in block  at /tmp/az9w7BiMEN:1␤␤use of uninitialized value of type Str in string context  in block  at /tmp/az9w7BiMEN:1␤␤Stub code executed␤current instr.: 'throw' pc 407854 (src/gen/CORE.setting.pir:17…»
17:27 flussence whoops, broke something again...
17:28 flussence (anyway, when it works it just shows "<Str>" there)
17:37 krokite joined #perl6
17:37 krokite joined #perl6
17:37 * [Coke] wakes up.
17:38 lizmat good morning [Coke]!
17:39 dmol joined #perl6
17:42 iSlug joined #perl6
17:42 yannickberthoud joined #perl6
17:43 [Coke] second time's the charm
17:43 FROGGS hi [Coke]
17:43 woolfy joined #perl6
17:43 jnthn o/ [Coke] :)
17:44 [Coke] lizmat, FROGGS: morning!
17:45 ssutch joined #perl6
17:46 woolfy [Coke]: \o/ evening
17:47 woolfy Day after Frankfurt, so it must be Cologne.  We (ribasushi, Sno, Lizmat, me, Tux, vanHoesel) and three Germans are at the Niederrhein.pm meeting.
17:48 ajr joined #perl6
17:49 jnthn Nies!
17:49 SamuraiJack joined #perl6
17:50 * [Coke] waves belatedly at jnthn
17:50 itz_ woot! course materials!
17:50 itz_ was it videoed too?
17:50 jeffreykegler joined #perl6
17:51 tadzik nope
17:52 tadzik the slides are excellent though
17:52 tadzik and the exercises are really worth going through
17:52 tadzik I need to finish my PHP6 compiler on some free evening :)
17:54 [Coke] oh, I finally got a few verbs working again with partcl; would have pushed more if the guy in front of me on the plane had not instantly reclined his seat into my lap. :)
17:54 iSlug Hi all
17:55 [Coke] iSlug: ho.
17:56 FROGGS awww, kittens are cute! http://de.webfail.com/f5e3afe38ae
17:57 tadzik boing boing boing. That's a cat picture I don't mind
18:05 colomon do the slides indicate where the exercises should come?
18:05 * colomon is doing contract work, while listening to a long set of tunes he wants to learn and reading jnthn++'s slides during compiles.  ;)
18:08 tadzik colomon: yes
18:08 GlitchMr <26flussence> one thing I've noticed the default USAGE lacks: it doesn't show subset type names or stuff like that. Not a big problem but it'd be nice...
18:08 colomon tadzik: \o/
18:08 GlitchMr Parsing where expression would be insane.
18:08 GlitchMr Especially to show in something like USAGE.
18:08 GlitchMr <29tadzik> I need to finish my PHP6 compiler on some free evening :)
18:09 GlitchMr PHP6 sounds interesting :-). I just want support echo('a', 'b', 'c',), thanks.
18:09 GlitchMr Well
18:09 GlitchMr echo('a', 'b', 'c',);
18:10 GlitchMr PHP cannot parse it, but it would be nice. awk is fine with print('a', 'b', 'c').
18:10 flussence I'm not asking it to parse the where expression, just to recognise there's a named subset type and use that...
18:10 GlitchMr Oh, I guess this makes sense.
18:10 Mouq joined #perl6
18:11 flussence (showing the raw code for a where clause woudn't be end-user-friendly anyway)
18:13 GlitchMr Actually, showing "raw code" could pass in AppleScript.
18:13 GlitchMr But I don't think it could work anywhere else.
18:16 denis_boyun joined #perl6
18:17 sergot hi o/
18:17 lizmat sergot o/
18:18 masak sergocie! \o/
18:19 GlitchMr hi, sergot
18:26 census hi masak!
18:28 fhelmberger joined #perl6
18:32 masak census! \o/
18:39 EvanTeitelman joined #perl6
18:50 itz_ these slides are excellent!
18:51 tadzik truly jnthn quality
19:12 kbaker joined #perl6
19:15 GlitchMr These slides make me want to implement some programming language in NQP. It sounds fun.
19:15 hoelzro it was =)
19:15 sjohnson masak, what's up homey.
19:15 masak GlitchMr: if you do, make sure you also blog about how easy it is to get going.
19:16 GlitchMr Sure :-).
19:16 GlitchMr After I will find out how to do basic things with NQP.
19:16 masak sjohnson: is "homey" short for "homomorphism"? I hope so -- I'm doing lots of category theory these days. :)
19:17 sjohnson masak: nah, means home boy I think :)
19:17 sjohnson masak: http://www.urbandictionary.com/define.php?term=homey , definition 2
19:18 sjohnson although I didn't really grow up with you, that's not a requirement.
19:21 masak :)
19:21 masak sjohnson: that's OK, you're my homey too :)
19:22 moritz masak: your homomorphisms would be your clones, no?
19:23 benabik masak: Lambda Calculus via Cartesian Closed Categories http://conal.net/blog/posts/overloading-lambda  (haven't read it myself, it's on my to read list)
19:24 TimToady homey clones have great empathy, so they believe in homeyopathy
19:25 masak moritz: if not clones, then at least reassuringly based on me.
19:25 masak moritz: but technically a homomorphism might also derive, say, an Evil Twin.
19:25 GlitchMr From what I read, NQP looks like great framework to make programming languages, not just Perl 6.
19:25 masak benabik: looks nice. thanks for the tip.
19:26 masak GlitchMr: to implement compilers, to be exact.
19:26 * moritz just did a pull request for the raniw material, and now github only gives error 500 back
19:26 TimToady GlitchMr: there's a reason for that :)
19:26 moritz oh noez, I killed teh github!
19:26 lizmat joined #perl6
19:26 masak oh noez!
19:26 lizmat r: my $h; my $b := $h<a><b>; $h<a><d> = 1; say $h; $b = 42; say $h  # seems .WHENCE is not set up correctly
19:26 camelia rakudo 223075: OUTPUT«("a" => {"d" => 1}).hash␤("a" => {"b" => 42}).hash␤»
19:26 GlitchMr https://status.github.com/
19:26 GlitchMr Major service outage.
19:27 GlitchMr At least my blog still seems to work, so whatever.
19:27 moritz for two minutes now
19:27 moritz yes, accurate timing
19:30 * colomon has successfully rebuilt the slides PDFs locally.  :)
19:30 GlitchMr 'It is also possible to use echo("with parentheses"). Implement it.'
19:30 benabik masak: Conal is converting Haskell to circuits by way of CCC.  Sounds fascinating when I get a few hours to try to parse it.  :-D
19:30 GlitchMr Actually, it's impossible. It works with one argument, but just because parentheses are for grouping, but fails loudly with more than one argument.
19:31 GlitchMr Nothing surprising, this is PHP.
19:33 Util #ps time
19:35 lizmat r: my @a; say @a.exists(-1)  # shouldn't this fail with "cannot have a negative index" ?
19:35 camelia rakudo 223075: OUTPUT«False␤»
19:35 lizmat r: my @a; say @a[-1]:exists  # like this ?
19:35 camelia rakudo 223075: OUTPUT«Cannot use negative index -1 on Array␤  in method gist at src/gen/CORE.setting:12023␤  in method gist at src/gen/CORE.setting:953␤  in sub say at src/gen/CORE.setting:12923␤  in block  at /tmp/nKTQwMv3aa:1␤␤»
19:36 lizmat (at least for arrays without explicit shapes)
19:37 flussence .oO( what does it mean when status.github.com's graphs show a 5000% exception rate? spacetime anomaly? )
19:37 moritz flussence: 50 exceptions thrown per request?
19:38 zwut00 joined #perl6
19:38 GlitchMr I only see 22.22%.
19:38 GlitchMr To be exact, 22.2229%
19:39 flussence graph on the right is currently showing 2858%
19:39 GlitchMr But that's probably means 50 exceptions thrown per request.
19:39 GlitchMr Perhaps they don't count it as view when exception is being thrown.
19:40 dalek Perlito: 9f2a707 | (Flavio S. Glock)++ | t5/01-perlito/030-num.t:
19:40 dalek Perlito: Perlito5 - grammar - tests
19:40 dalek Perlito: review: https://github.com/fglock/Perlito/commit/9f2a707f26
19:40 masak lizmat: arguably, yes.
19:41 masak lizmat: does it fail any spectests to make it fail? if not, go for it.
19:41 diakopter rn: die "you broke Perl 6"
19:41 camelia rakudo 223075: OUTPUT«you broke Perl 6␤  in block  at /tmp/ov3_ccLMbG:1␤␤»
19:41 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: you broke Perl 6␤  at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5) ␤  at /tmp/ZibE45Wfpu line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting l…»
19:42 diakopter why doesn't rakudo show a stack trace?
19:42 moritz diakopter: it does
19:42 moritz diakopter: it's just one element though
19:42 moritz diakopter: the others are filtered out
19:42 lizmat masak: will go for it, for after the release
19:43 lizmat github's up again
19:43 masak \o/
19:43 GlitchMr Just wondering, how well does NQP support Unicode (without Perl 6)?
19:43 masak diakopter: that 'in block  at' is a block with no name.
19:44 diakopter how do you unfilter them out
19:44 diakopter GlitchMr: I get unicode errors often with nqp on parrot.
19:44 diakopter i keep typing "nap" instead of nqp.
19:44 diakopter also, I'm sleepy.
19:45 moritz diakopter: $!.backtrace.full
19:45 GlitchMr > say(nqp::ord("ł"))
19:45 GlitchMr 322
19:45 moritz diakopter: try to remember my talk at YAPC::EU :-)
19:45 GlitchMr ok, I guess it's good enough.
19:45 diakopter moritz: I was even more sleepy then...
19:45 moritz diakopter: or --ll-exception on the command line (not quite the same)
19:45 diakopter r: die $!.backtrace.full
19:45 camelia rakudo 223075: OUTPUT«No such method 'backtrace' for invocant of type 'Nil'␤  in block  at /tmp/KXIiu90FjK:1␤␤»
19:46 lizmat r: my $h; my $b := $h<a><b>; $h<a><d> = 1; say $h; $b = 42; say $h  # masak: opinions on this one?
19:46 camelia rakudo 223075: OUTPUT«("a" => {"d" => 1}).hash␤("a" => {"b" => 42}).hash␤»
19:46 diakopter :)
19:46 GlitchMr Can I for example define grammar where identifiers are unicode letters?
19:46 lizmat GlitchMr: afaik, yes
19:46 moritz r: my $ähm = 'wait'; say $ähm
19:46 camelia rakudo 223075: OUTPUT«wait␤»
19:47 moritz it's not like p6 identifiers were limited to ascii
19:47 GlitchMr Of course not, but I also would avoid coding lots of stuff just to have Unicode identifiers.
19:50 hoelzro ugh
19:50 hoelzro why does building the docs take so much memory? =(
19:50 diakopter what docs
19:50 hoelzro the doc.perl6.org ones
19:51 moritz because it has bitrotted, I think
19:51 hoelzro the docs? or the code to generate them?
19:55 timotimo i worked on pod parsing and html conversion and i may have f'ed up
19:55 hoelzro I was able to build without incident a few months ago
19:56 hoelzro but today I tried and I had to kill the process when it reached 85% RAM usage =/
19:57 hoelzro I tried with rakudo JVM, but it won't run the Pod to HTML code
19:57 GlitchMr r: Int.HOW.HOW.perl
19:57 camelia rakudo 223075: OUTPUT«No such method 'perl' for invocant of type 'NQPClassHOW'␤  in block  at /tmp/dT2WdvNvPU:1␤␤»
19:57 GlitchMr Huh? I get KnowHOW here.
19:57 GlitchMr r: Int.HOW.perl
19:57 camelia rakudo 223075: ( no output )
19:58 timotimo oh no, it may actually be my fault :o
19:58 GlitchMr r: Int.HOW.HOW.HOW.perl
19:58 camelia rakudo 223075: OUTPUT«No such method 'perl' for invocant of type 'KnowHOW'␤  in block  at /tmp/en0Qhrt0KF:1␤␤»
19:58 GlitchMr r: say Int.HOW.perl
19:58 camelia rakudo 223075: OUTPUT«Perl6::Metamodel::ClassHOW.new()␤»
19:58 GlitchMr Oh, I ran code in NQP by mistake.
19:58 GlitchMr This is why I didn't have Perl6::Metamodel::ClassHOW.
20:04 juiko joined #perl6
20:08 hoelzro I wish that Perl 6 supported fork() =(
20:09 hoelzro then at least I could isolate the runaway memory usage to a child process
20:09 hoelzro and the parent wouldn't be affected
20:11 diakopter it does though, with NativeCall
20:12 diakopter on parrot anyway
20:12 hoelzro ah, true
20:13 hoelzro I could try that
20:21 * dylanwh has the sudden desire to invoke fork() from a jvm process.
20:22 timotimo because that sounds totally safe
20:22 dylanwh and my desire is to see what breaks. :-D
20:22 PZt joined #perl6
20:23 kivutar joined #perl6
20:25 jeffreykegler joined #perl6
20:30 Tene I can't see how it would cause a problem?
20:31 Tene Oh, actually I don't think fork() will do the right thing with the other threads.
20:32 Tene "The  child  process  is  created  with  a single thread—the one that called fork()."
20:33 Tene I think JVM usually uses multiple threads for every process?
20:34 jnthn aye, it runs GC in a different thread, for example
20:34 jnthn "dude, where's my GC?!"
20:35 Tene Oops. :)
20:36 Tene That *would* be an effective way to isolate runaway memory usage, though. ;)
20:36 Tene I remember trying to analyze a problem a friend was having with jruby via strace; I think there were ~170 threads, just in 'hello world'.
20:38 Tene That seemed pretty insane to me.
20:40 colomon joined #perl6
20:43 masak r: say "{170 / 11} threads per character printed!"
20:43 camelia rakudo 223075: OUTPUT«15.454545 threads per character printed!␤»
20:43 masak o.O
20:43 masak r: say "{170 / chars 'hello world'} threads per character printed!"
20:43 camelia rakudo 223075: OUTPUT«15.454545 threads per character printed!␤»
20:45 FROGGS gnight o/
20:49 dalek perl6-roast-data: cfbbc29 | coke++ | p (2 files):
20:49 dalek perl6-roast-data: today (automated commit)
20:49 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/cfbbc29056
20:49 woolfy left #perl6
20:51 lizmat decommute&
21:04 ksh joined #perl6
21:05 [Coke] nqp opcode docs: alphabetical or by type?
21:06 [Coke] (if alphabetical, we'll add a "type" denotation somewhere...)
21:06 [Sno] joined #perl6
21:10 FROGGS joined #perl6
21:10 diakopter [Coke]: probably in the order in jnthn's slides
21:11 [Coke] So, by type. Dank.
21:22 dalek nqp: 47299be | coke++ | docs/ops.markdown:
21:22 dalek nqp: add overview/section headings
21:22 dalek nqp:
21:22 dalek nqp: Add section headings analagous to jnthn++'s presentation
21:22 dalek nqp: review: https://github.com/perl6/nqp/commit/47299be7bb
21:23 [Coke] .tell pmurias - slight reorg to your document, pushing ops down to h2s.
21:23 yoleaux [Coke]: I'll pass your message to pmurias.
21:26 [Coke] nqp: say(3.WHAT);
21:26 camelia nqp: OUTPUT«Can only use get_what on a SixModelObject␤current instr.: '' pc 43 ((file unknown):164786812) (/tmp/QA2f9pV7PC:1)␤»
21:26 [Coke] nqp: say(nqp::box_i(3).WHAT);
21:26 camelia nqp: OUTPUT«Error while compiling block : Error while compiling op call (source text: "nqp::box_i(3).WHAT"): Error while compiling op what (source text: ".WHAT"): Error while compiling op box_i (source text: "nqp::box_i(3)"): Operation 'box_i' requires 2 operands, but got 1␤current …»
21:26 [Coke] nqp: say(nqp::box(3).WHAT);
21:26 camelia nqp: OUTPUT«Error while compiling block : Error while compiling op call (source text: "nqp::box(3).WHAT"): Error while compiling op what (source text: ".WHAT"): Error while compiling op box (source text: "nqp::box(3)"): No registered operation handler for 'box'␤current instr.: '' pc…»
21:26 jnthn box_i needs two args
21:30 [Coke] nqp: say(nqp::box_i(3,Int).WHAT);
21:30 camelia nqp: OUTPUT«This type cannot box a native integer␤current instr.: '' pc 93 ((file unknown):61) (/tmp/Moqdrk7Nj7:1)␤»
21:31 [Coke] nqp: say(nqp::box_i(Int,3).WHAT);
21:31 camelia nqp: OUTPUT«Can only use repr_box_int with a SixModelObject as the box target␤current instr.: '' pc 99 ((file unknown):155856791) (/tmp/ldu3oqflTb:1)␤»
21:31 [Coke] I was looking for canonical type names, that's not ht eway to find them :)
21:31 [Coke] nqp: say((2/3).WHAT);
21:31 camelia nqp: OUTPUT«Can only use get_what on a SixModelObject␤current instr.: '' pc 53 ((file unknown):43) (/tmp/W9U16FmlxA:1)␤»
21:33 jnthn [Coke]: Trouble is, on Parrot not everything is a 6model object
21:33 jnthn [Coke]: There's not really canonical ones, though on JVM and Moar impls you can nqp::bootint() to get a basic int boxing type, for example
21:36 jnthn r: class MyInt is repr('P6int') { }; my $i := nqp::box_i(42, MyInt); say(nqp::unbox_i($i));
21:36 camelia rakudo 223075: OUTPUT«42␤»
21:36 jnthn nqp: class MyInt is repr('P6int') { }; my $i := nqp::box_i(42, MyInt); say(nqp::unbox_i($i));
21:36 camelia nqp: OUTPUT«42␤»
21:36 jnthn [Coke]: ^^ may help
21:39 [Coke] jnthn: needed for the docs - am going with "Int" and "Num" as a first pass.
21:43 timotimo the --target=ast of a pir op is utterly unhelpful
21:43 timotimo how do i properly build a QAST::VM with a pirop and some children nodes? >:(
21:44 [Sno] joined #perl6
21:44 [Coke] do you need pirops?
21:45 [Coke] (or can you use nqp variants?)
21:45 timotimo i need pirops, because i'm implementing a nqp variant
21:46 raiph joined #perl6
21:48 jnthn timotimo: QAST::VM.new( :pirop('foo__IS'), QAST::SVal.new( :value('beeftuit') ) )
21:49 dalek nqp: 8f7b9f4 | coke++ | docs/ops.markdown:
21:49 dalek nqp: Add arithmetic opcodes
21:49 dalek nqp:
21:49 dalek nqp: Slight change to markdown markup to better highlight opcode variants
21:49 dalek nqp: review: https://github.com/perl6/nqp/commit/8f7b9f4e95
21:50 [Coke] how is this looking: https://github.com/perl6/nqp/blob/master/docs/ops.markdown ?
21:50 timotimo and inside this code: QAST::Operations.add_core_op('bindattr_i', -> $qastcomp, $op {   <- i should just be able to put $op[0] and so on into the QAST::VM node, right?
21:51 masak [Coke]: nice.
21:51 masak [Coke]: I would put all the list items inside `` quotes to <code></code> them, though.
21:54 jnthn For
21:54 jnthn abs_i(Int $i)
21:54 jnthn I'd use int
21:54 jnthn To emphasize it works against a native type
21:55 [Coke] and should I add the abs_I(Int $i) ?
21:55 [Coke] I see some of those exist in the java ops file.
21:56 jnthn aye
21:56 jnthn _I = bigint
21:57 jnthn Whihc is some kind of object (like a Perl 6 Int)
21:58 pmurias joined #perl6
21:58 pmurias [Coke]: in ops.markdown shouldn't it be num/int instead of Num/Int?
21:58 yoleaux 21:23Z <[Coke]> pmurias: - slight reorg to your document, pushing ops down to h2s.
21:58 [Coke] pmurias: just talked about that, aye, fixing now.
22:02 japhb joined #perl6
22:04 timotimo if there's a lowercase letter in the op i'm trying to use, do i have to $qastcomp.coerce?
22:08 djanatyn joined #perl6
22:08 jnthn yeah, or as_post it with the appropriate :want
22:08 jnthn iirc, anyways
22:10 timotimo QAST::Operations doesn't mention want anywhere
22:10 jnthn oh
22:10 jnthn ok, maybe the Parrot one doesn't do things that way
22:10 jnthn I've not looked at it in a while :)
22:11 Gothmog_ joined #perl6
22:12 dalek nqp: a8eef0c | coke++ | docs/ops.markdown:
22:12 dalek nqp: more accurately use int, not Int
22:12 dalek nqp:
22:12 dalek nqp: jnthn++
22:12 dalek nqp: review: https://github.com/perl6/nqp/commit/a8eef0c8d9
22:12 dalek nqp: 97f9b57 | coke++ | docs/ops.markdown:
22:12 dalek nqp: update to add _I variants.
22:12 dalek nqp: review: https://github.com/perl6/nqp/commit/97f9b57c39
22:12 dalek nqp: 2daeb9a | coke++ | docs/ops.markdown:
22:12 dalek nqp: code-ify op variants
22:12 dalek nqp:
22:12 dalek nqp: masak++
22:12 dalek nqp: review: https://github.com/perl6/nqp/commit/2daeb9ada3
22:12 [Coke] ok. that's slide 1, plus pmurias++'s original entries.
22:14 timotimo i blew some butane into my laptop fan and now it's kinda much cooler during compilation o_O
22:16 timotimo now it only goes up to 60 degc!
22:17 timotimo Method 'result' not found for invocant of class 'QAST::SVal' - i cannot tell what i'm doing wrong; this is probably refering to the string in $op[2] or something, and i try to coerce it like $qastcomp.coerce($op[2], 's')
22:20 pmurias [Coke]: the _I variants take an extra type parameter
22:27 jnthn 'night, #perl6
22:27 diakopter o/
22:27 timotimo 'night
22:29 timotimo Unknown QAST node type PIRT::Ops :\
22:30 timotimo i have no idea what i'm doing, this much should be obvious
22:32 zwut00 left #perl6
22:32 tba hi, qq, using token/rule/regex, how can I match "not a space, and not a question mark" - tried all sorts and failed miserably (currently got "( \S | <-[\?]> )+")
22:36 timotimo that would indeed match "not a space, or not a question mark"
22:36 timotimo i think you can do <-<space>-[\?]> or something?
22:36 tba just realised how dumb im being :)
22:37 timotimo also, there is an & operator :P
22:37 tba all i needed was "<-[\s\?]>+"
22:37 timotimo or that, yes
22:37 tba think its sleep time
22:37 tba thanks though :)
22:37 tba (and didnt realise & existed, that makes life so much easier!!)
22:58 masak yeah, infix:<&> is kinda magical.
22:58 masak more generally, products and coproducts make the world turn.
22:58 masak 'night, #perl6
23:04 fridim__ joined #perl6
23:08 [Coke] pmurias: type is last, and determines the return type?
23:08 [Coke] ah, america, where I can order a chai latte and it comes out of a premade mix and is just heated up.
23:09 [Coke] pmurias++ feedback
23:10 timotimo i have a chai latte as a powder that just needs almost-boiling water applied to it
23:10 timotimo it's indeed enjoyable, IMO
23:10 timotimo but i don't think i ever had "proper" chai latte
23:10 timotimo oh, but this is in a restaurant?
23:11 timotimo i was thinking of a grocery store
23:12 [Coke] restaurant, sort of. "Panera Bread". They have free wifi, as I'm stuck here for 3 hours waiting for son's rehearsal to complete.
23:12 [Coke] anyone have any examples of an _I op invocation I can look at?
23:13 timotimo i heard panera bread is pretty darn good
23:13 timotimo nqp::box_I perhaps?
23:14 geekosaur panera food is reasonable but the ones I've been in fancy themselves as upscale and are priced accordingly
23:16 [Coke] if I amortize in the wifi and electricity, I am probably breaking even.
23:20 cognominal joined #perl6
23:35 Mouq joined #perl6
23:47 Mouq joined #perl6
23:47 Mouq .ping
23:47 yoleaux There is no ping command; nor can this be construed as a response.
23:49 [Coke] 19:38 < [Coke]> So, _I's should not be documented as taking Ints. better
23:49 [Coke] shorthand: Any?
23:49 [Coke] 19:43 < [Coke]> where is nqp::ln defined for the jvm?
23:49 [Coke] 19:44 < [Coke]> oh. that's where. (it's NYI!)
23:49 [Coke] 19:47  * [Coke] opens a ticket for it, in case someone wants that before he
23:49 [Coke] loops back.
23:49 [Coke] 19:48 < [Coke]> ... hey, this is the wrong window.
23:49 [Coke] ... which is why I cut and pasted the whole thing to the right window!
23:49 * [Coke] goes with "Any" for now as the Int replacement.
23:58 BenGoldberg joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo