»ö« 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.
dalek ake: 38f8069 | (Arne Skjærholt)++ | src/Snake/Metamodel/ClassHOW.nqp:
Preliminary implementation of class attributes.
00:01
00:01 kjs_ joined, kjs_ left 00:06 noganex_ joined, noganex left 00:13 kurahaupo left, vendethiel left 00:17 vendethiel joined 00:22 cognominal left
timotimo my optimization for metaop_assign doesn't cope well with my Rat $a; $a += 0.1 00:47
i wonder what candidate it used to work with 00:48
because that'd trigger infix:<+>(Rational \a, Rational \b) because of no ":D"
is t/spec/S32-scalar/undef.rakudo.moar failing a test for anybody else? 00:53
00:54 exixt is now known as EXIXT 00:56 sprocket joined
timotimo m: my Rat $a; $a += 0.1; 00:57
camelia ( no output )
timotimo m: my Rat $a; say $a += 0.1;
camelia rakudo-moar 3bbf7b: OUTPUT«0.1␤»
timotimo how does that work?
m: my Rat $a; say $a.perl;
camelia rakudo-moar 3bbf7b: OUTPUT«Rat␤»
timotimo m: my Rat $a; say &infix:<+>.^can(Rat, 0.1);
camelia rakudo-moar 3bbf7b: OUTPUT«Too many positionals passed; expected 3 arguments but got 4␤ in any can at src/gen/m-Metamodel.nqp:2693␤ in block <unit> at /tmp/2hDj2QDGUk:1␤␤»
timotimo m: my Rat $a; say &infix:<+>.can(Rat, 0.1); 00:58
camelia rakudo-moar 3bbf7b: OUTPUT«Too many positionals passed; expected 2 arguments but got 3␤ in method can at src/gen/m-CORE.setting:1243␤ in block <unit> at /tmp/XuNm4eNaCm:1␤␤»
timotimo m: my Rat $a; say &infix:<+>.can(\(Rat, 0.1));
camelia rakudo-moar 3bbf7b: OUTPUT«use of uninitialized value of type Rat in string context in any can at src/gen/m-Metamodel.nqp:2697␤␤use of uninitialized value of type Rat in string context in any can at src/gen/m-Metamodel.nqp:2697␤␤use of uninitialized value of type Rat in st…»
timotimo m: my Rat $a; say &infix:<+>.can(\(Rat, 0.1)).perl;
camelia rakudo-moar 3bbf7b: OUTPUT«use of uninitialized value of type Rat in string context in any can at src/gen/m-Metamodel.nqp:2697␤␤use of uninitialized value of type Rat in string context in any can at src/gen/m-Metamodel.nqp:2697␤␤use of uninitialized value of type Rat in st…»
timotimo m: my Rat $a; say &infix:<+>.can(\(Rat, 0.1))>>.perl;
camelia rakudo-moar 3bbf7b: OUTPUT«use of uninitialized value of type Rat in string context in any can at src/gen/m-Metamodel.nqp:2697␤␤use of uninitialized value of type Rat in string context in any can at src/gen/m-Metamodel.nqp:2697␤␤use of uninitialized value of type Rat in st…»
timotimo m: my Rat $a; say &infix:<+>.can(|(Rat, 0.1))>>.perl;
camelia rakudo-moar 3bbf7b: OUTPUT«Too many positionals passed; expected 2 arguments but got 3␤ in method can at src/gen/m-CORE.setting:1243␤ in block <unit> at /tmp/z9Ecii9nAI:1␤␤»
timotimo m: my Rat $a; say &infix:<+>.can(:(Rat, 0.1))>>.perl;
camelia rakudo-moar 3bbf7b: OUTPUT«␤»
timotimo how do i ...
m: my Rat $a; say &infix:<+>.can(:(Rat, 0.1)).perl;
camelia rakudo-moar 3bbf7b: OUTPUT«()␤»
timotimo m: my Rat $a; say &infix:<+>.candidates
camelia rakudo-moar 3bbf7b: OUTPUT«sub infix:<+> (Any $x = { ... }) { #`(Sub|86785480) ... } sub infix:<+> (Any \a, Any \b) { #`(Sub|86788672) ... } sub infix:<+> (Real \a, Real \b) { #`(Sub|86788216) ... } sub infix:<+> (Int:D \a, Int:D \b --> Int) { #`(Sub|86785936) ... } sub infix:<+> (i…»
timotimo m: say &say.can(:("hello")) 00:59
camelia rakudo-moar 3bbf7b: OUTPUT«␤»
timotimo m: say &say.can(:("hello")).perl
camelia rakudo-moar 3bbf7b: OUTPUT«()␤»
timotimo how does this work again?
00:59 vendethiel left
timotimo m: say Rat + 0.1 01:00
camelia rakudo-moar 3bbf7b: OUTPUT«Cannot look up attributes in a type object␤ in method <anon> at src/gen/m-CORE.setting:3261␤ in sub infix:<+> at src/gen/m-CORE.setting:11402␤ in block <unit> at /tmp/21tVpbY9dE:1␤␤»
timotimo m: say Rat += 0.1
camelia rakudo-moar 3bbf7b: OUTPUT«Cannot modify an immutable Rat␤ in block at src/gen/m-CORE.setting:19582␤ in block <unit> at /tmp/BRqLCl_jHz:1␤␤»
timotimo how come the cannot look up attributes in a type object error doesn't happen with += ?
oooooh! 01:01
+= has a a // op.() in it!
01:04 raiph left 01:05 telex left 01:06 telex joined, rurban joined
timotimo i'd like someone to write some more tests that ensure that METAOP_ASSIGN properly does the a // op.() thing 01:09
01:11 adu joined 01:15 vendethiel joined 01:17 ab5tract joined
timotimo because the fact that only one single test failed and it was about rats threw me for quite a loop. 01:17
01:18 raiph joined
dalek kudo/nom: e663375 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp:
optimize METAOP_ASSIGN by kind-of-sort-of-inlining
01:20
kudo/nom: af7c0c3 | (Timo Paulssen)++ | src/vm/moar/ops/perl6_ops.c:
profiler: p6getouterctx allocates
01:32 ab5tract left 01:51 xinming joined, sprocket left 02:01 regreg joined
dalek kudo/nom: 8124c41 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp:
let's constant-fold metaop_negate and metaop_reverse, too
02:01
kudo/nom: dad5fa3 | (Timo Paulssen)++ | src/Perl6/Actions.nqp:
i prefer eqat to index ... == 0
02:13
02:16 esaym153 left 02:25 rurban left, adu left 02:26 rurban joined 02:28 esaym153 joined 02:29 rurban1 joined 02:31 rurban left 02:50 KCL_ joined 02:51 raiph left 02:53 hagiri joined 03:03 vendethiel left 03:05 vendethiel joined 03:09 bjz left 03:10 bjz joined 03:20 adu joined 03:22 zakharyas joined, BenGoldberg left 03:24 noganex joined 03:27 noganex_ left 03:37 BenGoldberg joined 03:40 gfldex joined 03:44 mr-foobar left 03:47 vendethiel left 03:49 vendethiel joined 04:01 rurban1 left 04:10 rmgk is now known as Guest34630, rmgk_ joined, Guest34630 left, rmgk_ is now known as rmgk 04:11 vendethiel left 04:13 vendethiel joined 04:25 adu left 04:28 BenGoldberg left 04:36 vendethiel left 04:43 Alina-malina left 04:44 Alina-malina joined 04:47 vendethiel joined 04:51 zakharyas left 05:03 gfldex left 05:08 vendethiel left 05:24 awwaiid joined
araujo looks around 05:42
raydiak araujo: what do you see? 05:43
05:54 chenryn joined 05:57 awwaiid left, awwaiid joined 05:58 chenryn left
araujo raydiak, bunch of perl6 fellows ... either too busy coding or away for RealLife things :) 06:00
06:02 erkan joined, erkan left, erkan joined
raydiak :) 06:03
06:07 awwaiid left, vendethiel joined, awwaiid joined 06:09 awwaiid left, awwaiid joined 06:28 erkan left 06:29 vendethiel left 06:32 chenryn joined 06:34 chenryn left 06:40 vendethiel joined 06:45 chenryn joined 06:48 chenryn left, bjz left, bjz_ joined, chenryn joined 07:02 chenryn left 07:03 chenryn joined, vendethiel left 07:07 vendethiel joined 07:09 chenryn left 07:11 chenryn joined 07:33 dwarring left 07:37 hagiri left 07:40 rindolf joined 07:45 regreg left, regreg joined
japhb araujo: You're seeing the Europe Sleeping Lull. It's quiet ... maybe too quiet. :-) 07:46
japhb heads to sleep too
07:48 kaare__ joined
dalek ast: bba16ae | usev6++ | S04-phasers/enter-leave.t:
Add tests for RT #113950, change fudging (now "todo") for RT #121530
08:04
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=113950
08:10 jack_rabbit joined 08:15 chenryn left 08:21 eclipse left, chenryn joined 08:28 Akagi201 joined 08:37 vendethiel left
masak gooood CET morning, #perl6! 08:39
jack_rabbit whats CET? 08:40
08:40 vendethiel joined
moritz jack_rabbit: Central European Time 08:41
\o masak, jack_rabbit, japhb, *
araujo japhb, :) 08:43
masak, moritz jack_rabbit o/
I wonder guys if you know any couchdb driver for perl6 08:44
08:57 chenryn left, chenryn joined 09:00 darutoko joined 09:01 chenryn left 09:10 isacloud______ is now known as isacloud, chenryn joined 09:11 smls joined
smls m: say IO::FileTestable 09:12
camelia rakudo-moar dad5fa: OUTPUT«Could not find symbol '&FileTestable'␤ in method <anon> at src/gen/m-CORE.setting:13777␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2725␤ in any find_method at src/gen/m-Metamodel.nqp:988␤ in block <unit> at /tmp/6IsUrPCfjc:1␤␤»
smls ^^ deprecated, or NYI?
p6doc has a page for it... 09:13
moritz smls: merged into IO::Path, I think; but lizmat++ considered resurrecting it 09:22
no idea what the current status is
09:23 sqirrel__ joined 09:27 jfredett left, itz_ joined 09:30 itz left
masak araujo: I can't recall hearing of one. 09:31
moritz neither 09:32
09:38 rindolf left 09:39 rindolf joined 09:40 mr-foobar joined 09:48 jack_rabbit left 09:52 JimmyZ joined
araujo masak, ah.. ok,.. I briefly searched on the module page and couldn't find any either 09:54
mm..
masak a fine opportunity to expand into uncharted territory!
araujo since it is just plain http request methods (restful) , I guess it wouldn't be hard to cook something for it.... 09:55
09:57 jack_rabbit joined
timotimo o/ 09:59
JimmyZ \o 10:04
10:04 anaeem1_ joined 10:05 rindolf left, rindolf joined 10:07 anaeem1_ left, denis_boyun_ joined 10:09 vti joined
dalek kudo/RT123215: ffa9f33 | (Tobias Leich)++ | src/Perl6/ (2 files):
attempt to fix RT #123215
10:12
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123215
vti hi, i am trying to use smth like __DATA__, which i understand is supposed to be in $=data, but it doesn't seem to work now (Variable '$=data' is not declared), so i just tried pod blocks, but they are not verbatim, i have tried =begin input, still not verbatim, the only working solution is to use =begin code, but i don't like it, since it's not code, any advice? using rakudo 2014.09, thanks 10:13
masak hm, good question. 10:14
there ought to be a nice such example somewhere that we could link people to. 10:15
vti i have cloned ALL perl6 modules and couldn't find an example
and google also didn't help, this channel is the last resort :)
timotimo yeah, the data section thingie is not yet implemented ;( 10:19
vti that's ok, i was just thinking there was an alternative, but i will probably stick with =begin code for now 10:21
timotimo a heredoc should be good, no? 10:22
you know heredocs can be indented in perl6?
vti hm, i will try heredocs maybe, thanks 10:26
10:26 jack_rabbit left 10:27 xinming left 10:39 rindolf left 10:40 rindolf joined 10:49 rurban joined
arnsholt Are we doing an advent calendar this year? 10:50
timotimo i sure hope so!
github.com/perl6/mu/tree/master/mi...dvent-2014 10:51
arnsholt Oh cool. Cheers! 10:52
timotimo it'd be good to have a post on HTTP::UserAgent 10:55
10:56 telex left 10:58 telex joined 11:02 xinming joined 11:07 EXIXT is now known as exixt 11:09 gfldex joined
jnthn 12 hours of sleep. Guess I was tired. :) 11:12
afternoon, #perl6 :)
timotimo heyo jnthn :)
nine Hi jnthn 11:13
yoleaux 22 Nov 2014 23:53Z <raiph> nine: www.reddit.com/r/perl6/comments/2n2...qt/cm9orki
nine .tell raiph: thanks. Of course there'll always be edge cases that need some workarounds. But from my practice using Perl 5's Inline::Python I can say, that there are always workarounds and most code does just fine 11:14
yoleaux nine: What kind of a name is "raiph:"?!
nine .tell raiph[3~: thanks. Of course there'll always be edge cases that need some workarounds. But from my practice using Perl 5's Inline::Python I can say, that there are always workarounds and most code does just fine
yoleaux nine: What kind of a name is "raiph[3~:"?!
nine ???
.tell raiph thanks. Of course there'll always be edge cases that need some workarounds. But from my practice using Perl 5's Inline::Python I can say, that there are always workarounds and most code does just fine
yoleaux nine: I'll pass your message to raiph.
timotimo jnthn: what do i need to do to make sure an optimization in rakudo's optimizer optimizes all branches of a want? or should i just appreciate the fact that i can see a before/after optimized tree in the two branches of a Want? %) 11:17
11:18 denis_boyun_ left
jnthn timotimo: The latter; when the optimizer doesn't walk both, it's 'cus it has a good idea that they mostly share the tree. 11:18
timotimo: As is the case with sink
timotimo: We could a HUGE win by not walking both.
*got a
bbi10 11:19
timotimo in that case i should perhaps modify the nodes in-place rather than replacing parts of it 11:20
or perhaps just not care? :\ 11:25
vendethiel There's a lot of backlog these days! That's good, but a bit bad as well 11:34
jnthn timotimo: "Not care" may be a better option that it sounds
timotimo sorry, i'll shut up, vendethiel! :P 11:35
jnthn timotimo: If we're lucky, then there's always some QAST::Stmt or so above the node that is shared
vendethiel timotimo, it's fine, I don't read your lines anyway :)
nine Indentable heredocs...you just _have_ to love this language :) 11:36
jnthn nine: With regard to that feature - if you're implementing it, you love it much less :D 11:37
vendethiel indentablewhat?
nine jnthn: I guess that's true for many of Perl 6's features.
vendethiel just also read that in the backlog :)
11:38 psch joined
nine I'm so glad I backlogged...this is exactly what I need with all that inlined Python code. with Python being so picky about indentation... 11:38
psch ho #perl6 \o 11:39
vendethiel nine: I backlogged, but saw no such example
smls jnthn: Are heredocs de-dented at compile time? 11:40
psch FROGGS: testers.perl6.org is down, from the looks of it
jnthn smls: I originally had it as "yes if they're constant, no if you interpolate"
psch FROGGS: does submitting depend on the site being reachable?
jnthn smls: I think that now the interpolating case does something more interesting. 11:41
smls Why would you want spaces from interpolated variables to affect indentation?
timotimo they are dedented at compile time 11:42
that means spaces from interpolated stuff don't get cut off
jnthn smls: I dunno, frankly I just *would not write code* that interpolates a multi-line string an a darn heredoc! :P
*in a
smls I'd just de-dent before interpolating 11:43
jnthn But apparently folks changed it so it does what folks who like to write such code get what they expect. :)
timotimo before the dedentation was turned compile-time, a "tried to dedent but not enough space available" error was very common to get here and there
nine jnthn: simple example where it does make sense. A bog standard mailer for a contact form on a website. 11:44
Message body as heredoc, variables interpolated and multi line values quite common 11:45
jnthn hmm
I guess.
FROGGS psch: yes
jnthn hasn't written a form mailer for 10+ years :)
But yeah, I can see that...
nine++
11:45 ab5tract joined
FROGGS psch: should be up now again 11:46
jnthn FROGGS: Would it make sense to set up some cron-job that auto-restarts the service every $time-period?
11:46 kurahaupo joined
FROGGS jnthn: yeah, I fear that this is necessary :o( 11:47
psch biab
nine FROGGS: if it's a systemd service, just tell systemd to restart it on crash 11:48
FROGGS jnthn: though, I need to refactor it anyway, so that static html pages are generated
nine: it does not crash though
jnthn 'k
timotimo i don't see that exactly, what did you mean, nine? 11:49
11:50 regreg left
nine timotimo: I'm not sure what you're referring to? 11:50
timotimo the form mailer thing
11:52 exixt is now known as EXIXT
nine timotimo: gist.github.com/niner/bba04e647b97ddf6cab5 11:53
timotimo OK, the problem being? 11:54
you want the message to be indented? 11:55
because it's multiline?
11:56 sqirrel__ left 11:58 jack_rabbit joined 12:01 EXIXT is now known as exixt
nine timotimo: no problem. It's just a use case where I think it makes sense to interpolate a multi line string into a heredoc. And where it's great that Perl 6 dedents there heredoc for me before interpolating 12:01
timotimo oh 12:02
i thought you were arguing *against* the current behavior %)
nine timotimo: oh no, it's brilliant! 12:03
12:03 jack_rabbit left
nine If I weren't a fan of Perl 6, I'd have to become one on the spot here :) 12:04
timotimo hah
yay :)
i was the one who fixed that particular behavior :)
i'm always glad when i can see people benefit from stuff i do "directly" 12:05
timotimo is running benchmarks again 12:06
12:07 zakharyas joined
vendethiel "Sincerely, your form mailer" if even the form mailer starts to get smart... 12:17
timotimo is there something a regular person like me can do to make spammer's lives less easy? 12:19
vendethiel
.oO( stop buying viagra )
12:20
timotimo the thought of botnets is kind of annoying 12:22
colomon ack, seven new failures this morning. :( host08.perl6.com:8080/report 12:32
12:36 erkan joined 12:41 pochi left
timotimo t.h8.lv/p6bench/2014-11-23-rakudo_l...stuff.html - doesn't seem like it has been really dramatically worth it ... 12:41
12:41 sqirrel__ joined
timotimo (dad5fa was built with nqp=master and moar=master (before randscale_n was jitted), whereas 8124c was built with NQP_REVISION and MOAR_REVISION) 12:41
12:43 pochi joined
colomon whoops. 12:43
accidentally just updated moar on my OS X laptop. and of course it doesn't work, and even if it did, ABC wouldn't. :( 12:44
timotimo ;(
12:45 erkan left
timotimo m: say "timo, don't be sad! you made the rand benchmark faster by a factor of { 9.4 / 12.3 } compared to the moarvm commit before current head!" 12:47
camelia rakudo-moar dad5fa: OUTPUT«timo, don't be sad! you made the rand benchmark faster by a factor of 0.764228 compared to the moarvm commit before current head!␤»
timotimo er, wrong way around
m: say "timo, don't be sad! you made the rand benchmark faster by a factor of { 9.4 R/ 12.3 } compared to the moarvm commit before current head!"
camelia rakudo-moar dad5fa: OUTPUT«timo, don't be sad! you made the rand benchmark faster by a factor of 1.308511 compared to the moarvm commit before current head!␤»
12:47 ab5tract left
jnthn colomon: "doesn't work"? 12:47
colomon jnthn: the malloc thing 12:48
jnthn ah fuck
colomon build fails
jnthn Yeah, I'll have to look into that.
timotimo jnthn: yeah, there's a lot of "oh fuck" to that bug :(
jnthn I'm sure somebody can get me an OSX shell account...
12:49 erkan joined, erkan left, erkan joined
timotimo m: say "with the very latest perl6, the rand benchmark is now faster by a factor of { 9.4 R/ 28.4 }. neat!" 12:49
camelia rakudo-moar dad5fa: OUTPUT«with the very latest perl6, the rand benchmark is now faster by a factor of 3.021277. neat!␤»
timotimo (compared to the 2014.11 release, that is)
jnthn Not bad.
timotimo i'll take it
next step would be to get rid of the defor if it's not needed
sounds like something spesh could do well
jnthn May already be able to... 12:50
May need to learn about .DEFINITE
timotimo it's not in there yet
oh, it's not equivalent to "isconcrete", eh?
jnthn I think isconcrete is already spesh'
timotimo yes
jnthn Right, it gives a p6bool instead iirc
But that is just adding facts to say it's a constant value 12:51
And I guess the conditional spesh then will see it's a constant boolean value and do the right thing...
timotimo you're suggesting to call the .DEFINITE method at spesh-time? 12:52
jnthn It's not a method. 12:53
That's why it's uppercase.
arnsholt jnthn: Aside from putting in a QAST::Var(:decl), are there any other ways to tell a lexpad that it's OK to bind to a symbol?
colomon jnthn: you need an OS X login?
timotimo oh, eh? 12:54
12:54 raiph joined
jnthn colomon: Given that seems the only platform things reliably go wrong... :) 12:54
timotimo i should look into that some more
colomon jnthn: let me see what I can do.
jnthn colomon: But maybe somebody in Europe (lizmat?) could offer me one... 12:55
colomon: Which'd be more responsive :)
But I'll take what I can get :)
colomon jnthn: true.
timotimo jnthn: but implementing // simply as QAST::Op( :op('defor'), :name('&infix:<//>') ) should be correct?
jnthn timotimo: Oh, right, I see what you mean... 12:56
timotimo: And yes.
timotimo ah, .DEFINITE is just p6definite
jnthn Right.
But I don't think // uses it
timotimo that seems to be the case, yes
so defor should be easier to do
jnthn Guess so
timotimo oh 12:57
defor gets compiled down to an isconcrete + if_i in QASTCompilerMAST
so nothing more to do there
jnthn Check that Rakudo doesn't override it. 12:58
timotimo 'k
jnthn But yeah, I think nothing more to do.
timotimo oh 12:59
rakudo does "callmethod defined"
jnthn ah...
Does it guard it with a isconcrete first?
timotimo doesn't seem so
m: nqp::null // "hi" 13:00
camelia rakudo-moar dad5fa: OUTPUT«===SORRY!=== Error while compiling /tmp/IDjTTf1__2␤Null regex not allowed␤at /tmp/IDjTTf1__2:1␤------> nqp::null //⏏ "hi"␤»
timotimo m: nqp::null() // "hi"
camelia rakudo-moar dad5fa: OUTPUT«Cannot call method 'defined' on a null object␤ in block <unit> at /tmp/NqvozeNhL6:1␤␤»
colomon www.phoronix.com/scan.php?page=news...px=MTgzNjY # seems like there ought to be some nice p6-y use for these...
timotimo m: Mu // "hi"
camelia ( no output )
timotimo re-running the dad5f3a checkout with an up-to-date moarvm 13:06
the improvements to rand may show up in forest-fire, too
13:09 KCL joined 13:12 KCL_ left 13:17 mr-foobar left, mr-fooba_ joined 13:18 raiph left 13:20 chenryn left 13:21 chenryn joined 13:24 denis_boyun_ joined 13:28 PacoLinux joined
timotimo huh. forest-fire became slower? 13:30
t.h8.lv/p6bench/2014-11-23-rakudo_l...stuff.html
13:32 sqirrel__ left 13:36 raiph joined 13:47 itz joined 13:49 PacoLinux left 13:50 itz_ left 13:52 PacoLinux joined
colomon gist.github.com/colomon/c640e86439337b6c606d # LWP::Simple error 13:53
13:55 zakharyas left 13:56 PacoLinux left 14:00 bjz_ left, bjz joined 14:02 BenGoldberg joined
masak m: say "ABCDEF" ~~ m:th(2)/\w/ 14:05
camelia rakudo-moar dad5fa: OUTPUT«「B」␤␤»
masak m: say "ABCDEF" ~~ m:th(*-1)/\w/
camelia rakudo-moar dad5fa: OUTPUT«Cannot call 'Real'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in sub infix:<<> at src/gen/m-CORE.setting:4607␤ in block at src/gen/m-CORE.setting:6719␤ in block at src/gen/m-CORE.setting:8529␤ in block at src/gen/m-CORE.setting:8533…»
masak I expected the above to work. should it? 14:06
colomon no 14:07
masak oh.
colomon well, I guess I shouldn't speak with the voice of authority.
masak what's the idiomatic way to find the last occurrence of something?
.comb and then *-1 ? 14:08
colomon m: say ("ABCDEF" ~~ m:g/\w/)[*-1]
camelia rakudo-moar dad5fa: OUTPUT«False␤»
14:08 erkan left
colomon comb would certainly be more elegant and work 14:09
masak I don't really see what's inelegant about :th(*-1)
I would have been delighted had it worked.
colomon the string ~~ m:th(*-1)/\w/ doesn't strike you as less elegant that .comb[*-1] ?
m: say "ABCDEF"m:th(*-1)/\w/ 14:10
camelia rakudo-moar dad5fa: OUTPUT«===SORRY!=== Error while compiling /tmp/v0e7Y8B6wf␤Two terms in a row␤at /tmp/v0e7Y8B6wf:1␤------> say "ABCDEF"⏏m:th(*-1)/\w/␤ expecting any of:␤ postfix␤ infix stopper␤ infix or …»
colomon m: say "ABCDEF".comb[*-1] 14:11
camelia rakudo-moar dad5fa: OUTPUT«F␤»
14:11 erkan joined, erkan left, erkan joined
colomon is having trouble with cut-n-paste this morning 14:11
masak I think it would be elegant that *-1 worked not just in array indices and substr, but also in this case.
smls ...and in s///, which can't be replaced by comb 14:13
masak oh, and that.
colomon is looking at the source 14:14
github.com/rakudo/rakudo/blob/nom/...tr.pm#L593
huh, it does look doable 14:15
14:16 sqirrel__ joined 14:17 ab5tract joined
masak \o/ 14:17
now I only need to convince you that it's the right thing to do ;)
colomon or you could figure it out and do it yourself. ;) 14:21
14:21 chenryn left 14:22 gfldex left
masak heh :) 14:22
colomon did have a hand in writing the match code about two major versions of rakudo ago. doesn't have much in common with the current code... 14:24
masak oh, I found what might be a reason to not do this. 14:29
a weak one, but one I didn't think of until I dug down into the code.
colomon …. ~~ Callable?
masak these :nth indices are 1-based, as opposed to everything else that handles *-1 14:30
in a way, that actually makes 2 and *-2 *more* symmetric, not less.
but it may be a reason to exercise caution.
colomon adds a +1 to the code he was just writing 14:31
masak oh, you're implementing it, too? :)
colomon trying, anyway
masak anyway, I don't think I want to do ~~ Callable; I want to ~~ WhateverCode
t/spec/S17-lowlevel/thread.t .................................. Failed 4/25 subtests 14:33
colomon I've got a working version
but I haven't spectested yet
assuming you have a working version as well?
14:33 chenryn joined
masak think so. 14:35
but still spectesting the before-the-change.
14:35 BenGoldberg left
masak here, let me gist my diff. 14:35
gist.github.com/masak/082fc27b6e270d852e65 14:36
colomon mine: gist.github.com/colomon/b5299bc4a21b21b7661d 14:37
:)
smls m: say (^10).list.[-> $n {$n - 1}]
camelia rakudo-moar dad5fa: OUTPUT«9␤»
colomon smls++ # I was just about to type that myself
smls ^^masak: For lists, it works with other callables than WhateverCode
masak is that spec'd?
smls no idea 14:38
masak to me that feels like "ooh, ooh, and wouldn't it be nice if *this* worked!?"
I'm not out to expand the spec, just to make it do something that I found was missing.
14:38 Alina-malina left 14:39 denis_boyun_ left
masak checks the spec 14:39
colomon is totally expanding the spec
arg, very true, but that was meant to be "masak is totally expanding the spec" 14:40
masak :)
I have a weak preference against allowing arbitrary Callable inside of :nth
I can't verbalizy why. 14:41
verbalize*
it feels like a hobgoblin to me.
geekosaur feels downrigth nasty to me because it implies you do the whole thing and then backtrack to match the Whatever 14:43
even worse for arbitrary Callable
masak I can't think of a use case where I would want to do the -> $n { ... } thing rather than the *-$n thing
colomon geekosaur: you do do the whole thing
masak or maybe (very rarely) the */2 thing
colomon geekosaur: but the magic is you only do it if someone uses this functionality 14:44
geekosaur: :1st will not do it. just :nth(*-1)
geekosaur still feels a litle too magic. maybe hold ti in abeyance for consideration for some future version...
14:44 Alina-malina joined, Alina-malina left, Alina-malina joined
colomon geekosaur: the only worrisome thing is the off-by-one issue 14:45
geekosaur: but the implementations are quite trivial 14:46
masak my beef isn't even with "a little too magic". it's just with "there's no need that would ever make this feature pay for its weight".
psch grmls at forgetting to set PANDA_REPORT_TESTREPORTS
s/REPORT/SUBMIT/
geekosaur I think colomon just claimed its weight is very light?
if so, then maybe. (althought here is more than implementation weight. does supporting that syntax muck with the parser too much?) 14:47
colomon geekosaur: I meant allowing *-1 there, masak is worried about the distinction of allowing Callable versus WhateverCode
14:47 Vlavv left
colomon geekosaur: no changes to the parser at all 14:48
masak: my version spectests clean
masak colomon: I'm fine with you pushing it, except I'm still against allowing Callable there.
colomon: but overall having your version is better than nothing :)
colomon masak: I'm fine with pushing it, just to allow Callable there. :)
masak colomon: I'm now looking at the spectest end. 14:49
colomon though I'm a bit worried about $n(@src + 1) versus $n(@src) + 1
14:49 virtualsue joined
masak colomon: you're right that the off-by-one makes the Callable there very confusing. 14:49
jnthn Whoa. Before I went on my last work trip, my r-m build was about 60s. Now it's about 67s. Wonder if that's something local or something that's changed.
colomon though I'm a bit worried about $n(@src + 1) versus $n(+@src) + 1
jnthn NQP is worse too; was 30s, now 33s.
masak colomon: the difference between our two versions confirms that.
colomon jnthn: no, it's real
jnthn: or at least, stage parse has definitely gone from 26s to 27s on my Linux box 14:50
14:50 sqirrel__ left
jnthn OK, that's a serious regression. Anybody know when it happened? 14:50
FROGGS jnthn: layz deserialization of objects/stables was deactivated
lazy}
masak why? which commit?
colomon layz is one of those rappers, right?
FROGGS damn, whz do I have an english kezboard now_
jnthn I thought it was re-enabled, because the fix broke other things?
14:50 vike left
masak had a script in production just segfault on him :/ 14:51
FROGGS don|t think so
colomon jnthn: lizmat, hoelzro, and I were talking about this yesterday or the day before
jnthn: the patch in question's still in there, as far as I know. But it's value is extremely questionable.
jnthn: it seems that something significant is broken in deserialization of objects/stables. 14:52
jnthn: the patch fixes up some issues, but breaks others
masak an extremely questionable patch is slowing down build with 7 seconds?
colomon masak: I don't know if it is the full / only cause of that
masak if only we could measure things like this continuously...
colomon actually, I suspect it's only a piece of the slowdown 14:53
masak ok. 14:55
colomon will try to time
jnthn needs to do a reboot soon for some updates anyway... 14:57
dalek ast: c6ec69e | masak++ | S05-modifier/counted.t:
[S05-modifier] add (fudged) test for :nth(*-1)
jnthn Will try again after that.
14:57 vike joined
masak colomon: awaiting your patch so I can unfudge that one :) 14:57
14:57 bjz left
colomon I'm going to time a full build with and without 05b25a6359c7bcf5ab03357b0d0093f77d28ead6 14:57
(that's MoarVM)
14:58 bjz joined
jnthn colomon++ 14:58
15:00 Vlavv joined
dalek kudo/nom: 2bda621 | (Solomon Foster)++ | src/core/Str.pm:
Allow :nth(*-1) for masak++.
15:01
15:02 exixt is now known as EXIXT 15:04 EXIXT is now known as exixt
colomon jnthn: github.com/MoarVM/MoarVM/commit/05...f77d28ead6 does not significantly affect the build time of rakudo + nqp + moarVM 15:05
JimmyZ it affects startup time and memory use 15:06
colomon 2m33.3 before, 2m34.5 after
right, I'm not saying it's a great patch
it's just not responsible for the slowdown jnthn is looking at
masak oh, it seems that running instances of perl6 segfault when I `make install` a newly-compiled perl6. 15:08
:(
how can that even happen?
colomon: locally, your patch makes two tests fail in S05-modifier/counted.t 15:09
colomon: tests 27 and 28. 15:10
colomon :\
masak (and they passed before that)
JimmyZ 快,改成麦高的补丁! 15:11
:P
colomon masak: huh? they're todo tests? 15:12
'nth(list) is ok' 15:13
?
15:14 ab5tract left 15:24 exixt is now known as EXIXT, guru joined 15:25 guru is now known as ajr_ 15:26 EXIXT is now known as exixt, JimmyZ left 15:27 pecastro joined
hoelzro I agree that it's not a great patch, and it may be slowing down startup time, but it was fixing a bug that prevented some modules from being used at all 15:30
I figured that correctness was more important than a little startup time
granted, I didn't know that it would break ABC
masak colomon: oops, sorry -- yes, you're right.
hoelzro but that breakage is a *lot* more complicated than the breakage the patch fixes 15:31
masak colomon: dunno why I ran the file with `perl6` instead of `make`
anyway, colomon++, masak-- 15:32
colomon jnthn, hoelzro: anyway, what we really need is to figure out what is going wrong with serialization and fix that. but none of us really know how to tackle the problem. 15:33
15:33 jluis joined
hoelzro colomon: agreed 15:33
I think we can all have our cake and eat it too; it's just that the cake is guarded by razor wire and vicious dogs 15:34
masak why doesn't a running `perl6` process survive a `make install`? 15:35
15:37 ab5tract joined
timotimo perhaps it has something mmapped that gets overwritten and then things explode? 15:39
hm, but the existing file should not have its contents replaced; the file itself should be replaced ... no?
hoelzro is it just on Moar, or other backends too? 15:40
IO::Socket::INET.new(:host<feather.perl6.nl>, :port(3000), :family(2)) 15:41
r: IO::Socket::INET.new(:host<feather.perl6.nl>, :port(3000), :family(2))
camelia rakudo-moar 2bda62: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in method new at src/gen/m-CORE.setting:22474␤ in block <unit> at /tmp/tmpfile:1␤␤»
..rakudo-parrot 2bda62: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Int'␤ in any at gen/parrot/BOOTSTRAP.nqp:1712␤ in method new at gen/parrot/CORE.setting:16828␤ in block <unit> at /tmp/tmpfile:1␤␤»
timotimo huh 15:45
um 15:46
PIO::PF_INET6()
what's that all about? 15:47
moritz IPv6 support
timotimo is that a sub?
m: say PIO::PF_INET6()
camelia rakudo-moar 2bda62: OUTPUT«Could not find symbol '&PF_INET6'␤ in method <anon> at src/gen/m-CORE.setting:13780␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2725␤ in any find_method at src/gen/m-Metamodel.nqp:988␤ in block <unit> at /tmp/r94SsaTSiG:1␤␤»
timotimo ah, it's in that module up there
why does it have () after it?
it does seem to be Int constants
15:47 Tekk_ left
moritz M.say IO::Socket::INET::PIO::PF_INET6 15:47
m: say IO::Socket::INET::PIO::PF_INET6 15:48
camelia rakudo-moar 2bda62: OUTPUT«Could not find symbol '&PF_INET6'␤ in method <anon> at src/gen/m-CORE.setting:13780␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2725␤ in any find_method at src/gen/m-Metamodel.nqp:988␤ in block <unit> at /tmp/vhSnFzgRO_:1␤␤»
moritz timotimo: iirc constant didn't work (bootstrap-y issues) when the code was first written
timotimo that module is my-scoped
i still don't understand why you would ever put () there 15:49
masak hoelzro: for all I know, it's just on moar. 15:51
15:51 rurban left
masak hoelzro: haven't tried it on any other platform, as moar tends to be what I build locally. 15:51
15:51 rurban joined 15:52 denis_boyun_ joined
carlin m: lcfirst # LTA since there is no .lcfirst 15:53
camelia rakudo-moar 2bda62: OUTPUT«===SORRY!=== Error while compiling /tmp/cqe79AvL4Y␤Unsupported use of bare 'lcfirst'; in Perl 6 please use .lcfirst if you meant $_, or use an explicit invocant or argument␤at /tmp/cqe79AvL4Y:1␤------> lcfirst # LTA since there…»
Juerd feather will be moved to a different box today. With downtime! 15:55
hoelzro timotimo: I'm looking at fixing that now
15:55 sqirrel__ joined
hoelzro ok, that error is fixe 15:55
*fixed
but I don't know if family is respected 15:56
dalek kudo/nom: b7f0436 | (Rob Hoelz)++ | src/core/IO/Socket/INET.pm:
Remove () from use of constants in IO::Socket::INET

Otherwise IO::Socket::INET.new(:host<feather.perl6.nl>, :port(3000),
  :family(2)) fails
hoelzro I specified INET, but it's still trying to connect over v6 15:57
15:58 ab5tract left
dalek kudo/nom: 16fb5e4 | TimToady++ | src/Perl6/Grammar.nqp:
update case functions in deftraps
15:58
TimToady carlin++
moritz why did I read "death traps"?
:-)
Juerd: fyi, the feather replacement has been ordered 15:59
Juerd moritz: Yay
15:59 ab5tract joined
Juerd End of an era, etc blah :) 15:59
moritz though it'll take at least another 2 weeks before it's delivered, likely a bit more
6 cores (12 including hyperthreading) and 32GB RAM 16:01
16:01 mr-fooba_ left
Juerd moritz: Very nice. 16:01
Is there a name for the new box yet?
(Bonus points for those who know where the name feather came from!) 16:02
timotimo .o( cadence )
moritz Juerd: I've registered p6c.org, but haven't decided on the hostnames yet
timotimo oh my god, perl six corgis!
moritz I thought "community" :-)
Juerd Does nobody know how "feather" got its name? 16:03
moritz doesn't
timotimo well ... parrots have feathers, no?
16:04 [Sno] joined
Juerd Answer's hidden in www.perl.com/pub/2005/02/ 16:04
16:05 mr-foobar joined
timotimo featherweight perl6, eh? 16:05
Juerd Yes
That's the language that pugs initially targetted
16:05 ab5tract left
colomon jnthn: for what it's worth, I'm seeing a 3-4s slowdown in a full rakudo-nqp-moar build in the last month, from ~153 seconds to ~157 16:05
Juerd s/targetted/targeted/ 16:06
hoelzro I was thinking about implementing determinate return values as specified by S06#Signatures (ex. method foo($x --> self) )
can an arbitrary expression be used for the return value? 16:07
16:10 exixt is now known as EXIXT, erkan left 16:12 EXIXT is now known as exixt 16:14 erkan joined
nine Oh if only the Inline::Python developer could get off his lazy ass and fix exception handling for good... 16:19
Oh wait, that's me!
16:23 jluis left
vendethiel
.oO( self-flagellement driven programming )
16:23
moritz std: method foo(Int --> self.thingy() { } 16:24
camelia std 76ccee1: OUTPUT«===SORRY!===␤In parameter declaration, typename 'self' must be predeclared (or marked as declarative with :: prefix) at /tmp/eZWPH61fBv line 1:␤------> method foo(Int --> self⏏.thingy() { }␤Parse failed␤FAILED 00:00 …»
vendethiel EMISSINGPAREN
moritz std: method foo(Int --> 2 + 4) { }
camelia std 76ccee1: OUTPUT«===SORRY!===␤Unable to parse signature at /tmp/kWcQ2ynDk3 line 1:␤------> method foo⏏(Int --> 2 + 4) { }␤Couldn't find final ')'; gave up at /tmp/kWcQ2ynDk3 line 1:␤------> method foo(Int --> 2 ⏏+ 4)…»
moritz std: method foo(Int --> self.thingy()) { }
camelia std 76ccee1: OUTPUT«===SORRY!===␤In parameter declaration, typename 'self' must be predeclared (or marked as declarative with :: prefix) at /tmp/Byad8lP0rC line 1:␤------> method foo(Int --> self⏏.thingy()) { }␤Parse failed␤FAILED 00:00…»
moritz m: class A { method f ($a = self.^name } { $a } }; say A.new.f 16:25
camelia rakudo-moar 16fb5e: OUTPUT«===SORRY!=== Error while compiling /tmp/WUXuN1m_Xg␤Missing block␤at /tmp/WUXuN1m_Xg:1␤------> class A { method f ($a = self.^name ⏏} { $a } }; say A.new.f␤ expecting any of:␤ method arguments␤ …»
moritz m: class A { method f ($a = self.^name ) { $a } }; say A.new.f
camelia rakudo-moar 16fb5e: OUTPUT«A␤»
moritz std: class A { method f ($a = self.^name ) { $a } }; say A.new.f
camelia std 76ccee1: OUTPUT«ok 00:00 141m␤»
moritz S06 still says 16:26
"An unsuccessful call
may always call C<fail> to return a C<Failure> object regardless of
the return specification"
is that a fossil?
jnthn Reboot didn't help after all... 16:27
Well, not with speed. My system is now rather better patched :) 16:28
nine What would be the method be called that actually executes a Callable? 16:29
timotimo hm. apply? 16:30
jnthn I think there's a .callwith
nine m: my $foo = sub { say "foo"; }; $foo.callwith(); 16:31
camelia rakudo-moar 16fb5e: OUTPUT«No such method 'callwith' for invocant of type 'Sub'␤ in block <unit> at /tmp/bcymlJ0VCh:1␤␤»
16:31 KCL_ joined
nine m: say sub{}.^methods(); 16:32
camelia rakudo-moar 16fb5e: OUTPUT«<anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> of returns onlystar assuming candidates cando multi soft wrap unwrap yada package WHY set_why perl <anon> add_phaser fire_phasers phasers perl <anon> <…»
16:33 KCL left
nine Doesn't look like there's anything suitable 16:33
jnthn No. I mean, you just call it really :) 16:34
smls m: say &postcircumfix:<( )>
camelia rakudo-moar 16fb5e: OUTPUT«===SORRY!=== Error while compiling /tmp/l1ehMtAJ6k␤Undeclared routine:␤ &postcircumfix:<( )> used at line 1. Did you mean '&postcircumfix:<[ ]>', '&postcircumfix:<{ }>', '&circumfix:<[ ]>', '&circumfix:<{ }>'?␤␤»
smls hm 16:35
16:35 dalek left
moritz smls: iirc it's still implemented as a method 16:35
nine jnthn: that's kinda hard because I'm trying to do this from Python code 16:36
Juerd Being moved: feather3
moritz dalek, we hardly knew thee 16:37
geekosaur ( we hardly knew three ) 16:38
jnthn TimToady: I don't suppose you did any performance comparison before/after your longlit work? 16:39
nine m: class PythonCallable { method postcircumfix:<( )>(\args) { say "foo"; } }; my $cb = PyCallable.new(); $cb."postcircumfix<( )>"();
camelia rakudo-moar 16fb5e: OUTPUT«===SORRY!=== Error while compiling /tmp/aON0M0CydD␤Undeclared name:␤ PyCallable used at line 1. Did you mean 'Callable'?␤␤»
nine m: class PythonCallable { method postcircumfix:<( )>(\args) { say "foo"; } }; my $cb = PythonCallable.new(); $cb."postcircumfix<( )>"();
camelia rakudo-moar 16fb5e: OUTPUT«No such method 'postcircumfix<( )>' for invocant of type 'PythonCallable'␤ in block <unit> at /tmp/fSsaFJintb:1␤␤»
FROGGS m: class PythonCallable { method postcircumfix:<( )>(\args) { say "foo"; } }; my $cb = PythonCallable.new(); $cb."postcircumfix:<( )>"(); 16:41
camelia rakudo-moar 16fb5e: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in method postcircumfix:<( )> at /tmp/v3Wuh1Eaab:1␤ in block <unit> at /tmp/v3Wuh1Eaab:1␤␤»
FROGGS m: class PythonCallable { method postcircumfix:<( )>(\args) { say "foo"; } }; my $cb = PythonCallable.new(); $cb."postcircumfix:<( )>"(42);
camelia rakudo-moar 16fb5e: OUTPUT«foo␤»
nine FROGGS: that looks good! 16:43
But it doesnt seem to work for arbitrary callables: 16:44
m: my $cb = sub { say "foo" }; $cb."postcircumfix:<( )>"();
camelia rakudo-moar 16fb5e: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Sub'␤ in block <unit> at /tmp/L7VtjBjrHk:1␤␤»
Juerd being moved: feather2 16:51
16:51 hugme left 16:53 ab5tract joined, anaeem1 joined
FROGGS m: class PythonCallable { method postcircumfix:<( )>(\args) { say "foo"; } }; my $cb = PythonCallable.new(); $cb(42) 16:54
camelia rakudo-moar 16fb5e: OUTPUT«foo␤»
FROGGS nine: ^^
nine m: my $cb = sub { say "foo" }; $cb."postcircumfix:<( )>"(); 16:55
camelia rakudo-moar 16fb5e: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Sub'␤ in block <unit> at /tmp/SuiC8_7nVL:1␤␤»
nine FROGGS: ^^
16:56 hugme joined, ChanServ sets mode: +v hugme
nine Solved it now by adding a second callback that's used just for calling objects 16:58
Juerd Sorry, feather1 is next 16:59
17:04 sqirrel__ left
Juerd 80 GB, lots and lots of small files. Sorry people, this will take long. 17:07
timotimo when i put a "my $*OUT = PROCESS::<$OUT>" into the MAIN of perl6-bench/perl6/spinner, it goes from 6 seconds down to 4.9 seconds 17:08
17:09 sergot left, [Coke] left, pmichaud left, PerlJam left, synopsebot left, masak left, Util left, tadzik left
ugexe im surprised you all get by with that little hardware 17:09
Juerd We don't :)
17:09 colomon left
timotimo why do we initialize PROCESS::<$OUT>, but not $*OUT in the setting? 17:09
jnthn $*OUT falls back to looking in PROCESS 17:11
17:12 colomon joined 17:13 dalek joined, ChanServ sets mode: +v dalek
timotimo yes, and that takes a lot of time apparently :) 17:13
jnthn Does that hit the slow at_key thing in Stash also? 17:14
17:14 grep0r left
timotimo let me see 17:15
doesn't look like it 17:16
the version without the $*OUT shortcut doesn't trigger Stash.at_key it seems 17:19
interesting. that version collects more often 17:20
the one with the short cut, i mean
17:25 ab5tract left 17:26 jfredett joined 17:30 raiph left
jnthn TimToady: Turns out, at least on Windows, that looking up an environment variable every single time we evaluate an NFA is not the fastest thing to be doing... 17:32
17:34 jfredett left
jnthn TimToady: Pushed a MoarVM patch that looks it up once at startup, which helps things quite a lot. 17:35
japhb goes to look at that patch just to understand how that ever happened 17:36
TimToady I tried to factor it out some, but it's fine to do more of that
we should also make envvars faster :)
17:36 [Sno] left
TimToady also, I'll have a different longlit impl soon that doesn't have to pass a bunch of stuff around at merge time 17:37
FROGGS m: my $cb = sub { say "foo" }; $cb(); 17:38
camelia rakudo-moar 16fb5e: OUTPUT«foo␤»
FROGGS nine: you don't need to call the postcircumfix:<( )> method explicitly 17:39
nine: just invoke it
nine FROGGS: I cannot do that in Python
17:39 [Sno] joined, [Sno] left
FROGGS nine: then look at the ast, and do the same 17:39
17:40 [Sno] joined
nine FROGGS: I'm already past that anyway. I did in the end just invoke it. Had to move the call from Python to Perl code for that but it works. 17:41
17:43 vendethiel- joined 17:45 vendethiel left, kjs_ joined
jnthn TimToady: Uh, this was a *C* call to envvars ;) 17:48
I'm not sure we get to make that faster :) 17:49
It's just that it happened on every single NFA evaluation, and we do a lot of those over the build.
Anyway, fixed now, and the envvar is retained for your future debugging pleasure.
17:50 chenryn left
moritz jnthn: did you push something that dalek should have reported? 17:52
17:52 FROGGS_ joined 17:54 cognominal joined
timotimo in mvm 17:54
and it did report
17:55 FROGGS left
moritz ok 17:58
18:08 raiph joined, rurban left 18:21 erkan left, smls left, erkan joined, erkan left, erkan joined
dalek kudo/nom: 74e3378 | jnthn++ | src/core/IO/Spec/Win32.pm:
Unbust tmpdir on Windows.

