»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
00:00 telex joined, adu joined, skids joined 00:06 Mouq left 00:12 vendethiel left 00:15 Mouq joined 00:25 vendethiel joined 00:30 Mouq left 00:41 _dolmen_ left 00:46 vendethiel left 00:49 vendethiel joined 01:00 tengignick left, tengignick joined 01:01 tengignick left
masak 'night, #perl6 01:07
raydiak sleep well, masak
hahainternet nn
raydiak # here we solve the problem with public-education-level algebra and geometry by disregarding the supposed differences between space and time to model the dynamic system as a static XYZT 4-space 01:24
...sometimes the comments are more fun than the code :)
01:32 kurahaupo left 01:35 echowuhao left, vendethiel left
skids r: role A { method abs { ... } }; class C does A { has Int $.b handles "abs" = -2 }; C.new.abs 01:36
camelia rakudo-{parrot,moar} 1b0d7a: OUTPUT«===SORRY!===␤Method 'abs' must be implemented by C because it is required by a role␤»
01:52 grettir left 01:53 Mouq joined 02:09 kurahaupo1 joined
TimToady m: say '1234'.ords 02:11
camelia rakudo-moar 1b0d7a: OUTPUT«49 50 51 52␤»
TimToady m: say '1234'.ords xx 2
camelia rakudo-moar 1b0d7a: OUTPUT«␤»
TimToady o_O
m: say (49, 50, 51, 52) xx 2 02:12
camelia rakudo-moar 1b0d7a: OUTPUT«49 50 51 52 49 50 51 52␤»
TimToady m: say (49, 50, 51, 52).WHAT
camelia rakudo-moar 1b0d7a: OUTPUT«(Parcel)␤»
TimToady m: say '1234'.ords.WHAT
camelia rakudo-moar 1b0d7a: OUTPUT«(List)␤»
TimToady m: say '1234'.ords.eager xx 2 02:13
camelia rakudo-moar 1b0d7a: OUTPUT«49 50 51 52 49 50 51 52␤»
TimToady m: say ('1234'.ords xx 2).eager 02:14
camelia rakudo-moar 1b0d7a: OUTPUT«␤»
02:20 Mouq left 02:22 colomon left 02:23 vendethiel joined 02:25 colomon joined
TimToady by avoiding .trans, rosettacode.org/wiki/Textonyms#Perl_6 is now about 15 times faster 02:38
hahainternet TimToady: that's quite lovely especially compared to its contemporaries 02:42
02:44 dj_goku_ joined, dj_goku_ left, dj_goku_ joined, ilbot3 left, vendethiel left
dalek ast: 0ce5f3f | TimToady++ | S03-operators/repeat.t:
'ABC'.ords xx 2 should not produce empty list
02:46
colomon TimToady++
TimToady but we gotta fix .trans
it recalculates the translation table Every Time You Call It
JimmyZ oh my ilbot3... 02:47
02:47 ilbot3 joined 02:50 _dolmen_ joined, kurahaupo1 left
hahainternet TimToady: i was reading about the 'whirlpool' model, i like the idea but i can't help but think that analogy needs work 02:51
02:51 simcop2387_ joined
TimToady repeating for ilbot3: 02:51
but we gotta fix .trans
it recalculates the translation table Every Time You Call It
02:52 slavik left, dj_goku left, awwaiid left, simcop2387 left, simcop2387_ is now known as simcop2387
TimToady hahainternet: well, it's a kind of strange loop, speaking of Hofstadter... 02:52
hahainternet TimToady: no doubt, but seeing the addition there makes me realise the value of 'play about on irc, find something that doesn't work, note it unambiguously'
TimToady and you really don't know how many times it's gonna go around, or how much mixing there will be, before the bathtub drains 02:53
irc is the part of the whirlpool that's spinning very fast :)
hahainternet yeah i don't disagree with any of it, other than a 'whirlpool' has some negative connotations 02:54
TimToady well, it's like a vacuum, it's supposed to suck
hahainternet i think the key for me is the lack of ambiguity, that change is clear and straightforward and won't ever go away
so i see it a bit like a tornado in reverse 02:55
TimToady and it's hard to predict which bits of water will actually go down the drain first :)
hahainternet lots of chaos, but first you build a frame and then a bit later on the surrounding structure materialises out of nowhere and happens to perfectly fit :)
TimToady in some ways it's more like a weather system that is going somewhere else, but you don't quite know where 02:56
02:57 awwaiid joined
TimToady or if you take it in a more theological direction: www.biblegateway.com/passage/?sear...ersion=NIV 02:57
02:58 slavik joined
TimToady must go to dinner now or suffer the social consequences :) 03:00
afk &
03:01 vendethiel joined 03:08 Mouq joined 03:10 noganex joined 03:13 noganex_ left 03:14 aborazmeh joined 03:18 max joined, max left 03:19 traplol joined, traplol left 03:24 _dolmen_ left 03:27 MilkmanDan joined, vendethiel left 03:32 muraiki_ left, kurahaupo1 joined 03:35 vendethiel joined 03:36 _dolmen_ joined
TimToady ya know, I've wanted to be able to treat an array or hash as a postfix function a lot more often than I've wanted a set of cascading handlers 03:42
so I'm thinking about stealing $foo.@bar and $foo.%baz to treat @bar or %baz as filtering functions
and relegate the current $foo.@candidates(args) syntax to $foo.handlers(@candidates, args) or so 03:43
since it's not implemented anyway... 03:44
that is, 42.@bar would be equivalent to @bar[42] 03:46
raydiak meaning... $foo.grep( * ∈ @bar ) or so?
TimToady no
raydiak ah, got it
sorry, lag in my tmux session
TimToady nod
42.@bar(:kv) and such would presumably also work 03:48
presumably these forms would autoslice the left side too 03:49
(1,2,3).@bar and such
then the slice modifiers make more sense
would be a fairly simple transformation to the current AST for @bar[1,2,3] 03:50
but lets you go left-to-right with subscripted mappings, which is something we can't do right now 03:51
Mouq TimToady: (1,2,3) ==> @bar[] ?
TimToady at least not without saying .map({ @bar })
I would take that as writing to @bar
at least not without saying .map({ @bar[$_] }) I mean 03:52
Mouq Oh, hm.
TimToady m: say 1,2,3 ==> my @bar; say @bar
camelia rakudo-moar 1b0d7a: OUTPUT«123␤True␤»
TimToady er
Mouq m: my @bar; say 1,2,3 ==> @bar[]; say @bar
camelia rakudo-moar 1b0d7a: OUTPUT«123␤␤»
TimToady m: 1,2,3 ==> my @bar; say @bar
camelia rakudo-moar 1b0d7a: OUTPUT«1 2 3␤»
TimToady m: my @bar; 1,2,3 ==> @bar[]; say @bar 03:53
camelia rakudo-moar 1b0d7a: OUTPUT«␤»
TimToady m: my @bar; 1,2,3 ==> @bar; say @bar
camelia rakudo-moar 1b0d7a: OUTPUT«1 2 3␤»
TimToady m: my @bar; 1,2,3 ==> @bar[*]; say @bar
camelia rakudo-moar 1b0d7a: OUTPUT«␤»
TimToady m: my @bar; 1,2,3 ==> @bar[^3]; say @bar
camelia rakudo-moar 1b0d7a: OUTPUT«␤»
TimToady guess it doesn't like a slice for a target yet 03:54
Mouq m: 1,2,3 ==> my ($parcel,); say $parcel 03:55
camelia rakudo-moar 1b0d7a: OUTPUT«(Any)␤»
Mouq tries to remember what bug he promised to look at later this week… 03:56
03:57 vendethiel left
Mouq $=data was it? 03:57
Mouq mumbles about pod to his physics homework
03:58 Mr0rris0 left
raydiak any particular reason we want a way to write subscripts on the left? or just to let people say it different? 03:58
I guess it maps pretty well to english... "42nd element of @bar" 03:59
TimToady subscripts sort of have the P5ish @{} illness, requiring a circumfix for something that could be inlined
Mouq m: my @bar; my &bar = postcircumfix:<[ ]>.assuming(@bar); 1,2,3 => bar(); say @bar; 04:00
camelia rakudo-moar 1b0d7a: OUTPUT«===SORRY!=== Error while compiling /tmp/_Y14XOoG6w␤Calling 'postcircumfix:<[ ]>' requires arguments (if you meant to operate on $_, please use .postcircumfix:<[ ]> or use an explicit invocant or argument)␤ Expected any of: ␤ :…»
raydiak oh I like it a lot more now that you put it that way.../me hates typing circumfix ops
Mouq m: my @bar; my &bar = &postcircumfix:<[ ]>.assuming(@bar); 1,2,3 => bar(); say @bar;
camelia rakudo-moar 1b0d7a: OUTPUT«WARNINGS:␤Useless use of "," in expression "1,2,3 =>" in sink context (line 1)␤␤»
Mouq Oh duh
m: my @bar; my &bar = &postcircumfix:<[ ]>.assuming(@bar); 1,2,3 ==> bar(); say @bar;
raydiak (especially when I have to change them later)
camelia rakudo-moar 1b0d7a: OUTPUT«␤»
Mouq Aww :9
04:01 dj_goku_ left
raydiak afk dinner 04:02
04:06 dj_goku joined 04:10 vendethiel joined 04:14 echowuhao joined, dj_goku left 04:30 aborazmeh left, dj_goku joined, dj_goku left, dj_goku joined 04:31 aborazmeh joined 04:32 vendethiel left 04:33 chenryn joined, vendethiel joined 04:41 dj_goku left 04:43 chenryn left 04:46 dj_goku joined, dj_goku left, dj_goku joined 04:54 vendethiel left
avuserow_ botsnack 04:55
:)
Mouq TimToady: Oh, wait a minute: 04:57
m: my @bar = 4,5,6; 0,1,2 ==> @bar[] ==> say();
camelia rakudo-moar 1b0d7a: OUTPUT«4 5 6␤»
04:58 avuserow_ is now known as avuserow
avuserow .botsnack 04:59
yoleaux :D
05:02 vendethiel joined 05:03 dj_goku left 05:04 BenGoldberg left 05:06 dj_goku joined, dj_goku left, dj_goku joined 05:12 chenryn joined 05:14 ssl_ joined 05:15 ssl_ left 05:23 vendethiel left 05:28 diana_olhovik_ joined 05:44 jack_rabbit joined 05:55 kurahaupo1 left, vendethiel joined 05:58 xfix joined 06:17 vendethiel left 06:19 [Sno] left 06:20 bjz joined 06:22 vendethiel joined 06:24 jack_rabbit left 06:27 diana_olhovik_ left 06:28 bjz left
Mouq Hey, any feedback on the idea that in the REPL, the result of the previous line is stored in $_ by default? 06:29
So I'm doing calculations and I enter, say 06:30
> 4*6+12*cos(51*pi/180)*i
> .abs
and get 25.1600945598605 06:31
For clarity, s/is stored in/could be stored in/ 06:32
TimToady nice for a calculator, though perhaps not as nice to prototype code you plan to save somewhere 06:35
06:37 mr-foobar left 06:38 jack_rabbit joined
Mouq TimToady: Ahh, yeah. Of course, that considered, there could tangentially be an option to save a session, which could also be aware of that feature… idk. If my ideas are hole-filled and starry-eyed, I can safely blame sleep deprevation 06:44
moritz Mouq: IMHO the idea isn't bad, it's just not good either :-) 06:48
Mouq: we want stuff to behave on the REPL as closely as normal code as makes sense 06:49
Mouq Haha, kk, I see :) 06:52
06:53 salv0 left 06:55 bjz joined 06:56 salv0 joined 07:03 alini joined 07:10 vendethiel left 07:11 vendethiel joined 07:13 gfldex left 07:14 jack_rabbit left 07:15 vukcrni joined 07:18 Mouq left 07:20 gfldex joined, avalenn left 07:22 lea_ joined, lea left 07:24 lea_ left, lea_ joined, lea_ is now known as lea 07:25 colomon left 07:26 daxim left 07:27 gfldex left, lea left, lea joined 07:32 vendethiel left 07:33 colomon joined 07:35 diana_olhovik joined 07:36 vendethiel joined 07:39 [Sno] joined 07:41 _dolmen_ left 07:42 chenryn left
avuserow mjp: constant three = 3; say so pi ~~ /{three}/ 07:42
r: constant three = 3; say so pi ~~ /{three}/
camelia rakudo-{parrot,moar} 1b0d7a: OUTPUT«True␤»
07:43 FROGGS joined
TimToady um, that is merely matching the null string 07:44
FROGGS backlogs to see if TimToady is mad at him...
07:45 adu left, lea_ joined
TimToady doesn't get mad, he just gets even 07:45
07:45 lea_ is now known as figment
TimToady m: constant three = 3; say so pi ~~ /<{three}>/ 07:46
camelia rakudo-moar 1b0d7a: OUTPUT«This type cannot unbox to a native string␤ in sub MAKE_REGEX at src/gen/m-CORE.setting:15042␤ in block at src/gen/m-CORE.setting:14968␤ in method INTERPOLATE at src/gen/m-CORE.setting:14958␤ in method ACCEPTS at src/gen/m-CORE.setting:15090␤…»
TimToady m: constant three = '3'; say so pi ~~ /<{three}>/
camelia rakudo-moar 1b0d7a: OUTPUT«True␤»
TimToady m: constant three = 3; say so pi ~~ /<{~three}>/
camelia rakudo-moar 1b0d7a: OUTPUT«True␤»
TimToady that's actually matching the 3 now
07:49 figment left, figment joined, coffee` joined 07:53 chenryn joined 07:54 adu joined 07:55 figment left 08:00 vendethiel left 08:01 Mr0rris0 joined, Mr0rris0 left, figment joined
avuserow oh I see, it executes the code but doesn't return it to match 08:01
I'm a bit surprised I didn't get a 'useless use of constant in sink context' or something 08:02
08:04 prime left
TimToady there's a bug 08:05
m: 42; 43; 08:06
camelia rakudo-moar 1b0d7a: OUTPUT«WARNINGS:␤Useless use of constant integer 42 in sink context (line 1)␤»
TimToady m: sub foo { 42; 43 }
camelia ( no output )
TimToady doesn't seem to trigger inside blocks
avuserow okay thanks. /me sleeps & 08:07
08:08 alini left 08:09 darutoko joined 08:14 prime joined, vendethiel joined 08:22 echowuhao left 08:30 abraxxa joined 08:35 vendethiel left 08:36 spider-mario left 08:37 vendethiel joined 08:45 figment left, xinming joined 08:46 tengignick joined 08:54 alini joined 08:57 alini left
lizmat jnthn: regarding Supply.close: we expose .tappers, Supply.close is basically just a wrapper around that 08:58
perhaps we shouldn't expose .tappers if we want to prevent action at a distance ? 08:59
09:00 vendethiel left 09:01 Ven joined 09:03 _mg_ joined 09:05 vendethiel joined 09:09 Ven left
jnthn lizmat: Quite possibly, yes. Is there anything depending on its exposure? 09:11
09:11 chenryn left
jnthn TimToady: Question is, where the cache the trans thingy we computed... 09:11
lizmat ProvatePublishing uses them
*Priv 09:12
09:13 skarn left, skarn_ joined
lizmat jnthn: not sure how PrivatePublishing role would be able to get to Supply!tappers 09:13
jnthn lizmat: I note that only 2 things use its methods 09:16
lizmat: Even though many others compose it
09:16 diana_olhovik left
jnthn lizmat: So maybe the answer is to kill off that role; it seems most things that mighta once used it now do not 09:18
09:18 chenryn joined, Alina-malina left
lizmat ok, will look at that later then :-) 09:19
trying to fix the symlink mess I made late last night
09:20 fhelmberger joined, Alina-malina joined, Ugator joined, telex left 09:22 telex joined
jnthn :) 09:24
09:24 virtualsue joined, fhelmberger left
lizmat I just can't seem to get nqp to build using the latest (local) MoarVM 09:24
jnthn I normally build Moar, then --prefix=... --backend=moar to NQP's configure 09:25
Then once that's in place, I can make NQP after a make install of Moar
(unless NQP changes enough to need re-configure) 09:26
arnsholt Oh, Moar-related question: How much of what goes on top has to be recompiled when I update Moar?
(Only thing that'll actually change is a REPR, FWIW) 09:27
JimmyZ --backend=moar is default now
09:31 dakkar joined
FROGGS lizmat: here are the scripts I use, I never have problems building anything: gist.github.com/FROGGS/7427c9879a131df96d34 09:31
lizmat: the commented lines are other options, like building several backends or bisecting rakudo with the correct nqp and vm 09:32
lizmat FROGGS++
dalek p: b55f7c4 | lizmat++ | tools/build/MOAR_REVISION:
Bump Moar to get correct symlink testing
09:33
p: ee45f1e | lizmat++ | t/nqp/19-file-ops.t:
Activate symlink test again
FROGGS arnsholt: often it is enough to recompile moar and then just run your perl6 script... nqp and rakudo usually can be left untouched
jnthn arnsholt: What FROGGS said, pretty much. :)
arnsholt: I make install Moar without re-building NQP/Rakudo most of the time 09:34
(When I'm actively doing Moar dev)
09:34 espadrine joined
arnsholt Yaaay! 09:35
Just having flashbacks to when I hacked on the Parrot REPRs and ended up accidentally recompiling all the things =)
09:36 wicope joined
FROGGS and since compiling moar just takes seconds, it is quite fun to work on the vm :o) 09:36
in contrast to parrot
even for the jvm you can just recompile the .java files without the need to build anything else 09:37
JimmyZ yeah, that's why my most commits it to moarvm :P
*is
FROGGS :o)
JimmyZ: you are a weenie :P 09:38
jnthn Turns out "exploit human laziness" is a good software design principle :P 09:39
FROGGS aye
jnthn: that describes my job at work best
JimmyZ consider rakudo was taking 600s to compile on parrot :( 09:40
FROGGS I create software to support the lazyness of about 500 peeps
JimmyZ on my note book
FROGGS JimmyZ: aye
it is pain
09:40 pecastro joined 09:42 adu left 09:43 fhelmberger joined 09:48 alini joined
dalek kudo/nom: de85b09 | lizmat++ | tools/build/NQP_REVISION:
Bump NQP to get symlink fix
09:53
kudo/newio: 7a543d1 | Mouq++ | docs/ChangeLog:
Add two ChangeLog entries
09:56
rakudo/newio: 7b39dad | lizmat++ | src/core/ (2 files):
rakudo/newio: Make Str.WHY no longer a special case
09:56 dalek left
lizmat sorry dalek 09:56
09:57 dalek joined, ChanServ sets mode: +v dalek 09:59 Ven joined 10:00 _mg_ left 10:02 diana_olhovik_ joined 10:03 virtualsue left 10:06 baest joined 10:08 Ven left
dalek p: 2ac8aab | lizmat++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Add nqp::lstat op
10:12
p: f7586fc | lizmat++ | tools/build/MOAR_REVISION:
Bump MOAR to get lstat op
10:12 kjs_ joined 10:14 tengignick left 10:15 chenryn left, larion joined 10:17 zakharyas joined 10:20 tengignick joined, kjs_ left 10:22 kjs_ joined 10:25 rindolf joined
masak antenoon, fellow sixers. 10:27
tadzik hello masak \o/
10:28 Ven joined
dalek kudo/nom: 600c1a6 | lizmat++ | tools/build/NQP_REVISION:
Bump NQP to get nqp::lstat op
10:28
lizmat masak tadzik /o
masak salutes, too
masak .oO( ten-HUT )
I like me a little bit of strict discipline on the IRCs. 10:29
morale has been slack recently.
dalek kudo/newio: 600c1a6 | lizmat++ | tools/build/NQP_REVISION:
Bump NQP to get nqp::lstat op
10:30
kudo/newio: 65ade27 | lizmat++ | tools/build/NQP_REVISION:
Merge branch 'nom' into newio
10:33 Ven left, Ven joined
Ven \o, masak – me and my shaky wifi salute you 10:33
10:35 kjs_ left
masak a late contender in the mini-challenge to generate 4x4 mazes: gist.github.com/masak/81409152053431cac80b 10:36
this one works by attrition: remove anything that's not a maze :)
FROGGS amazing :o)
masak except for the data section, the program is delightfully short.
if anyone's interested, I'd be eager to get help before the publishing of my post to make this one faster. 10:37
that could happen in three ways, I think:
(a) profiling
(b) turning the string handling of $s into just bit handling of $n (I have some ideas on that, but not quite enough yet) 10:38
10:38 Ven left
masak (c) reordering the list of bitmasks to make the more common ones happen first 10:38
I'll be sure to mention (and karma) anyone who helps. 10:40
ooh, ooh, and do we have enough of native arrays yet to turn everything into 'int' ? 10:41
that'd help, I think.
jnthn I wrote a lot of the profiler, does that count as helping? :P
masak no; sorry.
jnthn No, I'm not that far along with native arrays yet.
masak dang.
anyway, once you *are*...
...this might be a good program to try and convert. 10:42
jnthn *nod* :)
10:42 chenryn joined 10:45 virtualsue joined
masak .oO( in the meantime, I could just store the ints in 627 separate variables... ) :P 10:46
10:48 Akagi201 left 10:49 prevost joined
masak m: my $x = "OH HAI"; say MY::{"\$x"} 10:51
camelia rakudo-moar de85b0: OUTPUT«OH HAI␤»
El_Che What ever you guys do with Perl 6, make sure the ecosystem doesn't resemble the ruby gems ecosystem. What a moving target :( 10:52
tadzik *cough*
El_Che of corse you've seen this, but in case not: www.infoworld.com/article/2882300/p...-year.html 10:53
tadzik I blame the fact that it's all yound and early thing
10:53 chenryn left
El_Che tadzik: I blame the hipsters and their big glasses 10:54
:)
tadzik well, I was talking about perl 6:P
El_Che tadzik: wait till the hipsters arrive by Christmas :) 10:55
tadzik hah
would that make it better? :)
El_Che it will make it hip :)
11:00 kurahaupo1 joined
masak m: my $x = 42; { say OUTER::MY::{"\$x"} } 11:01
camelia rakudo-moar de85b0: OUTPUT«42␤»
masak m: my int $x = 42; { say OUTER::MY::{"\$x"} }
camelia rakudo-moar de85b0: OUTPUT«Lexical with name '$x' has a different type in this frame␤ in method at_key at src/gen/m-CORE.setting:11555␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:3533␤ in block <unit> at /tmp/dpXZUwLhsB:1␤␤»
masak well, that didn't work too well.
could someone please explain?
"has a different type"? different, how? from what?
oh, even this: 11:02
m: my int $x = 42; say MY::{"\$x"}
camelia rakudo-moar de85b0: OUTPUT«Lexical with name '$x' has a different type in this frame␤ in method at_key at src/gen/m-CORE.setting:11555␤ in sub postcircumfix:<{ }> at src/gen/m-CORE.setting:3533␤ in block <unit> at /tmp/3KmCulU_0z:1␤␤»
11:02 Guest45 joined
jnthn masak: MY:: just doesn't know what to do with natives yet. 11:02
masak dangit.
and here I thought I could simulate a native array using MY::
jnthn Urgh
masak well, there goes that plan :)
jnthn You've no idea how slow that'd be :P
11:02 chenryn joined
masak I was just about to find out! :P 11:03
jnthn But yeah, there's a reason I've been spending the last while on improving the state of native stuffs :P
masak glad to hear it
this is the first use case I have for them, I think. ever. 11:04
dalek kudo/newio: 6cf07e9 | lizmat++ | src/core/IO (2 files):
De-Huffmanize IO.i/.v -> .inode/.device
11:12
11:12 alini left
Peter_R No type checking on slury params? 11:12
Is that because the check is done on the container type? 11:13
[ptc] is there a difference between qw and qqw? 11:17
I can't seem to find anything about qqw in the specs, however it definitely exists
m: qw{a b c} ~~ qqw{a b c}
camelia ( no output )
11:17 virtualsue left
lizmat m: my $a = 42; say qw/a = $a/; say qqw/a = $a/ 11:17
camelia rakudo-moar de85b0: OUTPUT«a = $a␤a = 42␤»
tadzik I think qq interps
yes
[ptc] lizmat: thanks :-) 11:18
lizmat m: my $a = 42; say qw/a = $a/.perl; say qqw/a = $a/
camelia rakudo-moar de85b0: OUTPUT«("a", "=", "\$a")␤a = 42␤»
tadzik lizmat++
lizmat m: my $a = 42; say qw/a = $a/.perl; say qqw/a = $a/.perl
camelia rakudo-moar de85b0: OUTPUT«("a", "=", "\$a")␤("a", "=", "42")␤»
[ptc] that's odd, I got different results from my locally installed perl6
m: say qqw{a b c} ~~ qw{a b c}
camelia rakudo-moar de85b0: OUTPUT«True␤»
[ptc] say qqw{a b c}.perl 11:19
m: say qqw{a b c}.perl
camelia rakudo-moar de85b0: OUTPUT«("a", "b", "c")␤»
lizmat m: say qqw{a b c} ~~ qw{b c d}
camelia rakudo-moar de85b0: OUTPUT«False␤»
[ptc] m: say 1qw{a b c}.perl
camelia rakudo-moar de85b0: OUTPUT«===SORRY!=== Error while compiling /tmp/5O8QlYWv2h␤Confused␤at /tmp/5O8QlYWv2h:1␤------> say 1⏏qw{a b c}.perl␤»
lizmat hmmm
[ptc] m: say qw{a b c}.perl
camelia rakudo-moar de85b0: OUTPUT«("a", "b", "c")␤»
[ptc] I think the interpolation thing is what I needed to know 11:20
am trying to document the behaviour and wasn't sure how it worked
lizmat m: my $a = 42; say qqw{$a b c} ~~ qw{$a b c}
camelia rakudo-moar de85b0: OUTPUT«False␤»
[ptc] ok, that makes sense
lizmat++
11:21 alini joined
jnthn [ptc]: I think there were a couple of Perl 6 advent posts on quoting stuff (think I did one with a punny title a year or two back) that may be a source of inspiration for documenting the quoting stuff. 11:21
11:21 grondilu joined
lizmat I did one this year :-) 11:22
[ptc] jnthn: ok, I'll have a look, thanks!
btw: qqw is word quoting and not shell quoting, right?
11:22 average joined
average hello 11:22
question
lizmat [ptc]: perl6advent.wordpress.com/2014/12/...-steroids/
average in the Perl6 specs(or elsewhere), is there a grammar for Perl6 as a language ? (just like C has a grammar, and Java has a grammar, etc) 11:23
11:23 vendethiel left
average please notice, I'm not asking about Perl6's feature called "grammar" which is a way to write parsers for languages.. 11:24
I am asking about Perl6's grammar, its own grammar
is there one ?
[ptc] lizmat: thanks, yup found it
jnthn average: Perl 6's own grammar is written/specified as a Perl 6 grammar
Peter_R github.com/perl6/std/blob/master/STD.pm6
average jnthn: ok, thanks
jnthn: is that expressible as an ANTLR grammar ? 11:25
or in a different popular parser generator syntax
dalek p/js: 19cdd82 | (Pawel Murias)++ | src/ (6 files):
Stub some HLL ops and add a hack that deserializes VMArrays as regular JavaScript arrays.

I do this so that we can enable the hll setting part of our hybrid moarvm/js setting. I need this to be able to start working on rules.
jnthn average: Not easily 11:26
average that's a problem
jnthn average: For the purpose of syntax highlighting, you can get a good enough approximation.
average jnthn: yeah, I'm afraid syntax highlighting is the most simple use-case for it 11:27
11:27 dustinm` left
average my initial thinking was around tools to write LINT-ers and static code analysis 11:27
in 2015, these tools are considered very important
dalek kudo/newio: e046851 | lizmat++ | src/core/IO.pm:
Add FILETEST primitives for lstat access
average and everyone uses them 11:28
lizmat bbiab&
11:28 rindolf left 11:29 pmurias joined
masak average: agreed. 11:29
11:30 vendethiel joined
jnthn average: Syntax highlighting needs a more sloppy parser anyway. 11:30
masak right. forgiving.
pmurias average: linters, static analyzers and code formatters should use the builtin Perl6 grammar (which is written in Perl6)
11:30 virtualsue joined
masak except for what jnthn just said :) 11:30
11:30 Guest45 left
average well, there's also OpenGrok which is a really nice project that I personally like very much 11:30
I brought up OpenGrok because in order to index Perl6 code, it would be important to have some sort of parsing going on 11:31
jnthn average: For linters and so on, what pmurias said - we'll provide an open API to the parser etc. so you can get the real document object model
average to get "variable names" , "class names" , etc
11:31 Guest45 joined
pmurias for syntax highlighters the problem is more complex 11:32
11:32 grondilu left
average I constantly read the news and I find many many posts and articles lately that sort-of kinda want to say "Perl6 is out, c'mon use it use it" 11:32
I would like to say that before such posts/articles go out, and if you really want to get adoption, you really need good support at least in the 2 major editors that the vast majority of Hackers use 11:33
and we all know what those two editors are: Emacs and Vim
or Vim and Emacs, I have no preference for one or the other(I use both) 11:34
building an exclusive editor for Perl6(like Padre wanted to be for Perl5) is suboptimal in my opinion 11:35
11:35 dustinm` joined
arnsholt (I use one and force the other one to pretend to be my editor when I have to use it =) 11:35
pmurias average: I don't feel anyone is currently planning to build a custom Perl 6 editor 11:36
[ptc] m: my $a = 42; say qqw{$a b c}; say «$a b c»; 11:37
camelia rakudo-moar 600c1a: OUTPUT«42 b c␤42bc␤»
average pmurias: great, then support in the 2 established editors is a very important thing to pursue
pmurias average: the bad things is that writing vim plugins is not very fun
average of course, my knowledge on the subject may be out-of-date, and such support is probably already in place.
pmurias: writing Vim plugins is not very fun but it's very important 11:38
arnsholt There's Perl 6 mode for vim
It's pretty good, but not perfect by any measure
jnthn github.com/vim-perl/vim-perl
average in terms of auto-completion, that was something Perl5 got horribly wrong 11:39
pmurias arnsholt: does it do anything other than syntax highlight?
arnsholt Not AFAIK
average excuse me if I may be wrong, but the only proper Perl5 auto-complete engine is plsense github.com/aki2o/plsense
[ptc] hrm, is qqw equivalent to « » ?
average it's the only one that works well but is very slow
[ptc] or even equal to that?
I'm only confused since the output of say gives different results, but ~~ says that they match 11:40
average I really hope that before Perl6 is considered "production ready", such tools are shipped with it, or are considered to be of significant importance
pmurias I consider editor/ide support very important 11:41
average are there any auto-complete(or omni-completion) engines for Perl6 at this point in time ?
pmurias I don't think so
[ptc] m: qqw{$a b c} === «$a b c» 11:42
camelia rakudo-moar 600c1a: OUTPUT«===SORRY!=== Error while compiling /tmp/BZBiN8zkc_␤Variable '$a' is not declared␤at /tmp/BZBiN8zkc_:1␤------> qqw{$a⏏ b c} === «$a b c»␤ expecting any of:␤ postfix␤»
[ptc] m: my $a = 42; qqw{$a b c} === «$a b c»
camelia ( no output )
[ptc] m: my $a = 42; say qqw{$a b c} === «$a b c»
camelia rakudo-moar 600c1a: OUTPUT«True␤»
average pmurias: ok 11:44
arnsholt average: Exactly how to expose the grammar and AST is being worked on ATM
pmurias average: is there a good way to plug auto-complete into vim/emacs without jumping through vimscript hoops? 11:45
arnsholt I think there's a framework for plugging in completion to vim
tadzik also, nvim :)
it works quite nicely, actually
average pmurias: when writing plugins for either vim or emacs, one has to know vimscript for vim and elisp for emacs
arnsholt But it'll likely depend on pregenerated caches, vim not supporting subprocesses and all
tadzik it didn't like some of my python plugins iirc, but otherwise was pretty much a drop-in replacement 11:46
average pmurias: avoiding to use their own scripting languages is possible(for Vims built with Perl/Python/Ruby/Lua support) but that brings with it more problems than solutions
pmurias: so although Vimscript may be ugly and miserable, I think it's still the best way to write a Vim plugin 11:47
Peter_R How can I concatenate two lists?
Or arrays, rather
average pmurias: in Emacs, Elips has been and still is the de-facto language to write modes for Emacs. Recently Guile support has been introduced, but Elisp remains the one that is most used for this purpose..
moritz Peter_R: with a , in between
average *Elisp 11:48
moritz m: my @a = 1, 2; my @b = <a b>; .say for @a, @b
camelia rakudo-moar 600c1a: OUTPUT«1␤2␤a␤b␤»
11:48 grondilu joined 11:49 sqirrel_ joined
[ptc] moritz: do have an idea as to why 'my $a = 42; say qqw{$a b c}' gives different output to 'my $a = 42; say «$a b c»' yet they are ostensibly the same thing? 11:49
Peter_R moritz, I am passing the result to a function expecting a single array, it seemed to end up treating the input as a two element array, where each was one of the original arrays
I worked around it with this but it is ugly (@nums, @nums2).flat 11:50
pmurias average: I was hoping there is something that just exposes a json protocol
moritz m: my $a = 42; say qqw{$a b c} 11:52
camelia rakudo-moar 600c1a: OUTPUT«42 b c␤»
eiro average++ # words of widsom about using viml
hello everyone
moritz m: my $a = 42; say «$a b c»
camelia rakudo-moar 600c1a: OUTPUT«42bc␤»
tadzik hello eiro
moritz m: my $a = 42; say «$a b c».perl
camelia rakudo-moar 600c1a: OUTPUT«("42", "b", "c")␤»
moritz m: my $a = 42; say qqw{$a b c}.perl
camelia rakudo-moar 600c1a: OUTPUT«("42", "b", "c")␤»
[ptc] see what I mean?
moritz [ptc]: it seems the latter is passe as one argument, and the former as three 11:53
so some kind of flattening issue
11:53 average left
moritz god, how I hate those 11:53
[ptc] moritz: how did you work that out?
eiro average, i really would like plsense in vim but the documentation isn't enought to help me to achieve that
[ptc] moritz: so say treats the guillemets differently to the other construct?
moritz m: sub f(*@a) { say @a.elems }; my $a = 42; f «$a b c»; f qqw{$a b c} 11:55
camelia rakudo-moar 600c1a: OUTPUT«3␤3␤»
moritz m: multi f(*@a) { say @a.elems }; multi f($one) { say 'one'}; my $a = 42; f «$a b c»; f qqw{$a b c}
camelia rakudo-moar 600c1a: OUTPUT«3␤one␤»
moritz [ptc]: golf'd
11:56 daxim joined
Peter_R moritz, if I want to use types I can't even concatenate in place anyway :S 11:57
moritz Peter_R: what kind of types?
11:57 [Sno] left
Peter_R Are there plans to do type inference type stuff? e.g. an array formed from Numeric @arrays must be itself a Numeric 11:58
[ptc] moritz: so the contents of « » is passed as a list of the elements, and the other passes the elements as a single element?
moritz [ptc]: ... when there is a single-element multi candidate available, yes
m: sub f(*@a) { say @a.elems }; my $a = 42; f «$a b c»; f qqw{$a b c}
camelia rakudo-moar 600c1a: OUTPUT«3␤3␤»
moritz here not
11:59 [Sno] joined
moritz anyway, «...» and qqw{...} behaving differently is a bug 11:59
[ptc] moritz: so is it possible to say that the two forms are equivalent? Or should I leave the « » out of the docs?
moritz m: multi f(*@a) { say @a.elems }; multi f($one) { say 'one'}; f «b c»; f qqw{b c}
camelia rakudo-moar 600c1a: OUTPUT«2␤one␤»
moritz [ptc]: yes, equivalent
[ptc] oh, so I'm not as dumb as I thought I was, cool :-) 12:00
moritz: I've documented it like this: my $a = 42; my @list = «$a b c»; say @list; so that the output is the same between the two forms
moritz: we don't want to confuse the users :-) 12:01
moritz [ptc]: ok. Did you submit a bug report?
12:03 Ven_ joined
[ptc] moritz: no. Not 100% sure how to describe the problem. 12:03
moritz: should I just say that "say" gives different output? 12:04
Peter_R m: sub f (Numeric @arr) { 1 }; my Numeric @arr1 = 1,2,3; my Numeric @arr2 = 4,5,6; f((@arr1, @arr2).flat)
camelia rakudo-moar 600c1a: OUTPUT«Type check failed in binding @arr; expected 'Positional[Numeric]' but got 'List'␤ in sub f at /tmp/i_YUztU9pJ:1␤ in block <unit> at /tmp/i_YUztU9pJ:1␤␤»
Peter_R m: sub f (Numeric @arr) { say @arr.perl }; my Numeric @arr1 = 1,2,3; my Numeric @arr2 = 4,5,6; my Numeric @arr3 = @arr1, @arr2; f(@arr3)
camelia rakudo-moar 600c1a: OUTPUT«Array[Numeric].new(1, 2, 3, 4, 5, 6)␤»
Peter_R ^ moritz
moritz Peter_R: yes, I tell anybody who listens not to use typed arrays 12:06
they simply aren't as user-friendly as the level we are used to in Perl 6
Peter_R But what if you want to use them, or more to the point, are there any plans to implement type inference to make them nicer to use? 12:07
dalek kudo/nom: e2b01fe | lizmat++ | / (4 files):
Revert "Add IO::Symlink stub"

It appears we don't need a IO::Symlink class after all.
12:08
Peter_R and / or use this to allow type checking on slurpy params
dalek kudo/newio: e2b01fe | lizmat++ | / (4 files):
Revert "Add IO::Symlink stub"

It appears we don't need a IO::Symlink class after all.
12:09
kudo/newio: a4eac1e | lizmat++ | / (4 files):
Merge branch 'nom' into newio
12:11 vendethiel left 12:13 vendethiel joined
dalek kudo/newio: 9e6831b | lizmat++ | src/core/IO.pm:
Eradicate IO::Symlink completely
12:14
12:16 Guest45 left, tengignick left
dalek ecs/newio: 32d0ad7 | lizmat++ | S (2 files):
Revert "Get rid of DESTROY fossils"

This reverts commit 56c5710c527cf6a0e9df71f9ed06930e594ea453.
12:25
ecs/newio: 72242eb | moritz++ | S17-concurrency.pod:
Fix example for $s.tap, mentioned in #77
[ptc] moritz: bug report submitted
ecs/newio: b7196bd | moritz++ | S (2 files):
Require "no strict;" to enable lax mode

literals or bare "v6;" do not seem to be explicit enough for our current taste (and -e still defaults to lax mode)
ecs/newio: ca9b96b | FROGGS++ | S (3 files):
minor corrections about -e and strictness

Now it should be clear that one-liners (-e) are lax by default and that only 'use strict' and 'no strict' have an effect on one-liners and scripts.
ecs/newio: ccd57f9 | lizmat++ | S (6 files):
Merge branch 'master' into newio
12:27 virtualsue left
dalek ecs/newio: b86f207 | lizmat++ | S16-io.pod:
De-hufmannize IO.i/.v -> .inode/.device
12:29
12:32 cognominal joined
cognominal I wish that a collection not having a method, but its element having it as a predicate would iterate and grep. 12:34
> '.'.IO..dir.w
Method 'w' not found for invocant of class 'List'
> '.'.IO..dir.grep: *.w
12:34 vendethiel left, prevost left 12:37 virtualsue joined 12:39 rmgk_ joined, rmgk is now known as Guest54264, Guest54264 left, rmgk_ is now known as rmgk
cognominal hum, typo : s/ '..' / . / 12:39
12:40 |Tux| left, |Tux| joined
cognominal btw 12:41
dalek ecs/newio: 5a57b95 | lizmat++ | S16-io.pod:
Add blurb about symlink (lstat) methods
cognominal > '.'.IO.dir>>.w
Failed to find '.#p6' while trying to do '.w'
pmurias eiro: the actuall meat of the plugin (that does the Perl 6 parsing and autocompletion) won't be in vimscript for sure 12:42
lizmat and that concludes my contribution for today
dalek c: b8c13ad | paultcochrane++ | lib/Language/quoting.pod:
Document qqw word quoting
lizmat afk until much later&
cognominal "File is a symlink to a nonexistent target" would be a more interesting message here for that crap left by emacs. 12:43
lizmat cognominal: in the newio branch, that would be .e is false, and .l-e is true
really afk now&
cognominal lizmat++ 12:44
12:46 grondilu left 12:48 Guest45 joined, cognominal left 12:49 vendethiel joined
eiro pmurias, why not ? 12:50
12:53 sqirrel_ left 12:54 Ven joined 12:57 [Sno]_ joined, [Sno] left, [Sno]_ is now known as [Sno] 12:59 wicope left 13:00 skids left 13:11 cognominal joined 13:19 Guest45 left 13:23 chenryn left 13:24 spider-mario joined 13:28 yeahnoob joined, kurahaupo1 left 13:37 gfldex joined 13:49 Mr0rris0 joined, Mr0rris0 left 13:50 Mr0rris0 joined, Mr0rris0 left, Mr0rris0 joined 13:51 Mr0rris0 left, Mr0rris0 joined, Mr0rris0 left 13:52 Mr0rris0 joined, tengignick joined, Mr0rris0 left, Ven_ left, Mr0rris0 joined 13:53 Mr0rris0 left, Mr0rris0 joined 13:54 Mr0rris0 left, Mr0rris0 joined, Mr0rris0 left 13:55 Mr0rris0 joined, Mr0rris0 left, Mr0rris0 joined 13:56 Mr0rris0 left, Mr0rris0 joined, Mr0rris0 left 13:57 Mr0rris0 joined 14:07 rindolf joined
Ven masak: ping 14:08
masak Ven: pong 14:09
dalek c: 72686fc | paultcochrane++ | lib/Language/quoting.pod:
Document shell quoting constructs (qx and qqx)
Ven masak: I wanted to discuss about how you envision DSL building 14:10
(with marcos, that is)
masak .oO( "a suffusion of yellow" ) 14:11
Ven: ok, let's focus on what we know for sure. 14:12
a slang is anything. it's parsed by a Perl 6 grammar, handled by actions, and in the end, we have something Qtree-ish.
on a vanilla day the Qtree is just stuff from the Perl 6 language itself. on mint chocolate days, there are a few new Q types thrown in. on chili pistachio days, it's all foreign Q nodes. 14:13
Ven (maybe somebody violating-2terms macros will want new Q(-like) nodes?) 14:15
masak two things make slangs more powerful than what we've just said so far: (a) the ability to contain slangs, and (b) the ability to (lexically) access their surroundings.
Ven: I'm not at all clear how new Q nodes get registered. though in some sense that's a minor solvable detail. 14:16
Ven: the simplest case I can think of is registering a new Q node for a user-defined infix operator.
Ven Isn't that just a QCall?
masak "Q node type", I mean, but that was probably clear.
14:16 virtualsue left
masak Ven: it could be represented as a call, but that's not how I chose to do it in 007. 14:17
14:17 virtualsue joined
masak and not how I'd prefer to do it in Perl 6. 14:17
yes, they're operationally the same.
b2gills El_Che: thanks for the infoworld link
masak but syntactically and structurally, they're different.
Ven I... think I disagree. 14:18
the whole power comes from the fact that's -- it's just calls!
I can say &infix:<+>
I can call assuming on those. They're really just functions 14:19
14:19 vendethiel left
masak you can't call assuming on `2 + 2`, though. 14:19
Ven if you want a QCall::Infix, that seems alright, but imho it should be a "subclass" of QCall
yes, just like you can't call assuming on add(2, 2)
masak I see what you mean, but I don't agree. 14:20
Ven an operator application is a function call. why pretend it's not?
masak the viewpoint seems Lispish ("everything's just function calls"), but without a reward for mixing the two things together.
I mean, I completely agree that they are unified. in the custom-ops branch, 007 is quickly heading to a point where they have the same code path, even. 14:21
Ven It's the inverse in lisp... "what's a macro and what's not?"
masak from the perspective of the user who does a grep for all the calls in the source code, and gets all the calls *and* all the operators, your suggestion would be the opposite of helpful. 14:22
I think that's the core of my disagreement. that the unification of that level ends up being confusing and surprising.
Ven I disagree.. being able to use "refactoring" tools on both seems nice 14:23
masak that leads me to my second point. 14:24
calls are structurally very different from operators.
calls have a name and arguments.
operators come in different types: prefix, infix, postfix...
all of which have different shapes of their data.
Ven shapes of their data?
masak an infix has an lhs and an rhs.
Ven I'm not saying both should be considered absolutely identical, but both are "a child of" a "Call"
masak a prefix just has a term. 14:25
Ven just like functions have different arities
(listop are n-ary as well)
masak I understand your argument perfectly. I just don't see the benefit.
listop will probably just be another call, the distinction between `foo(1, 2)` and `foo 1, 2` being eradicated along the way to Qtree. 14:26
Ven yes, definitely, Qtree should be AST not CST
masak otoh, I don't tend to consider listops to be ops. :)
they're just a funny call syntax. 14:27
14:30 baest left
Ven masak: ... same for operators in general, right? :P 14:31
masak in a sense, yes.
14:31 |Tux| left, Tux__ joined
masak it's a cute unification, and one that goes fairly deep. 14:31
but not as deep as the Q type hierarchy, I would say. 14:32
Ven okay, I'll have to make a parallel that goes back to the beginning of the discussion
because I actually had something different to discuss in mind.
masak oki
Ven I actually wanted to talk about *defining DSL* 14:33
Ven goes back to masak's strange blog consistently posted 14:34
14:34 vendethiel joined, sivoais left, tengignick left, Tux__ left 14:35 Tux__ joined
Ven masak: alright, so, yes -- about "inside". this has always been bothering for some reasons 14:35
this isn't how I'm "used" to building macros. Usually, you just have the "outside" macro and then you "peel off" layers inside. 14:36
14:37 tengignick joined
Ven macro foo($block) { for $block.ast -> { when QAst:Call & .arguments.grep({ .literal && .literal.name == '$_' }...) } } 14:38
14:38 tengignick left
Ven masak: what I mean is -- commit/rollback "shouldn't" be macros (with "should" being "currently, no one does it like that") 14:38
pmurias masak: when manipulating AST I would like to be able to easily treat &infix:<+>(1,2) and 1+2 the same 14:40
Ven (same here :-).) 14:41
masak ok, noted.
Ven the "peeling inside" is important because outer macros are expanded first
masak not in Perl 6.
parsing order is the crucial thing here.
14:41 sivoais joined 14:42 Tux__ is now known as |Tux|, tengignick joined
pmurias something like &infix:<+> is just a "boring" operator (it's a function call parsed differently) 14:42
something like &infix:<&&> is a "interesting" operator 14:43
14:43 |Tux| left, |Tux| joined
masak wishes he had thought about pointing to infix:<&&> as not just a simple call 14:44
Ven considers infix:<&&> as a "macro"
pmurias calling macros using the normal function call syntax like macro foo() {}; foo() feels a bit wierd 14:45
masak of the "thunkish params" variety, yes.
Ven masak: in lisps, the outer macro is expanded macros because you might very well introduce operators or subs
14:45 Rounin joined
masak pmurias: doesn't to me. 14:45
Ven: that sentence didn't parse for me. 14:46
Ven masak: "outer-macro { inner-macro {} }" – the outer one might want to introduce variables
or subs. which means that, if the inner one is called first, it might be an issue
masak the inner one is parsed first. it's called as it's parsed. 14:47
pmurias masak: have you thought about having a sigil or some other marker for macros?
Ven I know it is
I think grammars can work with inner-first parsing because no other "parsing stuff" has been applied to $<inner>.made
but for outer? the inner one will have been fully expanded
masak pmurias: no, and I have a large negative weight attached to the suggestion of "let's introduce a sigil!" 14:48
pmurias: far as I'm concerned, macros slotting in as subs is a feature.
Ven: I guess there could be a mechanism for macros to request being called after some other macro (or not at all)... 14:51
Ven uuhhh, complicating the rules doesn't seem very nice
masak without complications, the innermost macro runs first.
Ven masak: that doesn't help with what I said -- you get fully-expanded code in the outermost 14:53
and you prevent outermost from introducing functions and variables, or modifying state 14:54
14:54 adu joined
masak 's alarm of "two people trying and failing to explain a thing to one another" goes off 14:55
Ven The common pattern is *not having inner macros*. the outer macro just inspect the code (macrowalk and such) and modifies it "in-place"
Yes, definitely, that's why I stopped to gather my thoughts
14:55 vendethiel left
masak the macro needs to do something in order to get called before the block (and the inner macro things) are parsed 14:56
[Coke] TimToady++ # interview circuit, apparently.
masak I currently has that as 'is parsed', but in the fullness of time that mechanism may get replaced by something else
colomon cpp.indi.frih.net/blog/2014/12/the-...-for-rand/ # huh 14:57
Ven colomon: no one should be using it :P
masak colomon: I read that earlier today. interesting.
colomon: perhaps some lessons to be drawn there for how we do randomness in Perl 6.
colomon masak: right, that’s what I was wondering
timotimo i'm kind of confused every time somebody (in this case timtoady himself) claims the gradual typing system gives our optimizer better information to work off of 14:58
i was under the impression that we hardly optimize anything based on that
colomon masak: both in terms of what we want to provide, and how we’ve already implemented it
masak colomon: *nod*
Ven masak: I'd like to illustrate with 50 years of lisp examples, though, so I'll let it be for now :) 14:59
.oO( macrospoiling )
masak :)
Ven: I promise to get to it soon.
14:59 |Tux| is now known as TuX 15:00 TuX is now known as Tux
Ven that's what I tell my homotopy type theory book too :P. 15:00
masak Ven: currently I'm finishing up the last bits of a blog post about 4x4 mazes. then I'll get back to macroblogging.
15:00 Tux is now known as |Tux|
Ven that means big blogs? 15:00
masak and I cannot lie.
Ven wow :P
masak Ven: if you have any nice insights about homotopy theory, consider me an interested listener.
Ven that's... not a reference I expected. Or that I expected to understand 15:01
masak hehe
Ven: have you heard Coulton's version? it's mellow.
Ven I havn't heard either version, really. I just read that at point, and googled to get the referene
s/ene/ence/
masak listen to the Coulton version. it's available for free on his site. 15:02
15:02 |Tux| left, |Tux| joined
tadzik in style of Glee? :P 15:03
masak I wouldn't know.
tadzik I accidentally social engineered my university btw. Quite scary (for an innocent fella) and quite hilarous for me
masak tell us more
tadzik tl;dr I called to resign my application and they kicked out someone else instead
masak o.O 15:04
Ven Oo
tadzik I called saying "hey, you called me before and offered to transfer me the $specialization-I-don't-like, I'd rather not study at all"
15:04 Rounin left
tadzik they said "okay, crossing you out" 15:04
now I am on the student list for the next semester, so I call them to ask if they reassigned me to $the-one-I-like instead
they said "no, we called you and you said you are fine with studying on $the-one-you-don't-want" 15:05
I say "no, I called you back and withdrew that"
they say "no no, that was $innocent-fella"
I check the list again, $innocent-fella is not on it
he got the same call to get transfered and agreed
masak poor $innocent-fella
tadzik presumably between the two calls with me 15:06
yeah, I'm trying to reach him and warn him
which leads to an obvious exploit where I call as @every-single-student and say that I want to cancel my application, thus making room for myself
Ven :') 15:07
masak imagines tadzik calling repeatedly, making up a sillier voice each time
Ven hasn't heard tadzik's voice to start with :P 15:08
tadzik you'd think a technical university will do at least some validation
but that reminds me of another story, of a guy who broke into the university systems 15:09
they told us about him as a warning, saying "you know, once a guy broke in and the only reason he wasn't kicked out is because he had good grades!"
> broke into the system
> had good grades
15:09 vendethiel joined
tadzik hmmmmmmmmmmmmmmm 15:09
timotimo m)
tadzik I guess it's not so obvious to think about the most obvious reason why one'd seek unauthorized entry into university's systems 15:10
masak moral of the story: do not break into the university system unless you're *sure* you can bump your grades. 15:11
Ven ...which we'll generalize as "you can cheat so long you don't get caught" :P 15:12
masak yes, but the cheating and the getting caught are not completely orthogonal, which is important too. 15:13
muraiki hi all. I'm having problems building nativecall on perl6 2015.01-44-g166cd3c with MoarVM version 2015.01-6-g89ddb76. should I just file an issue in the zavolaj repo? 15:14
timotimo are you on a 32bit or a 64bit system?
muraiki oh wait, it seems to be a variant of an existing issue 15:15
yeah, 32-bit
sorry, I see a related issue now
I have more failures though
timotimo we're not that good at 32bit systems ;(
muraiki doh
timotimo also, we don't have a JIT for x86, only for x86_64
Ven masak: he didn't *really* got caught :P
timotimo wait, didn't we fix the 32bit nativecall problem a few months ago? 15:16
muraiki there's comments from only 6 hours ago
github.com/jnthn/zavolaj/issues/37
masak Ven: my point. because of his grades (which may very well have been because of the hacking).
FROGGS timotimo: it was clean at some point, yes 15:19
timotimo: looks like we have a regression
timotimo muraiki: what kind of system is that? only today i read "of course i have a 64bit system, this isn't 2005 after all!"
muraiki FreeBSD, but unfortunately a bit old of a version, 7.3-RELEASE-p2 15:20
timotimo mhh OK
muraiki apparently I'll be getting a new dev vm sometime soon
and it might even be linux!
but for now this is what I have :(
15:21 adu left, sqirrel_ joined 15:22 aborazmeh left 15:23 chenryn joined
timotimo huh, "unknown type vmarray"? 15:29
is that a zavolaj checkout from git or a panda install NativeCall?
muraiki panda install 15:30
timotimo that should definitely get the latest version 15:32
oh
15:33 yeahnoob left, chenryn left
timotimo my perl6 version is about 60 commits ahead of yours, and my moarvm version is 25 commits ahead 15:33
15:33 vendethiel left 15:34 chenryn joined
muraiki d'oh 15:34
I guess this is the point where I should figure out a commit to get rakudobrew working on freebsd
timotimo that could help. ISTR the "can use Buf as CArray" commit is fairly recent, which is probably what's behind the "blah blah vmarray blah" error
muraiki but I only ever use freebsd on this dev vm at work, so I'm not really a freebsd guy
timotimo oh, but a fix for that would be lovely :)
muraiki now to remember how I got things working, haha 15:35
timotimo good luck! i'll be AFK for a bit now 15:36
muraiki also, this freebsd is so out of date I'm not even sure if my fix is necessary
argh
pyrimidine Does anyone know who is heading up Google Summer of Code this year (for The Perl Foundation)?
timotimo from what year is it? i don't know much about freebsd release dates
tadzik dukeleto, most likely 15:37
I mean, I'd expect that he's involved in some way :)
muraiki timotimo: 20...10 :(
for perspective, we still use cvs here
pyrimidine tadzik: thanks, I'll check in with him 15:38
timotimo that's fair, 2010 isn't that long a .... oh crap
15:40 molaf joined
btyler pyrimidine: blogs.perl.org/users/shadowcat_mdk/...-2015.html gives some details too 15:40
muraiki so yeah, I think I'll wait until I get a new freebsd vm before trying to commit any patches to rakudobrew, lest I support a 5 year old system only to break things on actually current systems
btyler there's a distinct lack of p6 on the ideas page: wiki2.enlightenedperl.org/index.php...Ideas_Page :) 15:42
tadzik oh, we have them on github
jnthn It'd probably be good to get them on that page... 15:43
btyler ok. well, some coordination with mdk++ might be in order
15:45 vendethiel joined
pyrimidine I agree, having them spread out isn't a good idea. 15:45
We (Open Bioinformatics Foundation) had the same problem with the various projects posting ideas everywhere. Had to do some herding to get them to work together 15:46
btyler++ tadzik++ # thanks! 15:47
dalek c: 90ed55d | paultcochrane++ | lib/Language/quoting.pod:
Mention `shell` and `run` in the `qqx` section
15:52
c: d0d4de5 | paultcochrane++ | lib/Language/quoting.pod:
Point to regexes docs from quoting docs
|Tux| doc.perl6.org/language.html <= misses a section on IO. "How do I open a file (for reading/writing)" 15:54
doc.perl6.org/type/IO::Handle has close but no open 15:55
15:56 adu joined 15:58 anand_ joined, anand_ left, skids joined
|Tux| doc.perl6.org/routine/open does not describe any valid options 15:59
FROGGS |Tux|: the problem seems to be that the /routine/open shows method open instead of the sub open 16:00
|Tux| doc.perl6.org/sub/open does not exist 16:01
[ptc] |Tux|: feel free to open issues in github.com/perl6/doc
|Tux| github.com/perl6/specs/blob/master...ary/IO.pod helps (I hope) 16:02
[ptc] |Tux|: btw: did you spot my PRs for Test::Smoke? (just wondering) 16:03
|Tux| I saw them but I have been busy with other issues
je needed two days to re-release all my modules after removing recommended entry for perl in META as the default changed to follow recommendation :/ 16:04
[ptc] no worries. Sometimes GitHub doesn't send messages through
|Tux| and I took that to also move all my git stuff over from repo.or.cz to github
16:07 vendethiel left 16:08 tengignick left 16:15 chenryn left, chenryn joined
muraiki I successfully built the latest moarvm, nqp, and perl6 from git, but when I try to build panda I get "Missing or wrong version of dependency 'src/gen/m-CORE.setting'" 16:19
is this something going wrong in panda, or did I do something wrong in the build process for one of the other three things?
I did run the tests for rakudo before doing an install
arnsholt Sounds like you've got old precompiled files lying around 16:21
(Precompiled files of Panda, that is)
16:23 vendethiel joined 16:25 mr-foobar joined
muraiki where would those files be kept? it seems make clean doesn't work... 16:25
oh, I don't even have a makefile of any sort generated yet
dalek c: 1fbf07c | paultcochrane++ | lib/Language/io.pod:
Add stub file to document IO

TODO items adapted from comments by |Tux|++
16:26
|Tux| muraiki, do you (now) have both moar-HEAD and moar-nom? 16:27
muraiki what's moar-nom? sorry, I'm a noob :( 16:28
|Tux| do you use rakudobrew?
16:28 kst` joined
muraiki I never got it to work successfully on this freebsd version, so I don't know if it left stuff behind... but I did have successful older versions of moar, nqp, rakudo, and panda installed 16:28
I was just trying to update everything 16:29
I made sure to use --prefix to install to the same dir
|Tux| if you did so using rakudobrew, you probably should start afresh
16:29 raydiak left, anocelot left, raydiak joined, anocelot joined 16:30 kst left
|Tux| clear out your complete rakudobreaw, make a fresh git clone; cd rakudobrew; rakudobrew build moar (with your prefix); rakudobrew build-panda 16:30
muraiki oh, I can't get rakudobrew to work at all on freebsd. 16:31
I had built everything manually
well, I just deleted ~/bin/moar so let's try rebuilding everything
|Tux| rakodobrew improved over the last few month. care to try again?
muraiki ok :)
16:32 rurban joined
timotimo panda has a "rebootstrap.pl" that you may need to run in order to get rid of the "missing or wrong version of dependency blah" thing 16:33
16:34 diana_olhovik_ left
muraiki ok, rakudobrew died where it died last time: probing whether your compiler thinks that it is gcc clang: not found 16:34
I need to tell it to use gcc and gmake
16:35 zakharyas left
muraiki for moarvm I normally perl ./Configure.pl --make gmake --os freebsd --compiler gcc 16:37
b2gills It would be better if it realized it was on BSD and set the defaults appropriately
BinGOs for 10.0 and above there is no gcc on FreeBSD in base. 16:38
muraiki this is ancient freebsd 16:39
7.3
which is why I had given up trying to get rakudobrwe to work, heh
so yeah, I think I'll just install manually. if I have time I can try to get a new freebsd in a vm at home and see how rakudobrew works... it's probably fine on a modern system 16:41
there's no point in making it work on 7.3 though
16:41 chenryn left 16:42 wicope joined
Ven m: my int $i = 0; $i += 1 if (([+] rand xx 2 X* 2) < 1) for ^10; say $i 16:42
camelia rakudo-moar e2b01f: OUTPUT«3␤»
BinGOs that is so eol.
Ven okay, so this piece of code is not at fault
Unhandled exception: getlex: outer index out of range Segmentation fault: 11 16:43
Okay, that's pretty bad.
16:43 echowuhao joined
Ven aaaand... it's a flapping segfault 16:43
alpha- flappy segfault 16:44
Ven ugh. pretty bad.
hahainternet it's about as bad as you get an inconsistent segfault, but at least you can narrow down the causes fairly quickly 16:45
the fact it's inconsistent is actually a debugging technique
Ven well, here I'm not sure what's at fault but yeah
but reducing the test case is harder with segfaults.
y'know, I'm going to get myself a better rakudo to start with, I guess
2014-12.45 16:46
16:47 alini left 16:50 andreoss joined
timotimo haha 16:50
you silly :)
Ven okay, that segfaults more often now, it seems :P 16:55
m: await do for ^4 { start { my int $x = 0; $x += 1 for ^40_000; } } 16:57
camelia ( no output )
Ven m: await do for ^4 { start { my int $x = 0; $x += 1 for ^250000000; } }
camelia rakudo-moar e2b01f: OUTPUT«(signal SEGV)»
Ven here it is.
16:59 Ven left, larion left, echowuhao left
timotimo can't get that to crash on my local machine 17:01
also, it doesn't seem like it's doing much? 17:02
ah, local dirtyness
retupmoca m: await do for ^5 { start { buf8.new } } # RT#123702 related? 17:04
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123702
camelia ( no output )
retupmoca m: await do for ^5 { start { buf8.new } } # RT#123702 related?
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123702
camelia rakudo-moar e2b01f: OUTPUT«Unhandled exception: No appropriate parametric role variant available for 'Buf'␤ at <unknown>:1 (/home/camelia/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:21703 (/home/camelia/rakudo-inst…»
retupmoca native int, so probably not
dalek c: df4a66f | moritz++ | lib/Type/DateTime.pod:
Document DateTime constructors
c: c5017e6 | moritz++ | lib/Type/DateTime.pod:
More DateTime docs
retupmoca could be a different race in the metamodel, though 17:06
maybe
17:06 diana_olhovik_ joined
timotimo it'd be kinda cool if camelia could profile code and spit out the link to the html result file 17:07
17:08 lucas__ joined
timotimo yeah, now it actually takes time to run 17:09
m: await do for ^4 { start { my int $x = 0; $x += 1 for ^250000000; $x } }
camelia rakudo-moar e2b01f: OUTPUT«(signal XCPU)»
timotimo "cpu time limit exceeded" 17:11
interesting, i get Unhandled exception: This type cannot unbox to a native integer 17:12
17:15 Rounin joined 17:16 echowuhao joined 17:18 telex left 17:20 telex joined
lucas__ Hello channel. If I understand correctly, the unit type is the Any typeobject, and not Nil. Any special reason for that? Wouldn't you like if it was the other way around? It would make it more similar to other languages... 17:21
skids Nil is a nonpresence of something that should be there. There are actually undefs for each type. 17:22
m: Int.defined.say
camelia rakudo-moar e2b01f: OUTPUT«False␤»
skids So you know whether you have an undef, or a type error. 17:23
pmurias jnthn: is it expected that there are a lot of closures with no context when compiling code with 'multi method bar() {...}'? 17:24
skids ("Nil" does in fact exist, if you call being a nonexistance existing.)
hoelzro o/ #perl6
lucas__ skids: thanks for answering. 17:26
The thing is Nil is a special case... maybe it should have be named Void? :) 17:27
geekosaur more defined than bottom, less defined than undef :p
pmurias hoelzro: hi
lucas__ Let's say you have some typed arrays and hashes. Let's for some reason you want some positions to be undefined... You have to use the right kind of undefined type for each type, right? 17:29
jnthn pmurias: Those probably correspond to teh cloned dispatcher.
lucas__ Isn't this a little more type-safe than Java? Since now even your "nulls" must be typed.
17:30 Kristien joined
jnthn pmurias: If you inherit a proto, it needs cloning in the method table of the sub-class so the candidate lists are kept apart. 17:30
skids lucas__: if you want to designate that "yes I knew what I was doing when I filled in this array" then yes.
pmurias jnthn: if I just make up an empty context stuff should work?
skids lucas__: If you want to designate that "wow I was really supposed to put something here and I have no way of knowing what to, then use Nil"
pmurias jnthn: what I mean is it a safe thing? 17:31
skids m: my Int $a; $a = Nil; $a.say;
camelia rakudo-moar e2b01f: OUTPUT«(Int)␤»
jnthn pmurias: Probably; they'll get capturelex'd later on, I guess. 17:32
pmurias capturelex is a rakudo thing? 17:33
17:34 Kristien left 17:35 fhelmberger left
timotimo assigning nil into places resets them to the default value 17:35
right?
skids Yes but with the caveat:
m: my Int @a; @a = 1,Nil,2; @a.say;
camelia rakudo-moar e2b01f: OUTPUT«1 2␤»
lucas__ timotimo: I think so. And I think this breaks the "different things should be different" principle.
skids Nil in a list eats commas.
moritz iirc that's outdated semantics 17:36
skids Oh good, that seemed a bit hinky.
Though I guess having something that does eat list positions might be handy on occasion. 17:38
moritz ()
skids right
jnthn pmurias: Well, used by NQP also, though in NQP on Moar we don't ever emit such things directly, but rather leave it for the compiler. Thing is, I guess you're punting some amount of your closure semantics to JavaScript. 17:39
skids RT#118717 already covers that deprecation I think, then. 17:40
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118717
pmurias jnthn: I'm trying to move as much closure semantics to JavaScript as I can get away with 17:41
17:43 cognominal left
pmurias hoelzro: I'm working on getting test 55 multi methods work on now 17:46
afk&
17:46 pmurias left
hoelzro pmqs: awesome! I started looking at curlexpad yesterday, but I'm wary about breaking too many things 17:47
er, sorry pmqs
abraxxa tadzik: are you open for a pull-request to change the git urls in rakudobrew to https? at work I'm not allowed to do ssh to the outside world 17:48
17:48 vendethiel left 17:50 larion joined 17:53 dakkar left
[Coke] other configure items in the toolchain respect --git-protocol 18:00
18:00 vendethiel joined
[Coke] (coulton) (in the style of glee) Coulton did his track first, and it (the arrangement) was shamelessly ripped off by the producers on glee, who seemed to feel coulton should be thankful for the exposure, and no credit. 18:01
Glee--
hoelzro I wonder if there's a proxy that one can run that would convert git:// to http://
probably
abraxxa git:// is ssh 18:02
jercos hoelzro: assuming you mean to the smart git protocol, they're basically already ready
abraxxa: nope!
git:// is an unencrypted, typically unauthenticated protocol usually only used for anonymous cloning
moritz abraxxa: git:// is *not* ssh
abraxxa my bad, i'm using ssh:// at work 18:03
jercos it's entirely made up of the awkward 4-byte-ASCII-numeric length prefixed chunks
jercos is not fond of git wire protocols :|
hoelzro: anyways such a proxy is entirely technically feasible, and could probably be made very fast and efficient 18:04
as in, streaming from one to the other, without needing to fully buffer
18:06 gfldex left 18:07 wicope left, mohij joined
hoelzro yeah, even a dumb proxy would be good enough 18:07
I'm betting something like that exists
abraxxa GAH! where does it lean the panda submodules from? they use git:// as well 18:09
moritz abraxxa: fwiw I have a git-subrepo based clone of panda somewhere (that only needs a single pull, no recursing) 18:10
18:10 Kristien joined
Kristien hi 18:10
moritz \o Kristien 18:11
Kristien I got my book!
moritz \o/
18:11 rurban left
abraxxa found it in .gitmodules 18:13
18:13 _mg_ joined
moritz abraxxa: you might also need to edit .git/config 18:15
abraxxa moritz: can i override the git with the https protocol that way?
Kristien I'd be scared if I found It in .gitmodules.
moritz abraxxa: submodules keep redundant meta data
Kristien git submodules are FUBAR 18:17
hoelzro could you use url.insteadOf to fix git:// urls?
18:18 larion left, Mouq joined
abraxxa tadzik: the link help.github.com/firewalls-and-proxies/ is broken in the panda README.md 18:18
i'm fed up by those stupid things, bye! 18:21
18:21 abraxxa left 18:23 vendethiel left 18:24 mohij left, kst` is now known as skt 18:25 skt is now known as kst, _mg_ left 18:26 vendethiel joined 18:27 virtualsue left
pmichaud TimToady++ # excellent infoworld article 18:27
TimToady oh, it came out? 18:28
pmichaud www.infoworld.com/article/2882300/p...-year.html
[Coke]++ for posting the link to FB :)
sjn yeah, that's a good article 18:30
18:31 sqirrel_ left
moritz it's also the top post on reddit's r/perl 18:35
masak here: www.reddit.com/r/perl/comments/2vkd...n_perl_60/ 18:36
18:39 mohij joined 18:40 grettir joined, sqirrel_ joined
b2gills m: say ('b'..'ba').elems; say ('b'..'aa').elems; say ('b','c'...'aa').elems; # say ('b'...'aa').elems 18:47
camelia rakudo-moar e2b01f: OUTPUT«52␤0␤26␤»
18:50 vendethiel left
nine_ The comments on reddit read surprisingly non-hostile. 18:51
skids m: say 'b' cmp 'aa'; say 'a' cmp 'aa'; 18:53
camelia rakudo-moar e2b01f: OUTPUT«More␤Less␤»
Kristien When I was still in college we had a presentation by some guys from a webdev house and somebody from the audience asked them why they used Ruby instead of Perl. They said "because Perl isn't popular anymore." :(
Humbedooh that's the best reason...buzz factor! 18:54
TimToady whatever is coming after the hipsters, we'll get them to think we're popular :)
maybe we should say that Perl 6 is a Sixth Generation Language :) 18:55
Humbedooh I think the new thing is called....cutesters :\
18:55 aborazmeh joined, vendethiel joined
TimToady if Perl 5, Python, and Ruby are fifth generation... 18:55
well, maybe cutesters will like butterflies
18:56 diana_olhovik_ left
Humbedooh interjects Lua 5.x for selfish reasons 18:56
Kristien We need some Dane to invent a coupling-enforcing Perl library for making websites.
That'll make Perl popular again!
Humbedooh great, more Danes... ;)
El_Che Kristien: you're too old
Kristien: you meant apps
:)
Kristien They now do stuff in Haskell. 18:57
18:57 diana_olhovik joined, larion joined 18:58 _mg_ joined
Kristien I heard from an intern that the project failed. 18:58
masak Humbedooh: you're connected to Lua somehow?
Humbedooh well....I'm the maintainer of httpd's mod_lua for no other reason that being the only one who knows how to use the language :\
masak Humbedooh++ 18:59
Kristien I once used Lua as a target language. I was surprised that having a label after a return statement was a syntax error.
timotimo TimToady: what kind of things do cutesters test?
Humbedooh: ^
Humbedooh which also means I can predict perl6 support for mod_perl in....2027
timotimo compilation units?
er ... mod_perl? are you serious? 19:00
Humbedooh it's supposedly still a thing
Kristien why is Apache still a thing
19:00 aborazmeh left
Humbedooh they are just lagging behind by a few years :) 19:00
timotimo have there been talks at every conference entitled "mod_perl needs to die"
Humbedooh Kristien: because Java....and big data
though not the server, the foundation :)
Kristien I mean apache httpd
Humbedooh one word :\ .htaccess
nine_ I still use apache httpd, because, why not? 19:01
Kristien Make a .htaccess module for Nginx!
Humbedooh waits for someone to mention that httpd is slow and 10kc and what not... :) 19:02
19:02 aborazmeh joined, aborazmeh left, aborazmeh joined
Kristien maintains an application that suffers from 10kc. :( 19:03
19:03 espadrine left
nine_ OTOH I am actually trying to figure out how to replace apache. Because using it as reverse proxy, I just cannot find out why I get those spurious 502 and 503s and it really doesn't help that there are no less than 4 (!) different ways to disable keepalive... 19:04
Humbedooh nine_: replace it with traffic server maybe? :)
nine_ Humbedooh: traffic server?
Humbedooh that's our http/[12] forward/reverse/transparent caching proxy 19:05
Kristien I use nginx for proxying to php-fpm and for serving static files and for caching.
tried varnish but it's shit and doesn't support TLS.
nine_ I guess if I really replace it (at least partially) it will be with nginx because that's what most people seem to be using in front of their starman backends and that can really help with finding solutions. 19:06
19:07 lucas__ left
mst Kristien: it isn't shit, and it doesn't support TLS for good reason 19:08
Kristien: titus+varnish is an interesting possibility
El_Che the central login at the university where I work is based on shibboleth. The default Service Provider (consuming the central login) for website is an apache add-on.
Kristien > "First, I have yet to see a SSL library where the source code is not a nightmare."
Well, first of all, you don't need the source code of the SSL library in order to use it. Secondly, I know at least one which is pretty code. 19:09
And there are probably more.
"We would terminate SSL sessions, and we would burn CPU cycles doing that." you gotta do what you gotta do, no matter whether you cache it with Varnish or another tool. 19:10
masak finds www.reddit.com/r/perl/comments/2vkd...n_perl_60/ quite uplifting 19:11
mst but doing it in a separate process gives you a much better situation wrt. thread models
Kristien It basically says because caching with SSL is a little slower than without SSL, it makes caching _completely_ useless, which is obviously false.
mst hence titus' architecture
El_Che masak: the trolls are probably in an other timezone :)
Kristien brb shower 19:12
19:12 Kristien left
TimToady El_Che: it's been up for 23 hours 19:12
so obviously the trolls all live in that 1-hour sliver 19:13
nine_ That must be a dark place indeed
El_Che The Mariana Trench, the deepest place in the ocean :) 19:14
skids El_Che read my mind.
nine_ And I thought trolls were something scandinavian :)
skids Maybe there's just something way more attractive to trolls out there today. 19:15
Humbedooh with fuzzy pink hair?
TimToady or maybe the trolls have switched from step 3 back to step 1
bcode personally I think the trolls are all gathered at some troll conference on troll strategies
TimToady obviously it would at Con-troll 19:16
Humbedooh read that as "some way more attractive trolls" and nearly had a revisit from his consumed coffee
El_Che on the other hand, maybe now they hears p6 is coming, the are meeting like crazy to organize the trollfest at Christmas
sjn puts on his reddit flameretardant suit, and reads masak's link
El_Che Retaking TimToady's analogy of his fosdem talk: the dark army is gathering
TimToady Rohan will come, won't they? 19:17
19:17 pecastro left
Humbedooh cues "When last I looked, ...." 19:18
TimToady and the ghosts of armies past...
19:18 Gothmog_ joined 19:19 gfldex joined
TimToady I guess that's the p5ers, and rohan is the cutesters, since obviously we have to make this an allegory, oh wait... 19:19
19:19 vendethiel left
Humbedooh hah 19:19
19:20 aborazmeh left
El_Che :) 19:20
19:21 vendethiel joined 19:24 pecastro joined 19:26 Mouq left
FROGGS TimToady++ # nice buzz-word rich and marketing satisfying interview :o) 19:26
19:26 [Sno] left 19:29 sqirrel_ left
TimToady well, I knew infoworld was more boss-oriented, so I tilted it that way 19:30
masak sjn: no flames. that was the nice part. 19:31
TimToady the pythonistas were the closest to that, but they're still somewhere between step 1 and step 2 19:32
and flaming is step 3 19:33
the we-already-won mindset is a good way to forget to keep up, which is part of why Jon threw the mugs in the first place 19:35
nine_ Even use lib is block scoped? 19:36
TimToady the pythonistas do have a point, of course, and python has done a good job of appealing to scientists and kids
we need to do that too
scientists will probably like some of the more APLish facets of P6 19:38
19:38 _dolmen_ joined
TimToady and Perl will appeal more to the mathematically oriented crowd that wants things to work more like all the fancy math operators, and less like a set of names with a bit of sytnax 19:38
*nt 19:39
muraiki does p6 have something like pandas' dataframes?
TimToady that is a way in which Lisp and Python are similar, and to some extent Haskell
relying on names everywhere means you don't get visual distinctions that math formulas provide
Mathematica falls into the same trap 19:40
muraiki: link? 19:41
muraiki pandas.pydata.org/pandas-docs/dev/g...Frame.html
you can kind of think of it as a spreadsheet as a data structure, on steroids
19:41 lichtkind joined
muraiki it's super nice to use 19:41
I guess R has something similar, too, but from what I've heard pandas' is quite nice in comparison 19:42
anyways, from the tiny bit of "data science" I learned sampling some moocs, it seems like a must have feature for scientific computing anymore
but it is way beyond my ability to implement, hehe :) 19:43
TimToady well, we can just import them with Import::Python :)
muraiki woot
TimToady but if it's important to support them natively, should be pretty doable, if not easy 19:44
er, Inline::Python, I mean
muraiki yeah, I think what's most difficult about them is optimizing their performance. I think they're all in C under the hood for python
TimToady but yeah, we intend to make Python libraries easily available in P6 clothing
muraiki that's neat, I wasn't aware of Inline::Python 19:45
19:45 _dolmen_ left
TimToady and if they're in a C shared lib, we can just talk to them directly using Nativecall 19:45
muraiki yeah, that's something else I've been meaning to try out :D 19:46
TimToady 'course, we might need a PyObject representation to do that
depending on how they structure the data, and the dependencies on python internals
nine_ It cannot be much worse than PyQt4. 19:48
I actually tried using PyQt4 with Perl 5's Inline::Python about 5 years ago but gave up after two weeks. Was just stubbornness that I got through this time. 19:49
TimToady anyway, I think there will be no shortage of people wanting to do those kinds of crossovers
19:50 zakharyas joined
TimToady well, pretty much everyone here is stubborn by definition :) 19:50
TimToady goes back to stubbornly reading the backlog 19:51
19:52 cmiller1 joined 19:54 vendethiel left
TimToady we might want to define our own anyway, if we decide the api is too pythonic 19:56
stubborn backlogging is helped by popping up the backlogging window instead of the DataFrames window... 19:57
19:57 vendethiel joined
El_Che Is Nativecall akin to JNI? 19:57
nine_ El_Che: think so 19:58
TimToady 2nd cousins, I believe :)
nine_ I have a class name as a Str. How do I get to the corresponding class object?
TimToady m: say ::("Int").WHAT
camelia rakudo-moar e2b01f: OUTPUT«(Int)␤»
nine_ Of course! This language being so consistent it just had to be the same as with functions :) 19:59
TimToady: thanks :)
19:59 cmiller1 left
TimToady we only have about two different syntaxes for symbolic lookups, ::($sym) for lexical/global symbols, and ."$sym"() for method names 20:01
well, unless you want to dig into metamethods
but those aren't syntaxes 20:02
backlogging, STUBBORNLY!
oh, it's lunchtime... 20:03
jnthn: impressions on the idea at irclog.perlgeek.de/perl6/2015-02-12#i_10101900 20:04
dalek line-Perl5: 89ffa5b | (Stefan Seifert)++ | / (2 files):
v6::invoke for invoking P6 class methods (like ctors) from P5.

my $foo = v6::invoke('Foo', 'new');
20:06
TimToady jnthn: on caching .trans, I think we have to break the method API (but not tr///) into two bits, one to compile, and one to execute 20:07
the only way to cache in a single method call would be to generate immutable argument lists (of pairs!) with a known identity 20:08
masak if we're breaking .trans's API, then I have a few suggestions.
maybe I should put together a gist?
TimToady but old-fashioned tr/// syntax is known to be immutable, so we can do the two-step underneat that 20:09
20:09 virtualsue joined
dalek ast: c66e341 | moritz++ | S02-literals/pairs.t:
pairs.t: fix some tests, remove wrong tests; unfudge for rakudo
20:09
TimToady masak: sure, ideas are cheap, except when they're not
masak *nod*
20:09 molaf left
TimToady underneat is a cool word 20:10
jnthn TimToady: On the idea, it looks...odd to me, tbh. I'd have trouble guessing what that syntax did.
TimToady maybe that's what P6 is all about
jnthn TimToady: On splitting the .trans API up, then yes, wtf
uhh
tr/tf/fm/ :P
moritz muscle memory :-) 20:11
jnthn
.oO( Clearly I'm *way* too used to typing one of those two TLAs... )
dalek c: 3f83ccb | moritz++ | lib/Type/DateTime.pod:
Unbreak markup
20:11 tengignick joined
jnthn TimToady: We could even for some (all) tr/// forms do the first step at compile time, perhaps. 20:11
TimToady I just said that, I thought 20:12
masak though, 'yes, wtf' has a hearty sense of abandon to it as well...
jnthn TimToady: I'm still catching up on backlog :P
TimToady is eating lunch now instead of backlogging, oh wait... 20:13
dalek c: 7dafe3e | moritz++ | lib/Type/DateTime.pod:
DateTime.Date
jnthn This is front-logging
TimToady: I agree from a compiler impl point of view that the 42.@foo() thing would be a simple enough transform.
TimToady surely it's treeing on the front, and time is what cuts them down to make logs
jnthn TimToady: From a lang point of view I'm a bit confused :)
TimToady a set of handlers is just as confusing, if not more so
vendethiel timotimo: yeah, I also got "this class doesn't implement access interface" or something along those lines 20:14
TimToady and we could really use the reverse subscript for l2r-ness
vendethiel might be confusing it with elixir's error messages, but still knows approx. what the error was
TimToady and I've always thought of arrays and hashes as just very restricted mapping functions
moritz a very functional view 20:15
TimToady that's part of why the return type has always been specified on the individual elements
so it's a pretty tagmemically good thing to jam an array in there and use it like a method/function 20:16
it feels like something people will get used to very quickly
jnthn TimToady: I'm in no way attached to the current meaning. Just not immediately attached to the new one either ;)
dalek line-Perl6: 6e5fda2 | (Stefan Seifert)++ | / (7 files):
New OO API for easy use'ing and creating P6 objects.

my $p6 = Inline::Perl6->new;
  $p6->use('Foo');
my $foo = $p6->invoke('Foo', 'new'); my $bar = $foo->bar('baz');
vendethiel nine_++
nine_: now I feel compelled to ask. Can I use Inline::Perl6 from Inline::Perl6? :D
nine_ vendethiel: that's definitely on my list :) 20:17
vendethiel ahaha :D
20:17 coffee` left
vendethiel nine_: I'll make sure your place in hell is... hella comfy :P 20:17
TimToady I was thinking of this last night because I was revising rosettacode.org/wiki/Textonyms#Perl_6, and wanting to rewrite a line: 20:18
my @dials = @words.classify: { @c2d[.ords].join }
nine_ vendethiel: since Inline::Perl6 is using Inline::Perl5 internally it should actually be quite simple to stack them endlessly :)
vendethiel that's pretty nice to hear - for real
TimToady my @dials = @words.classify: { .ords.@c2d.join }
or so
moritz we could start by having .map and .for candidates that accepts arrays and hashes
instead of going all the way to a new syntax 20:19
TimToady this feels a bit more rule-2ish to me
especially since we have variants like .@c2d(:kv) 20:20
that would be difficult to manage with the .map approach 20:21
and frankly, it also is more justification for the existence of sigils in P6 :)
moritz isn't sold yet 20:22
TimToady tough crowd :)
moritz stubborn crowd :-)
TimToady :-) <- conservative smiley :) <- progressive smiley 20:23
20:23 echowuhao left
skids resisting the urge to drop hyperop laden code into a heavily emoticoned comment area just to see what happens. 20:25
20:25 darutoko left
nine_ vendethiel: this stacking might even be necessary if people really start using Inline::Perl5 to bootstrap Perl6 modules and Inline::Perl6 to use Perl6 in Perl5 codebases. The Perl6 modules they use might be the ones that are using Inline::Perl5 :) 20:26
vendethiel nine_: erm, I think this is obviously going to lead to issues, if only performance ones 20:27
dalek line-Perl6: d2341b8 | (Stefan Seifert)++ | / (4 files):
Version 0.03
TimToady well, they'll be interesting issues at least
nine_ slow code >> no code 20:28
vendethiel no, definitely; but I think this is a situation we should try to avoid if possible :-)
skids New benchmark: time to reach 100000 layer p5/p6 cake.
vendethiel slow code > no code, but dog-slow code is a bit worthless as well
TimToady at least it's motivation to port
vendethiel yes, definitely 20:29
nine_ vendethiel: we actually don't know that it will be dog-slow. It sounds plausible, but we don't have any numbers at all on that.
TimToady I worry more about unforeseen interactions that P5 is so good at
vendethiel nine_: depends with how many nesting. I'm just worried that "core"-ish modules will try to use it :-)
modules that are going to be "dependend upon" should try not to use either
nine_ There's going to be plenty of edge case fun for sure.
dalek c: cc53cff | moritz++ | lib/Type/DateTime.pod:
DateTime: some timezone related methods
20:30
TimToady
.oO("I was expecting to get my feet wet, not my nose bloodied...")
20:31
dalek c: a1eca19 | moritz++ | lib/Type/DateTime.pod:
Fix headings
nine_ vendethiel: I'm really not sure if it's that bad at all. We do use Inline::Python at work in our CMS. And we use it in the worst possible way by having lots and lots of small Python expressions. And it still does quite ok.
vendethiel nine_: I'll trust you then :-). But I don't think it "imports * from perl5" inside :P
nine_ vendethiel: the CMS is written in Perl while templates use Python syntax to call the CMS' API methods. So there is lots of layering. 20:32
vendethiel I see. That's interesting.
nine_ vendethiel: and yes, that does hurt performance but not as badly as it sounds. 20:33
vendethiel nine_: have you seen that video of "php/python" interop?
nine_ vendethiel: no
vendethiel like, the guy mixes both freely, and has a partly-visual editor
but it's a different approach - I think the VM handles both.
20:34 _mg_ left
bartolin m: class A { method foo() { say "Foo!" } }; my A $a .= new.foo; say $a 20:35
camelia rakudo-moar e2b01f: OUTPUT«Foo!␤A.new()␤»
bartolin that's from RT #114464. do you think it's supposed to work like that? 20:36
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=114464
jnthn Um, well, I understand why it works like that. :) 20:37
But that's a different question :)
20:39 Rounin left
moritz would have expected "Foo!nTruen" as output 20:39
20:39 tgt joined
bartolin yes, that's what masak also said back in 2012. 20:40
20:41 Kristien joined
bartolin (if I understand said ticket correctly) 20:41
Kristien hi
dalek line-Perl5: a3fc639 | (Stefan Seifert)++ | README.md:
Update README to reflect new features like use :from<Perl5>
20:42
Kristien I'm code golfing in Perl 5!
I should try doing it in Perl 6.
moritz m: say (50, 40, &infix:<div> ... 0)[*-2] 20:44
camelia rakudo-moar e2b01f: OUTPUT«40␤»
moritz erm
m: say (50, 40, &infix:<%> ... 0)[*-2]
camelia rakudo-moar e2b01f: OUTPUT«10␤»
moritz a nicely obfuscated GCD 20:45
though not realy golfed
20:45 andreoss left 20:47 bjz left 20:50 kurahaupo1 joined 20:51 pecastro left 20:52 rindolf left
vendethiel Kristien: it's quite good. you should look at examples on codegolf.se 20:52
Kristien I posted mine on codegolf.se. 20:53
TimToady P6 golf measures itself in morphemes, not in keystrokes
Kristien it was this: sub{c.pop=~s/..$//r}
barewords FTW 20:54
normally WTF though!
TimToady FTWTF
jnthn m: say 'FTW'.flip # :D
camelia rakudo-moar e2b01f: OUTPUT«WTF␤»
20:55 alini joined
Kristien I wish $_ were $_[0] in a subroutine. 20:55
It is in LiveScript. 20:56
FROGGS use $^a
Kristien Perl 5
vendethiel Kristien: it's "it" in livescript :) 20:57
Kristien That's what I said!
vendethiel: it is fun with unit testing libraries. 20:58
my colleague had a nice debugging session because of it
vendethiel well, "itt = it" or (...)-spamming. we talked about it already...:)
Kristien what is itt? "it and only it"? :D
TimToady lol
vendethiel yep
20:59 diana_olhovik left
Kristien P66 is "Perl 6 and only Perl 6" 20:59
21:00 bcode left
vendethiel
.oO( and what about p666? )
21:00
21:00 echowuhao joined
Kristien wishes an if statement used the "iff" keyword to be less ambiguous 21:00
TimToady Perl 6 and only Perl 6 except for the parts that are Perl 6
p666 being sort of a religious statement, as it were 21:01
21:01 bcode joined
Kristien if (x) { l: foo(); } /* this is if but not iff! */ goto l; 21:01
alpha- still waiting for black perl 2
TimToady p6 doesn't have "the poetry optimization", alas 21:03
mst y/// iff ...;
Kristien I apparently have some PHP code analysis tool which prints a CRAP index. I'm worried because it's so low. 21:04
TimToady maybe it's all html 21:05
dalek c: 2b73d96 | moritz++ | lib/Language/quoting.pod:
quoting: link to Proc::Async from qx// docs
21:06
Kristien > A CRAP of >= 30 means that no amount of testing can make your method not crappy.
TimToady such a high standard, Not Crappy...
skids GTC 21:07
21:07 adu left
TimToady next Lego movie, Everything Is Not Crappy! 21:07
dalek c: 1d442c2 | moritz++ | lib/Language/unicode_entry.pod:
(hopefully) improve title for unicode_entry.pod, [ptc]++
21:08
moritz but we learned that the only sensible code review metric is WTFs/min, no? :-) 21:09
Kristien the code review metric I use is ∉ {C, Java, PHP} :P 21:10
moritz hurls a C++ at Kristien 21:11
Kristien catch (...) { std::abort(); }
jdv79 anyone know of something like a Perl::Critic for p6? 21:13
oh, i'm sorry. i meant PerlTidy
source code formatting
TimToady not that I know of
sjn sees something called Perl6::Format on modules.perl6.org/ 21:14
haven't tried it 21:15
moritz that's string formatting for Perl 6
sjn aah
TimToady re irclog.perlgeek.de/perl6/2015-02-12#i_10103294 maybe we'll need to come up with a name for reformed hipsters, once they start arriving on our doorstep
moritz or did I confuse that with Form.pm?
TimToady sixsters or some such
jdv79 as someone with intermittent rsi I would be appreciate a formatter 21:16
21:16 bronco_creek joined
moritz sjn, jdv79: seems I'm wrong, and Perl6::Format really does format Perl 6 code 21:16
Kristien TimToady: hiphiphurraysters
jdv79 cool 21:17
TimToady hopsters, for hopping on our bandwagon
or maybe it's about the beer
jnthn mmmm...hops
21:18 kurahaupo1 left
Kristien If the "fake weapon was indistinguishable from a real one" how do they know it's fake? If it's indistinguishable can it even be fake? 21:18
TimToady flapsters, for switchin' to Teh Buttahflah
bronco_creek Can someone provide a pointer to step-by-step guidance for forking a module and modifying it in my local environment? I've only ever installed star releases and downloaded existing modules with panda. I couldn't quite follow the 2013 advent article. 21:19
Kristien It must look and behave identically.
TimToady or maybe we can have flappers again, after all, the '20s are coming up 21:21
bronco_creek: well, basically, every time you use 'git clone' you're already technically forking 21:22
21:23 _dolmen_ joined
TimToady so learning git clone is a good first step 21:23
21:23 [Sno] joined
TimToady after that...well...git has a rather long onramp 21:24
bronco_creek Yes, I got past the git clone part. I don't know how to make a program recognize my local version of the module rather that the one that installed with Rakudo *.
s/that/than/
TimToady guesses 'use lib', but someone else here will have a more definitive answer 21:25
haven't actually used Star that much meownself
jnthn Maybe "panda install ." when you're in the module directory will do it
Kristien BEGIN { push @INC, '.' } :D
bronco_creek "meown self" - back to lolcat speak... 21:26
jnthn Well, if just for local testing then, -Ilib
TimToady thinks of that as Popeye-speak
jnthn Thing I said first is "install mine in place of the star one"
bronco_creek jnthn: thanks 21:27
Kristien TimToady: it's about time Perl 6 gets the Popeye operator like C++ has: <:??)<%??>; 21:31
21:31 Guest45 joined
Kristien in C++ <:??)<%??> is the empty lambda. :D 21:32
TimToady wow, maybe someone needs to throw a few mugs over there 21:33
after eating some spinach
Kristien m: sub infix:< <:??)<%??> >($a, $b) { sub {} } 21:34
camelia rakudo-moar e2b01f: OUTPUT«===SORRY!=== Error while compiling /tmp/8XtSLZ4DWm␤Unable to parse expression in quote words; couldn't find final '>'␤ ␤at /tmp/8XtSLZ4DWm:1␤------> infix:< <:??)<%??> >($a, $b) { sub {} }⏏<EOL>␤ …»
Kristien m: sub infix:('<:??)<%??>')($a, $b) { sub {} }
camelia ( no output )
Kristien nice
TimToady m: sub infix:« <:??)<%??> »($a, $b) { {} } 21:35
camelia ( no output )
TimToady is prolly how I'd write it
Kristien sub infix:<< <:??)<%??> >>($a, $b) { {} }
m: sub infix:<< <:??)<%??> >>($a, $b) { {} }
camelia ( no output )
21:36 cmiller1 joined, sqirrel_ joined
Kristien m: sub infix:«<:??)<%??>»($a, $b) { {} } 21:36
camelia ( no output )
Kristien very nice
TimToady hmm, might need to be {;} 21:37
m: say {}() 21:38
camelia rakudo-moar e2b01f: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/Y9K9tORYw_:1␤␤»
TimToady m: say {;}()
camelia rakudo-moar e2b01f: OUTPUT«Nil␤»
TimToady yeah
21:38 kurahaupo1 joined
TimToady m: say ->{}() 21:39
camelia rakudo-moar e2b01f: OUTPUT«Nil␤»
TimToady or that
21:44 cmiller1 left
vendethiel TimToady: theydid (throw some mugs), and now trigraphs are to be removed 21:46
21:47 Guest45 left, _dolmen_ left
TimToady trigraphs were a bad solution to the wrong problem :) 21:48
Kristien I like the <% and %> digraphs. I use them all the time. Curly braces are ugly.
I never liked curly braces.
vendethiel ... 21:49
well, I've known for some time you had *very specific* taste :)
have*, probably
TimToady speaking of Unicode, we should allow smartquotes to work like ASCII quotes, because more and more clients are just putting them in for you
Kristien I like do/begin/etc and end keywords.
Especially endif, endwhile, endsub etc if the editor inserts those for me. 21:50
TimToady thinks keywords for structure just hide the structure
Kristien It's the one case where I consider IDE vomit OK.
21:50 xfix left
TimToady it's like telegraphs where they use STOP instead of a period 21:51
words should be reserved for ideas that are meaningful to the problem, not meaningful to the programming language
which is why we have given/when rather than switch/case
vendethiel well, that's certainly arguing with someone who has a lot of experience and background with such terminology :) 21:52
masak that's a nice way of putting it.
vendethiel "syntax shouldn't be wordy"?
TimToady wel, not everyone thinks the same, and that's okay too :)
*ll
vendethiel well, I've been to a darker end of that spectrum(livescript) and it's not pretty to read 21:53
Kristien needs to hunt for food. She's hungry.
TimToady hides 21:54
b2gills Kristien: having braces {} was actually one of the reasons I chose Perl over Python, and Ruby
TimToady they are admittedly hard to type on some keyboards
Kristien I should remap [] to {} and vice versa.
vendethiel finds them awkward on every keymap.
Kristien I use braces far more often than brackets.
vendethiel they're hard to type on azerty keyboards, and on qwerty as well :(
21:54 larion left
vendethiel Kristien: drracket inserts () if you type [] :P 21:54
Kristien Better not use drracket for Clochure. 21:55
TimToady used to have a ^B macro that would insert a new block and put the cursor in the middle
b2gills I would find that harder to type than {} 21:56
TimToady we are preventing Kristien from...feeding... 21:57
vendethiel remapped his CAPS LOCK to both ESC and CTRL for vim...
Kristien remapping [] to () is a good idea
I'mma do that.
I remapped ; to : already in Vim.
vendethiel Kristien: yeah, I did the same -- after a talk from TheDamian 21:58
Kristien: alright, have a nice meal, I'll have myslf a good night. o/ #perl6 21:59
Kristien goodbye
22:04 cognominal joined, sqirrel__ joined, FROGGS_ joined 22:05 skids left 22:08 Sqirrel left, sqirrel_ left, FROGGS left 22:09 Sqirrel joined 22:10 amaliapomian left 22:12 bronco_creek left 22:15 _dolmen_ joined 22:18 pyrimidi_ joined 22:20 FROGGS_ is now known as FROGGS, [Sno] left, pyrimidine left, [Sno]_ joined
FROGGS jnthn: is there a way to distinguish Int, int and int32 via their storage_spec? 22:20
22:21 Alina-malina left
jnthn FROGGS: Yes. 22:21
Kristien du spec storage
22:21 Alina-malina joined
FROGGS jnthn: but Int and int both state they are 64 bits wide... 22:22
Kristien I thought Int was unbounded.
jnthn The latter two will have boxed_primitive set to MVM_STORAGE_SPEC_BP_INT iirc
FROGGS ohh... 22:23
that's what I am checking now
jnthn P6opaque (which Int is) does:
spec->boxed_primitive = MVM_STORAGE_SPEC_BP_NONE;
FROGGS nice! 22:24
22:24 vendethiel left
jnthn The 64 bits you're seeing there is 'cus that's the pointer size 22:24
And a P6opaque is a reference type
22:25 vendethiel joined 22:26 zakharyas left 22:27 mohij left
jnthn bbi10 22:27
22:41 tgt left 22:46 virtualsue left 22:49 vendethiel left, sqirrel__ left 23:00 vendethiel joined, lichtkind_ joined 23:02 lichtkind left 23:09 telex left 23:10 telex joined, pmurias joined
dalek kudo/native-ref: aa451b9 | jnthn++ | src/Perl6/ (2 files):
Move get_attribute_meta_object to Perl6::World.

