»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:01 btyler left 00:10 EvanTeitelman left 00:12 Psyche^ joined 00:15 TgMts joined 00:16 Psyche^_ left 00:22 ssutch joined 00:25 xenoterracide left 00:31 jnap left 00:32 btyler joined 00:39 jnap joined 00:43 jnap left 00:49 kbaker joined 01:16 FROGGS_ joined 01:20 FROGGS left 01:22 btyler left 01:23 Vlavv` left 01:24 EvanTeitelman joined, EvanTeitelman left, TgMts left 01:29 dayangkun joined 01:34 Vlavv` joined 01:35 btyler joined 01:59 krokite left 02:25 btyler left 02:27 kbaker left 02:28 Mouq left 02:57 xenoterracide joined 03:04 benabik left 03:06 benabik joined 03:07 preflex_ joined, ChanServ sets mode: +v preflex_ 03:08 preflex left, preflex_ is now known as preflex
BenGoldberg .ping 03:13
yoleaux There is no ping command; nor can this be construed as a response.
03:19 risou_awy is now known as risou 03:21 kbaker joined
BenGoldberg 3,4foo 03:38
03:45 BenGoldberg left 03:49 larks left 03:57 risou is now known as risou_awy 03:58 risou_awy is now known as risou
moritz \o 04:07
diakopter o/ 04:10
[Coke] just waves goodnight quickly before nipping off to bed.
diakopter: you beat me home? wow. 04:15
Guess that drive was longer than I thought. ;)
johnny5_ so someone with some Perl5 experience what can we do to help with Perl6? 04:22
moritz hi johnny5_. You could learn Perl 6, and port some Perl 5 modules to Perl 6 04:25
perigrin or write new ones that don't have the baggage of the perl5 ones. 04:29
04:31 krokite joined, krokite left, krokite joined
diakopter I like Perl 5's baggage. it's easy to notice in the baggage claim 04:39
04:42 tba left 04:43 tba joined 04:44 daniel-s joined 04:47 raiph joined 04:52 SamuraiJack_ joined 04:55 risou is now known as risou_awy 04:58 risou_awy is now known as risou 05:13 fridim__ left 05:23 risou is now known as risou_awy 05:24 xenoterracide left 05:40 larks joined 05:51 FROGGS_ left 05:56 p5eval left 06:03 mathw_ joined, salv01 joined, gshank_ joined 06:09 Vlavv` left, salv0 left, lue left, mathw left, danaj left, ksh left 06:11 Vlavv` joined 06:12 lue joined 06:13 Maddingu1 joined, danaj joined, risou_awy_ joined, tokuhirom_ joined 06:14 DrEeevil joined, gabriel_ joined, LordV joined, slavik joined 06:15 nine_ joined, integral_ joined, integral_ left, integral_ joined, sivoais_ joined 06:18 silug_ joined, mtk0 joined, tokuhirom left, risou_awy left, mtk left, sivoais left, gabriel left, araujo left, nine left, silug left, LordVorp left, bonsaikitten left
johnny5_ hmm github.com/perl6/perl6-most-wanted...modules.md this hasn't been updated in 7 months. 06:18
06:19 FROGGS joined, araujo joined 06:21 TimToady_ joined, labster joined, nwc10_ joined 06:22 gfldex_ joined 06:23 preflex left 06:24 GlitchMr left, TimToady left, lizmat left, sjohnson left, nwc10 left, gfldex left, odoacre left, lestrrat left, _ilbot left, rom1504 left, simcop2387 left 06:25 sjohnson joined, sjohnson left, sjohnson joined, odoacre joined, lestrrat joined 06:26 GlitchMr joined 06:27 simcop2387 joined, _ilbot joined 06:35 kaleem joined 06:47 aindilis joined 06:50 domidumont joined 06:53 rom1504 joined, preflex joined, lizmat joined, kaleem left, kaleem joined, domidumont left, domidumont joined 06:55 p5eval joined, ksh joined 06:58 dag_ joined, dag_ left 06:59 nwc10_ is now known as nwc10 07:00 domidumont left 07:01 domidumont joined 07:11 domidumont left
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?
FROGGS morning
jnthn hm, seems I have a day of meetings... 07:23
07:23 isBEKaml joined
moritz \o 07:34
isBEKaml moritz: o/ 07:36
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:37
isBEKaml Kursledare? Course leader? Lecturer? :) 07:38
FROGGS Course leader, yeah
he was our Fuehrer basically :P
isBEKaml :) 07:40
jnthn :P 07:42
I get lots of teaching practice, thanks to $dayjob
Talking of which...commute & 07:43
tadzik oh hai #perl6
masak: you may find some autopuns on twitter.com/BadJokeCat :)
isBEKaml hello, tadzik! 07:44
tadzik hello isBEKaml!
07:44 Maddingu1 is now known as Maddingue
isBEKaml Crap, badjokecat is, um... bad! 07:44
duvet had my cover blown. :P 07:45
tadzik: how goes things?
07:46 zakharyas joined, risou_awy_ is now known as risou
tadzik pretty cool :) 07:47
sorting out the barrage of emails at work
isBEKaml ah, emails - the bane of working mornings. :)
hoelzro morning #perl6! 07:55
07:56 raiph left
moritz "So, I hear reincarnation is making a comeback." 08:03
08:06 sqirrel joined
masak morning, #perl6 08:07
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
masak tadzik: many of which are of the "self-defeating" kind, IIRC. 08:07
tadzik yep 08:09
they're mostly just puns
08:11 isBEKaml left 08:12 raiph joined, fhelmberger joined
masak puns often classify as bad jokes. :) 08:13
dalek Heuristic branch merge: pushed 24 commits to Perlito/replito by creaktive 08:17
08:19 zakharyas left
jnthn haha, I made it here on late 08:31
where's the coffee...
masak told you :) 08:32
jnthn I blame my alarm clock for not looking convincing enough when it went off.
08:33 zakharyas joined
masak idea for a gift to jnthn: a scowling alarm clock. 08:35
08:41 sqirrel left 08:42 dakkar joined 08:44 denis_boyun joined 08:48 p5eval left
jnthn
.oO( What an alarming thought... )
08:49
08:50 p5eval joined
moritz
.oO( what a scowlinig thought )
08:55
masak .oO( back to scowl ) 08:56
08:57 dmol joined 09:01 risou is now known as risou_awy 09:08 sqirrel joined 09:30 gfldex_ is now known as gfldex 09:32 denis_boyun left, isBEKaml joined 09:43 isBEKaml left 09:45 raiph left 10:03 daxim joined
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 10:19 denis_boyun left 10:23 SamuraiJack_ left 10:27 sqirrel left 10:40 iSlug joined 10:53 sqirrel joined 11:02 denis_boyun joined, [Sno]_ joined, [Sno] left, [Sno]_ is now known as [Sno]
hoelzro what's the standard for adding tests to rakudo? any bug, or only serious ones? 11:09
I believe I found a bug in JVM rakudo
jnthn omg A BUG?!
It does fail some tests that pass on Rakudo Parrot still, fwiw
hoelzro oh, ok 11:10
the bug I found looks like this:
r: my $word; my regex word { \w+ } ; 'foo' ~~ /<word> { $word = $<word }/ ok($word eq 'foo');
camelia rakudo 223075: OUTPUT«===SORRY!=== Error while compiling /tmp/yuGgRGc17K␤Unable to parse quote-words subscript; couldn't find right angle quote␤at /tmp/yuGgRGc17K:1␤------> { $word = $<word }/ ok($word eq 'foo');⏏<EOL>␤ expecting any of:␤ …»
hoelzro grrr 11:11
11:11 benabik left
hoelzro r: my $word; my regex word { \w+ } ; 'foo' ~~ /<word> { $word = $<word> }/ ok($word eq 'foo'); 11:11
camelia rakudo 223075: OUTPUT«===SORRY!=== Error while compiling /tmp/g6ef0SXryH␤Two terms in a row␤at /tmp/g6ef0SXryH:1␤------> ; 'foo' ~~ /<word> { $word = $<word> }/ ⏏ok($word eq 'foo');␤ expecting any of:␤ postfix␤ infix stopper␤ …»
hoelzro ok, ;
r: my $word; my regex word { \w+ } ; 'foo' ~~ /<word> { $word = $<word> }/; ok($word eq 'foo');
camelia rakudo 223075: OUTPUT«===SORRY!=== Error while compiling /tmp/7FcXhGFbCO␤Undeclared routine:␤ ok used at line 1␤␤»
hoelzro ugh
r: use Test; my $word; my regex word { \w+ } ; 'foo' ~~ /<word> { $word = $<word> }/; ok($word eq 'foo');
camelia rakudo 223075: OUTPUT«ok 1 - ␤»
hoelzro there we go
(sorry for the fail spam)
FROGGS and the rakudo-jvm fails this?
wow
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");'
ok 1 -
jnthn That doesn't look like failure... ) 11:13
masak .oO( my $word... ) :P 11:14
but yes, I agree. 'ok 1' means it didn't fail. :) 11:15
11:29 sqirrel left
hoelzro huh 11:32
it fails on mine
hang on
masak well, the above 'r: ' was Rakudo on Parrot. 11:33
hoelzro hmm
ok, that snippet succeeds
but I have a failing test file
lemme one-liner-ify it
moritz blogs.perl.org/users/damien_dams_kr...5-mop.html 11:34
11:36 kbaker left
hoelzro ok, here we go: 11:37
perl6 -e 'use Test; my $word; my regex word { \w+ } ; my regex my-re { <word> { $word = $<word> } } ; "foo" ~~ /<my-re>/; ok($word eq "foo");'
it's when it's a submatch
lizmat fwiw, that's indeed ok on my parakudo 11:45
[Coke] wakes up. 11:46
lizmat [Coke] o/ 11:47
[Coke] lizmat: o/ ~~ 11:49
thanks again for a great workshop!
lizmat hopes the wine arrived in one piece :) 11:50
11:52 iSlug left
hoelzro lizmat: it's ok on pakudo 11:52
but not jakudo
at least for me
jnthn lizmat: Mine did, at least :) 11:53
So, nothing to wine at the baggage handlers for this time :)
hoelzro moar pull requests
well, more for Rakudo =)
diakopter doesn't wake up
hm, what in the world day/time is it 11:54
tadzik in the world it's all the time 11:55
11:55 fhelmberger_ joined 11:57 fhelmberger left
FROGGS hoelzro: I can confirm that on my box 11:58
hoelzro \o/
12:01 denis_boyun left, ssutch left
[Coke] lizmat: the wine arrived safely, aye! 12:03
dalek rl6-roast-data: 94a579e | coke++ | p (2 files):
today (automated commit)
12:06
masak I think the submatch problem on Rakudo/JVM has been identified before.
not sure if it was RT'd.
12:10 dayangkun_ joined, dayangkun_ left 12:11 sivoais_ is now known as sivoais, sivoais left, sivoais joined 12:13 pernatiy joined, domidumont left 12:14 dayangkun left 12:22 sqirrel joined 12:32 benabik joined 12:34 grondilu joined
grondilu Ukkonen's algorithm for suffix trees in Perl 6. Translated from C++. gist.github.com/grondilu/6593733 12:34
(lots of room for style improvement, though) 12:35
timotimo huh, what are the =begin validation and =end validation for? 12:38
wouldn't that turn the code inside into a pod comment?
dalek rlito: 171ea16 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - next/redo/return in term position
grondilu timotimo: that code doesn't work yet, so I commented it. 12:41
timotimo OK 12:43
12:43 PacoAir joined
grondilu it does give the correct edges with the typical example banana$, so I thought it was worth publishing. 12:43
12:52 alester joined 12:57 ajr joined, ajr is now known as Guest34999, Guest34999 is now known as ajr_, [Sno] left 13:02 domidumont joined, cognominal left
dalek rlito: c701f67 | (Flavio S. Glock)++ | / (4 files):
Perlito5 - grammar - alfanumeric quoting delimiters
13:05
13:05 [Sno] joined 13:08 sqirrel left 13:09 kaare_ joined 13:16 jnap joined 13:17 sqirrel joined 13:22 denisboyun joined 13:24 PacoAir left, PacoAir joined
hoelzro ugh 13:31
can someone do me a favor and look at my single commit on github.com/hoelzro/rakudo?
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?
as in mkdir -p
hoelzro oh, you're right
13:34 benabik left, FROGGS left 13:38 pmurias joined 13:39 grondilu left
pmurias jnthn: why does my $foo;if $foo<a><b><c> {};say("didn't die"); work? 13:39
timotimo because there's a candidate for postcircumfix:<{ }> for undefined LHS 13:40
(not 100% sure, but that's how i remember it)
13:40 btyler joined
timotimo r: Any{'hi'}.perl.say 13:40
camelia rakudo 223075: OUTPUT«Any␤»
jnthn suspects pmurias means "in NQP"
timotimo oh 13:41
of course he would
pmurias jnthn: yes ;)
jnthn I think there's two pieces. One is that we emit a QAST::VarWithFallback that massages a null into an NQPMu.
The second piece is that the at_pos and at_key ops on a type object hand back null instead of throwing.
uh, atpos and atkey are the op names... 13:42
13:42 isBEKaml joined
jnthn bbi10 13:42
13:44 benabik joined 13:50 kbaker joined 13:58 FROGGS joined 13:59 alester left
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:01
moritz diakopter: yes. For example NativeCall.pm6 export the 'is native' trait. 14:02
diakopter cool
.. I'm sure I've "learned" that before
;)
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
tadzik you should replicate better
diakopter sorry for the insane-ish disclaimer
moritz wonders what a quater diakopter looks like 14:06
geekosaur "di:" 14:07
moritz geekosaur++ 14:08
diakopter :)
commutamentarian &
14:08 kaleem left
jnthn back 14:10
yoleaux 14:06Z <diakopter> jnthn: 100 gc runs in total run time 280ms, including 4 threads allocating 1e6 each
14:08Z <diakopter> jnthn: that's, like, far less than 1ms per gc run
jnthn I'm guessing those mostly are throwing away dead things...
diakopter yes, tiny alive heaps
14:11 xenoterracide joined
jnthn In realistic workloads I'd suspect a slightly higher survivor ratio, but yeah, Moar's nursery GC is optimized for death. 14:11
14:12 alester joined
tadzik The Nursery of Death 14:12
Moar!
14:13 jnap left 14:14 sqirrel left
hoelzro GitHub FAIL 14:15
Bitbucket has my Perl6 highlighter
14:15 lowpro30 joined
hoelzro BitBucket++++++++ 14:15
sub postfix:<+++++++>() { say 'Bitbucket is teh win' } 14:16
14:16 jnap joined
masak postfix ops take one parameter :) 14:16
hoelzro gah 14:17
fail
FROGGS hoelzro++ # \o/
hoelzro we need to move all of the Perl 6 stuff to BB!
=P
FROGGS >.<
hoelzro I'm thinking of setting up a mirror, though
just to demonstrate the GH fail
FROGGS yeah
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␤␤»
pmurias hoelzro: what's the problem with github? 14:23
hoelzro they won't merge my stupid PR 14:24
after...
hoelzro checks
4 months
"I'll be bumping to latest pygments very soon, so we'll see this in shortly."
3 months ago
I'm filing a ticket with GH
tadzik 3 months of Valve Time, surely 14:26
developer.valvesoftware.com/wiki/Valve_Time 14:27
lizmat commuting to Niederrhein.pm&
14:27 lizmat left
hoelzro bug filed 14:29
14:34 Mouq joined 14:35 isBEKaml left 14:39 Mouq left
moritz hugs hoelzro 14:40
hug filed
hoelzro could someone check/merge my commit from hoelzro/rakudo? 14:41
GH *still* won't let me make a PR
14:42 woolfy1 left
tadzik you make me dislike gihtub 14:42
hoelzro, stahp
hoelzro I normally like GH 14:43
but today they fail to impress =/
tadzik y u no have commit bit
14:44 lowpro30_ joined
moritz hoelzro: fwiw I'm not sure that's the right approach 14:44
hoelzro: configuring and building shouldn't require write priviliges outside the build dir
14:45 lowpro30 left
hoelzro hmm 14:45
I suppose that's true
well, then maybe we shouldn't use realpath?
Configure.pl doesn't 14:46
moritz right
rather use File::Spec->rel2abs
Configure.pl uses abs_path, which is a synonym for realpath
so it too needs fixing
hoelzro: but I can't reproduce that here 14:48
$ perl -MCwd=abs_path -wE 'say abs_path("doesnotexist")'
/home/mlenz/doesnotexist
$ perl -MCwd=abs_path -wE 'say abs_path("/doesnotexist")'
/doesnotexist
so it works as it should both for relative and absolute paths
or maybe it's platform specific
hoelzro "Have you tried taking it up with the maintainer" 14:49
no, GH, I hadn't thought to do that
hoelz.ro/files/table-flip.jpg
hmm
moritz: what platform are you on?
moritz hoelzro: linux mint (debian derivate), perl 5.14.2 14:50
hoelzro curious 14:51
I wonder what's wrong with mine
14:51 sqirrel joined
moritz hoelzro: have you tried the two one-liners I pasted above? 14:52
hoelzro lemme try, hang on 14:54
huh
yeah, those work
GlitchMr Just wondering, how do I specify list with at least one arguments in sub MAIN?
moritz hoelzro: also with s/abs_path/realpath/g ?
hoelzro I'll look into it more after $work
moritz GlitchMr: *@a where @a maybe
maybe '@a where so @a' 14:55
or *@a [$, *@]
14:55 lowpro30 joined
GlitchMr Can I do it in such way that option parser notices it? 14:55
14:56 lowpro30__ joined
hoelzro no, that works too 14:56
GlitchMr Because this gives me [<arguments> ...]
And [] looks like optional.
14:56 lowpro30 left
hoelzro it *would* be nice to be able to override the MAIN helper stuff from a P6 program 14:56
14:57 lowpro30__ left 14:58 lowpro30_ left
moritz GlitchMr: I don't think so 14:59
hoelzro: aye
jnthn You can override the USAGE message, no? 15:00
hoelzro yes 15:01
I was thinking more like overriding the automatic @*ARGV processing
15:05 doy joined
doy paste.tozt.net/2013-09-17vofIScs2 15:05
why does adding a BUILD submethod to Foo affect whether Bar's attributes are initialized? 15:06
15:06 census joined
moritz it shouldn't; looks like a rakudobug to me 15:06
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
TimToady_ doy: metoo
doy TimToady_: hmmm? 15:08
TimToady_ agree that it looks like a bug
doy okay
TimToady_ I would have expected it to leave only $.foo uninitialized
doy yeah 15:09
GlitchMr Actually, whatever, Bool works.
TimToady_ guessing the submethiod is being treated like a method there
moritz r: class A { submethod f() { say 42 } }; class B is A { }; B.f()
camelia rakudo 223075: OUTPUT«No such method 'f' for invocant of type 'B'␤ in block at /tmp/UMK_u2mzec:1␤␤»
TimToady_ and being inheritied when it shouldn't
except that doesn't explain it either
oh wait, it does 15:10
15:10 lowpro30__ joined
jnthn I'm afraid it's much more subtle than that. 15:10
TimToady_ no, I can't count
jnthn submethod BUILD { say self }
TimToady_ shouldn't try to think this early
jnthn When you do "say self" you touch the two attribute slots when introspecting. 15:11
That in turn vivifies the containers inside of them, which is what has to happen if you are going to have $!foo = ...; work.
TimToady_ arguably foo should not know about bar yet
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
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
jnthn r: class Foo { has $.foo = 1; submethod BUILD { say "here"; } }; class Bar is Foo { has $.bar = 2 }; say Bar.new
camelia rakudo 223075: OUTPUT«here␤Bar.new(bar => 2, foo => 1)␤»
jnthn There you go.
It's the "say self" that is to blame.
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.
TimToady_ seems like that might be a useful concept ish.
jnthn And we shouldn't go putting lots of tracking of stuff into object construction time.
We just went and re-worked that stuff to make it performant.
TimToady_ that's the ish part
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
jnthn *nod*
It's generally hard to statically figure these things, is all...
doy so is it worth reporting a rakudobug then?
or is it just a wontfix
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" :)
PerlJam TimToady_: +1 (I was just about to suggest that)
TimToady_ so more in the category of "Doctor it hurts..."
15:16 silug_ left, TimToady_ is now known as TimToady, TimToady left, TimToady joined
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:16
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? :)
PerlJam doy: why would you want that?
moritz which you can get by introspection (YourClass.^attributes)
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
since the default is just going to be ignored entirely
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
jnthn doy: If you don't touch an attribute in your BUILD, the default is applied.
doy oh, okay
jnthn doy: the problem is you did "say self", which touches all the attributes.
doy right, yeah, guess i was still confused by that
TimToady still wonders if the default should just be attached to the FETCH, so that you can initialize with +=, for instance
has $.foo = 42; submethod BUILD () { $!foo += 1 }; # that sort of thing 15:20
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?
(the method wins, of course. but the attribute being public confuses the matter.) 15:22
turns out the way to get at $!path is to do .Str
15:22 pmurias left
TimToady that seems a bit confused, yes 15:22
$.path is probably misnamed 15:23
pathstr or some such
masak prepares a patch
TimToady or string_path_as_OS_thinks_it :) 15:24
or *
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
TimToady does the 'touch' mechanism extend properly to natives currently? 15:25
would have to be out-of-band, obviously... 15:26
TimToady doesn't actually know how rakudo does it...
15:27 silug_ joined
jnthn TimToady: No, we've no way to do it for those yet. 15:27
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
(Or Array or Hash...)
15:28 doy left
TimToady so it probably all needs a rethink anyway... 15:29
15:29 domidumont left
TimToady of course, for natives, you could probably just statically initalize the chunk of memory more efficiently 15:29
masak hey! volunteer? gist.github.com/masak/6595941 -- I can't build this right now, I'm using Rakudo.
jnthn Yeah, that's basically what happens... 15:30
masak if someone wants to build and spectest that patch, that'd be lovely.
I can push it myself, if only I know the spectests pass.
15:30 cognominal joined
jnthn Of course, since we normally get zeroe'd memory, only floating point things need fiddling with to make them NaN. 15:30
TimToady just thinking if you had a template, you could poke 42's and such into it as well 15:31
then it's just a memcpy
(before BUILD)
jnthn true 15:32
15:32 [Sno] left
jnthn That still doesn't free us from needing some flags somewhere for initialized. 15:32
(for natives) 15:33
TimToady why not, other than the spec says otherwize?
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...
Right, it's a closure in general...
TimToady was just thinking you don't need a sentinal for a native int if you know the initial value is static
jnthn And you really, really can't trigger running code from inside the low-level getattr.
TimToady but it's not always static, I guess
jnthn Right.
15:34 zakharyas left
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
jnthn (only have the flags for the non-static case)
TimToady nodnod
jnthn Right, that's do-able.
TimToady d'accord
15:35 lowpro30__ left
jnthn I'd really like working with natives to not bring about pain :) 15:36
(compared to not using them)
TimToady ¡cc, señor! 15:37
15:37 [Sno] joined, lowpro30 joined
jnthn
.oO( cc señor.c )
15:37
TimToady thinks fondly of dmr 15:38
15:38 rindolf joined
masak .oO( cm³, señor ) 15:38
geekosaur .oO { what's modula3 got to do with it? } 15:40
jnthn 6guts.wordpress.com/2013/09/17/mate...ls-course/
TimToady parsed cm³ as centi-stère...
15:41 ajr_ left, [Sno] left
JimmyZ jnthn: it's not in planetsix.perl.org/ yet 15:42
jnthn
.oO( I think you mean centi-tri, not centri-štyri :P )
JimmyZ: Why are you telling me this?
I can't make an aggregator go faster :P
JimmyZ jnthn: I thought you didn't tag as Perl 6 :P 15:43
15:44 fhelmberger_ left
jnthn JimmyZ: Ah, ok. No, I don't tag anything, and the whole blog goes there :) 15:45
Appears planetsix has caught it now. :) 15:46
Guess it polls...
JimmyZ yeah 15:47
daxim excellent read, jnthn++ 15:50
masak jnthn++
jnthn: it's "Adam and tri", not "Adam and štyri"! :P 15:51
15:52 benabik left
daxim tell the decision makers a thank you from me for releasing the materials 15:54
JimmyZ lizmat++, jnthn++
15:55 bloonix joined
masak lizmat++ 15:55
colomon jnthn++ lizmat++
FROGGS stitching++ (needs a bit improvement though): i.imgur.com/FwjxCI0.jpg?1 15:56
colomon preground Szechuan peppercorns+=
preground Szechuan peppercorns++
masak FROGGS: wow!
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
crap*
jnthn FROGGS++ # wow, nice! 15:58
daxim: have passed it along :)
FROGGS if this works out nice, then we make shirts on request... (without making profit) 15:59
TimToady appriciates that FROGGS++ has preserved various subtle asymmetries 16:00
FROGGS hehe
TimToady appreciates, even
particularly the slight wall-eye-ness, as well as the mona lisa smile 16:01
*eyed
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...
FROGGS the stitches arn't perfect though, we need to figure out that 16:04
TimToady material too stretchy maybe?
FROGGS TimToady: is that okay if we make shirts with that logo if we don't make money with it? 16:05
TimToady: no, it isnt stretchy at all
100% cotton
TimToady well, T-shirt weave is intrinsically a bit stretchy
masak FROGGS: yes, what first struck me is how similar to the digital logo it was, asymmetries and all. 16:06
FROGGS++
16:06 kbaker left 16:08 krokite left
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
awesome!
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
maybe we need to improve that file as well
masak oh, it's done by machine? cool. 16:13
FROGGS yeah :o) 16:14
dalek p: c3bcf9e | (Pawel Murias)++ | t/nqp/81-radix.t:
Add test for nqpp::radix.
16:16
pmurias argh typo in commit description ;) 16:18
FROGGS nqpp is like cpp?
:o)
geekosaur not quite pretty perl? 16:19
GlitchMr nqpp: Not quite PERL Perl?
16:20 domidumont joined
FROGGS uaargghhh 16:20
16:22 fhelmberger joined
pmurias FROGGS: yes, we use nqpp to apply our source filters ;) 16:24
16:24 colomon left
FROGGS hmmm, interesting name for fudge 16:26
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:30
16:30 benabik joined
masak quick poll: how would all y'all write the second statement above? 16:30
this was the nicest way I could think of.
X=> doesn't really apply, and .map felt too unwieldy.
jnthn r: my %h = <jnthn lizmat moritz> Z=> [] xx *; say %h.perl
camelia rakudo 223075: OUTPUT«("jnthn" => [], "lizmat" => [], "moritz" => []).hash␤»
hoelzro w00t 16:31
masak yeahbut.
hoelzro the GitHub guy came through!
masak jnthn: are those individual arrays?
oh, I guess they are, because xx.
jnthn masak: yeah xx
masak yeah, that's nicer.
jnthn thukns it's LHS :)
masak that's what I was groping for :)
jnthn *thunks
masak its* :)
jnthn that also 16:32
gah
tadzik woow
edument++
16:34 kbaker joined
masak we're hiring. ;) 16:34
(not only meant for tadzik) ;)
masak awaits the first comments about edument's course material toolchain 16:35
tadzik toolchain?
oh, there are sources of everything 16:36
16:36 sqirrel left
masak tadzik: yeah, see github.com/edumentab/rakudo-and-nq...r/Makefile 16:36
16:36 colomon joined 16:40 [Sno] joined 16:41 lizmat joined
jnthn
.oO( I love the smell of net cologne... )
16:42
perigrin .NET cologne ... for when you want them to open Windows 16:43
16:45 lowpro30 left
lizmat arrived in Cologne 16:45
16:46 denisboyun left
arnsholt masak: Any particular reason your toolchain is latex -> dvips -> ps2pdf rather than just pdflatex? 16:49
masak arnsholt: yes.
16:49 pernatiy left
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
arnsholt That's a good reason
masak arnsholt: thanks for checking, though. your concern is noted. :) 16:50
16:50 raiph joined 16:51 sqirrel joined 16:53 fhelmberger left
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:54
TimToady starts backlogging aga...OOH, look, shiny!!! 16:55
16:57 ponbiki joined
benabik prefers xetex these days. Handles fonts and unicode better. 16:58
16:58 tba left, tba joined
perigrin finds xanax useful when dealing with fonts and unicode. 16:59
17:00 dakkar left
masak arnsholt: pdflatex vs dvips+ps2pdf behave differently with .eps files, and with alpha-channel transparency. those are the differences I remember finding. 17:00
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
mostly because the quality of ps viewers and p2pdf sometimes is not quite optimall 17:02
FROGGS edument++ # this is awesome! 17:03
17:04 spider-mario joined 17:05 pmurias left
masak moritz: hm, we could probably have gone that way, too. 17:07
by the way, if someone wants to *use* our course material toolchain for something, you hereby have my explicit permission. 17:08
if you need help, give me a ping.
moritz (though my experiences are also a few years old by now)
lizmat masak++
17:09 lowpro30 joined
masak we also accept both issues and pull requests for that particular course, should the need arise. 17:10
moritz edument++ 17:11
sjohnson knowledge++ 17:13
moritz r: sub MAIN(:foo($alias)!) { } 17:17
camelia rakudo 223075: OUTPUT«Usage:␤ /tmp/ukhN_qfEF2 --foo=<Any> ␤»
moritz r: sub MAIN(:foo($:alias)!) { } 17:18
camelia rakudo 223075: OUTPUT«===SORRY!=== 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␤------> sub MAIN(:foo($:alias⏏)!) { }…»
moritz r: sub MAIN(:foo(:$alias)!) { }
camelia rakudo 223075: OUTPUT«Usage:␤ /tmp/C8E7V021uk --foo|--alias=<Any> ␤»
moritz GlitchMr: you see, the aliasing syntax is actually implemented for MAIN
GlitchMr Huh?
Weird 17:19
moritz no, awesome! :-)
jnthn r: sub MAIN(:h(:$help)!) { } 17:20
camelia rakudo 223075: OUTPUT«Usage:␤ /tmp/2nZ_vF6Yjo -h|--help=<Any> ␤»
jnthn :D
moritz r: sub MAIN(Bool :h(:$help)!) { } 17:21
camelia rakudo 223075: OUTPUT«Usage:␤ /tmp/qKcVhe1EPD -h|--help ␤»
17:24 SamuraiJack_ joined
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:26
17:27 lowpro30 left
flussence r: subset Filename of Str where *.IO.e; sub MAIN(Filename $input) {...} 17:27
camelia rakudo 223075: OUTPUT«Usage:␤ /tmp/dNR5a4QAL9 <input> ␤»
flussence r: subset Filename of Str where *.IO.e; sub MAIN(Filename :$input) {...}
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…»
flussence r: subset Filename of Str where *.IO.e; sub MAIN(Filename :$input?) {...}
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…»
flussence whoops, broke something again...
(anyway, when it works it just shows "<Str>" there) 17:28
17:37 krokite joined, krokite left, krokite joined, dmol left
[Coke] wakes up. 17:37
lizmat good morning [Coke]! 17:38
17:39 dmol joined 17:42 iSlug joined, iSlug left, yannickberthoud joined
[Coke] second time's the charm 17:43
FROGGS hi [Coke]
17:43 woolfy joined
jnthn o/ [Coke] :) 17:43
[Coke] lizmat, FROGGS: morning! 17:44
17:44 yannickberthoud is now known as iSlug 17:45 ssutch joined
woolfy [Coke]: \o/ evening 17:46
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:47
17:48 ajr joined, ajr is now known as Guest27926
jnthn Nies! 17:49
17:49 SamuraiJack_ left, SamuraiJack joined
[Coke] waves belatedly at jnthn 17:50
itz_ woot! course materials!
was it videoed too?
17:51 jeffreykegler joined
tadzik nope 17:51
the slides are excellent though 17:52
and the exercises are really worth going through
I need to finish my PHP6 compiler on some free evening :)
[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 Guest27926 is now known as ajr_
FROGGS awww, kittens are cute! de.webfail.com/f5e3afe38ae 17:56
tadzik boing boing boing. That's a cat picture I don't mind 17:57
18:01 daxim left
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. ;)
tadzik colomon: yes 18:08
GlitchMr 18<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...
colomon tadzik: \o/
GlitchMr Parsing where expression would be insane.
Especially to show in something like USAGE.
18<29tadzik> I need to finish my PHP6 compiler on some free evening :) 18:09
PHP6 sounds interesting :-). I just want support echo('a', 'b', 'c',), thanks.
Well
echo('a', 'b', 'c',);
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...
GlitchMr Oh, I guess this makes sense.
18:10 Mouq joined
flussence (showing the raw code for a where clause woudn't be end-user-friendly anyway) 18:11
GlitchMr Actually, showing "raw code" could pass in AppleScript. 18:13
But I don't think it could work anywhere else.
18:15 Mouq left 18:16 denis_boyun joined 18:17 PZt left
sergot hi o/ 18:17
lizmat sergot o/
masak sergocie! \o/ 18:18
GlitchMr hi, sergot 18:19
18:21 sqirrel left
census hi masak! 18:27
18:28 fhelmberger joined
masak census! \o/ 18:32
18:39 EvanTeitelman joined 18:40 SamuraiJack left 18:41 kbaker left 18:45 jeffreykegler left 18:48 fhelmberger left
itz_ these slides are excellent! 18:50
tadzik truly jnthn quality 18:51
19:12 kbaker joined
GlitchMr These slides make me want to implement some programming language in NQP. It sounds fun. 19:15
hoelzro it was =)
sjohnson masak, what's up homey.
masak GlitchMr: if you do, make sure you also blog about how easy it is to get going.
GlitchMr Sure :-). 19:16
After I will find out how to do basic things with NQP.
masak sjohnson: is "homey" short for "homomorphism"? I hope so -- I'm doing lots of category theory these days. :)
sjohnson masak: nah, means home boy I think :) 19:17
masak: www.urbandictionary.com/define.php?term=homey , definition 2
although I didn't really grow up with you, that's not a requirement. 19:18
19:19 domidumont left
masak :) 19:21
sjohnson: that's OK, you're my homey too :)
moritz masak: your homomorphisms would be your clones, no? 19:22
benabik masak: Lambda Calculus via Cartesian Closed Categories conal.net/blog/posts/overloading-lambda (haven't read it myself, it's on my to read list) 19:23
TimToady homey clones have great empathy, so they believe in homeyopathy 19:24
masak moritz: if not clones, then at least reassuringly based on me. 19:25
moritz: but technically a homomorphism might also derive, say, an Evil Twin.
GlitchMr From what I read, NQP looks like great framework to make programming languages, not just Perl 6.
masak benabik: looks nice. thanks for the tip.
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 lizmat left
TimToady GlitchMr: there's a reason for that :) 19:26
moritz oh noez, I killed teh github!
19:26 lizmat joined
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
camelia rakudo 223075: OUTPUT«("a" => {"d" => 1}).hash␤("a" => {"b" => 42}).hash␤»
GlitchMr status.github.com/
Major service outage.
At least my blog still seems to work, so whatever. 19:27
moritz for two minutes now
yes, accurate timing
19:29 iSlug left 19:30 rindolf left
colomon has successfully rebuilt the slides PDFs locally. :) 19:30
GlitchMr 'It is also possible to use echo("with parentheses"). Implement it.'
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
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.
Nothing surprising, this is PHP. 19:31
Util #ps time 19:33
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␤»
lizmat r: my @a; say @a[-1]:exists # like this ?
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␤␤»
lizmat (at least for arrays without explicit shapes) 19:36
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
GlitchMr I only see 22.22%. 19:38
To be exact, 22.2229%
flussence graph on the right is currently showing 2858% 19:39
GlitchMr But that's probably means 50 exceptions thrown per request.
Perhaps they don't count it as view when exception is being thrown.
dalek rlito: 9f2a707 | (Flavio S. Glock)++ | t5/01-perlito/030-num.t:
Perlito5 - grammar - tests
19:40
masak lizmat: arguably, yes. 19:41
lizmat: does it fail any spectests to make it fail? if not, go for it.
diakopter rn: die "you broke Perl 6"
camelia rakudo 223075: OUTPUT«you broke Perl 6␤ in block at /tmp/ov3_ccLMbG:1␤␤»
..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…»
diakopter why doesn't rakudo show a stack trace? 19:42
moritz diakopter: it does
diakopter: it's just one element though
diakopter: the others are filtered out
lizmat masak: will go for it, for after the release
github's up again 19:43
masak \o/
GlitchMr Just wondering, how well does NQP support Unicode (without Perl 6)?
masak diakopter: that 'in block at' is a block with no name.
diakopter how do you unfilter them out 19:44
GlitchMr: I get unicode errors often with nqp on parrot.
i keep typing "nap" instead of nqp.
also, I'm sleepy.
moritz diakopter: $!.backtrace.full 19:45
GlitchMr > say(nqp::ord("ł"))
322
moritz diakopter: try to remember my talk at YAPC::EU :-)
GlitchMr ok, I guess it's good enough.
diakopter moritz: I was even more sleepy then...
moritz diakopter: or --ll-exception on the command line (not quite the same)
diakopter r: die $!.backtrace.full
camelia rakudo 223075: OUTPUT«No such method 'backtrace' for invocant of type 'Nil'␤ in block at /tmp/KXIiu90FjK:1␤␤»
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␤»
diakopter :)
GlitchMr Can I for example define grammar where identifiers are unicode letters?
lizmat GlitchMr: afaik, yes
moritz r: my $ähm = 'wait'; say $ähm
camelia rakudo 223075: OUTPUT«wait␤»
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.
hoelzro ugh 19:50
why does building the docs take so much memory? =(
diakopter what docs
hoelzro the doc.perl6.org ones
moritz because it has bitrotted, I think 19:51
hoelzro the docs? or the code to generate them?
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
but today I tried and I had to kill the process when it reached 85% RAM usage =/ 19:56
I tried with rakudo JVM, but it won't run the Pod to HTML code 19:57
GlitchMr r: Int.HOW.HOW.perl
camelia rakudo 223075: OUTPUT«No such method 'perl' for invocant of type 'NQPClassHOW'␤ in block at /tmp/dT2WdvNvPU:1␤␤»
GlitchMr Huh? I get KnowHOW here.
r: Int.HOW.perl 19:58
camelia ( no output )
timotimo oh no, it may actually be my fault :o
GlitchMr r: Int.HOW.HOW.HOW.perl
camelia rakudo 223075: OUTPUT«No such method 'perl' for invocant of type 'KnowHOW'␤ in block at /tmp/en0Qhrt0KF:1␤␤»
GlitchMr r: say Int.HOW.perl
camelia rakudo 223075: OUTPUT«Perl6::Metamodel::ClassHOW.new()␤»
GlitchMr Oh, I ran code in NQP by mistake.
This is why I didn't have Perl6::Metamodel::ClassHOW.
20:04 juiko joined 20:06 colomon left
hoelzro I wish that Perl 6 supported fork() =( 20:08
then at least I could isolate the runaway memory usage to a child process 20:09
and the parent wouldn't be affected
diakopter it does though, with NativeCall 20:12
on parrot anyway
hoelzro ah, true 20:13
I could try that
dylanwh has the sudden desire to invoke fork() from a jvm process. 20:21
timotimo because that sounds totally safe 20:22
dylanwh and my desire is to see what breaks. :-D
20:22 PZt joined 20:23 kivutar joined 20:25 jeffreykegler joined
Tene I can't see how it would cause a problem? 20:30
Oh, actually I don't think fork() will do the right thing with the other threads. 20:31
"The child process is created with a single thread—the one that called fork()." 20:32
20:33 denis_boyun left
Tene I think JVM usually uses multiple threads for every process? 20:33
jnthn aye, it runs GC in a different thread, for example 20:34
"dude, where's my GC?!"
20:34 jeffreykegler left
Tene Oops. :) 20:35
That *would* be an effective way to isolate runaway memory usage, though. ;) 20:36
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:37
That seemed pretty insane to me. 20:38
20:40 colomon joined 20:42 kivutar left
masak r: say "{170 / 11} threads per character printed!" 20:43
camelia rakudo 223075: OUTPUT«15.454545 threads per character printed!␤»
masak o.O
r: say "{170 / chars 'hello world'} threads per character printed!"
camelia rakudo 223075: OUTPUT«15.454545 threads per character printed!␤»
FROGGS gnight o/ 20:45
dalek rl6-roast-data: cfbbc29 | coke++ | p (2 files):
today (automated commit)
20:49
20:50 woolfy left, ksh left
lizmat decommute& 20:51
20:51 lizmat left 20:53 FROGGS left 20:58 [Sno] left 21:04 ksh joined 21:05 spider-mario left
[Coke] nqp opcode docs: alphabetical or by type? 21:05
(if alphabetical, we'll add a "type" denotation somewhere...) 21:06
21:06 [Sno] joined 21:07 [Sno] left 21:10 FROGGS joined
diakopter [Coke]: probably in the order in jnthn's slides 21:10
[Coke] So, by type. Dank. 21:11
21:20 krokite left
dalek p: 47299be | coke++ | docs/ops.markdown:
add overview/section headings

Add section headings analagous to jnthn++'s presentation
21:22
[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:23 kaare_ left
[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)␤»
[Coke] nqp: say(nqp::box_i(3).WHAT);
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 …»
[Coke] nqp: say(nqp::box(3).WHAT);
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…»
jnthn box_i needs two args
[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)␤»
[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)␤»
[Coke] I was looking for canonical type names, that's not ht eway to find them :)
nqp: say((2/3).WHAT);
camelia nqp: OUTPUT«Can only use get_what on a SixModelObject␤current instr.: '' pc 53 ((file unknown):43) (/tmp/W9U16FmlxA:1)␤»
jnthn [Coke]: Trouble is, on Parrot not everything is a 6model object 21:33
[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
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␤»
jnthn nqp: class MyInt is repr('P6int') { }; my $i := nqp::box_i(42, MyInt); say(nqp::unbox_i($i));
camelia nqp: OUTPUT«42␤»
jnthn [Coke]: ^^ may help
[Coke] jnthn: needed for the docs - am going with "Int" and "Num" as a first pass. 21:39
21:40 raiph left
timotimo the --target=ast of a pir op is utterly unhelpful 21:43
how do i properly build a QAST::VM with a pirop and some children nodes? >:(
21:44 [Sno] joined
[Coke] do you need pirops? 21:45
(or can you use nqp variants?)
21:45 census left
timotimo i need pirops, because i'm implementing a nqp variant 21:45
21:46 raiph joined
jnthn timotimo: QAST::VM.new( :pirop('foo__IS'), QAST::SVal.new( :value('beeftuit') ) ) 21:48
dalek p: 8f7b9f4 | coke++ | docs/ops.markdown:
Add arithmetic opcodes

Slight change to markdown markup to better highlight opcode variants
21:49
[Coke] how is this looking: github.com/perl6/nqp/blob/master/d...s.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?
masak [Coke]: nice. 21:51
[Coke]: I would put all the list items inside `` quotes to <code></code> them, though.
jnthn For 21:54
abs_i(Int $i)
I'd use int
To emphasize it works against a native type
[Coke] and should I add the abs_I(Int $i) ? 21:55
I see some of those exist in the java ops file.
jnthn aye 21:56
_I = bigint
Whihc is some kind of object (like a Perl 6 Int) 21:57
21:58 pmurias joined
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.
[Coke] pmurias: just talked about that, aye, fixing now.
22:01 japhb left 22:02 japhb joined 22:04 Gothmog_ left
timotimo if there's a lowercase letter in the op i'm trying to use, do i have to $qastcomp.coerce? 22:04
22:07 kbaker left 22:08 djanatyn joined
jnthn yeah, or as_post it with the appropriate :want 22:08
iirc, anyways
timotimo QAST::Operations doesn't mention want anywhere 22:10
jnthn oh
ok, maybe the Parrot one doesn't do things that way
I've not looked at it in a while :)
22:11 Gothmog_ joined
dalek p: a8eef0c | coke++ | docs/ops.markdown:
more accurately use int, not Int

  jnthn++
22:12
p: 97f9b57 | coke++ | docs/ops.markdown:
update to add _I variants.
p: 2daeb9a | coke++ | docs/ops.markdown:
code-ify op variants

  masak++
[Coke] ok. that's slide 1, plus pmurias++'s original entries. 22:13
timotimo i blew some butane into my laptop fan and now it's kinda much cooler during compilation o_O 22:14
now it only goes up to 60 degc! 22:16
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:17
pmurias [Coke]: the _I variants take an extra type parameter 22:20
22:26 jnap left
jnthn 'night, #perl6 22:27
diakopter o/
timotimo 'night
Unknown QAST node type PIRT::Ops :\ 22:29
i have no idea what i'm doing, this much should be obvious 22:30
22:32 zwut00 left
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:33
timotimo that would indeed match "not a space, or not a question mark" 22:36
i think you can do <-<space>-[\?]> or something?
tba just realised how dumb im being :)
timotimo also, there is an & operator :P 22:37
tba all i needed was "<-[\s\?]>+"
timotimo or that, yes
tba think its sleep time
thanks though :)
(and didnt realise & existed, that makes life so much easier!!)
22:40 ajr_ left 22:45 btyler left 22:46 benabik left
masak yeah, infix:<&> is kinda magical. 22:58
more generally, products and coproducts make the world turn.
'night, #perl6
23:04 fridim__ joined
[Coke] pmurias: type is last, and determines the return type? 23:08
ah, america, where I can order a chai latte and it comes out of a premade mix and is just heated up.
pmurias++ feedback 23:09
timotimo i have a chai latte as a powder that just needs almost-boiling water applied to it 23:10
it's indeed enjoyable, IMO
but i don't think i ever had "proper" chai latte
oh, but this is in a restaurant? 23:11
i was thinking of a grocery store
[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
anyone have any examples of an _I op invocation I can look at?
timotimo i heard panera bread is pretty darn good 23:13
nqp::box_I perhaps?
23:13 xenoterracide left
geekosaur panera food is reasonable but the ones I've been in fancy themselves as upscale and are priced accordingly 23:14
[Coke] if I amortize in the wifi and electricity, I am probably breaking even. 23:16
23:19 cognominal left 23:20 cognominal joined 23:24 dmol left 23:25 pmurias left 23:35 Mouq joined 23:40 Mouq left 23:47 Mouq joined
Mouq .ping 23:47
yoleaux There is no ping command; nor can this be construed as a response.
[Coke] 19:38 < [Coke]> So, _I's should not be documented as taking Ints. better 23:49
shorthand: Any?
19:43 < [Coke]> where is nqp::ln defined for the jvm?
19:44 < [Coke]> oh. that's where. (it's NYI!)
19:47 * [Coke] opens a ticket for it, in case someone wants that before he
loops back.
19:48 < [Coke]> ... hey, this is the wrong window.
... which is why I cut and pasted the whole thing to the right window!
[Coke] goes with "Any" for now as the Int replacement.
23:58 BenGoldberg joined