Fixes S16-io/tmpdir.t.
18:24
18:26 kjs_ left
dalek ast: e8f675d | jnthn++ | S19-command-line-options/02-dash-n.t:
Cope with test file having Windows newlines.
18:26
18:27 ab5tract joined
jnthn m: say IO::Spec::Cygwin.rel2abs('/t1','/t1/t2/t3'); 18:32
camelia rakudo-moar 16fb5e: OUTPUT«/t1␤»
jnthn m: say IO::Spec::Win32.rel2abs('/t1','/t1/t2/t3'); 18:33
camelia rakudo-moar 16fb5e: OUTPUT«\t1␤»
jnthn Ah...that's why the Cygwin tests fails on Windows... 18:34
18:39 anaeem1 left 18:40 ajr_ left, anaeem1_ joined, anaeem1_ left
colomon jnthn: any luck getting an account on a closer OS X machine? 18:41
18:41 anaeem1_ joined, smls joined
smls say X::Composition::NotComposable.^mro 18:41
m: say X::Composition::NotComposable.^mro
camelia rakudo-moar 16fb5e: OUTPUT«(X::Composition::NotComposable) (Exception) (Any) (Mu)␤»
smls ^^ Why does this not inherit from X::Comp ? 18:42
Does composition not happen at compile-time?
jnthn If the compiler is constructing the meta-object, yes. 18:43
smls m: say "Alive!"; class A { }; class B does A { };
camelia rakudo-moar 16fb5e: OUTPUT«===SORRY!=== Error while compiling /tmp/fJQfjB7k5C␤A is not composable, so B cannot compose it␤at /tmp/fJQfjB7k5C:1␤------> ␤»
jnthn If the user is doing their own meta-programming, no.
The code that emits the exception lives in the MOP, not the compiler.
smls but isn't that the same with inheritance?
X::Inheritance::Unsupported *does* compose X::Comp, for example 18:44
jnthn Which exception do you have in mind?
Hmm
18:44 ab5tract left
jnthn Maybe it's just been done inconsistently... 18:44
smls I'm wondering whether I should call them "compilation errors" in p6doc 18:45
jnthn Not sure if moritz++ had a guiding principle on these things... 18:46
colomon: No, I didn't spot lizmat yet... :)
colomon jnthn: okay, I'll see what I can do here 18:48
dalek kudo/nom: dc84dbc | jnthn++ | src/core/IO/Spec/ (2 files):
Fix IO::Spec::Cygwin.rel2abs on Windows.

The tests (I think correctly) don't expect to end up with a volume, but because we delegate to Windows rel2abs on Cygwin then tweak the slashes, we end up with one. Not sure this is the best fix, though it is better than the other obvious alternative (let the drive letter be put on by IO::Spec::Win32, then strip it off in IO::Spec::Cygwin).
18:49
jnthn colomon: OK, but no hurry; I'm still a bit get-lagged for segfault hunting today... :(
So just picking off a few easier bits here and there
Oh, I should remember to eat too...
My body has no clue what dinner time is any more. :)
colomon you're in China at the moment? 18:50
jnthn No, back home, but only as of last night
And I'll only be going European places in the next few months now. 18:51
smls btw is there something (akin to .^mro) for listing all roles that an object does?
jnthn .^roles iirc 18:52
m: say List.^roles
smls ah, thanks
camelia rakudo-moar 16fb5e: OUTPUT«(Positional)␤»
jnthn m: say Array.^roles
camelia rakudo-moar 16fb5e: OUTPUT«(Positional)␤»
jnthn Seems it shows inherited ones too
18:52 tadzik joined
smls m: say Set.^roles 18:53
camelia rakudo-moar 16fb5e: OUTPUT«(Setty)␤»
smls doesn't seem to be recursive (^^did not list QuantHash and Associative)
jnthn Ah, maybe it's not 18:54
m: say Setty.^roles(:transitive) 18:55
camelia rakudo-moar 16fb5e: OUTPUT«No such method 'roles' for invocant of type 'Perl6::Metamodel::ParametricRoleGroupHOW'␤ in block <unit> at /tmp/BP6aDSSgmw:1␤␤»
jnthn m: say Set.^roles(:transitive)
camelia rakudo-moar 16fb5e: OUTPUT«Cannot find method 'roles'␤ in any roles at src/gen/m-Metamodel.nqp:2654␤ in block <unit> at /tmp/JrxlhiO5Ib:1␤␤»
jnthn Aww.
That should probably work. 18:56
colomon has gotten sidetracked improving his local network... 19:00
19:00 anaeem1_ left, Ugator joined
dalek ast: fbfe061 | jnthn++ | S17-procasync/basic.t:
Fix a test on Windows; avoid a warning.
19:03
19:09 raiph left
dalek p: a5f24ab | Carlin++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Add more signal codes to constant map
19:10
p: 878c1b3 | jonathan++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Merge pull request #178 from carbin/moar-signals

Add more signal codes to constant map
rl6-roast-data: 488f5b9 | coke++ | / (5 files):
today (automated commit)
19:13
kudo/nom: b438c29 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for signals, Moar perf fix.
kudo/nom: 0207082 | Carlin++ | src/core/signals.pm:
add more signal mappings
19:14
kudo/nom: 5e91f1e | Carlin++ | src/core/signals.pm:
add more signal codes to the Signal enum
kudo/nom: 8ff2af8 | jonathan++ | src/core/signals.pm:
Merge pull request #303 from carbin/nom

Handle more signals
19:15 anaeem1 joined
dalek p: 20e6be9 | rurban++ | 3rdparty/dyncall/configure:
on MacPorts need to enforce system /usr/bin/libtool for -static

error message: libtool: unrecognized option `-static libtool: Try `libtool --help' for more information. because on macports libtool is taken from /opt/local/bin.
  -static is a xcode-only aberation.
19:16
p: 53e0c2c | jonathan++ | 3rdparty/dyncall/configure:
Merge pull request #187 from rurban/dyncall-macports

on MacPorts need to enforce system /usr/bin/libtool for -static
19:18 waressearcher2 joined
waressearcher2 so perl6 is different animal than perl5 ? 19:19
19:20 sqirrel__ joined
timotimo yes 19:20
vendethiel- quite so... 19:21
colomon is not covering himself with glory with this attempt to set up an account for jnthn.... 19:22
19:23 ab5tract joined
nine waressearcher2: it's Perl5 with everything that sucks removed and much awesomeness added. 19:23
waressearcher2 nine: "everything that sucks", examples ? 19:25
jnthn colomon: I'm doing just as well at getting myself dinner :P
jnthn visits the shop :)
bbiab
colomon o/
timotimo
nine waressearcher2: inconsistencies for example. Like having to use different sigils when referring to an @array vs. referring to an array element like $array[0]. 19:26
19:27 kjs_ joined
nine waressearcher2: or needing tons of boiler plate like use strict; use warnings; use utf8; use features qw(say unicode_strings ...) 19:28
19:28 itz_ joined
timotimo nine: weird scoping of $_ 19:29
it's so weird i don't even understand how it's supposed to work 19:30
19:30 itz left
nine timotimo: true. Seen a few problems from that in my career. 19:31
timotimo can you explain it to me a bit?
moritz $_ is globally scoped
but some constructs, such as for (list) local()ize it implicitly 19:32
so that they don't clobber the outer $_
(p5, that is)
19:33 [Coke] joined
waressearcher2 so nowadays when people start to learn perl what version do they choose ? or you inevitable should know perl5 too ? 19:33
timotimo only some?
19:34 Pleiades` left
moritz timotimo: iirc 'given' introduces (or introduced) a lexical $_ instead 19:35
so if you have sub printit { print $_ }; $_ = 42; for (1) { printint() }; given (1) { printit() }; 19:36
it will print 142
waressearcher2 timotimo: considering tons of libraries on CPAN that depend on perl5 its not a simple choice
19:36 Pleiades` joined
timotimo waressearcher2: well, you can use Inline::Perl5 to bridge the gap of not-yet-ported perl5 modules 19:37
nine waressearcher2: but you'd need to be able to read a bit of P5 at least. 19:38
19:40 raiph joined 19:42 ab5tract left, darutoko left 19:45 masak joined
masak "Steve Peters had a few more questions about pairs, which made Osfameron notice that he could use pairs like Lisp's dotted pairs. Larry admitted that he could and had hoped that no one would notice." -- www.perl.com/pub/2005/02/ 19:45
hehe. this must be before TimToady apparently started to like consing things together with infix:<< => >> :P 19:46
[Coke] daily failures (yesterday, os x): jvm: 14, moar-nojitt: 205, moar-jit: 14, parrot: 0!
masak m: sub postfix:<!>($n) { [*] 2..$n }; say 0! 19:48
camelia rakudo-moar dc84db: OUTPUT«1␤»
masak .oO( just 0! more to go )
raydiak good almostnoon #perl6 19:49
masak oh haydiak 19:50
timotimo hey raydiak
raydiak \o masak, timotimo
19:51 kjs_ left
raydiak ecosystem is broken 19:51
timotimo all of it?
raydiak just panda update & panda install :)
19:51 rindolf left
raydiak or is it just me again? 19:53
timotimo yeah connection refused
feather(s) got moved or rebooted or something similar
masak waressearcher2: Perl 6 is a glance at where Perl is heading. some of us use it daily, but we're still in a minority. there are lots of reasons to stick with Perl 5 still -- most of them having to do with existing codebases and dependencies -- but we're picking them off little by little.
raydiak ah...yeah something didn't come back
lizmat good *, #perl6! 19:54
masak yeah, feather moved host.
lizmat! \o/
lizmat masak colomon jnthn o/
raydiak panda pulls from feather.perl6.nl:3000
lizmat trying to catch up on back log
raydiak \o lizmat
lizmat raydiak o/
moritz tadzik: I fear you have to restart the panda meta data server on feather 19:55
jnthn hi lizmat :)
lizmat is there anything I should look at immediately ?
tadzik moritz: ah, right 19:57
19:57 synopsebot joined
tadzik heh, I just wrote 'pit bull' instead of 'git pull' 19:57
moritz :-) 19:58
jnthn lizmat: Not "immediately" 'cus I'm too tired to use it immediately, but I'm interested in a shell account on an OSX box so I can investigate the SEGVs.
Well, guess I can reproduce right away, but the debugging will take a little more :)
Figured you may be a good person to ask since you're in Europe so I'll get low roundtrip times :)
lizmat well, giving you a shell on my laptop would not work immediately, as I would need to open up some ports on our network as well 19:59
jnthn ah
And it's a laptop :) 20:00
lizmat well, 16G, quad core
jnthn I was more thinking "not sat there in one place all the time" :) 20:01
jnthn wonders what biscuit tins cost these days... :) 20:02
20:03 PacoLinux joined 20:04 sqirrel__ left 20:06 PacoLinux left
colomon lizmat, o\ 20:08
20:08 gfldex joined
colomon jnthn: yes, my laptop is also a laptop. :) 20:08
jnthn: Mac mini starts at $500, but I'm assuming that's wildly underpowered. 20:10
jnthn Yes :) Only 2 cores no matter how you configure it. :)
20:12 sqirrel__ joined 20:15 anaeem1 left
osfameron masak: oh, I remember that. is it now more usual then? istr the associativity of the => operator was wrong too (the link to groups.google.com is broken so I cant' double-check) 20:15
20:15 anaeem1_ joined 20:17 anaeem1_ left, colomon_ joined
osfameron finds www.nntp.perl.org/group/perl.perl6....19348.html 20:17
20:17 anaeem1_ joined 20:19 colomon left, colomon_ is now known as colomon
masak osfameron: yeah, ISTR the associativity changed since then. 20:19
osfameron: I don't know many others except TimToady++ using => as cons pairs. :)
20:19 bjz left
osfameron can you reduce with [=>] to turn an array into a linked list? 20:20
20:20 bjz joined
jnthn m: say ([=>] 1, 2, 3, 4).perl 20:21
camelia rakudo-moar dc84db: OUTPUT«1 => 2 => 3 => 4␤»
jnthn m: say ([=>] 1, 2, 3, 4).value.perl
camelia rakudo-moar dc84db: OUTPUT«2 => 3 => 4␤»
jnthn m: say ([=>] 1, 2, 3, 4).value.key.perl
camelia rakudo-moar dc84db: OUTPUT«2␤»
jnthn Seems right.
osfameron yay 20:22
timotimo also, a year ago or so i made sure the .perl output of Pair will show parens when needed 20:23
m: say ((1, 2) => (3 => 4, 5 => 6)).perl 20:24
camelia rakudo-moar dc84db: OUTPUT«$(1, 2) => $(3 => 4, 5 => 6)␤»
timotimo m: say ( (((1 => 2) => 3) => 4) => 5 ).perl 20:25
camelia rakudo-moar dc84db: OUTPUT«(((1 => 2) => 3) => 4) => 5␤»
timotimo m: say ( 1 => 2 => 3 => 4 => 5 ).perl
camelia rakudo-moar dc84db: OUTPUT«1 => 2 => 3 => 4 => 5␤»
20:27 colomon left 20:28 colomon joined 20:29 anaeem1_ left, anaeem1_ joined 20:30 bjz left 20:33 anaeem1_ left, anaeem1_ joined 20:45 telex left 20:46 telex joined, colomon left, colomon joined
dalek line-Python: 72c70bf | nine++ | / (3 files):
Support passing callables between Python and Perl
20:50
line-Python: a5eba1b | nine++ | / (3 files):
Fix array vs. list confusion
line-Python: 688a38f | nine++ | / (3 files):
Implement inheritance by delegation

This allows Perl 6 classes to "inherit" from Python classes. Transparently passes on method calls to the base Python object while allowing the subclass in Perl 6 to override methods. Also still allows accessing the Python object's attributes.
smls m: my $x = Date.new(now); say $x; say $x.truncated-to('minute'); 20:54
camelia rakudo-moar 8ff2af: OUTPUT«2014-11-23␤2014-11-01␤»
smls ^^huh?
shouldn't this throw a X::Temporal::Truncation?
jnthn m: my $x = Date.new(now); say $x; say $x.truncated-to('m');
camelia rakudo-moar 8ff2af: OUTPUT«2014-11-23␤Cannnot use unit m with Date.delta␤ in method truncate-parts at src/gen/m-CORE.setting:17430␤ in method truncated-to at src/gen/m-CORE.setting:17857␤ in block <unit> at /tmp/58lbDbbEMT:1␤␤»
jnthn m: my $x = Date.new(now); say $x; say $x.truncated-to('month');
camelia rakudo-moar 8ff2af: OUTPUT«2014-11-23␤2014-11-01␤» 20:55
smls m: { Date.new(now).truncated-to('m'); CATCH { say $_.WHAT } } 20:56
camelia rakudo-moar 8ff2af: OUTPUT«(X::DateTime::InvalidDeltaUnit)␤Cannnot use unit m with Date.delta␤ in method truncate-parts at src/gen/m-CORE.setting:17430␤ in method truncated-to at src/gen/m-CORE.setting:17857␤ in block <unit> at /tmp/oOpXS7Kmys:1␤␤»
jnthn ah...
smls X::Temporal::Truncation doesn't exist anymore?
jnthn Dunno. But @UNITS contains minutes, seconds, etc. 20:57
And those are explicitly handled by truncated-to in DateTime 20:58
The rest fall through to Datish
[Coke] jnthn: I am awake, and while I cannot give you access to my box, I can be eyes and ears for a bit.
jnthn But Datish is used for Date too
[Coke]: lizmat++ has got me access to one now
Hopefully I can reproduce it there :)
[Coke] lizmat++, indeed. Thanks in advance for taking a look!
smls jnthn: But why does Date truncate to 'month' when given 'minute'? 20:59
jnthn smls: Because it looks for year, and if it doesn't get that just assumes month 21:01
FROGGS_ smls: look at rakudo/src/core/Temporal.pm:121 21:02
smls S32/Exception lists X::Temporal::Truncation but not X::DateTime::InvalidDeltaUnit :(
dalek Heuristic branch merge: pushed 16 commits to rakudo/newio by lizmat
smls FROGGS_: But is the Rakudo implementation "correct", or S32? 21:03
FROGGS_ smls: rakudo is at least buggy in this regard
smls Or asked another way, what should p6doc document?
FROGGS_ when it comes to exception classes we usually just document what rakudo implements 21:04
21:05 guru joined, guru is now known as Guest11066, Guest11066 is now known as ajr_
jnthn It think this is a Rakudo bug, imo 21:06
arnsholt How much work is happening on the Unicode synopsis ATM? 21:07
21:07 PZt left
smls looks forward to jnthn and other core Perl 6 devs going through the whole specs and deciding what is considered officially part of 6.0, and what is downgraded to conjecture/ideas for future versions :) 21:09
FROGGS_ arnsholt: not that much, though I expect movement within the next months 21:10
smls: me too!
21:10 FROGGS_ is now known as FROGGS
FROGGS tries to do some RT hackery after finishing preps for $dayjob 21:11
jnthn: ahh btw, can you imagine why this comes out Mu at the bottom? gist.github.com/FROGGS/199ccc0d6412e6858217 21:13
jnthn - QAST::Want+{QAST::SpecialArg} 4 21:16
I wonder what's special about it
And if it is that it's got a name set on it, so it becomes a named arg 21:17
FROGGS it is a named, aye
jnthn Ah, is that what the Pair constructor expects?
FROGGS I think so
jnthn Is the name of it the correct thing, though? 21:18
timotimo oh, cool, you're making comma-less stacks of adverbs work? 21:19
i like that
FROGGS I guess it is more like: key => c, value => 3 21:20
but I'll not in a bit
timotimo: yes, for (...) since yesterday
curlies after that 21:21
timotimo cool
does it already work after method and sub calls that have parens?
like
m: sub test($a, $b, *%f) { say %f.perl }; test(1, 2) :hello :goodbye
camelia rakudo-moar 8ff2af: OUTPUT«("goodbye" => Bool::True, "hello" => Bool::True).hash␤»
timotimo ah, neat
21:22 sqirrel__ left
FROGGS the first QAST::Want+{QAST::SpecialArg} with the Str is named 'key', the other one with the Int value is named 'b' 21:22
wich feels odd
21:23 vti left
FROGGS I rename the latter to 'value' now... 21:23
the original code that fiddled with loose adverbs did this: 21:25
my $name := compile_time_value_str($_[1], 'LHS of pair', $/);
%named_counts{$name} := +%named_counts{$name} + 1;
$_[2].named($name);
uhh, my code works \o/ 21:26
timotimo your code works \o/
FROGGS *g*
m: say Pair.new() 21:27
camelia rakudo-moar 8ff2af: OUTPUT«Any => Mu␤»
FROGGS m: say Pair.new( foo => bar )
camelia rakudo-moar 8ff2af: OUTPUT«===SORRY!=== Error while compiling /tmp/JEjB234R0e␤Undeclared routine:␤ bar used at line 1. Did you mean 'bag'?␤␤»
FROGGS m: say Pair.new( foo => 'bar' )
camelia rakudo-moar 8ff2af: OUTPUT«Any => Mu␤»
FROGGS m: say Pair.new( key => 'foo', value => 'bar' )
camelia rakudo-moar 8ff2af: OUTPUT«"foo" => "bar"␤»
lizmat FROGGS: eh, say Pair.new( foo => 'bar' ) isn't that a bit recursive ? :-) 21:29
putting a Pair as a parameter to a new Pair ? :-)
FROGGS :P
yeah, perhaps
now you have to create two pairs to get one
21:30 anaeem1_ left
FROGGS well, "now" 21:30
lizmat but I guess we could make a Pair.new candidate that takes a Pair ?
dalek kudo/RT123215: 662ebf3 | (Tobias Leich)++ | src/Perl6/Actions.nqp:
fix value of chained colonpairs in ( )
21:30 anaeem1_ joined
FROGGS I don't favour a change without a strong reason 21:30
21:35 anaeem1_ left
masak 'night, #perl6 21:35
FROGGS gnight masak 21:36
21:36 cognominal left
timotimo gnite masak 21:37
21:38 PZt joined 21:44 erkan left 21:49 virtualsue left
dalek kudo/nom: 55d59e4 | (Tobias Leich)++ | src/Perl6/ (2 files):
attempt to fix RT #123215
21:49
kudo/nom: 2b6e77e | (Tobias Leich)++ | src/Perl6/Actions.nqp:
fix value of chained colonpairs in ( )
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123215
21:50 raiph left 21:52 ajr_ left 21:53 anaeem1_ joined 21:57 virtualsue joined 21:58 GladiaTeur joined 22:03 Alula left 22:05 rurban joined 22:06 exixt is now known as EXIXT, kaare__ left 22:08 erkan joined, erkan left, erkan joined 22:12 raiph joined 22:14 cognominal joined 22:17 Alula joined
dalek kudo/nom: c40c1b8 | (Tobias Leich)++ | src/Perl6/ (2 files):
fix chained colonpairs in curlies, resolves RT #123215
22:20
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123215
timotimo cool
FROGGS I had expected that it would be harder 22:21
22:22 anaeem1_ left, anaeem1_ joined 22:26 erkan left 22:27 anaeem1_ left
timotimo i'm glad it was apparently easy :) 22:30
dalek ast: d44aa84 | (Tobias Leich)++ | S02-types/pair.t:
[RT #123215] add tests for chained colonpairs
22:36
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123215
22:39 firefish5000 joined 22:41 EXIXT is now known as exixt 22:44 smls left, [Sno] left 22:45 [Sno] joined 22:50 raiph left 22:51 El_Che left 22:53 El_Che joined, denis_boyun_ left 22:54 ugexe left 22:59 FROGGS left 23:05 ugexe joined, Ugator left 23:09 raiph joined
lizmat good night, #perl6! 23:13
raydiak good night lizmat o/
23:14 ugexe left 23:31 gfldex left 23:37 rurban left
raydiak apparently I've ended up half way towards building a toy functional language using perl 6 as a backend: github.com/raydiak/Math-Symbolic/b...s.t#L21-25 23:42
23:43 raiph left
raydiak then again I suppose that's what any CAS turns in to, but this is embeddable in perl 6 too...and you can compile to strings of code w/o EVALing, e.g. for dynamically generating a module from a Build.pm or something 23:47