It fits more naturally there, since it's about declarative bits.
23:13
kudo/native-ref: 071290e | jnthn++ | src/Perl6/ (3 files):
Move sig/param creation code in Actions to World.

Again, it's about declrations, and given the number of $*W method calls that can become self method calls with this move it clearly wants to be in there.
23:14 _dolmen_ left 23:18 alini left
timotimo is the amount of $*W method calls dragging our performance down? does spesh turn that into a simple guard instead of a full lookup? 23:20
jnthn timotimo: They're not a huge issue since TimToady++ implemented and tuned the dynvar cache 23:21
timotimo: It's more that if you have a method on one object doing a ton of method calls on a second object, then the method probably belongs on the second object. 23:22
timotimo i got that much :)
jnthn I think spesh does type-guard dyncars too 23:23
*dynvars
timotimo type-guard? not value-guard?
dalek kudo/native-ref: 9cbf1b9 | jnthn++ | src/Perl6/Actions.nqp:
Undo some sub => method.

No need to make these available outside of Actions, now we've moved some stuff that wanted to really be in World.
jnthn timotimo: Yeah, in the general case they're rather susceptible to change :) 23:24
Kristien wishes there was goto else;.
jnthn And for $*W we're just calling methods, so type is enough to specialization-time resolve it.
23:25 vendethiel left
masak Kristien: instead of asking "why?", let me just state that I think that's both a bad idea and a strange suggestion. :) 23:25
Kristien: and I also don't think you've put all that much thought into it.
Kristien masak: usecase: gist.github.com/rightfold/3724da423ebfbb6836de 23:26
masak that ought to work in Perl 6.
you just need to quote the label, since it's used before it's declared.
Kristien m: if true { goto else } else { say "hi" }
camelia rakudo-moar e2b01f: OUTPUT«===SORRY!===␤Function true needs parens to avoid gobbling block␤at /tmp/ASvKcWZBq_:1␤------> if true { goto else }⏏ else { say "hi" }␤Missing block (apparently taken by 'true')␤at /tmp/ASvKcWZBq_:1␤------>…»
Kristien m: if True { goto else } else { say "hi" } 23:27
camelia rakudo-moar e2b01f: OUTPUT«===SORRY!=== Error while compiling /tmp/MywY2ulqRk␤Undeclared routines:␤ else used at line 1␤ goto used at line 1␤␤»
Kristien noooooooooooo
23:27 coffee` joined
masak I didn't say "works in Rakudo". AFAIK, Rakudo doesn't implement `goto` yet. 23:27
Kristien I could easily refactor it by putting $givenAnswersStr = ''; before the if statement and leaving out the else clause.
but having a goto every once in a while is good—it creates jobs 23:28
masak *plonk*
23:30 BenGoldberg joined 23:35 Mr0rris0 left
pmurias implementing goto in rakudo-js will be annoying 23:38
jnthn s/'-js'// :P
Kristien nah 23:44
just compile function body into var __label = 0; for (;;) switch (__label) { case 0: … } 23:45
with some magic breaks it'll work great!
timotimo like the "Amen Break"?
23:45 gfldex left, avuserow left, cognominal left
Kristien $BRK 23:46
timotimo SBRK? 23:49
jnthn ENOMEM 23:51
Kristien timotimo: that's like saying $hit is shit.
Which is one of the reasons Perl is awesome. 23:52
(And PHP, but don't tell anyone!)
23:52 pRiVi joined 23:53 Kristien left
dalek kudo-star-daily: 9c687ab | coke++ | log/ (14 files):
today (automated commit)
23:57
rl6-roast-data: a48643a | coke++ | / (5 files):
today (automated commit)
23:59 avuserow joined