|
»ö« 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
|
|||