»ö« 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/yuGgRGc17KUnable to parse quote-words subscript; couldn't find right angle quoteat /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/g6ef0SXryHTwo terms in a rowat /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/7FcXhGFbCOUndeclared 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«hereBar.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/eWnZSR3xtVIn signature parameter, placeholder variables like $:alias are illegalyou 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:1use of uninitialized value of type Str in string context in block at /tmp/YKbCzQ9kha:1Stub code executedcurrent 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:1use of uninitialized value of type Str in string context in block at /tmp/az9w7BiMEN:1Stub code executedcurrent 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 SixModelObjectcurrent 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 1current …» | ||
[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 integercurrent 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 targetcurrent 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 SixModelObjectcurrent 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
|