Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-02-12

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 telex joined #perl6
00:00 skids joined #perl6
00:00 adu joined #perl6
00:15 Mouq joined #perl6
00:25 vendethiel joined #perl6
00:49 vendethiel joined #perl6
01:00 tengignick joined #perl6
01:07 masak 'night, #perl6
01:07 raydiak sleep well, masak
01:07 hahainternet nn
01:23 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 raydiak ...sometimes the comments are more fun than the code :)
01:36 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:53 Mouq joined #perl6
02:09 kurahaupo1 joined #perl6
02:11 TimToady m: say '1234'.ords
02:11 camelia rakudo-moar 1b0d7a: OUTPUT«49 50 51 52␤»
02:11 TimToady m: say '1234'.ords xx 2
02:11 camelia rakudo-moar 1b0d7a: OUTPUT«␤»
02:11 TimToady o_O
02:12 TimToady m: say (49, 50, 51, 52) xx 2
02:12 camelia rakudo-moar 1b0d7a: OUTPUT«49 50 51 52 49 50 51 52␤»
02:12 TimToady m: say (49, 50, 51, 52).WHAT
02:12 camelia rakudo-moar 1b0d7a: OUTPUT«(Parcel)␤»
02:12 TimToady m: say '1234'.ords.WHAT
02:12 camelia rakudo-moar 1b0d7a: OUTPUT«(List)␤»
02:12 TimToady m: say '1234'.ords.eager xx 2
02:13 camelia rakudo-moar 1b0d7a: OUTPUT«49 50 51 52 49 50 51 52␤»
02:14 TimToady m: say ('1234'.ords xx 2).eager
02:14 camelia rakudo-moar 1b0d7a: OUTPUT«␤»
02:23 vendethiel joined #perl6
02:24 colomon joined #perl6
02:38 TimToady by avoiding .trans, http://rosettacode.org/wiki/Textonyms#Perl_6 is now about 15 times faster
02:46 hahainternet TimToady: that's quite lovely especially compared to its contemporaries
02:46 dj_goku_ joined #perl6
02:46 dj_goku_ joined #perl6
02:47 ilbot3 joined #perl6
02:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
02:50 _dolmen_ joined #perl6
02:51 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 simcop2387_ joined #perl6
02:51 TimToady repeating for ilbot3:
02:51 TimToady but we gotta fix .trans
02:51 TimToady it recalculates the translation table Every Time You Call It
02:52 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'
02:53 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 TimToady irc is the part of the whirlpool that's spinning very fast :)
02:54 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
02:54 hahainternet i think the key for me is the lack of ambiguity, that change is clear and straightforward and won't ever go away
02:55 hahainternet 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 :)
02:55 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 :)
02:56 TimToady in some ways it's more like a weather system that is going somewhere else, but you don't quite know where
02:57 awwaiid joined #perl6
02:57 TimToady or if you take it in a more theological direction: https://www.biblegateway.com/passage/?search=john+3%3A8&version=NIV
02:58 slavik joined #perl6
03:00 TimToady must go to dinner now or suffer the social consequences :)
03:00 TimToady afk &
03:01 vendethiel joined #perl6
03:08 Mouq joined #perl6
03:10 noganex joined #perl6
03:14 aborazmeh joined #perl6
03:18 max joined #perl6
03:19 traplol joined #perl6
03:27 MilkmanDan joined #perl6
03:32 kurahaupo1 joined #perl6
03:35 vendethiel joined #perl6
03:36 _dolmen_ joined #perl6
03:42 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 TimToady so I'm thinking about stealing $foo.@bar and $foo.%baz to treat @bar or %baz as filtering functions
03:43 TimToady and relegate the current $foo.@candidates(args) syntax to $foo.handlers(@candidates, args) or so
03:44 TimToady since it's not implemented anyway...
03:46 TimToady that is, 42.@bar would be equivalent to @bar[42]
03:46 raydiak meaning... $foo.grep( * ∈ @bar ) or so?
03:46 TimToady no
03:46 raydiak ah, got it
03:46 raydiak sorry, lag in my tmux session
03:46 TimToady nod
03:48 TimToady 42.@bar(:kv) and such would presumably also work
03:49 TimToady presumably these forms would autoslice the left side too
03:49 TimToady (1,2,3).@bar and such
03:49 TimToady then the slice modifiers make more sense
03:50 TimToady would be a fairly simple transformation to the current AST for @bar[1,2,3]
03:51 TimToady 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[] ?
03:51 TimToady at least not without saying .map({ @bar })
03:51 TimToady I would take that as writing to @bar
03:52 TimToady at least not without saying .map({ @bar[$_] }) I mean
03:52 Mouq Oh, hm.
03:52 TimToady m: say 1,2,3 ==> my @bar; say @bar
03:52 camelia rakudo-moar 1b0d7a: OUTPUT«123␤True␤»
03:52 TimToady er
03:52 Mouq m: my @bar; say 1,2,3 ==> @bar[]; say @bar
03:52 camelia rakudo-moar 1b0d7a: OUTPUT«123␤␤»
03:52 TimToady m: 1,2,3 ==> my @bar; say @bar
03:52 camelia rakudo-moar 1b0d7a: OUTPUT«1 2 3␤»
03:53 TimToady m: my @bar; 1,2,3 ==> @bar[]; say @bar
03:53 camelia rakudo-moar 1b0d7a: OUTPUT«␤»
03:53 TimToady m: my @bar; 1,2,3 ==> @bar; say @bar
03:53 camelia rakudo-moar 1b0d7a: OUTPUT«1 2 3␤»
03:53 TimToady m: my @bar; 1,2,3 ==> @bar[*]; say @bar
03:53 camelia rakudo-moar 1b0d7a: OUTPUT«␤»
03:53 TimToady m: my @bar; 1,2,3 ==> @bar[^3]; say @bar
03:53 camelia rakudo-moar 1b0d7a: OUTPUT«␤»
03:54 TimToady guess it doesn't like a slice for a target yet
03:55 Mouq m: 1,2,3 ==> my ($parcel,); say $parcel
03:55 camelia rakudo-moar 1b0d7a: OUTPUT«(Any)␤»
03:56 * Mouq tries to remember what bug he promised to look at later this week…
03:57 Mouq $=data was it?
03:57 * Mouq mumbles about pod to his physics homework
03:58 raydiak any particular reason we want a way to write subscripts on the left?  or just to let people say it different?
03:59 raydiak 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
04:00 Mouq m: my @bar; my &bar = postcircumfix:<[ ]>.assuming(@bar); 1,2,3 => bar(); say @bar;
04:00 camelia rakudo-moar 1b0d7a: OUTPUT«[31m===[0mSORRY![31m===[0m 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: â�¤    :…»
04:00 raydiak oh I like it a lot more now that you put it that way.../me hates typing circumfix ops
04:00 Mouq m: my @bar; my &bar = &postcircumfix:<[ ]>.assuming(@bar); 1,2,3 => bar(); say @bar;
04:00 camelia rakudo-moar 1b0d7a: OUTPUT«WARNINGS:␤Useless use of "," in expression "1,2,3 =>" in sink context (line 1)␤␤»
04:00 Mouq Oh duh
04:00 Mouq m: my @bar; my &bar = &postcircumfix:<[ ]>.assuming(@bar); 1,2,3 ==> bar(); say @bar;
04:00 camelia rakudo-moar 1b0d7a: OUTPUT«␤»
04:00 raydiak (especially when I have to change them later)
04:00 Mouq Aww :9
04:02 raydiak afk dinner
04:06 dj_goku joined #perl6
04:10 vendethiel joined #perl6
04:14 echowuhao joined #perl6
04:30 dj_goku joined #perl6
04:30 dj_goku joined #perl6
04:31 aborazmeh joined #perl6
04:33 chenryn joined #perl6
04:33 vendethiel joined #perl6
04:46 dj_goku joined #perl6
04:46 dj_goku joined #perl6
04:55 avuserow_ botsnack
04:55 avuserow_ :)
04:57 Mouq TimToady: Oh, wait a minute:
04:57 Mouq m: my @bar = 4,5,6; 0,1,2 ==> @bar[] ==> say();
04:57 camelia rakudo-moar 1b0d7a: OUTPUT«4 5 6␤»
04:59 avuserow .botsnack
04:59 yoleaux :D
05:02 vendethiel joined #perl6
05:06 dj_goku joined #perl6
05:06 dj_goku joined #perl6
05:12 chenryn joined #perl6
05:14 ssl_ joined #perl6
05:28 diana_olhovik_ joined #perl6
05:44 jack_rabbit joined #perl6
05:55 vendethiel joined #perl6
05:58 xfix joined #perl6
06:20 bjz joined #perl6
06:22 vendethiel joined #perl6
06:29 Mouq Hey, any feedback on the idea that in the REPL, the result of the previous line is stored in $_ by default?
06:30 Mouq So I'm doing calculations and I enter, say
06:30 Mouq > 4*6+12*cos(51*pi/180)*i
06:30 Mouq > .abs
06:31 Mouq and get 25.1600945598605
06:32 Mouq For clarity, s/is stored in/could be stored in/
06:35 TimToady nice for a calculator, though perhaps not as nice to prototype code you plan to save somewhere
06:38 jack_rabbit joined #perl6
06:44 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:48 moritz Mouq: IMHO the idea isn't bad, it's just not good either :-)
06:49 moritz Mouq: we want stuff to behave on the REPL as closely as normal code as makes sense
06:52 Mouq Haha, kk, I see :)
06:54 bjz joined #perl6
06:56 salv0 joined #perl6
07:03 alini joined #perl6
07:11 vendethiel joined #perl6
07:15 vukcrni joined #perl6
07:20 gfldex joined #perl6
07:22 lea_ joined #perl6
07:24 lea_ joined #perl6
07:27 lea joined #perl6
07:33 colomon joined #perl6
07:35 diana_olhovik joined #perl6
07:36 vendethiel joined #perl6
07:39 [Sno] joined #perl6
07:42 avuserow mjp: constant three = 3; say so pi ~~ /{three}/
07:42 avuserow r: constant three = 3; say so pi ~~ /{three}/
07:42 camelia rakudo-{parrot,moar} 1b0d7a: OUTPUT«True␤»
07:43 FROGGS joined #perl6
07:44 TimToady um, that is merely matching the null string
07:44 * FROGGS backlogs to see if TimToady is mad at him...
07:45 lea_ joined #perl6
07:45 * TimToady doesn't get mad, he just gets even
07:46 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␤…»
07:46 TimToady m: constant three = '3'; say so pi ~~ /<{three}>/
07:46 camelia rakudo-moar 1b0d7a: OUTPUT«True␤»
07:46 TimToady m: constant three = 3; say so pi ~~ /<{~three}>/
07:46 camelia rakudo-moar 1b0d7a: OUTPUT«True␤»
07:46 TimToady that's actually matching the 3 now
07:49 figment joined #perl6
07:49 coffee` joined #perl6
07:53 chenryn joined #perl6
07:54 adu joined #perl6
07:55 figment left #perl6
08:01 Mr0rris0 joined #perl6
08:01 figment joined #perl6
08:01 avuserow oh I see, it executes the code but doesn't return it to match
08:02 avuserow I'm a bit surprised I didn't get a 'useless use of constant in sink context' or something
08:05 TimToady there's a bug
08:06 TimToady m: 42; 43;
08:06 camelia rakudo-moar 1b0d7a: OUTPUT«WARNINGS:␤Useless use of constant integer 42 in sink context (line 1)␤»
08:06 TimToady m: sub foo { 42; 43 }
08:06 camelia rakudo-moar 1b0d7a: ( no output )
08:06 TimToady doesn't seem to trigger inside blocks
08:07 avuserow okay thanks. /me sleeps &
08:09 darutoko joined #perl6
08:14 prime joined #perl6
08:14 vendethiel joined #perl6
08:30 abraxxa joined #perl6
08:37 vendethiel joined #perl6
08:45 xinming joined #perl6
08:46 tengignick joined #perl6
08:54 alini joined #perl6
08:58 lizmat jnthn: regarding Supply.close: we expose .tappers, Supply.close is basically just a wrapper around that
08:59 lizmat perhaps we shouldn't expose .tappers if we want to prevent action at a distance ?
09:01 Ven joined #perl6
09:03 _mg_ joined #perl6
09:05 vendethiel joined #perl6
09:11 jnthn lizmat: Quite possibly, yes. Is there anything depending on its exposure?
09:11 jnthn TimToady: Question is, where the cache the trans thingy we computed...
09:11 lizmat ProvatePublishing uses them
09:12 lizmat *Priv
09:13 skarn_ joined #perl6
09:13 lizmat jnthn: not sure how PrivatePublishing role would be able to get to Supply!tappers
09:16 jnthn lizmat: I note that only 2 things use its methods
09:16 jnthn lizmat: Even though many others compose it
09:18 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 chenryn joined #perl6
09:19 lizmat ok, will look at that later then  :-)
09:19 lizmat trying to fix the symlink mess I made late last night
09:20 fhelmberger joined #perl6
09:20 Alina-malina joined #perl6
09:20 Ugator joined #perl6
09:22 telex joined #perl6
09:24 jnthn :)
09:24 virtualsue joined #perl6
09:24 lizmat I just can't seem to get nqp to build using the latest (local) MoarVM
09:25 jnthn I normally build Moar, then --prefix=... --backend=moar to NQP's configure
09:25 jnthn Then once that's in place, I can make NQP after a make install of Moar
09:26 jnthn (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?
09:27 arnsholt (Only thing that'll actually change is a REPR, FWIW)
09:27 JimmyZ --backend=moar is default now
09:31 dakkar joined #perl6
09:31 FROGGS lizmat: here are the scripts I use, I never have problems building anything: https://gist.github.com/FROGGS/7427c9879a131df96d34
09:32 FROGGS lizmat: the commented lines are other options, like building several backends or bisecting rakudo with the correct nqp and vm
09:32 lizmat FROGGS++
09:33 dalek nqp: b55f7c4 | lizmat++ | tools/build/MOAR_REVISION:
09:33 dalek nqp: Bump Moar to get correct symlink testing
09:33 dalek nqp: review: https://github.com/perl6/nqp/commit/b55f7c4b5a
09:33 dalek nqp: ee45f1e | lizmat++ | t/nqp/19-file-ops.t:
09:33 dalek nqp: Activate symlink test again
09:33 dalek nqp: review: https://github.com/perl6/nqp/commit/ee45f1ee94
09:33 FROGGS arnsholt: often it is enough to recompile moar and then just run your perl6 script... nqp and rakudo usually can be left untouched
09:33 jnthn arnsholt: What FROGGS said, pretty much. :)
09:34 jnthn arnsholt: I make install Moar without re-building NQP/Rakudo most of the time
09:34 jnthn (When I'm actively doing Moar dev)
09:34 espadrine joined #perl6
09:35 arnsholt Yaaay!
09:35 arnsholt Just having flashbacks to when I hacked on the Parrot REPRs and ended up accidentally recompiling all the things =)
09:36 wicope joined #perl6
09:36 FROGGS and since compiling moar just takes seconds, it is quite fun to work on the vm :o)
09:36 FROGGS in contrast to parrot
09:37 FROGGS 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
09:37 JimmyZ *is
09:37 FROGGS :o)
09:38 FROGGS JimmyZ: you are a weenie :P
09:39 jnthn Turns out "exploit human laziness" is a good software design principle :P
09:39 FROGGS aye
09:39 FROGGS jnthn: that describes my job at work best
09:40 JimmyZ consider rakudo was taking 600s to compile on parrot :(
09:40 FROGGS I create software to support the lazyness of about 500 peeps
09:40 JimmyZ on my note book
09:40 FROGGS JimmyZ: aye
09:40 FROGGS it is pain
09:40 pecastro joined #perl6
09:43 fhelmberger joined #perl6
09:48 alini joined #perl6
09:53 dalek rakudo/nom: de85b09 | lizmat++ | tools/build/NQP_REVISION:
09:53 dalek rakudo/nom: Bump NQP to get symlink fix
09:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/de85b0926d
09:56 dalek rakudo/newio: 7a543d1 | Mouq++ | docs/ChangeLog:
09:56 dalek rakudo/newio: Add two ChangeLog entries
09:56 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/7a543d1eb3
09:56 dalek rakudo/newio: 7b39dad | lizmat++ | src/core/ (2 files):
09:56 dalek rakudo/newio: Make Str.WHY no longer a special case
09:56 lizmat sorry dalek
09:56 dalek joined #perl6
09:59 Ven joined #perl6
10:02 diana_olhovik_ joined #perl6
10:06 baest joined #perl6
10:12 dalek nqp: 2ac8aab | lizmat++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
10:12 dalek nqp: Add nqp::lstat op
10:12 dalek nqp: review: https://github.com/perl6/nqp/commit/2ac8aab83a
10:12 dalek nqp: f7586fc | lizmat++ | tools/build/MOAR_REVISION:
10:12 dalek nqp: Bump MOAR to get lstat op
10:12 dalek nqp: review: https://github.com/perl6/nqp/commit/f7586fcf06
10:12 kjs_ joined #perl6
10:15 larion joined #perl6
10:17 zakharyas joined #perl6
10:20 tengignick joined #perl6
10:22 kjs_ joined #perl6
10:25 rindolf joined #perl6
10:27 masak antenoon, fellow sixers.
10:27 tadzik hello masak \o/
10:28 Ven joined #perl6
10:28 dalek rakudo/nom: 600c1a6 | lizmat++ | tools/build/NQP_REVISION:
10:28 dalek rakudo/nom: Bump NQP to get nqp::lstat op
10:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/600c1a66d2
10:28 lizmat masak tadzik /o
10:28 * masak salutes, too
10:28 * masak .oO( ten-HUT )
10:29 masak I like me a little bit of strict discipline on the IRCs.
10:29 masak morale has been slack recently.
10:29 dalek rakudo/newio: 600c1a6 | lizmat++ | tools/build/NQP_REVISION:
10:29 dalek rakudo/newio: Bump NQP to get nqp::lstat op
10:29 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/600c1a66d2
10:29 dalek rakudo/newio: 65ade27 | lizmat++ | tools/build/NQP_REVISION:
10:29 dalek rakudo/newio: Merge branch 'nom' into newio
10:29 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/65ade27cfe
10:33 Ven joined #perl6
10:33 Ven \o, masak – me and my shaky wifi salute you
10:36 masak a late contender in the mini-challenge to generate 4x4 mazes: https://gist.github.com/masak/81409152053431cac80b
10:36 masak this one works by attrition: remove anything that's not a maze :)
10:36 FROGGS amazing :o)
10:36 masak except for the data section, the program is delightfully short.
10:37 masak if anyone's interested, I'd be eager to get help before the publishing of my post to make this one faster.
10:37 masak that could happen in three ways, I think:
10:37 masak (a) profiling
10:37 masak (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 masak (c) reordering the list of bitmasks to make the more common ones happen first
10:40 masak I'll be sure to mention (and karma) anyone who helps.
10:41 masak ooh, ooh, and do we have enough of native arrays yet to turn everything into 'int' ?
10:41 masak that'd help, I think.
10:41 jnthn I wrote a lot of the profiler, does that count as helping? :P
10:41 masak no; sorry.
10:41 jnthn No, I'm not that far along with native arrays yet.
10:41 masak dang.
10:41 masak anyway, once you *are*...
10:42 masak ...this might be a good program to try and convert.
10:42 jnthn *nod* :)
10:42 chenryn joined #perl6
10:45 virtualsue joined #perl6
10:46 * masak .oO( in the meantime, I could just store the ints in 627 separate variables... ) :P
10:49 prevost joined #perl6
10:51 masak m: my $x = "OH HAI"; say MY::{"\$x"}
10:51 camelia rakudo-moar de85b0: OUTPUT«OH HAI␤»
10:52 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*
10:53 El_Che of corse you've seen this, but in case not: http://www.infoworld.com/article/2882300/perl/perl-creator-larry-wall-rethought-version-6-due-this-year.html
10:53 tadzik I blame the fact that it's all yound and early thing
10:54 El_Che tadzik: I blame the hipsters and their big glasses
10:54 El_Che :)
10:54 tadzik well, I was talking about perl 6:P
10:55 El_Che tadzik: wait till the hipsters arrive by Christmas :)
10:55 tadzik hah
10:55 tadzik would that make it better? :)
10:55 El_Che it will make it hip :)
11:00 kurahaupo1 joined #perl6
11:01 masak m: my $x = 42; { say OUTER::MY::{"\$x"} }
11:01 camelia rakudo-moar de85b0: OUTPUT«42␤»
11:01 masak m: my int $x = 42; { say OUTER::MY::{"\$x"} }
11:01 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␤␤»
11:01 masak well, that didn't work too well.
11:01 masak could someone please explain?
11:01 masak "has a different type"? different, how? from what?
11:01 masak oh, even this:
11:02 masak m: my int $x = 42; say MY::{"\$x"}
11:02 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 #perl6
11:02 jnthn masak: MY:: just doesn't know what to do with natives yet.
11:02 masak dangit.
11:02 masak and here I thought I could simulate a native array using MY::
11:02 jnthn Urgh
11:02 masak well, there goes that plan :)
11:02 jnthn You've no idea how slow that'd be :P
11:02 chenryn joined #perl6
11:03 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
11:03 masak glad to hear it
11:04 masak this is the first use case I have for them, I think. ever.
11:12 dalek rakudo/newio: 6cf07e9 | lizmat++ | src/core/IO (2 files):
11:12 dalek rakudo/newio: De-Huffmanize IO.i/.v -> .inode/.device
11:12 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/6cf07e93e6
11:12 Peter_R No type checking on slury params?
11:13 Peter_R Is that because the check is done on the container type?
11:17 [ptc] is there a difference between qw and qqw?
11:17 [ptc] I can't seem to find anything about qqw in the specs, however it definitely exists
11:17 [ptc] m: qw{a b c} ~~ qqw{a b c}
11:17 camelia rakudo-moar de85b0: ( no output )
11:17 lizmat m: my $a = 42;  say qw/a = $a/; say qqw/a = $a/
11:17 camelia rakudo-moar de85b0: OUTPUT«a = $a␤a = 42␤»
11:17 tadzik I think qq interps
11:17 tadzik yes
11:18 [ptc] lizmat: thanks :-)
11:18 lizmat m: my $a = 42;  say qw/a = $a/.perl; say qqw/a = $a/
11:18 camelia rakudo-moar de85b0: OUTPUT«("a", "=", "\$a")␤a = 42␤»
11:18 tadzik lizmat++
11:18 lizmat m: my $a = 42;  say qw/a = $a/.perl; say qqw/a = $a/.perl
11:18 camelia rakudo-moar de85b0: OUTPUT«("a", "=", "\$a")␤("a", "=", "42")␤»
11:18 [ptc] that's odd, I got different results from my locally installed perl6
11:18 [ptc] m: say qqw{a b c} ~~ qw{a b c}
11:18 camelia rakudo-moar de85b0: OUTPUT«True␤»
11:19 [ptc] say qqw{a b c}.perl
11:19 [ptc] m: say qqw{a b c}.perl
11:19 camelia rakudo-moar de85b0: OUTPUT«("a", "b", "c")␤»
11:19 lizmat m: say qqw{a b c} ~~ qw{b c d}
11:19 camelia rakudo-moar de85b0: OUTPUT«False␤»
11:19 [ptc] m: say 1qw{a b c}.perl
11:19 camelia rakudo-moar de85b0: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/5O8QlYWv2h�Confused�at /tmp/5O8QlYWv2h:1�------> [32msay 1[33m�[31mqw{a b c}.perl[0m�»
11:19 lizmat hmmm
11:19 [ptc] m: say qw{a b c}.perl
11:19 camelia rakudo-moar de85b0: OUTPUT«("a", "b", "c")␤»
11:20 [ptc] I think the interpolation thing is what I needed to know
11:20 [ptc] am trying to document the behaviour and wasn't sure how it worked
11:20 lizmat m: my $a = 42; say qqw{$a b c} ~~ qw{$a b c}
11:20 camelia rakudo-moar de85b0: OUTPUT«False␤»
11:20 [ptc] ok, that makes sense
11:20 [ptc] lizmat++
11:21 alini joined #perl6
11:21 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 grondilu joined #perl6
11:22 lizmat I did one this year  :-)
11:22 [ptc] jnthn: ok, I'll have a look, thanks!
11:22 [ptc] btw: qqw is word quoting and not shell quoting, right?
11:22 average joined #perl6
11:22 average hello
11:22 average question
11:22 lizmat [ptc]: https://perl6advent.wordpress.com/2014/12/16/quoting-on-steroids/
11:23 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:24 average please notice, I'm not asking about Perl6's feature called "grammar" which is a way to write parsers for languages..
11:24 average I am asking about Perl6's grammar, its own grammar
11:24 average is there one ?
11:24 [ptc] lizmat: thanks, yup found it
11:24 jnthn average: Perl 6's own grammar is written/specified as a Perl 6 grammar
11:24 Peter_R https://github.com/perl6/std/blob/master/STD.pm6
11:24 average jnthn: ok, thanks
11:25 average jnthn: is that expressible as an ANTLR grammar ?
11:25 average or in a different popular parser generator syntax
11:25 dalek nqp/js: 19cdd82 | (Pawel Murias)++ | src/ (6 files):
11:25 dalek nqp/js: Stub some HLL ops and add a hack that deserializes VMArrays as regular JavaScript arrays.
11:25 dalek nqp/js:
11:25 dalek nqp/js: I do this so that we can enable the hll setting part of our hybrid moarvm/js setting.
11:25 dalek nqp/js: I need this to be able to start working on rules.
11:25 dalek nqp/js: review: https://github.com/perl6/nqp/commit/19cdd82d20
11:26 jnthn average: Not easily
11:26 average that's a problem
11:26 jnthn average: For the purpose of syntax highlighting, you can get a good enough approximation.
11:27 average jnthn: yeah, I'm afraid syntax highlighting is the most simple use-case for it
11:27 average my initial thinking was around tools to write LINT-ers and static code analysis
11:27 average in 2015, these tools are considered very important
11:27 dalek rakudo/newio: e046851 | lizmat++ | src/core/IO.pm:
11:27 dalek rakudo/newio: Add FILETEST primitives for lstat access
11:27 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/e046851f84
11:27 average and everyone uses them
11:28 lizmat bbiab&
11:29 pmurias joined #perl6
11:29 masak average: agreed.
11:30 vendethiel joined #perl6
11:30 jnthn average: Syntax highlighting needs a more sloppy parser anyway.
11:30 masak right. forgiving.
11:30 pmurias average: linters, static analyzers and code formatters should use the builtin Perl6 grammar (which is written in Perl6)
11:30 virtualsue joined #perl6
11:30 masak except for what jnthn just said :)
11:30 average well, there's also OpenGrok which is a really nice project that I personally like very much
11:31 average 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
11:31 average to get "variable names" , "class names" , etc
11:31 Guest45 joined #perl6
11:32 pmurias for syntax highlighters the problem is more complex
11:32 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:33 average 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 average and we all know what those two editors are: Emacs and Vim
11:34 average or Vim and Emacs, I have no preference for one or the other(I use both)
11:35 average building an exclusive editor for Perl6(like Padre wanted to be for Perl5) is suboptimal in my opinion
11:35 dustinm` joined #perl6
11:35 arnsholt (I use one and force the other one to pretend to be my editor when I have to use it =)
11:36 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:36 camelia rakudo-moar 600c1a: OUTPUT«42 b c␤42bc␤»
11:37 average pmurias: great, then support in the 2 established editors is a very important thing to pursue
11:37 pmurias average: the bad things is that writing vim plugins is not very fun
11:37 average of course, my knowledge on the subject may be out-of-date, and such support is probably already in place.
11:38 average pmurias: writing Vim plugins is not very fun but it's very important
11:38 arnsholt There's Perl 6 mode for vim
11:38 arnsholt It's pretty good, but not perfect by any measure
11:38 jnthn https://github.com/vim-perl/vim-perl
11:39 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?
11:39 arnsholt Not AFAIK
11:39 average excuse me if I may be wrong, but the only proper Perl5 auto-complete engine is plsense https://github.com/aki2o/plsense
11:39 [ptc] hrm, is qqw equivalent to « » ?
11:39 average it's the only one that works well but is very slow
11:39 [ptc] or even equal to that?
11:40 [ptc] 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
11:41 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 ?
11:41 pmurias I don't think so
11:42 [ptc] m: qqw{$a b c} === «$a b c»
11:42 camelia rakudo-moar 600c1a: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/BZBiN8zkc_â�¤Variable '$a' is not declaredâ�¤at /tmp/BZBiN8zkc_:1â�¤------> [32mqqw{$a[33mâ��[31m b c} === «$a b c»[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
11:42 [ptc] m: my $a = 42; qqw{$a b c} === «$a b c»
11:42 camelia rakudo-moar 600c1a: ( no output )
11:42 [ptc] m: my $a = 42; say qqw{$a b c} === «$a b c»
11:42 camelia rakudo-moar 600c1a: OUTPUT«True␤»
11:44 average pmurias: ok
11:44 arnsholt average: Exactly how to expose the grammar and AST is being worked on ATM
11:45 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
11:45 tadzik also, nvim :)
11:45 tadzik it works quite nicely, actually
11:45 average pmurias: when writing plugins for either vim or emacs, one has to know vimscript for vim and elisp for emacs
11:45 arnsholt But it'll likely depend on pregenerated caches, vim not supporting subprocesses and all
11:46 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
11:47 average 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?
11:47 Peter_R Or arrays, rather
11:47 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..
11:47 moritz Peter_R: with a , in between
11:48 average *Elisp
11:48 moritz m: my @a = 1, 2; my @b = <a b>; .say for @a, @b
11:48 camelia rakudo-moar 600c1a: OUTPUT«1␤2␤a␤b␤»
11:48 grondilu joined #perl6
11:49 sqirrel_ joined #perl6
11:49 [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
11:50 Peter_R 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
11:52 moritz m: my $a = 42; say qqw{$a b c}
11:52 camelia rakudo-moar 600c1a: OUTPUT«42 b c␤»
11:52 eiro average++ # words of widsom about using viml
11:52 eiro hello everyone
11:52 moritz m: my $a = 42; say «$a b c»
11:52 camelia rakudo-moar 600c1a: OUTPUT«42bc␤»
11:52 tadzik hello eiro
11:52 moritz m: my $a = 42; say «$a b c».perl
11:52 camelia rakudo-moar 600c1a: OUTPUT«("42", "b", "c")␤»
11:52 moritz m: my $a = 42; say qqw{$a b c}.perl
11:52 camelia rakudo-moar 600c1a: OUTPUT«("42", "b", "c")␤»
11:52 [ptc] see what I mean?
11:53 moritz [ptc]: it seems the latter is passe as one argument, and the former as three
11:53 moritz so some kind of flattening issue
11:53 moritz god, how I hate those
11:53 [ptc] moritz: how did you work that out?
11:53 eiro average, i really would like plsense in vim but the documentation isn't enought to help me to achieve that
11:53 [ptc] moritz: so say treats the guillemets differently to the other construct?
11:55 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␤»
11:55 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}
11:55 camelia rakudo-moar 600c1a: OUTPUT«3␤one␤»
11:55 moritz [ptc]: golf'd
11:56 daxim joined #perl6
11:57 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:58 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?
11:58 moritz [ptc]: ... when there is a single-element multi candidate available, yes
11:58 moritz m: sub f(*@a) { say @a.elems }; my $a = 42; f «$a b c»; f qqw{$a b c}
11:58 camelia rakudo-moar 600c1a: OUTPUT«3␤3␤»
11:58 moritz here not
11:59 [Sno] joined #perl6
11:59 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?
11:59 moritz m: multi f(*@a) { say @a.elems }; multi f($one) { say 'one'}; f «b c»; f qqw{b c}
11:59 camelia rakudo-moar 600c1a: OUTPUT«2␤one␤»
11:59 moritz [ptc]: yes, equivalent
11:59 [ptc] oh, so I'm not as dumb as I thought I was, cool :-)
12:00 [ptc] 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
12:00 [ptc] moritz: we don't want to confuse the users :-)
12:01 moritz [ptc]: ok. Did you submit a bug report?
12:03 Ven_ joined #perl6
12:03 [ptc] moritz: no.  Not 100% sure how to describe the problem.
12:04 [ptc] 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)
12:04 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␤␤»
12:04 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)
12:04 camelia rakudo-moar 600c1a: OUTPUT«Array[Numeric].new(1, 2, 3, 4, 5, 6)␤»
12:04 Peter_R ^ moritz
12:06 moritz Peter_R: yes, I tell anybody who listens not to use typed arrays
12:06 moritz they simply aren't as user-friendly as the level we are used to in Perl 6
12:07 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 rakudo/nom: e2b01fe | lizmat++ | / (4 files):
12:07 dalek rakudo/nom: Revert "Add IO::Symlink stub"
12:07 dalek rakudo/nom:
12:07 dalek rakudo/nom: It appears we don't need a IO::Symlink class after all.
12:07 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e2b01fe75b
12:08 Peter_R and / or use this to allow type checking on slurpy params
12:09 dalek rakudo/newio: e2b01fe | lizmat++ | / (4 files):
12:09 dalek rakudo/newio: Revert "Add IO::Symlink stub"
12:09 dalek rakudo/newio:
12:09 dalek rakudo/newio: It appears we don't need a IO::Symlink class after all.
12:09 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/e2b01fe75b
12:09 dalek rakudo/newio: a4eac1e | lizmat++ | / (4 files):
12:09 dalek rakudo/newio: Merge branch 'nom' into newio
12:09 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/a4eac1e501
12:13 vendethiel joined #perl6
12:14 dalek rakudo/newio: 9e6831b | lizmat++ | src/core/IO.pm:
12:14 dalek rakudo/newio: Eradicate IO::Symlink completely
12:14 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/9e6831bfd7
12:25 dalek specs/newio: 32d0ad7 | lizmat++ | S (2 files):
12:25 dalek specs/newio: Revert "Get rid of DESTROY fossils"
12:25 dalek specs/newio:
12:25 dalek specs/newio: This reverts commit 56c5710c527cf6a0e9df71f9ed06930e594ea453.
12:25 dalek specs/newio: review: https://github.com/perl6/specs/commit/32d0ad7ff6
12:25 dalek specs/newio: 72242eb | moritz++ | S17-concurrency.pod:
12:25 [ptc] moritz: bug report submitted
12:25 dalek specs/newio: Fix example for $s.tap, mentioned in #77
12:25 dalek specs/newio: review: https://github.com/perl6/specs/commit/72242eb997
12:25 dalek specs/newio: b7196bd | moritz++ | S (2 files):
12:25 dalek specs/newio: Require "no strict;" to enable lax mode
12:25 dalek specs/newio:
12:25 dalek specs/newio: literals or bare "v6;" do not seem to be explicit enough for our current
12:25 dalek specs/newio: taste (and -e still defaults to lax mode)
12:25 dalek specs/newio: review: https://github.com/perl6/specs/commit/b7196bd240
12:25 dalek specs/newio: ca9b96b | FROGGS++ | S (3 files):
12:25 dalek specs/newio: minor corrections about -e and strictness
12:25 dalek specs/newio:
12:25 dalek specs/newio: Now it should be clear that one-liners (-e) are lax by default and that
12:25 dalek specs/newio: only 'use strict' and 'no strict' have an effect on one-liners and scripts.
12:25 dalek specs/newio: review: https://github.com/perl6/specs/commit/ca9b96b6ac
12:25 dalek specs/newio: ccd57f9 | lizmat++ | S (6 files):
12:25 dalek specs/newio: Merge branch 'master' into newio
12:25 dalek specs/newio: review: https://github.com/perl6/specs/commit/ccd57f911d
12:29 dalek specs/newio: b86f207 | lizmat++ | S16-io.pod:
12:29 dalek specs/newio: De-hufmannize IO.i/.v -> .inode/.device
12:29 dalek specs/newio: review: https://github.com/perl6/specs/commit/b86f2073cf
12:32 cognominal joined #perl6
12:34 cognominal I wish that a collection not having a method, but its element having it as a predicate would iterate and grep.
12:34 cognominal > '.'.IO..dir.w
12:34 cognominal Method 'w' not found for invocant of class 'List'
12:34 cognominal > '.'.IO..dir.grep: *.w
12:37 virtualsue joined #perl6
12:39 rmgk_ joined #perl6
12:39 cognominal hum, typo : s/ '..' / . /
12:40 |Tux| joined #perl6
12:41 cognominal btw
12:41 dalek specs/newio: 5a57b95 | lizmat++ | S16-io.pod:
12:41 dalek specs/newio: Add blurb about symlink (lstat) methods
12:41 dalek specs/newio: review: https://github.com/perl6/specs/commit/5a57b95040
12:41 cognominal > '.'.IO.dir>>.w
12:41 cognominal Failed to find '.#p6' while trying to do '.w'
12:42 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
12:42 dalek doc: b8c13ad | paultcochrane++ | lib/Language/quoting.pod:
12:42 dalek doc: Document qqw word quoting
12:42 dalek doc: review: https://github.com/perl6/doc/commit/b8c13adc65
12:42 lizmat afk until much later&
12:43 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
12:43 lizmat really afk now&
12:43 cognominal lizmat++
12:48 Guest45 joined #perl6
12:49 vendethiel joined #perl6
12:50 eiro pmurias, why not ?
12:54 Ven joined #perl6
12:57 [Sno]_ joined #perl6
13:11 cognominal joined #perl6
13:24 spider-mario joined #perl6
13:28 yeahnoob joined #perl6
13:37 gfldex joined #perl6
13:49 Mr0rris0 joined #perl6
13:50 Mr0rris0 joined #perl6
13:50 Mr0rris0 joined #perl6
13:51 Mr0rris0 joined #perl6
13:52 Mr0rris0 joined #perl6
13:52 tengignick joined #perl6
13:52 Mr0rris0 joined #perl6
13:53 Mr0rris0 joined #perl6
13:54 Mr0rris0 joined #perl6
13:55 Mr0rris0 joined #perl6
13:55 Mr0rris0 joined #perl6
13:56 Mr0rris0 joined #perl6
13:57 Mr0rris0 joined #perl6
14:07 rindolf joined #perl6
14:08 Ven masak: ping
14:09 masak Ven: pong
14:09 dalek doc: 72686fc | paultcochrane++ | lib/Language/quoting.pod:
14:09 dalek doc: Document shell quoting constructs (qx and qqx)
14:09 dalek doc: review: https://github.com/perl6/doc/commit/72686fc0d8
14:10 Ven masak: I wanted to discuss about how you envision DSL building
14:10 Ven (with marcos, that is)
14:11 * masak .oO( "a suffusion of yellow" )
14:12 masak Ven: ok, let's focus on what we know for sure.
14:12 masak a slang is anything. it's parsed by a Perl 6 grammar, handled by actions, and in the end, we have something Qtree-ish.
14:13 masak 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:15 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.
14:16 masak 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 masak Ven: the simplest case I can think of is registering a new Q node for a user-defined infix operator.
14:16 Ven Isn't that just a QCall?
14:16 masak "Q node type", I mean, but that was probably clear.
14:17 masak Ven: it could be represented as a call, but that's not how I chose to do it in 007.
14:17 virtualsue joined #perl6
14:17 masak and not how I'd prefer to do it in Perl 6.
14:17 masak yes, they're operationally the same.
14:17 b2gills El_Che: thanks for the infoworld link
14:17 masak but syntactically and structurally, they're different.
14:18 Ven I... think I disagree.
14:18 Ven the whole power comes from the fact that's -- it's just calls!
14:18 Ven I can say &infix:<+>
14:19 Ven I can call assuming on those. They're really just functions
14:19 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
14:19 Ven yes, just like you can't call assuming on add(2, 2)
14:20 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?
14:20 masak the viewpoint seems Lispish ("everything's just function calls"), but without a reward for mixing the two things together.
14:21 masak 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?"
14:22 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 masak I think that's the core of my disagreement. that the unification of that level ends up being confusing and surprising.
14:23 Ven I disagree..  being able to use "refactoring" tools on both seems nice
14:24 masak that leads me to my second point.
14:24 masak calls are structurally very different from operators.
14:24 masak calls have a name and arguments.
14:24 masak operators come in different types: prefix, infix, postfix...
14:24 masak all of which have different shapes of their data.
14:24 Ven shapes of their data?
14:24 masak an infix has an lhs and an rhs.
14:24 Ven I'm not saying both should be considered absolutely identical, but both are "a child of" a "Call"
14:25 masak a prefix just has a term.
14:25 Ven just like functions have different arities
14:25 Ven (listop are n-ary as well)
14:25 masak I understand your argument perfectly. I just don't see the benefit.
14:26 masak 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
14:26 masak otoh, I don't tend to consider listops to be ops. :)
14:27 masak they're just a funny call syntax.
14:31 Ven masak: ... same for operators in general, right? :P
14:31 masak in a sense, yes.
14:31 Tux__ joined #perl6
14:31 masak it's a cute unification, and one that goes fairly deep.
14:32 masak 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
14:32 Ven because I actually had something different to discuss in mind.
14:32 masak oki
14:33 Ven I actually wanted to talk about *defining DSL*
14:33 * Ven goes back to masak's strange blog consistently posted
14:34 vendethiel joined #perl6
14:35 Tux__ joined #perl6
14:35 Ven masak: alright, so, yes -- about "inside". this has always been bothering for some reasons
14:36 Ven 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:37 tengignick joined #perl6
14:37 Ven macro foo($block) { for $block.ast -> { when QAst:Call & .arguments.grep({ .literal && .literal.name == '$_' }...) } }
14:38 Ven masak: what I mean is -- commit/rollback "shouldn't" be macros (with "should" being "currently, no one does it like that")
14:40 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.
14:41 Ven the "peeling inside" is important because outer macros are expanded first
14:41 masak not in Perl 6.
14:41 masak parsing order is the crucial thing here.
14:41 sivoais joined #perl6
14:42 tengignick joined #perl6
14:42 pmurias something like &infix:<+> is just a "boring" operator (it's a function call parsed differently)
14:43 pmurias something like &infix:<&&> is a "interesting" operator
14:43 |Tux| joined #perl6
14:44 * masak wishes he had thought about pointing to infix:<&&> as not just a simple call
14:44 * Ven considers infix:<&&> as a "macro"
14:45 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.
14:45 Ven masak: in lisps, the outer macro is expanded macros because you might very well introduce operators or subs
14:45 Rounin joined #perl6
14:45 masak pmurias: doesn't to me.
14:46 masak Ven: that sentence didn't parse for me.
14:46 Ven masak: "outer-macro { inner-macro {} }" – the outer one might want to introduce variables
14:46 Ven or subs. which means that, if the inner one is called first, it might be an issue
14:47 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?
14:47 Ven I know it is
14:47 Ven I think grammars can work with inner-first parsing because no other "parsing stuff" has been applied to $<inner>.made
14:47 Ven but for outer? the inner one will have been fully expanded
14:48 masak pmurias: no, and I have a large negative weight attached to the suggestion of "let's introduce a sigil!"
14:48 masak pmurias:  far as I'm concerned, macros slotting in as subs is a feature.
14:51 masak 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
14:51 masak without complications, the innermost macro runs first.
14:53 Ven masak: that doesn't help with what I said -- you get fully-expanded code in the outermost
14:54 Ven and you prevent outermost from introducing functions and variables, or modifying state
14:54 adu joined #perl6
14:55 * 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"
14:55 Ven Yes, definitely, that's why I stopped to gather my thoughts
14:56 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.
14:56 masak I currently has that as 'is parsed', but in the fullness of time that mechanism may get replaced by something else
14:57 colomon http://cpp.indi.frih.net/blog/2014/12/the-bell-has-tolled-for-rand/ # huh
14:57 Ven colomon: no one should be using it :P
14:57 masak colomon: I read that earlier today. interesting.
14:57 masak colomon: perhaps some lessons to be drawn there for how we do randomness in Perl 6.
14:57 colomon masak: right, that’s what I was wondering
14:58 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 timotimo i was under the impression that we hardly optimize anything based on that
14:58 colomon masak: both in terms of what we want to provide, and how we’ve already implemented it
14:58 masak colomon: *nod*
14:59 Ven masak: I'd like to illustrate with 50 years of lisp examples, though, so I'll let it be for now :)
14:59 Ven .oO( macrospoiling )
14:59 masak :)
14:59 masak Ven: I promise to get to it soon.
15:00 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 Ven that means big blogs?
15:00 masak and I cannot lie.
15:00 Ven wow :P
15:00 masak Ven: if you have any nice insights about homotopy theory, consider me an interested listener.
15:00 Ven that's... not a reference I expected. Or that I expected to understand
15:01 masak hehe
15:01 masak Ven: have you heard Coulton's version? it's mellow.
15:01 Ven I havn't heard either version, really. I just read that at point, and googled to get the referene
15:01 Ven s/ene/ence/
15:02 masak listen to the Coulton version. it's available for free on his site.
15:02 |Tux| joined #perl6
15:03 tadzik in style of Glee? :P
15:03 masak I wouldn't know.
15:03 tadzik I accidentally social engineered my university btw. Quite scary (for an innocent fella) and quite hilarous for me
15:03 masak tell us more
15:03 tadzik tl;dr I called to resign my application and they kicked out someone else instead
15:04 masak o.O
15:04 Ven Oo
15:04 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 tadzik they said "okay, crossing you out"
15:04 tadzik 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
15:05 tadzik they said "no, we called you and you said you are fine with studying on $the-one-you-don't-want"
15:05 tadzik I say "no, I called you back and withdrew that"
15:05 tadzik they say "no no, that was $innocent-fella"
15:05 tadzik I check the list again, $innocent-fella is not on it
15:05 tadzik he got the same call to get transfered and agreed
15:05 masak poor $innocent-fella
15:06 tadzik presumably between the two calls with me
15:06 tadzik yeah, I'm trying to reach him and warn him
15:06 tadzik 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
15:07 Ven :')
15:07 * masak imagines tadzik calling repeatedly, making up a sillier voice each time
15:08 * 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
15:09 tadzik but that reminds me of another story, of a guy who broke into the university systems
15:09 tadzik 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!"
15:09 tadzik > broke into the system
15:09 tadzik > had good grades
15:09 vendethiel joined #perl6
15:09 tadzik hmmmmmmmmmmmmmmm
15:09 timotimo m)
15:10 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:11 masak moral of the story: do not break into the university system unless you're *sure* you can bump your grades.
15:12 Ven ...which we'll generalize as "you can cheat so long you don't get caught" :P
15:13 masak yes, but the cheating and the getting caught are not completely orthogonal, which is important too.
15:14 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?
15:15 muraiki oh wait, it seems to be a variant of an existing issue
15:15 muraiki yeah, 32-bit
15:15 muraiki sorry, I see a related issue now
15:15 muraiki I have more failures though
15:15 timotimo we're not that good at 32bit systems ;(
15:15 muraiki doh
15:15 timotimo also, we don't have a JIT for x86, only for x86_64
15:15 Ven masak: he didn't *really* got caught :P
15:16 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
15:16 muraiki https://github.com/jnthn/zavolaj/issues/37
15:16 masak Ven: my point. because of his grades (which may very well have been because of the hacking).
15:19 FROGGS timotimo: it was clean at some point, yes
15:19 FROGGS timotimo: looks like we have a regression
15:19 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!"
15:19 muraiki FreeBSD, but unfortunately a bit old of a version, 7.3-RELEASE-p2
15:20 timotimo mhh OK
15:20 muraiki apparently I'll be getting a new dev vm sometime soon
15:20 muraiki and it might even be linux!
15:20 muraiki but for now this is what I have :(
15:21 sqirrel_ joined #perl6
15:23 chenryn joined #perl6
15:29 timotimo huh, "unknown type vmarray"?
15:29 timotimo is that a zavolaj checkout from git or a panda install NativeCall?
15:30 muraiki panda install
15:32 timotimo that should definitely get the latest version
15:32 timotimo oh
15:33 timotimo my perl6 version is about 60 commits ahead of yours, and my moarvm version is 25 commits ahead
15:33 chenryn joined #perl6
15:33 muraiki d'oh
15:34 muraiki I guess this is the point where I should figure out a commit to get rakudobrew working on freebsd
15:34 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
15:34 muraiki but I only ever use freebsd on this dev vm at work, so I'm not really a freebsd guy
15:34 timotimo oh, but a fix for that would be lovely :)
15:35 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
15:36 muraiki argh
15:36 pyrimidine Does anyone know who is heading up Google Summer of Code this year (for The Perl Foundation)?
15:36 timotimo from what year is it? i don't know much about freebsd release dates
15:37 tadzik dukeleto, most likely
15:37 tadzik I mean, I'd expect that he's involved in some way :)
15:37 muraiki timotimo: 20...10 :(
15:37 muraiki for perspective, we still use cvs here
15:38 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 #perl6
15:40 btyler pyrimidine: http://blogs.perl.org/users/shadowcat_mdk/2015/02/gsoc-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
15:42 btyler there's a distinct lack of p6 on the ideas page: http://wiki2.enlightenedperl.org/index.php5?title=2015_Ideas_Page :)
15:42 tadzik oh, we have them on github
15:43 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 #perl6
15:45 pyrimidine I agree, having them spread out isn't a good idea.
15:46 pyrimidine 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:47 pyrimidine btyler++ tadzik++ # thanks!
15:52 dalek doc: 90ed55d | paultcochrane++ | lib/Language/quoting.pod:
15:52 dalek doc: Mention `shell` and `run` in the `qqx` section
15:52 dalek doc: review: https://github.com/perl6/doc/commit/90ed55d80e
15:52 dalek doc: d0d4de5 | paultcochrane++ | lib/Language/quoting.pod:
15:52 dalek doc: Point to regexes docs from quoting docs
15:52 dalek doc: review: https://github.com/perl6/doc/commit/d0d4de5e1e
15:54 |Tux| http://doc.perl6.org/language.html <= misses a section on IO. "How do I open a file (for reading/writing)"
15:55 |Tux| http://doc.perl6.org/type/IO::Handle has close but no open
15:56 adu joined #perl6
15:58 anand_ joined #perl6
15:58 anand_ left #perl6
15:58 skids joined #perl6
15:59 |Tux| http://doc.perl6.org/routine/open does not describe any valid options
16:00 FROGGS |Tux|: the problem seems to be that the /routine/open shows method open instead of the sub open
16:01 |Tux| http://doc.perl6.org/sub/open does not exist
16:01 [ptc] |Tux|: feel free to open issues in https://github.com/perl6/doc
16:02 |Tux| https://github.com/perl6/specs/blob/master/S32-setting-library/IO.pod helps (I hope)
16:03 [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
16:04 |Tux| 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
16:04 |Tux| and I took that to also move all my git stuff over from repo.or.cz to github
16:15 chenryn joined #perl6
16:19 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 muraiki is this something going wrong in panda, or did I do something wrong in the build process for one of the other three things?
16:19 muraiki I did run the tests for rakudo before doing an install
16:21 arnsholt Sounds like you've got old precompiled files lying around
16:21 arnsholt (Precompiled files of Panda, that is)
16:23 vendethiel joined #perl6
16:25 mr-foobar joined #perl6
16:25 muraiki where would those files be kept? it seems make clean doesn't work...
16:25 muraiki oh, I don't even have a makefile of any sort generated yet
16:26 dalek doc: 1fbf07c | paultcochrane++ | lib/Language/io.pod:
16:26 dalek doc: Add stub file to document IO
16:26 dalek doc:
16:26 dalek doc: TODO items adapted from comments by |Tux|++
16:26 dalek doc: review: https://github.com/perl6/doc/commit/1fbf07c318
16:27 |Tux| muraiki, do you (now) have both moar-HEAD and moar-nom?
16:28 muraiki what's moar-nom? sorry, I'm a noob :(
16:28 |Tux| do you use rakudobrew?
16:28 kst` joined #perl6
16:28 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:29 muraiki I was just trying to update everything
16:29 muraiki I made sure to use --prefix to install to the same dir
16:29 |Tux| if you did so using rakudobrew, you probably should start afresh
16:29 raydiak joined #perl6
16:29 anocelot joined #perl6
16:30 |Tux| clear out your complete rakudobreaw, make a fresh git clone; cd rakudobrew; rakudobrew build moar (with your prefix); rakudobrew build-panda
16:31 muraiki oh, I can't get rakudobrew to work at all on freebsd.
16:31 muraiki I had built everything manually
16:31 muraiki well, I just deleted ~/bin/moar so let's try rebuilding everything
16:31 |Tux| rakodobrew improved over the last few month. care to try again?
16:31 muraiki ok :)
16:32 rurban joined #perl6
16:33 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:34 muraiki ok, rakudobrew died where it died last time: probing whether your compiler thinks that it is gcc  clang: not found
16:34 muraiki I need to tell it to use gcc and gmake
16:37 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
16:38 BinGOs for 10.0 and above there is no gcc on FreeBSD in base.
16:39 muraiki this is ancient freebsd
16:39 muraiki 7.3
16:39 muraiki which is why I had given up trying to get rakudobrwe to work, heh
16:41 muraiki 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 muraiki there's no point in making it work on 7.3 though
16:42 wicope joined #perl6
16:42 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␤»
16:42 BinGOs that is so eol.
16:42 Ven okay, so this piece of code is not at fault
16:42 Ven Unhandled exception: getlex: outer index out of range Segmentation fault: 11
16:43 Ven Okay, that's pretty bad.
16:43 echowuhao joined #perl6
16:43 Ven aaaand... it's a flapping segfault
16:44 alpha- flappy segfault
16:44 Ven ugh. pretty bad.
16:45 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 hahainternet the fact it's inconsistent is actually a debugging technique
16:45 Ven well, here I'm not sure what's at fault but yeah
16:45 Ven but reducing the test case is harder with segfaults.
16:45 Ven y'know, I'm going to get myself a better rakudo to start with, I guess
16:46 Ven 2014-12.45
16:49 andreoss joined #perl6
16:50 timotimo haha
16:50 timotimo you silly :)
16:55 Ven okay, that segfaults more often now, it seems :P
16:57 Ven m: await do for ^4 { start { my int $x = 0; $x += 1 for ^40_000; } }
16:57 camelia rakudo-moar e2b01f: ( no output )
16:57 Ven m: await do for ^4 { start { my int $x = 0; $x += 1 for ^250000000; } }
16:57 camelia rakudo-moar e2b01f: OUTPUT«(signal SEGV)»
16:57 Ven here it is.
17:01 timotimo can't get that to crash on my local machine
17:02 timotimo also, it doesn't seem like it's doing much?
17:02 timotimo ah, local dirtyness
17:04 retupmoca m: await do for ^5 { start { buf8.new } } # RT#123702 related?
17:04 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123702
17:04 camelia rakudo-moar e2b01f: ( no output )
17:04 retupmoca m: await do for ^5 { start { buf8.new } } # RT#123702 related?
17:04 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=123702
17:04 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…»
17:04 retupmoca native int, so probably not
17:04 dalek doc: df4a66f | moritz++ | lib/Type/DateTime.pod:
17:04 dalek doc: Document DateTime constructors
17:04 dalek doc: review: https://github.com/perl6/doc/commit/df4a66f657
17:04 dalek doc: c5017e6 | moritz++ | lib/Type/DateTime.pod:
17:04 dalek doc: More DateTime docs
17:04 dalek doc: review: https://github.com/perl6/doc/commit/c5017e66a6
17:06 retupmoca could be a different race in the metamodel, though
17:06 retupmoca maybe
17:06 diana_olhovik_ joined #perl6
17:07 timotimo it'd be kinda cool if camelia could profile code and spit out the link to the html result file
17:08 lucas__ joined #perl6
17:09 timotimo yeah, now it actually takes time to run
17:09 timotimo m: await do for ^4 { start { my int $x = 0; $x += 1 for ^250000000; $x } }
17:09 camelia rakudo-moar e2b01f: OUTPUT«(signal XCPU)»
17:11 timotimo "cpu time limit exceeded"
17:12 timotimo interesting, i get Unhandled exception: This type cannot unbox to a native integer
17:15 Rounin joined #perl6
17:16 echowuhao joined #perl6
17:20 telex joined #perl6
17:21 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:22 skids Nil is a nonpresence of something that should be there.  There are actually undefs for each type.
17:22 skids m: Int.defined.say
17:22 camelia rakudo-moar e2b01f: OUTPUT«False␤»
17:23 skids So you know whether you have an undef, or a type error.
17:24 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.)
17:24 hoelzro o/ #perl6
17:26 lucas__ skids: thanks for answering.
17:27 lucas__ 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
17:27 pmurias hoelzro: hi
17:29 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.
17:29 lucas__ Isn't this a little more type-safe than Java? Since now even your "nulls" must be typed.
17:30 Kristien joined #perl6
17:30 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.
17:30 pmurias jnthn: if I just make up an empty context stuff should work?
17:30 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"
17:31 pmurias jnthn: what I mean is it a safe thing?
17:31 skids m: my Int $a; $a = Nil; $a.say;
17:31 camelia rakudo-moar e2b01f: OUTPUT«(Int)␤»
17:32 jnthn pmurias: Probably; they'll get capturelex'd later on, I guess.
17:33 pmurias capturelex is a rakudo thing?
17:35 timotimo assigning nil into places resets them to the default value
17:35 timotimo right?
17:35 skids Yes but with the caveat:
17:35 skids m: my Int @a; @a = 1,Nil,2; @a.say;
17:35 camelia rakudo-moar e2b01f: OUTPUT«1 2␤»
17:35 lucas__ timotimo: I think so. And I think this breaks the "different things should be different" principle.
17:35 skids Nil in a list eats commas.
17:36 moritz iirc that's outdated semantics
17:36 skids Oh good, that seemed a bit hinky.
17:38 skids Though I guess having something that does eat list positions might be handy on occasion.
17:38 moritz ()
17:38 skids right
17:39 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:40 skids RT#118717 already covers that deprecation I think, then.
17:40 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=118717
17:41 pmurias jnthn: I'm trying to move as much closure semantics to JavaScript as I can get away with
17:46 pmurias hoelzro: I'm working on getting test 55 multi methods work on now
17:46 pmurias afk&
17:47 hoelzro pmqs: awesome! I started looking at curlexpad yesterday, but I'm wary about breaking too many things
17:47 hoelzro er, sorry pmqs
17:48 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:50 larion joined #perl6
18:00 [Coke] other configure items in the toolchain respect --git-protocol
18:00 vendethiel joined #perl6
18:01 [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 [Coke] Glee--
18:01 hoelzro I wonder if there's a proxy that one can run that would convert git:// to http://
18:01 hoelzro probably
18:01 abraxxa git:// is ssh
18:02 jercos hoelzro: assuming you mean to the smart git protocol, they're basically already ready
18:02 jercos abraxxa: nope!
18:02 jercos git:// is an unencrypted, typically unauthenticated protocol usually only used for anonymous cloning
18:02 moritz abraxxa: git:// is *not* ssh
18:03 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
18:03 * jercos is not fond of git wire protocols :|
18:04 jercos hoelzro: anyways such a proxy is entirely technically feasible, and could probably be made very fast and efficient
18:04 jercos as in, streaming from one to the other, without needing to fully buffer
18:07 mohij joined #perl6
18:07 hoelzro yeah, even a dumb proxy would be good enough
18:07 hoelzro I'm betting something like that exists
18:09 abraxxa GAH! where does it lean the panda submodules from? they use git:// as well
18:10 moritz abraxxa: fwiw I have a git-subrepo based clone of panda somewhere (that only needs a single pull, no recursing)
18:10 Kristien joined #perl6
18:10 Kristien hi
18:11 moritz \o Kristien
18:11 Kristien I got my book!
18:11 moritz \o/
18:13 abraxxa found it in .gitmodules
18:13 _mg_ joined #perl6
18:14 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?
18:15 Kristien I'd be scared if I found It in .gitmodules.
18:15 moritz abraxxa: submodules keep redundant meta data
18:15 Kristien git submodules are FUBAR
18:15 hoelzro could you use url.insteadOf to fix git:// urls?
18:18 Mouq joined #perl6
18:18 abraxxa tadzik: the link http://help.github.com/firewalls-and-proxies/ is broken in the panda README.md
18:21 abraxxa i'm fed up by those stupid things, bye!
18:26 vendethiel joined #perl6
18:27 pmichaud TimToady++  # excellent infoworld article
18:28 TimToady oh, it came out?
18:28 pmichaud http://www.infoworld.com/article/2882300/perl/perl-creator-larry-wall-rethought-version-6-due-this-year.html
18:28 pmichaud [Coke]++  for posting the link to FB  :)
18:30 sjn yeah, that's a good article
18:35 moritz it's also the top post on reddit's r/perl
18:36 masak here: http://www.reddit.com/r/perl/comments/2vkdfi/larry_wall_on_perl_60/
18:39 mohij joined #perl6
18:39 grettir joined #perl6
18:40 sqirrel_ joined #perl6
18:47 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:51 nine_ The comments on reddit read surprisingly non-hostile.
18:53 skids m: say 'b' cmp 'aa'; say 'a' cmp 'aa';
18:53 camelia rakudo-moar e2b01f: OUTPUT«More␤Less␤»
18:53 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." :(
18:54 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 :)
18:55 TimToady 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 #perl6
18:55 vendethiel joined #perl6
18:55 TimToady if Perl 5, Python, and Ruby are fifth generation...
18:55 TimToady well, maybe cutesters will like butterflies
18:56 * 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.
18:56 Kristien That'll make Perl popular again!
18:56 Humbedooh great, more Danes... ;)
18:56 El_Che Kristien: you're too old
18:56 El_Che Kristien: you meant apps
18:56 El_Che :)
18:57 Kristien They now do stuff in Haskell.
18:57 diana_olhovik joined #perl6
18:57 larion joined #perl6
18:58 _mg_ joined #perl6
18:58 Kristien I heard from an intern that the project failed.
18:58 masak Humbedooh: you're connected to Lua somehow?
18:58 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 :\
18:59 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.
18:59 timotimo TimToady: what kind of things do cutesters test?
18:59 timotimo Humbedooh: ^
18:59 Humbedooh which also means I can predict perl6 support for mod_perl in....2027
18:59 timotimo compilation units?
18:59 timotimo er ... mod_perl? are you serious?
19:00 Humbedooh it's supposedly still a thing
19:00 Kristien why is Apache still a thing
19:00 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"
19:00 Humbedooh Kristien: because Java....and big data
19:00 Humbedooh though not the server, the foundation :)
19:00 Kristien I mean apache httpd
19:00 Humbedooh one word :\ .htaccess
19:01 nine_ I still use apache httpd, because, why not?
19:01 Kristien Make a .htaccess module for Nginx!
19:02 * Humbedooh waits for someone to mention that httpd is slow and 10kc and what not... :)
19:02 aborazmeh joined #perl6
19:03 * Kristien maintains an application that suffers from 10kc. :(
19:04 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? :)
19:04 nine_ Humbedooh: traffic server?
19:05 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.
19:05 Kristien tried varnish but it's shit and doesn't support TLS.
19:06 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:08 mst Kristien: it isn't shit, and it doesn't support TLS for good reason
19:08 mst Kristien: titus+varnish is an interesting possibility
19:08 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.
19:08 Kristien > "First, I have yet to see a SSL library where the source code is not a nightmare."
19:09 Kristien 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 Kristien And there are probably more.
19:10 Kristien "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:11 * masak finds http://www.reddit.com/r/perl/comments/2vkdfi/larry_wall_on_perl_60/ quite uplifting
19:11 mst but doing it in a separate process gives you a much better situation wrt. thread models
19:11 Kristien It basically says because caching with SSL is a little slower than without SSL, it makes caching _completely_ useless, which is obviously false.
19:11 mst hence titus' architecture
19:11 El_Che masak: the trolls are probably in an other timezone :)
19:12 Kristien brb shower
19:12 TimToady El_Che: it's been up for 23 hours
19:13 TimToady so obviously the trolls all live in that 1-hour sliver
19:13 nine_ That must be a dark place indeed
19:14 El_Che The Mariana Trench, the deepest place in the ocean :)
19:14 skids El_Che read my mind.
19:14 nine_ And I thought trolls were something scandinavian :)
19:15 skids Maybe there's just something way more attractive to trolls out there today.
19:15 Humbedooh with fuzzy pink hair?
19:15 TimToady or maybe the trolls have switched from step 3 back to step 1
19:15 bcode personally I think the trolls are all gathered at some troll conference on troll strategies
19:16 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
19:16 El_Che on the other hand, maybe now they hears p6 is coming, the are meeting like crazy to organize the trollfest at Christmas
19:16 * sjn puts on his reddit flameretardant suit, and reads masak's link
19:16 El_Che Retaking TimToady's analogy of his fosdem talk: the dark army is gathering
19:17 TimToady Rohan will come, won't they?
19:18 * Humbedooh cues "When last I looked, ...."
19:18 TimToady and the ghosts of armies past...
19:18 Gothmog_ joined #perl6
19:19 gfldex joined #perl6
19:19 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 Humbedooh hah
19:20 El_Che :)
19:21 vendethiel joined #perl6
19:24 pecastro joined #perl6
19:26 FROGGS TimToady++ # nice buzz-word rich and marketing satisfying interview :o)
19:30 TimToady well, I knew infoworld was more boss-oriented, so I tilted it that way
19:31 masak sjn: no flames. that was the nice part.
19:32 TimToady the pythonistas were the closest to that, but they're still somewhere between step 1 and step 2
19:33 TimToady and flaming is step 3
19:35 TimToady 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:36 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
19:36 TimToady we need to do that too
19:38 TimToady scientists will probably like some of the more APLish facets of P6
19:38 _dolmen_ joined #perl6
19:38 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:39 TimToady *nt
19:39 muraiki does p6 have something like pandas' dataframes?
19:39 TimToady that is a way in which Lisp and Python are similar, and to some extent Haskell
19:39 TimToady relying on names everywhere means you don't get visual distinctions that math formulas provide
19:40 TimToady Mathematica falls into the same trap
19:41 TimToady muraiki: link?
19:41 muraiki http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.html
19:41 muraiki you can kind of think of it as a spreadsheet as a data structure, on steroids
19:41 lichtkind joined #perl6
19:41 muraiki it's super nice to use
19:42 muraiki I guess R has something similar, too, but from what I've heard pandas' is quite nice in comparison
19:42 muraiki anyways, from the tiny bit of "data science" I learned sampling some moocs, it seems like a must have feature for scientific computing anymore
19:43 muraiki but it is way beyond my ability to implement, hehe :)
19:43 TimToady well, we can just import them with Import::Python :)
19:43 muraiki woot
19:44 TimToady but if it's important to support them natively, should be pretty doable, if not easy
19:44 TimToady er, Inline::Python, I mean
19:44 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
19:44 TimToady but yeah, we intend to make Python libraries easily available in P6 clothing
19:45 muraiki that's neat, I wasn't aware of Inline::Python
19:45 TimToady and if they're in a C shared lib, we can just talk to them directly using Nativecall
19:46 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
19:46 TimToady depending on how they structure the data, and the dependencies on python internals
19:48 nine_ It cannot be much worse than PyQt4.
19:49 nine_ 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 #perl6
19:50 TimToady well, pretty much everyone here is stubborn by definition :)
19:51 * TimToady goes back to stubbornly reading the backlog
19:52 cmiller1 joined #perl6
19:56 TimToady we might want to define our own anyway, if we decide the api is too pythonic
19:57 TimToady stubborn backlogging is helped by popping up the backlogging window instead of the DataFrames window...
19:57 vendethiel joined #perl6
19:57 El_Che Is Nativecall akin to JNI?
19:57 nine_ El_Che: think so
19:58 TimToady 2nd cousins, I believe :)
19:58 nine_ I have a class name as a Str. How do I get to the corresponding class object?
19:58 TimToady m: say ::("Int").WHAT
19:58 camelia rakudo-moar e2b01f: OUTPUT«(Int)␤»
19:59 nine_ Of course! This language being so consistent it just had to be the same as with functions :)
19:59 nine_ TimToady: thanks :)
20:01 TimToady we only have about two different syntaxes for symbolic lookups, ::($sym) for lexical/global symbols, and ."$sym"() for method names
20:01 TimToady well, unless you want to dig into metamethods
20:02 TimToady but those aren't syntaxes
20:02 TimToady backlogging, STUBBORNLY!
20:03 TimToady oh, it's lunchtime...
20:04 TimToady jnthn: impressions on the idea at http://irclog.perlgeek.de/perl6/2015-02-12#i_10101900
20:06 dalek Inline-Perl5: 89ffa5b | (Stefan Seifert)++ | / (2 files):
20:06 dalek Inline-Perl5: v6::invoke for invoking P6 class methods (like ctors) from P5.
20:06 dalek Inline-Perl5:
20:06 dalek Inline-Perl5: my $foo = v6::invoke('Foo', 'new');
20:06 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/89ffa5b532
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:08 TimToady 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.
20:08 masak maybe I should put together a gist?
20:09 TimToady but old-fashioned tr/// syntax is known to be immutable, so we can do the two-step underneat that
20:09 virtualsue joined #perl6
20:09 dalek roast: c66e341 | moritz++ | S02-literals/pairs.t:
20:09 dalek roast: pairs.t: fix some tests, remove wrong tests; unfudge for rakudo
20:09 dalek roast: review: https://github.com/perl6/roast/commit/c66e3410a9
20:09 TimToady masak: sure, ideas are cheap, except when they're not
20:09 masak *nod*
20:10 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.
20:10 TimToady maybe that's what P6 is all about
20:10 jnthn TimToady: On splitting the .trans API up, then yes, wtf
20:10 jnthn uhh
20:10 jnthn tr/tf/fm/ :P
20:11 moritz muscle memory :-)
20:11 jnthn .oO( Clearly I'm *way* too used to typing one of those two TLAs... )
20:11 dalek doc: 3f83ccb | moritz++ | lib/Type/DateTime.pod:
20:11 dalek doc: Unbreak markup
20:11 dalek doc: review: https://github.com/perl6/doc/commit/3f83ccb9c5
20:11 tengignick joined #perl6
20:11 jnthn TimToady: We could even for some (all) tr/// forms do the first step at compile time, perhaps.
20:12 TimToady I just said that, I thought
20:12 masak though, 'yes, wtf' has a hearty sense of abandon to it as well...
20:12 jnthn TimToady: I'm still catching up on backlog :P
20:12 * TimToady is eating lunch now instead of backlogging, oh wait...
20:13 dalek doc: 7dafe3e | moritz++ | lib/Type/DateTime.pod:
20:13 dalek doc: DateTime.Date
20:13 dalek doc: review: https://github.com/perl6/doc/commit/7dafe3e27f
20:13 jnthn This is front-logging
20:13 jnthn TimToady: I agree from a compiler impl point of view that the 42.@foo() thing would be a simple enough transform.
20:13 TimToady surely it's treeing on the front, and time is what cuts them down to make logs
20:13 jnthn TimToady: From a lang point of view I'm a bit confused :)
20:13 TimToady a set of handlers is just as confusing, if not more so
20:14 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
20:14 * vendethiel might be confusing it with elixir's error messages, but still knows approx. what the error was
20:14 TimToady and I've always thought of arrays and hashes as just very restricted mapping functions
20:15 moritz a very functional view
20:15 TimToady that's part of why the return type has always been specified on the individual elements
20:16 TimToady so it's a pretty tagmemically good thing to jam an array in there and use it like a method/function
20:16 TimToady it feels like something people will get used to very quickly
20:16 jnthn TimToady: I'm in no way attached to the current meaning. Just not immediately attached to the new one either ;)
20:16 dalek Inline-Perl6: 6e5fda2 | (Stefan Seifert)++ | / (7 files):
20:16 dalek Inline-Perl6: New OO API for easy use'ing and creating P6 objects.
20:16 dalek Inline-Perl6:
20:16 dalek Inline-Perl6: my $p6 = Inline::Perl6->new;
20:16 dalek Inline-Perl6: $p6->use('Foo');
20:16 dalek Inline-Perl6: my $foo = $p6->invoke('Foo', 'new');
20:16 dalek Inline-Perl6: my $bar = $foo->bar('baz');
20:16 dalek Inline-Perl6: review: https://github.com/niner/Inline-Perl6/commit/6e5fda2d6d
20:16 vendethiel nine_++
20:16 vendethiel nine_: now I feel compelled to ask. Can I use Inline::Perl6 from Inline::Perl6? :D
20:17 nine_ vendethiel: that's definitely on my list :)
20:17 vendethiel ahaha :D
20:17 coffee` left #perl6
20:17 vendethiel nine_: I'll make sure your place in hell is... hella comfy :P
20:18 TimToady I was thinking of this last night because I was revising http://rosettacode.org/wiki/Textonyms#Perl_6, and wanting to rewrite a line:
20:18 TimToady my @dials = @words.classify: { @c2d[.ords].join }
20:18 nine_ vendethiel: since Inline::Perl6 is using Inline::Perl5 internally it should actually be quite simple to stack them endlessly :)
20:18 vendethiel that's pretty nice to hear - for real
20:18 TimToady my @dials = @words.classify: { .ords.@c2d.join }
20:18 TimToady or so
20:18 moritz we could start by having .map and .for candidates that accepts arrays and hashes
20:19 moritz instead of going all the way to a new syntax
20:19 TimToady this feels a bit more rule-2ish to me
20:20 TimToady especially since we have variants like .@c2d(:kv)
20:20 TimToady that would be difficult to manage with the .map approach
20:21 TimToady and frankly, it also is more justification for the existence of sigils in P6 :)
20:22 * moritz isn't sold yet
20:22 TimToady tough crowd :)
20:22 moritz stubborn crowd :-)
20:23 TimToady :-) <- conservative smiley  :) <- progressive smiley
20:25 * skids resisting the urge to drop hyperop laden code into a heavily emoticoned comment area just to see what happens.
20:26 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:27 vendethiel nine_: erm, I think this is obviously going to lead to issues, if only performance ones
20:27 dalek Inline-Perl6: d2341b8 | (Stefan Seifert)++ | / (4 files):
20:27 dalek Inline-Perl6: Version 0.03
20:27 dalek Inline-Perl6: review: https://github.com/niner/Inline-Perl6/commit/d2341b8c01
20:27 TimToady well, they'll be interesting issues at least
20:27 nine_ slow code >> no code
20:28 vendethiel no, definitely; but I think this is a situation we should try to avoid if possible :-)
20:28 skids New benchmark: time to reach 100000 layer p5/p6 cake.
20:28 vendethiel slow code > no code, but dog-slow code is a bit worthless as well
20:28 TimToady at least it's motivation to port
20:28 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.
20:29 TimToady I worry more about unforeseen interactions that P5 is so good at
20:29 vendethiel nine_: depends with how many nesting. I'm just worried that "core"-ish modules will try to use it :-)
20:29 vendethiel modules that are going to be "dependend upon" should try not to use either
20:29 nine_ There's going to be plenty of edge case fun for sure.
20:30 dalek doc: cc53cff | moritz++ | lib/Type/DateTime.pod:
20:30 dalek doc: DateTime: some timezone related methods
20:30 dalek doc: review: https://github.com/perl6/doc/commit/cc53cffee3
20:31 TimToady .oO("I was expecting to get my feet wet, not my nose bloodied...")
20:31 dalek doc: a1eca19 | moritz++ | lib/Type/DateTime.pod:
20:31 dalek doc: Fix headings
20:31 dalek doc: review: https://github.com/perl6/doc/commit/a1eca19770
20:31 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.
20:31 vendethiel nine_: I'll trust you then :-). But I don't think it "imports * from perl5" inside :P
20:32 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.
20:33 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?
20:33 nine_ vendethiel: no
20:33 vendethiel like, the guy mixes both freely, and has a partly-visual editor
20:33 vendethiel but it's a different approach - I think the VM handles both.
20:35 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()␤»
20:36 bartolin that's from RT #114464. do you think it's supposed to work like that?
20:36 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=114464
20:37 jnthn Um, well, I understand why it works like that. :)
20:37 jnthn But that's a different question :)
20:39 * moritz would have expected "Foo!nTruen" as output
20:39 tgt joined #perl6
20:40 bartolin yes, that's what masak also said back in 2012.
20:41 Kristien joined #perl6
20:41 bartolin (if I understand said ticket correctly)
20:41 Kristien hi
20:42 dalek Inline-Perl5: a3fc639 | (Stefan Seifert)++ | README.md:
20:42 dalek Inline-Perl5: Update README to reflect new features like use :from<Perl5>
20:42 dalek Inline-Perl5: review: https://github.com/niner/Inline-Perl5/commit/a3fc6392a3
20:42 Kristien I'm code golfing in Perl 5!
20:42 Kristien I should try doing it in Perl 6.
20:44 moritz m: say (50, 40, &infix:<div> ... 0)[*-2]
20:44 camelia rakudo-moar e2b01f: OUTPUT«40␤»
20:44 moritz erm
20:44 moritz m: say (50, 40, &infix:<%> ... 0)[*-2]
20:44 camelia rakudo-moar e2b01f: OUTPUT«10␤»
20:45 moritz a nicely obfuscated GCD
20:45 moritz though not realy golfed
20:50 kurahaupo1 joined #perl6
20:52 vendethiel Kristien: it's quite good. you should look at examples on codegolf.se
20:53 Kristien I posted mine on codegolf.se.
20:53 TimToady P6 golf measures itself in morphemes, not in keystrokes
20:53 Kristien it was this: sub{c.pop=~s/..$//r}
20:53 Kristien barewords FTW
20:54 Kristien normally WTF though!
20:54 TimToady FTWTF
20:54 jnthn m: say 'FTW'.flip # :D
20:54 camelia rakudo-moar e2b01f: OUTPUT«WTF␤»
20:55 alini joined #perl6
20:55 Kristien I wish $_ were $_[0] in a subroutine.
20:56 Kristien It is in LiveScript.
20:56 FROGGS use $^a
20:56 Kristien Perl 5
20:57 vendethiel Kristien: it's "it" in livescript :)
20:57 Kristien That's what I said!
20:57 Kristien vendethiel: it is fun with unit testing libraries.
20:58 Kristien my colleague had a nice debugging session because of it
20:58 vendethiel well, "itt = it" or (...)-spamming. we talked about it already...:)
20:58 Kristien what is itt? "it and only it"? :D
20:58 TimToady lol
20:58 vendethiel yep
20:59 Kristien P66 is "Perl 6 and only Perl 6"
21:00 vendethiel .oO( and what about p666? )
21:00 echowuhao joined #perl6
21:00 * 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
21:01 TimToady p666 being sort of a religious statement, as it were
21:01 bcode joined #perl6
21:01 Kristien if (x) { l: foo(); } /* this is if but not iff! */ goto l;
21:01 alpha- still waiting for black perl 2
21:03 TimToady p6 doesn't have "the poetry optimization", alas
21:03 mst y/// iff ...;
21:04 Kristien I apparently have some PHP code analysis tool which prints a CRAP index. I'm worried because it's so low.
21:05 TimToady maybe it's all html
21:06 dalek doc: 2b73d96 | moritz++ | lib/Language/quoting.pod:
21:06 dalek doc: quoting: link to Proc::Async from qx// docs
21:06 dalek doc: review: https://github.com/perl6/doc/commit/2b73d960e0
21:06 Kristien > A CRAP of >= 30 means that no amount of testing can make your method not crappy.
21:06 TimToady such a high standard, Not Crappy...
21:07 skids GTC
21:07 TimToady next Lego movie, Everything Is Not Crappy!
21:08 dalek doc: 1d442c2 | moritz++ | lib/Language/unicode_entry.pod:
21:08 dalek doc: (hopefully) improve title for unicode_entry.pod, [ptc]++
21:08 dalek doc: review: https://github.com/perl6/doc/commit/1d442c21d5
21:09 moritz but we learned that the only sensible code review metric is WTFs/min, no? :-)
21:10 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(); }
21:12 jdv79 anyone know of something like a Perl::Critic for p6?
21:13 jdv79 oh, i'm sorry.  i meant PerlTidy
21:13 jdv79 source code formatting
21:13 TimToady not that I know of
21:14 * sjn sees something called Perl6::Format on http://modules.perl6.org/
21:15 sjn haven't tried it
21:15 moritz that's string formatting for Perl 6
21:15 sjn aah
21:15 TimToady re http://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
21:15 moritz or did I confuse that with Form.pm?
21:15 TimToady sixsters or some such
21:15 jdv79 as someone with intermittent rsi I would be appreciate a formatter
21:16 bronco_creek joined #perl6
21:16 moritz sjn, jdv79: seems I'm wrong, and Perl6::Format really does format Perl 6 code
21:16 Kristien TimToady: hiphiphurraysters
21:17 jdv79 cool
21:17 TimToady hopsters, for hopping on our bandwagon
21:17 TimToady or maybe it's about the beer
21:17 jnthn mmmm...hops
21:18 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
21:19 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.
21:21 TimToady or maybe we can have flappers again, after all, the '20s are coming up
21:22 TimToady bronco_creek: well, basically, every time you use 'git clone' you're already technically forking
21:23 _dolmen_ joined #perl6
21:23 TimToady so learning git clone is a good first step
21:23 [Sno] joined #perl6
21:23 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 *.
21:24 bronco_creek s/that/than/
21:25 * TimToady guesses 'use lib', but someone else here will have a more definitive answer
21:25 TimToady haven't actually used Star that much meownself
21:25 jnthn Maybe "panda install ." when you're in the module directory will do it
21:25 Kristien BEGIN { push @INC, '.' } :D
21:25 bronco_creek "meown self" - back to lolcat speak...
21:26 jnthn Well, if just for local testing then, -Ilib
21:26 * TimToady thinks of that as Popeye-speak
21:26 jnthn Thing I said first is "install mine in place of the star one"
21:27 bronco_creek jnthn: thanks
21:31 Kristien TimToady: it's about time Perl 6 gets the Popeye operator like C++ has: <:??)<%??>;
21:31 Guest45 joined #perl6
21:32 Kristien in C++ <:??)<%??> is the empty lambda. :D
21:33 TimToady wow, maybe someone needs to throw a few mugs over there
21:33 TimToady after eating some spinach
21:34 Kristien m: sub infix:< <:??)<%??> >($a, $b) { sub {} }
21:34 camelia rakudo-moar e2b01f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8XtSLZ4DWmâ�¤Unable to parse expression in quote words; couldn't find final '>'â�¤        â�¤at /tmp/8XtSLZ4DWm:1â�¤------> [32m infix:< <:??)<%??> >($a, $b) { sub {} }[33mâ��[31m<EOL>[0mâ�¤    â€¦Â»
21:34 Kristien m: sub infix:('<:??)<%??>')($a, $b) { sub {} }
21:34 camelia rakudo-moar e2b01f: ( no output )
21:34 Kristien nice
21:35 TimToady m: sub infix:« <:??)<%??> »($a, $b) { {} }
21:35 camelia rakudo-moar e2b01f: ( no output )
21:35 TimToady is prolly how I'd write it
21:35 Kristien sub infix:<< <:??)<%??> >>($a, $b) { {} }
21:35 Kristien m: sub infix:<< <:??)<%??> >>($a, $b) { {} }
21:35 camelia rakudo-moar e2b01f: ( no output )
21:36 cmiller1 joined #perl6
21:36 sqirrel_ joined #perl6
21:36 Kristien m: sub infix:«<:??)<%??>»($a, $b) { {} }
21:36 camelia rakudo-moar e2b01f: ( no output )
21:36 Kristien very nice
21:37 TimToady hmm, might need to be {;}
21:38 TimToady m: say {}()
21:38 camelia rakudo-moar e2b01f: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤  in block <unit> at /tmp/Y9K9tORYw_:1␤␤»
21:38 TimToady m: say {;}()
21:38 camelia rakudo-moar e2b01f: OUTPUT«Nil␤»
21:38 TimToady yeah
21:38 kurahaupo1 joined #perl6
21:39 TimToady m: say ->{}()
21:39 camelia rakudo-moar e2b01f: OUTPUT«Nil␤»
21:39 TimToady or that
21:46 vendethiel TimToady: theydid (throw some mugs), and now trigraphs are to be removed
21:48 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.
21:48 Kristien I never liked curly braces.
21:49 vendethiel ...
21:49 vendethiel well, I've known for some time you had *very specific* taste :)
21:49 vendethiel have*, probably
21:49 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
21:49 Kristien I like do/begin/etc and end keywords.
21:50 Kristien Especially endif, endwhile, endsub etc if the editor inserts those for me.
21:50 * TimToady thinks keywords for structure just hide the structure
21:50 Kristien It's the one case where I consider IDE vomit OK.
21:51 TimToady it's like telegraphs where they use STOP instead of a period
21:51 TimToady words should be reserved for ideas that are meaningful to the problem, not meaningful to the programming language
21:51 TimToady which is why we have given/when rather than switch/case
21:52 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.
21:52 vendethiel "syntax shouldn't be wordy"?
21:52 TimToady wel, not everyone thinks the same, and that's okay too :)
21:52 TimToady *ll
21:53 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.
21:53 * TimToady hides
21:54 b2gills Kristien: having braces {} was actually one of the reasons I chose Perl over Python, and Ruby
21:54 TimToady they are admittedly hard to type on some keyboards
21:54 Kristien I should remap [] to {} and vice versa.
21:54 * vendethiel finds them awkward on every keymap.
21:54 Kristien I use braces far more often than brackets.
21:54 vendethiel they're hard to type on azerty keyboards, and on qwerty as well :(
21:54 vendethiel Kristien: drracket inserts () if you type [] :P
21:55 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
21:56 b2gills I would find that harder to type than {}
21:57 TimToady we are preventing Kristien from...feeding...
21:57 * vendethiel remapped his CAPS LOCK to both ESC and CTRL for vim...
21:57 Kristien remapping [] to () is a good idea
21:57 Kristien I'mma do that.
21:57 Kristien I remapped ; to : already in Vim.
21:58 vendethiel Kristien: yeah, I did the same -- after a talk from TheDamian
21:59 vendethiel Kristien: alright, have a nice meal, I'll have myslf a good night. o/ #perl6
21:59 Kristien goodbye
22:04 cognominal joined #perl6
22:04 sqirrel__ joined #perl6
22:04 FROGGS_ joined #perl6
22:09 Sqirrel joined #perl6
22:15 _dolmen_ joined #perl6
22:18 pyrimidi_ joined #perl6
22:20 [Sno]_ joined #perl6
22:20 FROGGS jnthn: is there a way to distinguish Int, int and int32 via their storage_spec?
22:21 jnthn FROGGS: Yes.
22:21 Kristien du spec storage
22:21 Alina-malina joined #perl6
22:22 FROGGS jnthn: but Int and int both state they are 64 bits wide...
22:22 Kristien I thought Int was unbounded.
22:22 jnthn The latter two will have boxed_primitive set to MVM_STORAGE_SPEC_BP_INT iirc
22:23 FROGGS ohh...
22:23 FROGGS that's what I am checking now
22:23 jnthn P6opaque (which Int is) does:
22:23 jnthn spec->boxed_primitive = MVM_STORAGE_SPEC_BP_NONE;
22:24 FROGGS nice!
22:24 jnthn The 64 bits you're seeing there is 'cus that's the pointer size
22:24 jnthn And a P6opaque is a reference type
22:25 vendethiel joined #perl6
22:27 jnthn bbi10
23:00 vendethiel joined #perl6
23:00 lichtkind_ joined #perl6
23:10 telex joined #perl6
23:10 pmurias joined #perl6
23:13 dalek rakudo/native-ref: aa451b9 | jnthn++ | src/Perl6/ (2 files):
23:13 dalek rakudo/native-ref: Move get_attribute_meta_object to Perl6::World.
23:13 dalek rakudo/native-ref:
23:13 dalek rakudo/native-ref: It fits more naturally there, since it's about declarative bits.
23:13 dalek rakudo/native-ref: review: https://github.com/rakudo/rakudo/commit/aa451b96cb
23:13 dalek rakudo/native-ref: 071290e | jnthn++ | src/Perl6/ (3 files):
23:13 dalek rakudo/native-ref: Move sig/param creation code in Actions to World.
23:13 dalek rakudo/native-ref:
23:13 dalek rakudo/native-ref: Again, it's about declrations, and given the number of $*W method
23:13 dalek rakudo/native-ref: calls that can become self method calls with this move it clearly
23:13 dalek rakudo/native-ref: wants to be in there.
23:13 dalek rakudo/native-ref: review: https://github.com/rakudo/rakudo/commit/071290ebb3
23:20 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:21 jnthn timotimo: They're not a huge issue since TimToady++ implemented and tuned the dynvar cache
23:22 jnthn 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 :)
23:23 jnthn I think spesh does type-guard dyncars too
23:23 jnthn *dynvars
23:23 timotimo type-guard? not value-guard?
23:23 dalek rakudo/native-ref: 9cbf1b9 | jnthn++ | src/Perl6/Actions.nqp:
23:23 dalek rakudo/native-ref: Undo some sub => method.
23:23 dalek rakudo/native-ref:
23:23 dalek rakudo/native-ref: No need to make these available outside of Actions, now we've moved
23:23 dalek rakudo/native-ref: some stuff that wanted to really be in World.
23:23 dalek rakudo/native-ref: review: https://github.com/rakudo/rakudo/commit/9cbf1b96aa
23:24 jnthn timotimo: Yeah, in the general case they're rather susceptible to change :)
23:24 * Kristien wishes there was goto else;.
23:24 jnthn And for $*W we're just calling methods, so type is enough to specialization-time resolve it.
23:25 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 masak Kristien: and I also don't think you've put all that much thought into it.
23:26 Kristien masak: usecase: https://gist.github.com/rightfold/3724da423ebfbb6836de
23:26 masak that ought to work in Perl 6.
23:26 masak you just need to quote the label, since it's used before it's declared.
23:26 Kristien m: if true { goto else } else { say "hi" }
23:26 camelia rakudo-moar e2b01f: OUTPUT«[31m===[0mSORRY![31m===[0m�Function true needs parens to avoid gobbling block�at /tmp/ASvKcWZBq_:1�------> [32mif true { goto else }[33m�[31m else { say "hi" }[0m�Missing block (apparently taken by 'true')�at /tmp/ASvKcWZBq_:1�------>…»
23:27 Kristien m: if True { goto else } else { say "hi" }
23:27 camelia rakudo-moar e2b01f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/MywY2ulqRkâ�¤Undeclared routines:â�¤    else used at line 1â�¤    goto used at line 1â�¤â�¤Â»
23:27 Kristien noooooooooooo
23:27 coffee` joined #perl6
23:27 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.
23:28 Kristien but having a goto every once in a while is good—it creates jobs
23:28 * masak *plonk*
23:30 BenGoldberg joined #perl6
23:37 pmurias implementing goto in rakudo-js will be annoying
23:38 jnthn s/'-js'// :P
23:44 Kristien nah
23:44 Kristien just compile function body into var __label = 0; for (;;) switch (__label) { case 0: … }
23:45 Kristien with some magic breaks it'll work great!
23:45 timotimo like the "Amen Break"?
23:46 Kristien $BRK
23:49 timotimo SBRK?
23:51 jnthn ENOMEM
23:51 Kristien timotimo: that's like saying $hit is shit.
23:51 Kristien Which is one of the reasons Perl is awesome.
23:52 Kristien (And PHP, but don't tell anyone!)
23:52 pRiVi joined #perl6
23:57 dalek rakudo-star-daily: 9c687ab | coke++ | log/ (14 files):
23:57 dalek rakudo-star-daily: today (automated commit)
23:57 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/9c687ab06e
23:57 dalek perl6-roast-data: a48643a | coke++ | / (5 files):
23:57 dalek perl6-roast-data: today (automated commit)
23:57 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/a48643a6ee
23:59 avuserow joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo