»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
rangerprice Perl 6 will have more features than Python ? 00:06
skids Heheh. We don need no stinkin basics. 00:09
skids cannot speak to what constitutes a "feature", or Python 00:10
flussence African or European python? 00:12
rangerprice Hahahaha
00:12 raiph left
rangerprice Another question, Perl 6 will have a increased speed performance ? 00:13
flussence increased relative to what?
rangerprice relative to Perl 5
00:14 raiph joined 00:15 laouji joined 00:17 aborazmeh joined, aborazmeh left, aborazmeh joined
skids I think currently the answer is it depends on how many frameworks/modules you usually load into Perl5 to get things that are builtin to Perl6. 00:20
timotimo it depends drastically on what you're doing 00:25
if you have a very tight loop with numeric code and you use native integers, you can be quite a bit faster with rakudo + moarvm or rakudo + jvm
if you're doing something that parallelizes well and you have enough cores, you can end up faster than perl5 by a bit
the GLR will, once finished, improve performance related to lists quite a bit, which makes me quite excited every time i think about it :P 00:26
00:26 raiph left
timotimo other than that, you'd really have to go on a case-by-case basis 00:27
i haven't done a run of the full benchmark suite in a long time 00:28
rangerprice Today perl 6 is a general purpose language. But why perl 6 is not specialized into a specific purpose ? like speed performance, concurrency, or system administration ?
timotimo and tux's Text::CSV stuff is always noticably slower in the perl 6 version compared to the different perl 5 versions :(
that's not the perl way :)
rangerprice Oh 00:29
00:38 laouji left, laouji joined 00:40 llfourn joined 00:42 laouji left, laouji joined 00:45 llfourn left, dnmfarrell joined
ugexe timotimo: zef works on nom and glr 00:47
timotimo that's excellent news! 00:50
p6weekly.wordpress.com/2015/08/20/...-of-steam/ - published 00:54
ugexe anyone with a .travis.yml might want to add an appropriate line to test on GLR 00:55
timotimo++ 00:57
00:57 sno left
timotimo i feel like i've forgotten a bunch of stuff, but that feeling's always there anyway 00:57
zef takes quite a bit longer to install than panda does :P 01:03
dnmfarrell Hey all I'm trying to create a pseudopod grammar with an "=include" token that has a filepath to another .pod file. I want the grammar to parse that pod file and insert the match object to the current parse tree. Is that possible? Here's what i've got so far: "token include { ^^\=include \h+ <singleline_text> \n { $/.make(self.parsefile( $/<singleline_text>, :actions($*ACTIONS) )); } }"
timotimo huh 01:04
arnsholt I'd do it as an action
timotimo ugexe: i didn't end up with a "zef" binary in the folder it's supposed to end up in
you may want to .ast after the ) belonging to parsefile
oh 01:05
you want the match object
that's okay then
arnsholt Just an action method for the include directive, which can "make PseudoPod.parsefile(...)"
dnmfarrell arnsholt: but the action method is more to do with transformation pod --> html, pod --> markdown etc. The "include" directive is part of the grammar 01:06
arnsholt Aha, in that case I don't have any terribly good ideas 01:08
dnmfarrell I guess I could do it that way, but then i'd have to have the "include" action class everywhere I used the grammar. Hmm, maybe that's a pragmatic way forward...
arnsholt Except maybe factor it so that you can use the actions to build the AST, and have a separate AST transformer to convert it to different formats
dalek kudo-star-daily: 6956f2b | coke++ | log/MoarVM- (5 files):
today (automated commit)
01:09
ugexe the zef process takes so long because the test suite builds and test itself 01:12
timotimo mhm
ugexe thanks for the tip on the bin though... that seems to change daily 01:14
timotimo oh?
01:15 pecastro joined
ugexe usually related to hyperoperators it seems. 01:17
01:19 Sgeo_ joined
ugexe yea... i have something like $*CWD.child("bin").ls(:f, :r).grep(!*.starts-with(".")) which shoes the bin, but tacking on a >>.IO does nothing (iterator>>.IO) 01:19
shoes/shows 01:20
01:22 Sgeo left 01:23 robinsmidsrod joined
dnmfarrell hmm is it possible to inject the parsed pod from =include into $/.CURSOR? 01:26
ugexe fixed anyway though. thanks
skids my %a = { :a, :b, :c }; %a.pairs>>.say.say; # >>. being somewhat broken is behind a few GLR test failures as well. 01:31
erg.
m: my %a = { :a, :b, :c }; %a.pairs>>.say.say; # >>. being somewhat broken is behind a few GLR test failures as well.
GLRelia rakudo-moar 7880bb: OUTPUT«␤»
camelia rakudo-moar 93418e: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/4sIayVILz7:1␤␤»
skids Oh heh, I found something broken two ways on both bots. 01:32
That one is reaking S02-types/isDEPRECATED at the very least. 01:33
01:35 Averna left
ShimmerFairy dnmfarrell: are you aware of the P<> formatting code? It's meant to embed things into a Pod file, like standardized copyright info for instance. If you want to make something like =include , you could possibly look into spelling it as P<> 01:37
dnmfarrell ShimmerFairy: no I'm not, P<> is a Perl6 pod formatting code? 01:39
ShimmerFairy It would have the advantage of being compatible with regular Pod6, if nothing else :) (though rakudo's current parser doesn't support it, sadly)
dnmfarrell ah
ShimmerFairy dnmfarrell: yes, you can see here: design.perl6.org/S26.html#Placement_links
dnmfarrell I wonder why it's a formatting code and not a command block. That could create issues if it pointed at a pod file containing command blocks but it was in the middle of a paragraph 01:41
I guess you could inject blank lines 01:42
ShimmerFairy dnmfarrell: it is interesting, I'll admit, but I think the idea is that it's the "opposite" of a L<> code; instead of pointing you out of the document, it pulls something into the document.
01:42 dayangkun joined
dnmfarrell Yeah, very curious, thanks for the link! 01:42
ShimmerFairy dnmfarrell: the example S26 gives for P<> isn't formatted very clearly, but putting P<> as its own paragraph is exactly what's demonstrated
You're welcome. I don't know for sure what your plans are with =include, but I just wanted to point out that something like what you were going for is already specified in the design docs :) 01:43
dnmfarrell I'm writing a pseudopod extension for Perl5 pod github.com/dnmfarrell/Pod-Perl5/bl...Grammar.pm 01:47
ShimmerFairy And for what it's worth I think a directive would be clearer (though I guess the more Perl6-y name would be =use :P), however P<> seems harmless enough to let stay in the spec. (P<toc:> for a table of contents looks especially useful)
dnmfarrell: interesting, is it an extension for Pod6 or Pod5? (pseudopod, looking quickly, is for books and such, right?) 01:49
If Pod5, interesting choice writing it in Perl 6 :)
dnmfarrell Well version 0.1 was in Pod::Pseudopod, 'twas a painful experience 01:50
Pod::Simple literally has a module called "black box"
Writing it in Perl 6 was just so much easier. But now I want more features, hence the extension :) 01:51
ShimmerFairy dnmfarrell: well, if you're ever adding a Pseudopod-like thing for Pod6, I'd be interested. I'm actually in the middle of writing a replacement Pod6 parser for rakudo (not public yet, but hopefully soon), so Pod6 design question will be on my mind for a while :) 01:52
*questions
dnmfarrell Interesting ... maybe I should just use Pod6 :) Is there much left to implement of the spec? 01:53
ShimmerFairy dnmfarrell: unfortunately, I would say so. P<> like I said isn't supported, and neither is M<> (M<> is a tag meant for modules to plug in whatever formatting code they want, e.g. M<mymodule:stuff> is meant to generate a specific class with "stuff") 01:54
dnmfarrell: If you want to play around with Pod6, then it's perfectly fine. But if you have Serious Documentation™ in Pod5, I wouldn't fully switch that stuff over just yet. 01:55
dnmfarrell ShimmerFairy: thanks for the info. I'm going re-read the Pod6 spec, I think there are some ideas I can borrow for my project :) 01:57
ShimmerFairy Looking at the Pseudopod tutorial, that T<> tag for citation would be implemented as M<citation:my-source> , as an example.
dnmfarrell: it's worth a read for sure :)
Also, G<> and H<> would be M<sup:> and M<sub:>, respectively. The idea of the M<> is that M<Foo:stuff> would generate an object of type Pod::FormattingCode::Named::Foo, in case you're curious :) 02:00
02:03 cognominal joined 02:18 Kyun joined, Kyun is now known as Kyunsiu, Kyunsiu is now known as Kyun_ 02:20 BenGoldberg left 02:22 abaugher left, abaugher joined 02:27 noganex joined 02:30 noganex_ left 02:31 cognominal left 02:35 kaare_ joined 02:38 llfourn joined 02:43 jack_rabbit joined 02:51 jack_rabbit left 02:56 dnmfarrell left 03:03 TEttinger joined, jack_rabbit joined 03:05 [Sno] joined 03:14 CQ_ joined
jnthn good...whatever time this is...#perl6 :) 03:17
yoleaux 19 Aug 2015 19:06Z <nine> jnthn: what is .flat actually supposed to mean? Array has a flat method that does Seq.new(self.iterator) while inheriting .iterator from List. List itself on the other hand does not use its own iterator for .flat and inherits Iterable's instead.
03:17 cognominal joined, aborazmeh left, CQ left 03:18 CQ_ is now known as CQ
jnthn .tell nine because an Array is a bunch of Scalar containers, we know that nothing will ever flatten, so instead of type-testing everything against Iterable we simply just give back an iterator over the values (and if you use binding to defeact that and put an Iterable directly in there, on your own head be it) 03:19
yoleaux jnthn: I'll pass your message to nine.
03:26 laouji left
skids jnthn: should Array not allow BIND-POS of uncontainerized things then? It's been unclear to me how strongly it polices Scalars, whether that was always or just via the iteration related APIs. 03:35
abaugher I have a hash that's hitting my RAM limits. Is there a way to tie a hash to a file, like the old dbm routines or DB_File? 03:36
jnthn skids: It doesn't police it that strongly. 03:37
skids: We've long had := as being fairly low level 03:38
skids: The only place it enforces it is assignment.
skids OK.
jnthn blunchfast &
skids Yum. Though as a word, perhaps does not inspire appetite :-) enjoy. 03:39
03:44 aborazmeh joined, aborazmeh left, aborazmeh joined 03:45 Loren_ joined
dalek c: 59e885d | skids++ | lib/Language/containers.pod:
Add an admonition against uncontainerized binding to array elements
04:04
04:06 skids left 04:07 abaugher left 04:08 abaugher joined 04:26 laouji joined 04:29 rangerprice left 04:44 AlexDaniel left 04:51 khw left
ugexe smoke testing ecosystem on glr to testers.perl6.org. it doesnt look too bad so far 05:12
05:21 araujo left 05:23 araujo joined 05:28 Kyun_ left 05:29 Kyun_ joined, [Sno] left 05:37 rurban_ joined 05:46 rurban joined 06:05 diana_olhovik_ joined 06:08 xinming joined 06:10 dayangkun left
moritz abaugher: there's certainly nothing in core; you could take a look at modules.perl6.org if something already exists 06:11
06:13 dayangkun joined
masak morning, #perl6 06:13
masak .oO( "<+dalek> doc: Add an abonimation" )
lizmat moritz masak o/ 06:16
dalek kudo/glr: 2a79bce | moritz++ | src/core/metaops.pm:
Fix right-assoc reduce meta op
moritz \o lizmasak
lizmat
.oO( all of a suddent, that sounds very japanese :-)
06:17
masak .oO( arre-gateaux ) 06:18
lizmat :-) 06:21
m: my @a = 1,2,3; say @a.sort>>.Str 06:26
GLRelia rakudo-moar 2a79bc: OUTPUT«␤» 06:27
camelia rakudo-moar 93418e: OUTPUT«1 2 3␤»
lizmat m: my @a = 1,2,3; say @a.sort.WHAT
GLRelia rakudo-moar 2a79bc: OUTPUT«(Seq)␤»
camelia rakudo-moar 93418e: OUTPUT«(Parcel)␤»
lizmat seems like doing a >> on a Seq is not working
06:27 cognominal left
moritz m: say (1, 2, 3).sort.List.perl 06:31
GLRelia rakudo-moar 2a79bc: OUTPUT«(1, 2, 3)␤»
camelia rakudo-moar 93418e: OUTPUT«(1, 2, 3)␤»
moritz looks like deepmap wasn't really GLRd yet 06:32
06:37 domidumont joined 06:41 domidumont left, domidumont joined
jdv79 didn't jnthn mention hyper wasn't fleshed out yet? 06:42
even in that gist maybe 06:43
masak there's a gist? 06:44
nine jdv79: I fixed up most of hyper yesterday.
yoleaux 03:19Z <jnthn> nine: because an Array is a bunch of Scalar containers, we know that nothing will ever flatten, so instead of type-testing everything against Iterable we simply just give back an iterator over the values (and if you use binding to defeact that and put an Iterable directly in there, on your own head be it)
nine jnthn: thanks for clarification :)
I guess I should have a look at Hash stuff next. It does have some strangeness to it. And I'm not particularly fond of Hash((:a(1))) running into an endless loop... 06:46
jdv79 i meant the thing glr was before it was in the repo 06:48
JimmyZ that is about .hyper() 06:51
vs .race()
jdv79 >> is hyper ^H, no? 06:53
JimmyZ it is hyper op 06:54
I think you mean threaded hyper :) 06:56
06:56 xfix joined
jdv79 when iis it not? 06:57
nine moritz++ # down to 209 failing files 06:58
07:02 [Sno] joined 07:03 araujo_ joined, araujo left, abraxxa joined 07:04 araujo_ left
laben timotimo++ for newest p6weekly 07:04
\o/ hello there #perl6
lizmat indeed, timotimo++
laben o/
07:05 araujo_ joined
nine laben: sorry it took you so long to find the s/:=/=/ fix for the weird named return value thingy in panda. I've had the patch locally already :/ 07:05
laben nine: O.o well, no worries. at least i knew what to do when i got to the other file 07:07
JimmyZ github.com/rakudo/rakudo/commit/e9...6487ddR156 # Does this need s/=/:=/, I see only here is not :=
laben nine: could you check the >> not iterating over Seq thing?
nine laben: I can have a look this evening 07:08
JimmyZ I mean in the metaops.pm
laben nine: it could very well fix some problem the modules have (e.g. Shell::Command) without needing to change them to .map 07:09
nine laben: that's why I stopped looking at panda and focused on rakudo instead. I'd much rather fix the underlying issues than commit workarounds :) 07:13
07:17 espadrine joined
laben m: dd [(), 1, 2] 07:18
GLRelia rakudo-moar 2a79bc: OUTPUT«[$(), 1, 2]␤»
camelia rakudo-moar 93418e: OUTPUT«$ = [1, 2]␤»
lizmat I know that fixing Sec>>.method will fix at least the Deprecation tests failures
m: dd [slip(), 1, 2] 07:19
GLRelia rakudo-moar 2a79bc: OUTPUT«[1, 2]␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Dt1NPE_hIA␤Undeclared routine:␤ slip used at line 1. Did you mean 'flip'?␤␤»
nine Well it can't be that hard, can it? :)
lizmat () is not a slip()
nine m: dd [Slip(), 1, 2]
GLRelia rakudo-moar 2a79bc: OUTPUT«[Slip(Any), 1, 2]␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HbXd_54rsu␤Undeclared name:␤ Slip used at line 1␤␤»
laben is it expected that the empy list doesn't get flattened/purged away? 07:20
nine laben: yes, we have much less implicit flattening now
lizmat laben: after GLR, I think that's the case
laben ok
dalek kudo/glr: 9c599b4 | (Jimmy Zhuo)++ | src/core/metaops.pm:
s/=/:=/

There are many similar code use :=, so no reason here is not :)
07:21
kudo/glr: 1fbbd02 | lizmat++ | src/core/metaops.pm:
Merge pull request #503 from zhuomingliang/patch-3

s/=/:=/, there are many similar code use :=, so no reason here is not :)
laben m: my @a = [(), 1, 2]; @a = @a>>.flat; dd @a 07:24
GLRelia rakudo-moar 2a79bc: OUTPUT«This Seq has already been iterated, and its values consumed␤ in block <unit> at /tmp/O2piGqHabL:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«@a = [[1, 2]]<>␤»
laben m: my @a = [(), 1, 2]; @a = @a.map(*.flat); dd @a 07:25
camelia rakudo-moar 93418e: OUTPUT«@a = [1, 2]<>␤»
GLRelia rakudo-moar 2a79bc: OUTPUT«@a = [().iterator, (1).iterator, (2).iterator]␤»
laben m: my @a = [(), 1, 2]; @a = @a.map(flat *); dd @a
GLRelia rakudo-moar 2a79bc: OUTPUT«Cannot call map(Array: List); none of these signatures match:␤ ($: &block, *%_)␤ (HyperIterable:D $: &block, *%_)␤ in block <unit> at /tmp/pOu1UepTbj:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«Cannot call map(Array: Whatever); none of these signatures match:␤ ($: Whatever, *%_)␤ ($: &block, :$label, *%_)␤ in block <unit> at /tmp/_heb95EsU2:1␤␤»
laben m: my @a = [(), 1, 2]; @a = @a.map(flat $_); dd @a
GLRelia rakudo-moar 2a79bc: OUTPUT«Cannot call map(Array: List); none of these signatures match:␤ ($: &block, *%_)␤ (HyperIterable:D $: &block, *%_)␤ in block <unit> at /tmp/MAeYxmgzx1:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«Cannot call map(Array: Any); none of these signatures match:␤ ($: Whatever, *%_)␤ ($: &block, :$label, *%_)␤ in block <unit> at /tmp/C_brXa_8LT:1␤␤»
laben m: my @a = [(), 1, 2]; @a = @a.map({flat $_}); dd @a
GLRelia rakudo-moar 2a79bc: OUTPUT«@a = [$($()), $(1), $(2)]␤»
camelia rakudo-moar 93418e: OUTPUT«@a = [[1, 2]]<>␤»
07:26 woolfy joined, woolfy left
dalek kudo/glr: 7b80988 | (Stefan Seifert)++ | src/core/Hash.pm:
Fix endless recursion in Hash coercer

Fixes hang in Hash((:a)) and (:a).Hash
07:26
nine That was easy :)
lizmat :-) 07:29
laben is there an easy way to remove that empty list when already in an array? 07:30
or do i need not to generate it at all?
07:33 darutoko joined, Ven joined
dalek ast: d0f48cd | (Jimmy Zhuo)++ | integration/advent2012-day10.t:
.lines returns Seq now, so fix the test.
07:33
JimmyZ ^^ please review :)
07:34 virtualsue joined
JimmyZ not whether we also need to fix perl6advent.wordpress.com/2012/12/...-me-on-it/ or not 07:34
sorry , wrong branch 07:35
07:36 Ven left
lizmat JimmyZ: d0f48cd doesn't feel right to me, fwiw 07:36
feels like a workaround for a deeper issue 07:37
that needs to be fixed
dalek ast: 5a54795 | (Jimmy Zhuo)++ | integration/advent2012-day10.t:
Revert ".lines returns Seq now, so fix the test."

This reverts commit d0f48cde653fa3add9c4434f5363d475a76638aa.
07:39
lizmat m: my @a = (1,2,3).map(*.Str); dd @a # works as expected 07:40
GLRelia rakudo-moar 7b8098: OUTPUT«@a = ["1", "2", "3"]␤»
camelia rakudo-moar 93418e: OUTPUT«@a = ["1", "2", "3"]<>␤»
lizmat m: my ($a,@a) = (42,(1,2,3).map(*.Str)); dd $a, @a # something wrong here
GLRelia rakudo-moar 7b8098: OUTPUT«$a = 42␤This Seq has already been iterated, and its values consumed␤ in block <unit> at /tmp/hJYioNhZeq:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«$a = 42␤@a = ["1", "2", "3"]<>␤»
JimmyZ hmm, look like it is 07:41
07:45 RabidGravy joined, Ven joined
nine lizmat: FWIW I've committed similiar spec test changes where we return a Seq now and this was compared with is-deeply. I don't see any other way than .List it before the comparison. We definitly want it to be a Seq and is-deeply rightfully complains that it's not a list. 07:49
lizmat: I may be wrong there, but that's as far as my understanding of the GLR goes. 07:50
JimmyZ m: my ($a,@a) = (42,(1,2,3).map(*.Str)); say @a.WHAT 07:52
GLRelia rakudo-moar 7b8098: OUTPUT«(Array)␤»
camelia rakudo-moar 93418e: OUTPUT«(Array)␤»
JimmyZ m: my ($a,@a) = (42,(1,2,3).map(*.Str)); dd @a 07:53
GLRelia rakudo-moar 7b8098: OUTPUT«This Seq has already been iterated, and its values consumed␤ in block <unit> at /tmp/NytjYLdwsd:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«@a = ["1", "2", "3"]<>␤»
07:55 abraxxa left, abraxxa joined 08:18 laouji left 08:22 laouji joined
masak m: say Seq ~~ List 08:22
GLRelia rakudo-moar 7b8098: OUTPUT«False␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/66hAvrtyZs␤Expected a term, but found either infix ~~ or redundant prefix ~␤ (to suppress this message, please use a space like ~ ~)␤at /tmp/66hAvrtyZs:1␤------> 3say Seq ~~7⏏5 List␤»
masak heh.
nine lizmat: nice coincidence. Fixing >> will mean to just continue where I left off yesterday, i.e. HYPER(\op, \obj) 08:27
08:30 Ven left
masak m: repeat -> $thing { say $thing.^name } while False 08:30
GLRelia rakudo-moar 7b8098: OUTPUT«Mu␤»
camelia rakudo-moar 93418e: OUTPUT«Mu␤»
masak "Since the loop executes once before evaluating the condition, the bound parameter will be undefined that first time through the loop." 08:31
"undefined" is kinda vague there. doesn't say whether it'd be Any or Mu.
lizmat nine: but I won't be doing, as we're off to YAPC::Asia first evening talks / prereg / social
laben masak: yesterday i went and made a patch to make ufo compatible with glr too gist.github.com/bfac93f00649f1609ec2 08:32
08:32 aborazmeh left
masak laben: if you send a PR, I will merge it. 08:33
08:37 Kyun_ left
laben masak: github.com/masak/ufo/pull/27 08:46
masak merged. 08:50
m: my %h = <a b c> Z 1, 2, 3; say %h.perl
GLRelia rakudo-moar 7b8098: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/QQ6G8MWJuU:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«{:a(1), :b(2), :c(3)}<>␤»
laben m: my %h = <a b c> Z=> 1, 2, 3; say %h.perl 08:51
GLRelia rakudo-moar 7b8098: OUTPUT«{:a(1), :b(2), :c(3)}␤»
camelia rakudo-moar 93418e: OUTPUT«{:a(1), :b(2), :c(3)}<>␤»
08:54 espadrine left 09:04 mr-foobar left 09:05 zakharyas joined 09:11 rarara joined
nine lizmat: oh, I meant that I would continue myself. Planned for this evening :) 09:14
masak: that's because you get an iterator from Z
m: say (<a b c> Z (1, 2, 3)).perl 09:15
GLRelia rakudo-moar 7b8098: OUTPUT«(("a", 1), ("b", 2), ("c", 3)).iterator␤»
camelia rakudo-moar 93418e: OUTPUT«(("a", 1), ("b", 2), ("c", 3))␤»
laben is it possible to conditionally define a sub? i tried inside an if, but it doesnt work, even in a BEGIN block 09:18
nine Oh, but EnumMap.STORE already takes an iterable. Just not an iterator 09:20
09:22 espadrine joined
nine laben: I really have to ask why you would want to do this... 09:22
timotimo o/ 09:23
JimmyZ m: my &foo = sub(@a) { ... } without &foo 09:25
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jcLdArHU4H␤Variable '@a' is not declared␤at /tmp/jcLdArHU4H:1␤------> 3my &foo = sub(7⏏5@a) { ... } without &foo␤»
GLRelia rakudo-moar 7b8098: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yVSC0R30Mj␤Variable '@a' is not declared␤at /tmp/yVSC0R30Mj:1␤------> 3my &foo = sub(7⏏5@a) { ... } without &foo␤»
JimmyZ m: my &foo = -> @a { ... } without &foo
GLRelia ( no output )
camelia ( no output )
laben nine: slip did not exist before glr and i need it for a change in panda
timotimo i'm glad people appreciate the weekly even if it's late and written with a headached and tired brane :)
laben nine: wanted to keep retrocompat
JimmyZ m: sub foo(@a) { ...} ; my &foo = -> @a { ... } without &foo 09:26
GLRelia rakudo-moar 7b8098: OUTPUT«Potential difficulties:␤ Redeclaration of symbol &foo␤ at /tmp/c26fHE1gmA:1␤ ------> 3sub foo(@a) { ...} ; my &foo7⏏5 = -> @a { ... } without &foo␤»
camelia rakudo-moar 93418e: OUTPUT«Potential difficulties:␤ Redeclaration of symbol &foo␤ at /tmp/kiMNNbXcPt:1␤ ------> 3sub foo(@a) { ...} ; my &foo7⏏5 = -> @a { ... } without &foo␤»
jdv79 nine: how do you get your fail count?
oh, nm - its back a bit in buffer
i fail 296 09:27
maybe because i used TEST_JOBS=4?
nine masak: ok, the real problem is that Z returns ("a", 1), ("b", 2), ("c", 3) which is no longer automatically flattened before the assignment to %h
timotimo so it's trying to build ("a", 1) => ("b", 2)? 09:28
nine m: my %h = flat <a b c> Z (1, 2, 3); say %h;
GLRelia rakudo-moar 7b8098: OUTPUT«a => 1, b => 2, c => 3␤»
camelia rakudo-moar 93418e: OUTPUT«a => 1, b => 2, c => 3␤»
nine timotimo: yes, and the ("c", 3) is the single element left
m: my %h = <a b> Z (1, 2); say %h;
GLRelia rakudo-moar 7b8098: OUTPUT«a 1 => b 2␤»
camelia rakudo-moar 93418e: OUTPUT«a => 1, b => 2␤»
timotimo mhm
nine I'd say that works as expected? 09:29
09:30 telex left
masak "Thank you - this FETCH & STORE structure was what I was looking for. Kind of ugly though" -- stackoverflow.com/questions/3166538...s-in-perl6 09:31
this mirrors my feelings about Proxy quite well :)
"what I was looking for. kind of ugly" :) 09:32
09:32 telex joined
masak m: my %h = flat <a b c> Z 1, 2, 3; say %h.perl 09:32
GLRelia rakudo-moar 7b8098: OUTPUT«{:a(1), :b(2), :c(3)}␤»
camelia rakudo-moar 93418e: OUTPUT«{:a(1), :b(2), :c(3)}<>␤»
masak that works, too.
jdv79 masak ^H: what would be better? 09:33
nine jdv79: I use TEST_JOBS=16 09:34
jdv79: I past the spec test output into a cat | grep Wstat | wc -l to count the failing files 09:35
jdv79 ah 09:36
nine jdv79: am I missing some using this method?
jdv79 i don' think so 09:37
i read the output wrong
i'll check
laben m: say ::<&slip>:exists 09:40
GLRelia rakudo-moar 7b8098: OUTPUT«True␤»
camelia rakudo-moar 93418e: OUTPUT«False␤»
09:46 araujo_ left 09:47 araujo joined, araujo left
jdv79 whatups with hotels and wifi. you'd think these days it'd be a solved thing... 09:48
09:49 araujo joined
nine jdv79: if only... 09:52
jdv79: are you on the glr branch of roast in addition to rakudo?
jdv79 yes
nine ok...may have been a simple explanation :) 09:53
jdv79 209?
is that correct?
nine yep :)
jdv79 nie
*nice
10:00 FROGGS_ is now known as FROGGS
FROGGS o/ 10:00
yoleaux 19 Aug 2015 14:04Z <AlexDaniel> FROGGS: I've been waiting for this! So how does it work now? “<timotimo> froggs changed things in order to make them work differently with regards to output grabbing”
19 Aug 2015 14:05Z <AlexDaniel> FROGGS: I mean, qx// and run.
19 Aug 2015 14:31Z <laben> FROGGS: got a patch for TestML with a fix for latest nom, seems to work already on glr: gist.github.com/986ba2b9e63d1763601d
FROGGS .tell AlexDaniel I think timotimo meant the state we already had when we spoke last time 10:01
yoleaux FROGGS: I'll pass your message to AlexDaniel.
masak jdv79: what would be better? that same commenter mentioned C#'s get/set as an ideal. 10:02
FROGGS .tell laben can you please pull request that here? github.com/perl6-community-modules/testml-pm6/
yoleaux FROGGS: I'll pass your message to laben.
FROGGS laben: or in case you accept the invitation I sent to you, you can push directly 10:03
.tell laben Or in case you accept the invitation I sent to you, you can push directly
yoleaux FROGGS: I'll pass your message to laben.
laben FROGGS: i can make the PR no problems, give me some time 10:07
yoleaux 10:02Z <FROGGS> laben: can you please pull request that here? github.com/perl6-community-modules/testml-pm6/
10:03Z <FROGGS> laben: Or in case you accept the invitation I sent to you, you can push directly
FROGGS laben: you can do that on the website directly btw 10:08
masak moritz: re irclog.perlgeek.de/perl6/2015-07-28#i_10968311 -- I think TypeScript qualifies. 10:12
blogs.msdn.com/b/typescript/archive...t-1-4.aspx
_itz_ m: my @s = 1,2,3,4; my $foo = @s[0..1, 2..3].join; warn $foo.perl; 10:13
GLRelia rakudo-moar 7b8098: OUTPUT«"1 23 4" in block <unit> at /tmp/lyfGseV56n:1␤»
camelia rakudo-moar 93418e: OUTPUT«"1234" in block <unit> at /tmp/xx3y25Y0Fu:1␤»
jdv79 so, i have a situation where changing an attr wants to replace self as a side effect 10:18
is that even possible with p6?
laben FROGGS: got no inv for github. still, here it is github.com/perl6-community-modules...pm6/pull/4
jdv79: what do you mean? 10:19
10:20 luiz_lha joined 10:21 luiz_lha is now known as Guest57289
masak jdv79: no. 10:21
10:21 rindolf joined
masak jdv79: "replace self" is even a little bit ill-defined. 10:21
jdv79: the closest thing I can think of is the `does` operator. 10:22
but I'm not sure it works on `self`
jdv79 in what want ^H?
RabidGravy you can re-call the same method with a different invocant using callwith
ShimmerFairy jdv79: if you mean change what a given variable contains, I think you can only do that with a sub (with an is rw attribute, naturally)
masak m: role R {}; class C { method foo { self does R } }; given C.new -> $c { $c.foo; say $c ~~ R } 10:23
GLRelia rakudo-moar 7b8098: OUTPUT«True␤»
camelia rakudo-moar 93418e: OUTPUT«True␤»
masak oh dear, that worked.
jdv79: yeah, then `does` is your best bet.
jdv79: with it, you can at least turn your object into an anonymous subclass of what it was previously an instance of.
wow, I didn't expect that to work :)
FROGGS laben: you should have received an invitation now
jdv79 yeah, I guess i'm trying to figure out how to mangle containers like p5 refs 10:25
failing so far
masak `does` gets you quite far, I think.
jdv79 just have to fail enough to not:)
masak you can inject methods and attributes that way, for example. 10:26
&
jdv79 the essntial bit im trying to do is inplace replace self with another obj of another class
ShimmerFairy jdv79: would something like sub change-me($foo is rw) { $foo = Bar.new($foo) } be sufficient?
jdv79 maybe, i'll try something like that 10:27
10:32 rurban_ left
nine scary: 10:33
m: class Bar {}; class Foo { method bar(\SELF is rw:) { SELF = Bar.new; }; }; my $foo = Foo.new; $foo.bar; say $foo.WHAT
GLRelia rakudo-moar 7b8098: OUTPUT«(Bar)␤»
camelia rakudo-moar 93418e: OUTPUT«(Bar)␤»
nine I should have called that method barify or so ;) 10:34
m: class Bar {}; class Foo { method barify(\SELF is rw:) { SELF = Bar.new; }; }; my $foo = Foo.new; my $bar = $foo; $bar.barify; say $foo.WHAT; say $bar.WHAT 10:35
GLRelia rakudo-moar 7b8098: OUTPUT«(Foo)␤(Bar)␤»
camelia rakudo-moar 93418e: OUTPUT«(Foo)␤(Bar)␤»
ShimmerFairy nine: welp, I guess you can do it in a method after all :P 10:36
jdv79 thanks 10:37
10:39 rurban_ joined
jdv79 but its not really "inplace" 10:41
m: class Bar {}; class Foo { method bar(\SELF is rw:) { SELF = Bar.new; }; }; my $foo = Foo.new; my $f2 = $foo; $foo.bar; say $foo; say $f2;
GLRelia rakudo-moar 7b8098: OUTPUT«Bar.new␤Foo.new␤»
camelia rakudo-moar 93418e: OUTPUT«Bar.new␤Foo.new␤»
ShimmerFairy m: class Bar {}; class Foo { method bar(\SELF is rw:) { SELF = Bar.new; }; }; my $foo = Foo.new; $foo.bar; say $foo; 10:43
GLRelia rakudo-moar 7b8098: OUTPUT«Bar.new␤»
camelia rakudo-moar 93418e: OUTPUT«Bar.new␤»
10:43 jkva joined
ShimmerFairy jdv79: looks pretty in-place to me :) 10:43
jdv79 it changing the "reference". i want to change the "referent". if that makes sense. 10:44
i think its not possible 10:45
is there a way to rebless? 10:46
ShimmerFairy jdv79: I don't know P5 refs, so I don't understand that terminology enough to help. Best I can guess is that "is copy" instead of "is rw" lets you change SELF as though you had copied it.
jdv79 i imagine not as it would require uncomposing which is probably impossible
definitely a pickle... 10:47
ShimmerFairy jdv79: am I right in thinking that, in C terms, you want to change what the pointer is pointing to, instead of changing the thing being pointed at? 10:49
laben oh my, for Template6 and Flower, their precompilation bug seems not to be triggered anymore on glr, but they fail every test 10:50
jdv79 yeah, i was going to say that - sorry
nine jdv79: nqp::rebless
ShimmerFairy jdv79: no worries, I don't know P5, so I wouldn't understand its terminology :)
10:50 pierrot left
jdv79 well, its not complicated - ref is ptr basically 10:50
nine m: use nqp; class Bar {has $.bar is rw;}; class Foo { method barify() { nqp::rebless(self, Bar); self.bar = 1 }; }; my $foo = Foo.new; my $bar = $foo; $bar.barify; say $foo.WHAT; say $bar.bar 10:51
GLRelia rakudo-moar 7b8098: OUTPUT«(Bar)␤1␤»
camelia rakudo-moar 93418e: OUTPUT«(Bar)␤1␤»
nine jdv79: do I even want to know, why you're asking for this? 10:53
laben m: sub swap(\a, \b) { (a, b) = (b, a) }; my ($a, $b) = (5, 'd'); say $a~$b; swap($a,$b); say $a~$b; 10:54
GLRelia rakudo-moar 7b8098: OUTPUT«5d␤dd␤»
camelia rakudo-moar 93418e: OUTPUT«5d␤d5␤»
jdv79 whoa. nine++ that seems to work
i'll show it soon when its complete enough to make sense 10:55
a few days i hope
thanks!
nine jdv79: please make sure, that you really, really have the problem you're solving with this hack :) 10:56
jdv79 yeah . i don't like dipping into nqp like that
but at least it will illustrate things a bit 10:57
hopefully a better solution will come up
11:06 notch joined, AlexDaniel joined 11:07 xinming left 11:09 dayangkun left 11:15 leont joined 11:17 shalice joined
shalice dalek 11:18
11:21 Ven joined 11:22 suneesh joined, Psyche^ left 11:23 RabidGravy left 11:33 TEttinger left 11:34 Psyche^ joined
jdv79 hmm. hotel amaris says 110 is "low cost". i might not. 11:35
11:37 Guest57289 is now known as luiz_lha 11:38 FROGGS_ joined 11:42 FROGGS left
DrForr We got EUR59/night for Evozon's rooms... Or is this SPW? 11:42
nine SPW 11:45
12:00 suneesh left 12:07 RabidGravy joined 12:09 shalice left
RabidGravy there car all legal for another year 12:09
jdv79 what? 12:11
nine I think the repairs went well ;) 12:12
timotimo either repairs or an inspection 12:13
nine or both
timotimo true 12:15
masak or neither 12:17
notch Hi all. General question - is the page at "perl6.org/compilers/features" very outdated? No changes made to it since Feb 22, but I've read (many) things on concurrency or Unicode support recently. Shoud these improvements be reflected in the Compilers features chart? 12:24
RabidGravy mot test and car tax paid 12:25
timotimo ah, yes, that'd be a good idea
12:27 virtualsue_ joined
laben mh, i can make a PR for a non-master branch on github, right? i would like to publish my fixes for panda in its glr branch 12:27
12:28 virtualsue left, virtualsue_ is now known as virtualsue
timotimo sure 12:28
when opening a PR, you can select the target near the top
near the title of the PR
laben yeah, i'm seeing it right now. sorry but i never really used github from this POV, i need to learn everithing 12:29
timotimo :)
don't worry
nobody was born knowing everything about github
Ven moritz, masak, mouq: anyone of you with OP on #6macros? 12:32
Ulti stackoverflow.com/questions/3195889...n-raw-mode 12:34
Ven moritz: at least, I'm afraid I'll have to ask you to clean the logs 12:36
_itz_ 27C in Olten next Thu 12:37
laben timotimo: as an official confirmation, i'll announce you github.com/tadzik/panda/pull/202, with this even bootstrap works fine 12:38
12:40 Sgeo_ left 12:44 zakharyas1 joined
timotimo sweet! 12:44
tadzik oh
12:45 AlexDaniel left, zakharyas left
tadzik very nice :) 12:45
12:46 colomon left
laben tadzik: the only things i feel could resolve by themselves inside rakudo-glr are the File::Find and Shell::Command PRs 12:46
tadzik: anyway i tested them on nom too, so they have retro-compatibility 12:47
12:50 luiz_lha left
tadzik cool 12:52
rarara Util: "Try "say" instead of "print ..."" LOL 12:53
Ulti
timotimo very wool.
cool.
rarara I think there is a problem in REPL, would like to maybe see if I can fix it, but don't know where to put my hands 12:57
the problem is that it doesn't work with copy and paste using middle button mouse in linux
can anybody help?
12:58 colomon joined
Ven rarara: I think it's recommended to use linenoise 13:02
rarara Ven I am using it, I think
13:02 luiz_lha joined, luiz_lha is now known as Guest19458
rarara Also I don't know how to remove Linenoise to do tests 13:03
linenoise.c -- guerrilla line editing library against the idea that a * line editing lib needs to be 20,000 lines of C code. 13:04
WTF
daxim_ what does %song-data{~$} = +$, [$.words]; mean in English?
it's from the recent blog entry 13:05
rarara how do you remove a package with panda? 13:06
daxim_ nevermind, the software removed stuff between <>
13:06 espadrine left, espadrine joined 13:08 Guest19458 left 13:09 laouji left 13:11 virtualsue left 13:12 skids joined 13:13 rmgk_ joined, rmgk is now known as Guest27151, rmgk_ is now known as rmgk
timotimo rarara: well, gnu readline is about that big 13:14
and linenoise was created in the hopes of making a readline replacement that doesn't have to be so gigantic 13:15
Ven is "Cool is the supertype of everything in Perl6, and its subtype Any is the supertype of every primitive class type" valid? 13:17
13:17 Guest27151 left
Ven well, it's hard to digest... 13:17
rarara timotimo ok, do you know how to uninstall linenoise? does rm `locate Linenoise` suffices
?
timotimo welll.... 13:18
we don't really have a good way to do uninstallation yet :|
or perhaps zef can uninstall? ugexe?
CQ zef -v uninstall CSV::Parser ...from github.com/ugexe/zef 13:19
13:24 virtualsue joined
rarara didn't manage to use zef 13:24
but rm `locate Linenoise` did the job
Without Linenoise there is no bug in REPL 13:26
but it misses Readline
timotimo so linenoise is setting some flag for the terminal that intercepts middle mouse clicks?
rarara timotimo don't know, would be interesting to see if it is a general problem or specific 13:27
timotimo there is the same problem with copy paste 13:29
I cannot paste more than 1 line in REPL
with linenoise
but I use Linux, don't know about windows
github.com/antirez/linenoise/issues/43 this is bug upstream 13:30
apparently they are guerrilla 13:31
13:35 khw joined 13:39 Sgeo joined
leont Can someone add github.com/Leont/yamlish and github.com/Leont/path-iterator to the ecosystem? 13:42
RabidGravy leont, it's sent a pull request for the additional lines in github.com/perl6/ecosystem/blob/ma.../META.list 13:46
_itz_ or just get commit access 13:47
hoelzro good *, #perl6! 13:48
RabidGravy or that
yo
nine notch: the features page indeed seems to be a bit outdated. We do have NFG by default for example. 13:49
13:51 Ven left
ugexe i wonder, should uninstall also be a part of CURLI? 13:51
13:53 Ven joined
RabidGravy yes 13:53
flussence (what nine said) I agree, that page is ancient history by now. It was more useful as a cheatsheet for which screws were loose in each VM than as a general feature reference point. I guess the new front page being worked on would fulfil the same purpose. 13:54
_itz_ I wonder also if less emphasis should be put on the other VMs at the moment or the coming months given the current focus 13:57
Ven don't we have also have double colon LTM stopper thanks to FROGGS_ ++ ?
_itz_ less visible on the web pages I mean
Ven I guess that "LoL" item will want a removal? 13:58
nine yes 13:59
ShimmerFairy m: my "abc" ~~ / a :: bc /
GLRelia rakudo-moar 7b8098: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ps04q4gUZn␤Malformed my␤at /tmp/Ps04q4gUZn:1␤------> 3my7⏏5 "abc" ~~ / a :: bc /␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4mLfgVfCYF␤Malformed my␤at /tmp/4mLfgVfCYF:1␤------> 3my7⏏5 "abc" ~~ / a :: bc /␤»
ShimmerFairy m: say "abc" ~~ / a :: bc /
GLRelia rakudo-moar 7b8098: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YENYM3CiNF␤:: not yet implemented␤at /tmp/YENYM3CiNF:1␤------> 3say "abc" ~~ / a ::7⏏5 bc /␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Jv0lmZ4ehb␤:: not yet implemented␤at /tmp/Jv0lmZ4ehb:1␤------> 3say "abc" ~~ / a ::7⏏5 bc /␤»
ShimmerFairy Ven: nope on :: :)
Ven I'm not sure where the "features" page is in the perl6/perl6.org repo
flussence it isn't; check the footer 14:00
Ven uh, thanks flussence++
14:01 jkva left
hoelzro nine: I just tried to install Inline::Perl5, and I noticed it now requires Sub::Name in Perl5 land. Is there a way you could fallback to work without it, or is that just a hard requirement of the P5 environment? 14:02
Ven "Any is the supertype of every defined value" how does that sound? 14:04
14:04 domidumont left 14:05 domidumont joined
nine hoelzro: it's only needed for v6::inline support. I guess with gist.github.com/niner/7e9f4a7b761a94bb811b most people would not even notice the missing functionality. 14:05
Ven: wrong :)
ShimmerFairy Ven: I think that messes with the meaning of "defined" in the language itself. 14:06
Ven nine: I'm trying to make a gross oversimplification, but even then, I can't find a small enough one
ShimmerFairy Any is the type from which most (if not all) normal objects inherit from. The ones that inherit from Mu instead tend to be weird things, e.g. Junction :)
hoelzro nine: probably not; I don't mind having to install Sub::Name, I'm just wondering how that could be handled at build/test time
Ven sighs and adds a "Perl6 pre-declared types" slide 14:07
dalek osystem: c6f3384 | leont++ | META.list:
Add YAMLish and Path::Iterator
osystem: 746ac3c | ugexe++ | META.list:
Merge pull request #52 from Leont/leont

Add YAMLish and Path::Iterator to ecosystem
timotimo just one slide? ;)
Ven timotimo: I'd love not to say too much about it.
Maybe I should just say nothing. sshhh!
ShimmerFairy: really, the issue is trying to fit Mu, Any, Cool, Whatever and the other base types
"The Any type encompasses all normal value and object types. It is the unit type, but includes units that are containers of multiple values." 14:08
nine hoelzro: maybe I should just inline it. It provides only one function of which 15 % is parameter checking and 33 % debug support
notch nine, flussence: thanks. as I understood this new page will come together with a v1.0? 14:09
nine notch: that would be good timing
hoelzro nine: you could always use it if it's available, and make a note in the docs 14:10
Ven " Cool Perl 6 Convenient OO Loopbacks" methods on Any are loopbacks for array of unit values, and methods on Cool are only on one value? 14:13
m: say $ ~~ Any; say $ ~~ Cool;
GLRelia rakudo-moar 7b8098: OUTPUT«True␤False␤»
camelia rakudo-moar 93418e: OUTPUT«True␤False␤»
14:15 espadrine left 14:16 espadrine joined
nine Oh btw. at all: I would love to hear about real world use cases of Inline::Perl5, even if it's just for toying around. Would give me a better feel for what's needed and also food for my YAPC talk :) 14:16
laben leont: you left yamlish description inside path-iterator META.info file 14:17
leont D'oh!
DrForr nine: Well, you've of course got my module and conversion tool, so if anyone uses those, by proxy you get kudos :) 14:19
[Coke] submits a patch to dev.perl.org with updated info, waiting for it to get pushed.
PerlJam nine: I've used it a couple of times to get at Spreadsheet::ParseExcel and Excel::Writer::XLSX so that I could pull some data from a spreadsheet and use P6 to do things with it and generate new spreadsheets 14:20
DrForr Dunno if anyone's actually created a module with it, I know that a few people here have 'used it in anger'...
hoelzro nine: I've been playing with it for a side project 14:22
I haven't picked that up in a few weeks, though =/
laben DrForr: anger for what, ooc?
DrForr They never mentioned. 14:23
abaugher moritz: Thanks, I didn't find anything on the modules list. The 'modules wanted' list has them. S29 seems to say 'tie' should be done as containers, something like "class FileHash is Hash". That's probably beyond my level now, but maybe I'll give it a shot soon. 14:24
JimmyZ thinks Inline-Perl5 would be the first productionish module of Perl 6 ;) 14:28
nine PerlJam: oh that's interesting. Do you remember any difficulties? 14:31
PerlJam nine: Nope. I mostly remember being happy that everything Just Worked :) 14:32
14:32 lucasb joined 14:33 cognominal joined
nine hoelzro: can you elaborate a bit? 14:34
Ulti rarara: not me, just linking it here for someone to answer 14:38
also so I can find it later ;)
IRC is the best TODO list because sometimes someone else does it for you 14:39
I sift through most URLs on here in the evening to send stuff to the subreddit
[Coke] trying to update the daily run scripts to use Inline::Perl5 so we can report on those also. panda bootstrap hanging here: Compiling lib/File/Find.pm to mbc 14:43
(cloned panda into ./panda - cd panda && ../install/bin/perl6 bootstrap.pl)
also, when it says fetching File::Find - is it really fetching, or using the copy in ext/ ? 14:44
14:44 jack_rabbit left
nine [Coke]: I changed line 40 in t/harness to +$ENV{'PERL6LIB'} = join ',', qw( lib . /home/nine/Inline-Perl5/lib ); 14:44
[Coke]: to run S01 spec tests
laben [Coke]: the one it builds and installs is the one fetched from git, the one in ext is used only for making included panda work OOTB 14:46
lizmat ugexe: re irclog.perlgeek.de/perl6/2015-08-20#i_11087501 I would say: yes, uninstall should be part of any CompUnitRepo API module
so also of CURLI
Ven m: subset A; say Mu.new ~~ A; # why does this throw instead of just returning False? 14:48
GLRelia rakudo-moar 7b8098: OUTPUT«X::Multi::NoMatch exception produced no message␤ in block <unit> at /tmp/0bgzkBXHlx:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«X::Multi::NoMatch exception produced no message␤ in block <unit> at /tmp/56rzDPEq8I:1␤␤»
[Coke] Ugh. Want to have a way to build without re-fetching things over the network all the time. (already doing this for rakudo, roast, pugs, nqp, moar, parrot, etc.)
anyway, the panda install is busted for me on that setup. Will try nine's trick of using an uninstalled copy, but I'd rather test the install while I'm doing this. 14:49
JimmyZ what about zef?
laben [Coke]: also, for now File::Find Shell::Command and Panda need to have patches applied to them to work on glr, you can find them in PRs in their repos 14:50
JimmyZ panda doesn't work for me for a long time , but zef works here
hoelzro nine: I mean something like this: gist.github.com/hoelzro/2a6a16ed3980426177b5
RabidGravy nine, you'll be glad to know that Term::ReadKey works with I::P5
dalek p: 01161fd | (Kamil Kułaga)++ | src/vm/jvm/QAST/Compiler.nqp:
Probable code typo found by coke

  github.com/perl6/nqp/commit/87d8a6...d7ea6bf285
p: f95126b | lizmat++ | src/vm/jvm/QAST/Compiler.nqp:
Merge pull request #242 from teodozjan/patch-1

Probable code typo found by coke
RabidGravy which is nice
[Coke] I'm not doing this for glr at the moment.
nine RabidGravy: oh that's cool indeed :) 14:52
RabidGravy I'm not sure I want to encourage it as it is bound to give rise to bug reports
jdv79 lizmat: how do i push a p6 dist to cpan then?
14:53 domidumont left
nine RabidGravy: why? 14:53
RabidGravy ReadMode(0) appears to work differently for some reason
laben [Coke]: strange, so you say panda stalls for you on nom? 14:54
hoelzro RabidGravy: it might have something to do with how MoarVM treats STD*
I had to compensate for that in Linenoise
lizmat jdv79: like you would upload any Distribution to PAUSE with a PAUSE ID 14:55
nine RabidGravy: maybe that would be a nice example for my talk. I like to make people aware of potential difficulties and how to get around them.
lizmat just make sure there is a META6.json file in the top directory
RabidGravy nine, gist.github.com/jonathanstowe/deba...330cefa995 14:56
14:57 woolfy joined
[Coke] nine: PERL6lib is comma separated? 14:57
laben: yes.
nine [Coke]: yes
woolfy Awesome news. Oetiker+Partner donates 5000 Swiss Francs to Perl 6. news.perlfoundation.org/2015/08/oet...00chf.html
RabidGravy yay
nine woolfy: yeah! 14:58
RabidGravy hoelzro, ah I may have to check this out
[Coke] nine: tried: export PERL6LIB=`pwd`/Inline-Perl5/lib,`pwd`/lib, but "perl t/spec/test_summary" still skips the tests when running those files. 14:59
14:59 araujo left
[Coke] WOOT. 14:59
nine [Coke]: that's because t/harness overwrites PERL6LIB
[Coke]: hence I patched it locally
laben [Coke]: never seen that happen, how could i (help you) investigate this problem?
14:59 woolfy left
[Coke] I'm not using t/harness. 15:00
15:00 araujo joined
skids m: say ([\-] 1,2,3) 15:00
GLRelia rakudo-moar 7b8098: OUTPUT«-1 -4␤»
camelia rakudo-moar 93418e: OUTPUT«1 -1 -4␤»
nine [Coke]: t/fudgeandrun does so, too. Maybe your setup as well?
[Coke]: did you run perl6 configure.pl6 in Inline-Perl5 directory? It has to compile a lib for Perl 5 15:01
skids mortiz: per PR#502's now-obselete third commit some takes are missing from [/op]
[Coke] nine - no, I didn't. (this is why I want to use panda and not cheat :)
skids *[\op 15:02
15:02 silug_ left
skids ergh I can't type. *moritz 15:02
[Coke] nine: Could not find LibraryMake
15:02 Ven left
JimmyZ (Oetiker+Partner)++ 15:03
nine [Coke]: how did I do this?? 15:04
[Coke] you probably already had some prereqs installed?
nine [Coke]: oh, could be that I compiled using nom and switched rakudo to glr only later. Compilation does not depend on perl6, so one can re-use the same lib for both branches.
[Coke] nine: I'm on a fresh copy of nom. 15:06
timotimo praised be oetiker+partner!
PerlJam Did someone court Oetiker+Partner for the donation or was it "random"?
timotimo since they are based in olten, i bet they have something to do with the SPW 15:07
PerlJam ah
timotimo in fact, they are one of the sponsors listed on the spw website
[Coke] laben: starting with github.com/coke/perl6-roast-data/b...ar-jit.sh, modifying that to grab panda, inline-perl5 ... it's a bunch of small change to that script, but basically, doing a make install, then using the installed perl6 to run panda hangs on teh aforementioned step.
nine [Coke]: if you're on Linux, just run this from your Inline-Perl5 directory: gcc -Wall p5helper.c `perl -MExtUtils::Embed -e ccopts -e ldopts` -shared -o lib/Inline/p5helper.so -fPIC -g
[Coke] nine: "just" ? 15:08
I'll make panda work instead.
nine or that :)
timotimo oh wow
[Coke] .. later, though. this easy thing has already gotten out of control. :)
timotimo tobi oetiker is the person who made MRTG and RRDtool, and O+P also made SmokePing 15:09
nine wow indeed
leont nine: do you always build it with ldopts? 15:10
nine leont: that's what perlembed told me to do
leont It's meant for executables, not shared objects. It's probably ok, there is a chance that has some consequence on some platforms.
laben [Coke]: did you try rakudobrew to help install and manage both rakudo and panda? 15:11
[Coke] laben: no.
oetiker bow gracefully 15:12
lizmat oetiker++ :-)
[Coke] I'm specifically doing this for the daily spec test run, which already has a build setup (does rakudobrew provide a way to build from local checkouts rather than fetching over the network?)
oetiker++
PerlJam oetiker++
nine oetiker++ # counter is far behind
tony-o is there actually a counter? 15:13
laben i would recommend, it makes keeping up with commits very easy and simply keeps the git repo around, so no big fetch every time
nine leont: without it I get Unhandled exception: Cannot locate native library 'lib/Inline/p5helper.so': lib/Inline/p5helper.so: undefined symbol: boot_DynaLoader
tony-o: probably not :)
lizmat [Coke]: it is one of my goals to allow Installed modules to be re-precompiled when rakudo changes
PerlJam tony-o: only in our collective consciousness :)
lizmat without needing to refetch them from anywahere
*anywhere 15:14
ugexe zef keeps the repos around in /tmp/module-name and does a git pull if it exists already
leont nine: yes, it certainly contains essential things, it will also contain useless things (you don't need most -l flags except on Windows/Cygwin for example), it may contain harmful things.
Not saying it's wrong, I'm saying it may be subtly wrong somewhere.
nine that's the worst kind of wrong... 15:15
ugexe lizmat: ive been thinkg how to do that as well, mostly boiling down to saving the dependency graph in the MANIFEST
oetiker at O+P we love perl ... most of our tools are made with perl ... so we thought that it would make sense to invest a bit into perl 6 ... especially hoping that other small shops would maybe follow our lead
15:15 diana_olhovik_ left
tony-o i only love perl6 15:15
_itz_ oetiker++ # I've used rrdtool many times over the years 15:16
ugexe and possibly a way to re-run the hooks/ (as well as saving the hooks)
leont It's probably nothing, I'll try to look into it when I have time
tony-o is the hooks thing still the biggest challenge with that? a lot of BUILD.pm junk still out there 15:17
lizmat ugexe: as a core developer, re-installing modules should be possible without network access, every time I to "make install"
tony-o lizmat: if pull fails it tries to build what is there
ugexe lizmat: right. if the manifest contained a dependency graph then it would be possible
lizmat tony-o: I don't want it to try: I don't want modules changes as well whenever I do a make install of rakudo and I happen to have network connectivity 15:18
nine Oh that's a cute one: adding debug output to deepmap makes many more hyper tests pass
tony-o lizmat++
timotimo so you're potentionally sinking something that didn't get sunk before? 15:19
nine timotimo: .perl reifies the list. deepmap(\op, \obj) really requires obj to be a fully reified list. It's accessing $!reified directly 15:21
timotimo ah, mhh
skids agrees strongly with lizmat++, was actually perturbed to discover build/test targets bailing for lack of net. 15:22
moritz \o 15:23
tony-o skids: i think lizmat is more referring to when recompiling a bunch of modules all at once, those modules shouldn't be automatically upgraded to a new(er) version if available. just recompile the ones already available in the system
lizmat tony-o: indeed 15:24
tony-o i'm taking yours to mean that build/test stage should fail if the module requires net but it isn't available (skids)
nine oetiker: maybe I should try to sell it as an investment to our mangement instead of as a donation. We are donating, but more tranditionally to social institutions.
JimmyZ oetiker: thank you! 15:26
lizmat
.oO( the new trend in mangening :-)
PerlJam nine: how would you do that? You don't typically expect a return for donations, but you do for investments. What would their ROI for Perl 6 be? 15:28
lizmat ROI could be in personnel enthusiasm for work 15:29
mst but also in potentially increased development speed
skids tony-o: the general principle of the matter, really. It's ok to quickly check for updates and notify the builder they are available, but you don't want code changing automatically when you are debugging stuff, and definitely don;t quit because your git pull failed.
nine PerlJam: it would be a long term investment, that's for sure. Well, keeping Perl alive can only be a good thing when you sit on a quarter million LOC Perl code.
PerlJam lizmat: that might work for nine, but I'm not sure it would work for "management" :)
mst 'spnsorship' is often an effective term
skids
.oO(kids these days. When I was a kid you had to walk 25 feet up a flight of stairs to get your sibling off the phone before downloading anything.)
15:30
tony-o skids: i believe that is what lizmat was hinting at, the default should be not checking for updates when rakudo version changed from the last one. zef doesn't die if the git pull fails
s/hinting/stating/ 15:31
PerlJam nine: what mst said too
skids tony-o: Right. I would say as long as the timeouts are kept short, though, it's OK to quickly look and spit out a "hey there are updates, btw" message. 15:32
ugexe the build process will get better as CURLI matures and the manifest contains more meta information
lizmat ugexe: indeed :-)
[Coke] skids++ #old timer.
lizmat remembers having the neighbours come over to use our phone because they didn't have any 15:33
PerlJam
.oO( and it was rotary dial )
15:34
lizmat oh yes.... :-)
[Coke] remembers what a big deal it was getting a touch tone phone.
skids remembers having a shared "party line".
[Coke] I still have a blue princess rotary somewhere in the house.
CQ I saw a picture somewhere that had a phone booth and a letterbox for posting letters with the caption "For the kids of today: yesterdays mobile phone and Mail Inbox" : ) 15:35
_itz_ remembers CCITT5
PerlJam _itz_: did you ever um ... take advantage of it? ;) 15:39
FROGGS_ Ven: we don't have the :: yet me thinks
RabidGravy I've "dialled" a pay phone using the "hook" when the dial wasn't working 15:40
_itz_ PerlJam: errrr no of course not :) 15:41
tony-o phreaker
how old are you [Coke], i remember getting our first touch tone phone too 15:42
moritz m: use nqp; say nqp::elems(nqp::geattr(<a b c>.sort.List, List, '$!reified'))
GLRelia rakudo-moar 7b8098: OUTPUT«===SORRY!===␤No registered operation handler for 'geattr'␤»
camelia rakudo-moar 93418e: OUTPUT«===SORRY!===␤No registered operation handler for 'geattr'␤»
RabidGravy infact IIRC when BT first introduced button pay phones you could circumvent the paying part with the hook
moritz m: use nqp; say nqp::elems(nqp::getattr(<a b c>.sort.List, List, '$!reified'))
GLRelia rakudo-moar 7b8098: OUTPUT«0␤»
camelia rakudo-moar 93418e: OUTPUT«P6opaque: no such attribute '$!reified'␤ in block <unit> at /tmp/AoBF_qoEx7:1␤␤»
dalek kudo/glr: 3724b5d | (Stefan Seifert)++ | src/core/metaops.pm:
Fix unary hyper operators

deepmap(\op, \obj) really required obj to be a fully reified list. It's accessing $!reified directly. List.FLATTENABLE_LIST reifies and returns $!reified. Seems like a perfect match.
All but one hyper test pass now.
moritz nine++ # I was just looking into that one :-) 15:43
ugexe nine++
dalek kudo/glr: 2c088cc | moritz++ | src/core/metaops.pm:
Apply the deepmap fix to nodemap too
15:44
ugexe i gave up on that one
tony-o ugexe: check this out man, gist.github.com/tony-o/0b841686d7e00bc1e08c
skids moritz: per backlog, [\op] still needs some work.
tony-o benchmark of to-json
moritz m: say [\+] 1, 2, 3, 4 15:45
GLRelia rakudo-moar 7b8098: OUTPUT«3 6 10␤»
camelia rakudo-moar 93418e: OUTPUT«1 3 6 10␤»
ugexe nice, does the build in from-json parse the output of it ok?
15:45 andreoss joined
tony-o jsonlint parses it okay 15:46
nine moritz: I really wonder why exactly one test in hyper.rakudo.moar is failing.
ugexe sweet, that would help generating projects.json files and manifest quicker 15:47
tony-o ugexe: here is the output - gist.github.com/tony-o/18483cd4a55d52d57811
nine moritz: no idea why this is the only test where such an inner list gets itemized: # expected: $[$[-1, -2], $[-3, $[-4, -5]]] # got: $[$[$(-1, -2)], $[$(-3, $[$(-4, -5)])]]
[Coke] ww
m: say "\x[212b]" eq "\x[c5]"
GLRelia rakudo-moar 2c088c: OUTPUT«True␤»
camelia rakudo-moar 93418e: OUTPUT«True␤»
ugexe oh, you need to add escaping
tony-o it does escape
[Coke] Is that a result of NFG, straight up unicode normalness, or a bug? 15:48
ugexe oh im thinking of the extra escape characters from the .perl
[Coke] m: say "\x[212a]" eq "K" # noticed first with this.
GLRelia rakudo-moar 2c088c: OUTPUT«True␤»
camelia rakudo-moar 93418e: OUTPUT«True␤»
15:48 Ven joined
[Coke] .u K 15:48
yoleaux U+004B LATIN CAPITAL LETTER K [Lu] (K)
timotimo nine: so we now have working >>.foo? awesome :) 15:49
Ven wow, that's a lot of money. (Oetiker+Partner)++, and of course woolfy++ :)
nine timotimo: either that or we are missing spec tests for hyper 15:51
wait, there are _more_ spec test files failing now?
skids m: say ([R/] pi,4,e,2)
GLRelia rakudo-moar 2c088c: OUTPUT«1.0674667778342␤»
camelia rakudo-moar 93418e: OUTPUT«0.0585498315243192␤»
skids moritz: also that ^^
RabidGravy what larks 15:52
timotimo m: say "what's my version?"
GLRelia rakudo-moar 2c088c: OUTPUT«what's my version?␤»
camelia rakudo-moar 93418e: OUTPUT«what's my version?␤»
dalek ast/glr: 211dc1d | (Stefan Seifert)++ | S03-metaops/eager-hyper.t:
Adjust eager-hyper.t to the fact that gather returns a Seq now
hoelzro oetiker++ very nice!
timotimo camelia's rakudo version is out of date by about 2 days :(
moritz m: say [\<] 1, 0
GLRelia rakudo-moar 2c088c: OUTPUT«===SORRY!===␤␤The 'gimme' method was an internal method used by rakudo before the Great␤List Refactor. The fact that you are seeing this message, means that you␤have code that was using that unsupported rakudo internal API.␤␤Please refactor th…»
camelia rakudo-moar 93418e: OUTPUT«True False␤»
15:53 domm joined
nine Oh, I broke Inline::Perl5 :( 15:55
m: for Any.^methods>>.name -> $name { say $name; }
GLRelia rakudo-moar 2c088c: OUTPUT«This type does not support elems␤ in block <unit> at /tmp/bu4jVb8Jv9:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«invoke␤exists_key␤EXISTS-KEY␤delete_key␤DELETE-KEY␤delete_pos␤DELETE-POS␤list␤flat␤eager␤hash␤Hash␤Parcel␤List␤elems␤end␤keys␤kv␤values␤pairs␤antipairs␤invert␤pairup␤squish␤rotor␤reverse␤sort␤reduce␤c…»
15:56 abraxxa left
laben nine: it did fix Shell::Command (no more need for my PR), but not File::Find 15:57
jdv79 lizmat: how is that Perl6 distinction made 15:58
lizmat the existence of a META6.json in the distribution is the flag
jdv79 k
m: sub foo ($a? where * ~~ /<[a..z]>/) {}; foo()
GLRelia rakudo-moar 2c088c: OUTPUT«Use of uninitialized value of type Any in string context in whatevercode at /tmp/IRF9YOto_7:1␤Use of uninitialized value of type Any in string context in whatevercode at /tmp/IRF9YOto_7:1␤Constraint type check failed for parameter '$a'␤ in sub f…»
camelia rakudo-moar 93418e: OUTPUT«Use of uninitialized value of type Any in string context in whatevercode at /tmp/OdvsLbSQJR:1␤Use of uninitialized value of type Any in string context in whatevercode at /tmp/OdvsLbSQJR:1␤Constraint type check failed for parameter '$a'␤ in sub f…»
jdv79 shouldnt somethin like that work better 15:59
nine I guess Any.^methods>>.name previously silently returned an empty list 16:00
dalek kudo/glr: 83a29ca | moritz++ | src/core/metaops.pm:
Add missing first value in triangle reduce
16:01
timotimo nine: can you find out why camelia's rakudo-moar is out of date? is it failing to build? 16:02
Ven m: multi sub compare-zero(1..*) { More }
GLRelia rakudo-moar 2c088c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cBy9cWOFbP␤Missing block␤at /tmp/cBy9cWOFbP:1␤------> 3multi sub compare-zero(17⏏5..*) { More }␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/U_4H50GKuY␤Missing block␤at /tmp/U_4H50GKuY:1␤------> 3multi sub compare-zero(17⏏5..*) { More }␤»
Ven multi sub compare-zero($ where 1..*) { More }
m: multi sub compare-zero($ where 1..*) { More } #w hoops
GLRelia ( no output )
camelia ( no output )
moritz timotimo: I can take a look 16:03
timotimo cool, thank you, moritz++
nine moritz: oh, thanks for fixing my thinko! I somehow thought of "until" as "do { ... } until" 16:04
Oh noes... Any.^methods>>.name actually did work as advertised before my hyper fix
moritz timotimo: nqp-j build failure: Use of undeclared variable '$EX_CAT_AWIAT' at line 92, near " +| $EX_CA" 16:06
timotimo huh!
moritz timotimo: while trying to build gen/jvm/stage1/QAST.jar
timotimo nobody noticed that typo, eh?
ugexe someone commented on the PR about the typo
laben didn't that get fixed by [Coke]?
moritz did somebody else bump the NQP revision? 16:07
timotimo i'm working on a patch
oh
laben github.com/perl6/nqp/commit/01161fd38c
timotimo yeah, it did got fixed, but perhaps the nqp revision of rakudo didn't get bumped 16:08
dalek kudo/nom: 59d6cf8 | timotimo++ | tools/build/NQP_REVISION:
bump NQP for AWIAT typo fix for jvm
16:09
timotimo evalbot control rebuild 16:10
(or something like that?)
16:11 xinming joined 16:12 zakharyas1 left, yqt joined
moritz timotimo: that used to work a few years ago, but doesn't anymore 16:13
timotimo OK :)
BBIAB
laben omg i got an exception directly from moar "This type does not support elems"...
Ven timotimo: the typo was noticed, someone commented on the commit IIRC 16:14
moritz m: say [<] ()
camelia rakudo-moar 93418e: OUTPUT«True␤»
GLRelia rakudo-moar 83a29c: OUTPUT«␤The 'gimme' method was an internal method used by rakudo before the Great␤List Refactor. The fact that you are seeing this message, means that you␤have code that was using that unsupported rakudo internal API.␤␤Please refactor this code using t…»
nine m: say (1,2).^name; say (1,2).FLATTENABLE_LIST.^name; say Any.^methods.^name; say Any.^methods.FLATTENABLE_LIST.^name; # WTF?!
GLRelia rakudo-moar 83a29c: OUTPUT«List␤IterationBuffer␤List␤List␤»
camelia rakudo-moar 93418e: OUTPUT«Parcel␤Parcel␤Parcel␤Parcel␤»
nine How can Any.^methods give me a List but its FLATTENABLE_LIST method return a different type than other lists? 16:15
moritz nine: something bootstrappy, most likely; I'm pretty sure .^methods is written in NQP, so it returns a NQP-level array that's auto-mapped (?) into a List 16:17
nine moritz: any idea where I could find this auto-mapping code? I'd be very interested in how such a List would look like.
+ I think it's a bug worth fixing that $!reified is a List instead of an IterationBuffer 16:18
Metamodel/BOOTSTRAP.nqp line 2604 looks like it 16:20
dalek kudo/glr: 5e3cfb3 | moritz++ | src/core/metaops.pm:
GLRify [>] (and in general, non-triangle METAOP_REDUCE_CHAIN)
16:21
16:23 domidumont joined
moritz m: say [\<] 1, 2 16:23
GLRelia rakudo-moar 83a29c: OUTPUT«===SORRY!===␤␤The 'gimme' method was an internal method used by rakudo before the Great␤List Refactor. The fact that you are seeing this message, means that you␤have code that was using that unsupported rakudo internal API.␤␤Please refactor th…»
camelia rakudo-moar 93418e: OUTPUT«True True␤»
[Coke] on hack, examples has a process running for 73 hours that is pegging 3 cpus.
timotimo auto-mapping refers to "hllize" most likely 16:24
somewhere, likely in BOOTSTRAP, we set up that mapping
moritz [Coke]: thanks, killing it 16:25
nine timotimo: I guess that's it? List.HOW.add_attribute(List, scalar_attr('$!reified', Mu, List));
timotimo: should be IterationBuffer, but of course that's running into bootstrap issues :)
which are solvable 16:26
16:26 FROGGS_ is now known as FROGGS
FROGGS now compiles glr 16:26
moritz .tell [ptc] a perl6-examples job on hack was running for 72 CPU hours before I killed it; please investigate (and add a CPU limit to all cron jobs) 16:27
yoleaux moritz: I'll pass your message to [ptc].
nine But it didn't change anything :/
timotimo that's not what sets up the type "nqp::hllize" uses, but it seems worth fixing anyway
moritz no, it's only the default type for the attribute 16:28
16:29 nowan joined
nine line 2885? 16:29
moritz nine: the line number is a bit off, but foreign_transform_array it is 16:30
nine moritz: oh, of course. I added a couple of lines for IterationBuffer :)
moritz nine: :-)
16:30 travis-ci joined
travis-ci Rakudo build errored. Timo Paulssen 'bump NQP for AWIAT typo fix for jvm' 16:30
travis-ci.org/rakudo/rakudo/builds/76486980 github.com/rakudo/rakudo/compare/5...d6cf88ab9a
16:30 travis-ci left
nine foreign_transform_array creates a List object and binds $farray to the list's $!reified. But where is $farray actually converted to a List object? 16:33
FROGGS nine: at what test files are you working?
timotimo damn, my bump seemingly went wrong
moritz nine: the block returns the new List object 16:34
nine: which is the conversion, really
timotimo huh, what state was my git repository in ?!
nine FROGGS: currently on the S01 tests, i.e. Inline::Perl5 failing due to Any.^methods>>.name giving me a "This type does not support elems" in src/core/metaops.pm line 476
FROGGS timotimo: Idaho? 16:35
nine: kthx
dalek kudo/nom: 815fff3 | timotimo++ | tools/build/NQP_REVISION:
the previous bump was apparently bogus
16:36 yqt left, JimmyZ left, JimmyZ joined
nine moritz: do I understand correctly that it binds an nqp::list to $!reified and when I try to do something in Perl 5 with $!reified it gets hllized to a List using the same mechanism? 16:36
moritz: in Perl 6 of course :)
moritz nine: I think so, yes 16:37
timotimo m: use nqp; sub test() { my \foo = nqp::list(); say foo.WHAT; foo }; my $test = test(); say $test.WHAT 16:38
GLRelia rakudo-moar 5e3cfb: OUTPUT«␤␤»
camelia rakudo-moar 93418e: OUTPUT«␤␤»
timotimo m: use nqp; sub test() { my \foo = nqp::list(); say foo.WHAT.name; foo }; my $test = test(); say $test.WHAT.name
GLRelia rakudo-moar 5e3cfb: OUTPUT«Cannot find method 'name': no method cache and no .^find_method␤ in sub test at /tmp/LpZNts9CUk:1␤ in block <unit> at /tmp/LpZNts9CUk:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«Cannot find method 'name': no method cache and no .^find_method␤ in sub test at /tmp/0S05Pk92MO:1␤ in block <unit> at /tmp/0S05Pk92MO:1␤␤»
timotimo m: use nqp; sub test() { my \foo = nqp::list(); say foo.WHAT.^name; foo }; my $test = test(); say $test.WHAT.^name
GLRelia rakudo-moar 5e3cfb: OUTPUT«BOOTArray␤BOOTArray␤»
camelia rakudo-moar 93418e: OUTPUT«BOOTArray␤BOOTArray␤»
moritz nine: in the old design, $!refied was actually a nqp list, so people would never use it as a p6 object
the reduce metaop patches I'm doing here are so full of thinkos :( 16:41
Ven moritz++ # patching stuff :) 16:42
dalek kudo/glr: 91fc607 | moritz++ | src/core/metaops.pm:
GLR-ify METAOP_REDUCE_CHAIN
16:43
nine IterationBuffer is just a VMArray like nqp::list. Is there any way I can convert the nqp::list to an IterationBuffer?
FROGGS uhh, are there known speshbugs discovered by the glr branch? 16:44
timotimo: ^^
timotimo i don't know of any yet 16:45
FROGGS i.e. `perl6 t/spec/S05-mass/rx.rakudo.moar` vs. `MVM_SPESH_DISABLE=1 perl6 t/spec/S05-mass/rx.rakudo.moar`
moritz m: sub infix:<foo>(*@a) is assoc<list> { @a.join('|') }; say [\foo] 1, 2, 3 16:46
camelia rakudo-moar 93418e: OUTPUT«1 1|2 1|2|3␤»
GLRelia rakudo-moar 5e3cfb: OUTPUT«␤The 'gimme' method was an internal method used by rakudo before the Great␤List Refactor. The fact that you are seeing this message, means that you␤have code that was using that unsupported rakudo internal API.␤␤Please refactor this code using t…»
moritz m: say [**] 2, 3 16:48
GLRelia rakudo-moar 91fc60: OUTPUT«9␤»
camelia rakudo-moar 93418e: OUTPUT«8␤»
FROGGS timotimo: can you reproduce that ooc? 16:49
16:49 anaeem1 joined
timotimo rebuilding at the moment 16:49
has to be fudged first ... 16:50
japhb .tell jnthn I am seriously loving gist.github.com/anonymous/6607717a5d201a9acf82 ... I'm using it for language bragging rights with various friends. Can't wait to be using the finished API. :-) 16:51
yoleaux japhb: I'll pass your message to jnthn.
nine I can work around it if I do my Mu $items := obj.FLATTENABLE_LIST; $items := nqp::getattr($items, List, '$!reified') if nqp::istype($items, List); but this is ridiculous... 16:53
moritz nine: nah, the HLLize needs fixing
nine moritz: but how can I turn an nqp::list into an IterationBuffer? Both have the same repr, so I guess it should be possible somehow? 16:54
moritz nine: how would you construct a List from an NQP array?
hm
timotimo nine: did you see line 2871 in BOOTSTRAP.nqp? that's where we register types to be used for hllize and other such things (like slurpy parameter types and such) 16:55
moritz if IterationBuffer was a subclass, a rebless would help
nine moritz: yes, that's the code I'm looking at
timotimo oh, i think that's what you were quoting up above
nine "This REPR cannot change type" :( 16:56
16:56 travis-ci joined
travis-ci Rakudo build passed. Timo Paulssen 'the previous bump was apparently bogus' 16:56
travis-ci.org/rakudo/rakudo/builds/76491365 github.com/rakudo/rakudo/compare/5...5fff36ac7c
16:56 travis-ci left
dalek kudo/glr: 8afab2e | moritz++ | src/core/metaops.pm:
GLR-ize METAOP_REDUCE_LIST (triangle form; the other one does not need changes)
16:57
nine m: use nqp; my \l := nqp::list; say nqp::reprname(l); say nqp::reprname(IterationBuffer)
GLRelia rakudo-moar 91fc60: OUTPUT«VMArray␤VMArray␤»
camelia rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/c_GwhhOB8y␤Undeclared name:␤ IterationBuffer used at line 1␤␤»
timotimo what keeps us from making VMArray able to change type? 16:58
as long as the repr data is compatible (in other words: identical)
nine timotimo: it is even the same repr
timotimo: so it's just a book keeping issue
timotimo FROGGS: i can reproduce 16:59
17:00 llfourn left
FROGGS timotimo: the exception is thrown here: MoarVM/src/6model/6model.c:178: "Cannot look for method '%s' on a null object", 17:00
moritz m: .say for <a b c>.reverse
camelia rakudo-moar 815fff: OUTPUT«c␤b␤a␤»
GLRelia rakudo-moar 91fc60: OUTPUT«c␤b␤a␤»
FROGGS timotimo: does that mean we have a problem in our method cache? 17:01
or... well, I dunno
timotimo i don't think so
my first thought is we optimize away something and some register ends up being null instead of having some value we expected 17:02
well, i've found the place where we try to findmeth and it asplodes 17:05
17:05 telex left
timotimo and there's only one value that'd get sunk. it's either pulled in from a wval or it's the return value of something 17:05
17:06 telex joined
timotimo the thing it's calling is apparently just the inner block; this is happening inside of Cursor's MATCH, btw 17:08
FROGGS timotimo: in the while in the else, right? 17:09
Ven m: say 42.WHY
GLRelia rakudo-moar 8afab2: OUTPUT«(Any)␤»
camelia rakudo-moar 815fff: OUTPUT«(Any)␤»
timotimo correct 17:12
17:13 KCL_ joined
timotimo the code that gets called where we try to sink the return value doesn't end up in the spesh log 17:13
i've gotta go buy some groceries :| 17:14
pre-spesh there was an isconcrete there that'd skip the sink attempt 17:15
that gets kicked out completely by spesh
apparently that's wrong
so how do we end up with a "known concreteness" value there? 17:17
laben O.o newest glr discovered another panda bootstrap bug, investigating...
timotimo perhaps merged registers doesn't do using log guards properly? 17:18
17:20 lucasb left
timotimo ah! i found the problem 17:23
FROGGS: thanks for the excellent hint; i just fixed the problem in moar; can you verify it fixes things? 17:25
laben sorry i got mixed again in the "Seq already consumed" error and the normal things dont work, what can i do?
timotimo i've got to actually buy groceries now :)
FROGGS uhh! 17:26
17:27 muraiki joined
FROGGS timotimo++ # that did it! \o/ 17:28
dalek p: ab46da4 | (Stéphane Payrard)++ | docs/qast.markdown:
stub to document QAST::ParamTypeCheck
17:30
p: 8717925 | FROGGS++ | docs/qast.markdown:
Merge pull request #243 from cognominal/master

stub to document QAST::ParamTypeCheck
laben nvm it was a thinko, working on it 17:34
17:37 leont left
nine How can I give a stub a repr in BOOTSTRAP? 17:43
FROGGS nine: dunno what you mean :o/ 17:44
nine: but can you tell me if Str.ords should return a Seq? changing a 'returns List:D' to 'returns Seq:D' would fix a spectest...
nine FROGGS: class IterationBuffer is repr('VMArray'). I need to stub that in BOOTSTRAP.nqp but cannot find a syntax hat allows me to add the is repr 17:46
FROGGS nine: sorry, $wife forces me to eat dinner now :o(
I'm back in about 30 minutes 17:47
nine FROGGS: considering that the GLR is about not copying lists anymore unless absolutely necessary, I'd say we should return Seq wherever possible
17:47 [Sno] left
dalek kudo/glr: 328aa98 | moritz++ | src/core/metaops.pm:
Fix right-assoc meta reduce
17:53
timotimo damn, i just stumbled over my power cord and catapulted my laptop off of the table 17:57
moritz ok, reduce.t now runs up to test 364, and passes those that nom pass
timotimo time to use that thinkpad protection programme i signed up for
moritz and then it dies in push-exactly
so a gather/take bug
17:59 Ven left
moritz out of my league, I fear 18:00
reduce meta op porting finished.
18:04 rurban_ left, Guest6532 left, Guest6532 joined 18:06 Loren_ left
timotimo FROGGS: we may want a moarvm and nqp bump for that fix 18:16
RabidGravy timotimo, it's usually the headphones I do it with. Though back around the turn of the century I did extensively remodel a laptop by propelling it off a desk to fall on to the very sticky out PCMCIA WiFi card, bending both card and slot. Strangely, given some gaffa tape to fix the wobbliness it carried on working. 18:21
timotimo hmm. 18:22
i used this opportunity to set up my email on my smartphone so i can get an answer from the support there
RabidGravy The laptop finally bit the dust a few months later when I put it in the over-head luggage rack on a train and it managed to propel itself off when the train braked and smacked me in the head, giving me concussion and broke the screen 18:24
timotimo ouch
i'm going to open up the device to see if it'd take more damage if i plug in the power cord 18:25
18:25 Averna joined
timotimo otherwise the battery'll run out and that'd be it ... 18:25
[Coke] everything but glr died on today's run, so glr is at 100%. :P
18:25 rurban left
[Coke] ah, happened to catch "error: pathspec '2015.07.2-28-g6fe08b4" 18:26
nine Wow, so we can stop working now?
RabidGravy beers all round I guess 18:27
[Coke] the bad nqp dep get fixed/
?
looks like, running again... 18:28
nine Ok, I patched MoarVM so I can rebless an nqp::list to IterationBuffer. I patched nqp so I can give a stub a repr. I patched rakudo to rebless the nqp::list to IterationBuffer before binding to $!reified. 18:33
And now perl6 throws a huge backtrace because something expects a List but now gets an IterationBuffer :/
moritz it's yaks all the way down 18:35
RabidGravy what kind of noise do yaks make? 18:37
18:38 espadrine left
RabidGravy speaking of repr - is it possible to create a new repr in user space or is it a lower level thing exclusively 18:38
18:39 KCL joined, virtualsue left
moritz it's a low-level thing 18:39
RabidGravy plan A then 18:41
18:42 KCL_ left
[Coke] onomatopoeically, a yak would make kind of a barfing noise. 18:44
18:45 virtualsue joined
moritz programmatically, it would make no noise, because it hides so the programmer doesn't shave it 18:45
18:45 zakharyas joined
muraiki this led me to finding www.yak-lang.org/ which while I don't understand it, it uses racket so it must be awesome somehow 18:48
18:50 jkva joined
skids moritz: gist.github.com/skids/11e5cf9935e48f2a4cb9 18:51
18:51 andreoss left 18:53 leont joined
RabidGravy disappointed with freesound.org on this matter but I think this is the sound yaks make freesound.org/people/Corsica_S/sounds/109936/ 18:54
18:54 khw left 18:55 diana_olhovik_ joined
moritz skids: I think this just hides a deeper bug 18:57
18:57 llfourn joined
skids Howso? It was dispatching 3 args to a 1-arg metaop -- should it not have had the 3 args? 18:57
moritz skids: then why the special case for 2? 18:58
skids Because of the special case that elides the &reduce at the top 18:59
Which strikes me as an optimization.
19:00 mr-foobar joined
moritz skids: ok, you convinced me 19:01
nine m: my @a = 1,2; say for ^@a.elems;
GLRelia rakudo-moar 328aa9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9ebi0Avoyc␤Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/9ebi0Avoyc:1␤------> 3my @a = 1,2; say7⏏5 for ^@a.elems;␤»
camelia rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MgdDjH5QwA␤Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/MgdDjH5QwA:1␤------> 3my @a = 1,2; say7⏏5 for ^@a.elems;␤»
nine m: my @a = 1,2; .say for ^@a.elems;
GLRelia rakudo-moar 328aa9: OUTPUT«0␤1␤»
camelia rakudo-moar 815fff: OUTPUT«0␤1␤»
19:02 llfourn left
[Coke] skids: the test you added for 123776 is different than the ticket - you're overriding a value there, not keeping the BEGIN one in the absence of a non BEGIN value. 19:02
skids looks
[Coke] skids; merged RT#123770 and RT#124839 19:04
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123770
dalek kudo/glr: 0d2f911 | moritz++ | src/core/metaops.pm:
Fix [X~]. Patch by skids++
19:05
skids Huh, must have been real tired.
FROGGS is back 19:06
moritz nine: fwiw deepmap also creates a List by binding an NQP list to $!reified 19:07
dalek kudo/glr: 5679420 | FROGGS++ | src/core/Str.pm:
change the return type constraint to Seq:D for ords()
19:08
ast/glr: f70ab58 | skids++ | S04-phasers/begin.t:
Fix test for RT#123776
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123776
nine moritz: deepmap is what I'm working at
skids Oh dear I was on glr.
[Coke] lizmat: why did github.com/perl6/roast/commit/0452...5bf2e7f183 change so much more than just done-testing?
19:08 [Sno] joined
skids Now I actually am forced to learn more git. 19:09
dalek ast/glr: a7f470c | PerlJam++ | S32-hash/invert.t:
update invert tests for glr
ast/glr: 971fda7 | PerlJam++ | S32-hash/antipairs.t:
add tests for antipairs
FROGGS [Coke]: wow, that patch changes a lot 19:10
leont Wait, done is now done-testing (almost-again)?
[Coke] done is being freed up for async stuff. 19:11
FROGGS: some of them seem to be sigfigs, but there's more than that.
dalek kudo/glr: 7d238fe | PerlJam++ | src/core/ (2 files):
Implement invert/antipairs
19:12
skids yay I now have used git cherry-pick for my first time. Do I get a big V painted on my forehead?
leont I was already surprised, done is a rather valuable name
dalek ast: e369518 | skids++ | S04-phasers/begin.t:
Fix test for RT#123776
19:13
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=123776
19:13 espadrine joined
FROGGS skids: :D 19:13
is that signature valid? + method absolutify(CompUnitRepo::Locally:_: |c) {
moritz I think so
FROGGS m: sub foo(IO:_: |c) { } 19:14
GLRelia ( no output )
camelia ( no output )
moritz :_ is a modifier like :D (though it's redundant, it allows everything)
and the last : is the invocant marker
FROGGS ohh
never seen it
moritz 'cause there's no reason to write it
FROGGS aye
moritz except maybe stating that you thought about making it :D, and explicitly decided against it 19:15
masak :_: suffers from lack of visual-pill-ness. 19:18
or, perhaps more to the point, the two things :_ and : turn into a visual pill when they don't deserve to. 19:19
19:19 abaugher left
masak 'night, #perl6 19:19
[Coke] ~~
colomon o/ 19:20
nine Why did I have to try this?
19:20 abaugher joined
moritz nine: because you're awesome! 19:20
19:22 vendethiel joined
dalek kudo/glr: 5f95fa8 | PerlJam++ | src/core/Hash.pm:
Remove apparently old "XXX GLR" comment
19:24
19:25 domidumont left 19:27 zakharyas left, synbot6 left
timotimo Finally I have glowing bear set up on my tablet 19:29
19:29 lsm-desktop left 19:30 Juerd joined
jdv79 nine++ 19:30
19:31 integral joined
nine I only get "This representation (VMArray) does not support attribute storage" but the stack trace is useless and I can't find a place where $!reified of a List is accessed directly and treated like anything but an nqp::list or IterationBuffer 19:32
FROGGS hmmm, hard to tell 19:34
nine Or maybe the stack trace is usefull and only I can't see it: gist.github.com/niner/c46e336fb3f2e26a7990 19:35
19:37 jkva left
skids Well, only to you, because the line numbers are from your m-CORE 19:38
19:41 mr-foobar left, lsm-desktop joined, geekosaur joined, jkva joined 19:43 rindolf left
RabidGravy timotimo, I thought you said glowing beer and got all excited 19:43
19:44 zakharyas joined 19:45 anaeem1 left 19:50 yqt joined 19:56 [Tux] joined 19:57 llfourn joined 20:00 jkva left 20:01 abaugher left, llfourn left, jkva joined 20:02 abaugher joined 20:06 mr-foobar joined 20:09 xfix left
FROGGS m: say List ~~ Coolllllll 20:10
camelia rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3XhpvxpADY␤Undeclared name:␤ Coolllllll used at line 1␤␤»
GLRelia rakudo-moar b866b6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Bi75JfyIe_␤Undeclared name:␤ Coolllllll used at line 1␤␤»
FROGGS m: say List ~~ Cool
GLRelia rakudo-moar b866b6: OUTPUT«True␤»
camelia rakudo-moar 815fff: OUTPUT«True␤»
FROGGS m: say Seq ~~ Cool
GLRelia rakudo-moar b866b6: OUTPUT«False␤»
camelia rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7RiQv7HDe4␤Expected a term, but found either infix ~~ or redundant prefix ~␤ (to suppress this message, please use a space like ~ ~)␤at /tmp/7RiQv7HDe4:1␤------> 3say Seq ~~7⏏5 Cool␤»
20:11 darutoko left 20:18 rurban joined 20:21 jkva left
FROGGS hmmm, I want to make Seq ~~ Cool true... 20:24
this makes two test files pass
and it *feels* right to me
RabidGravy multi method ACCEPTS(Seq $) { True } ; 20:25
;-)
FROGGS :P
nine FROGGS: how does that help?
FROGGS nine: "foo".ords.chrs is meant to work 20:26
and .chrs is in Any or so
and since List and Array are Cool I think Seq should be too...
20:27 zakharyas left 20:32 jkva joined
FROGGS m: say join("|", []) 20:35
camelia rakudo-moar 815fff: OUTPUT«␤»
GLRelia rakudo-moar 84375c: OUTPUT«␤»
FROGGS m: say join("|", [ "a", "b", "c" ]) 20:38
GLRelia rakudo-moar 84375c: OUTPUT«a|b|c␤»
camelia rakudo-moar 815fff: OUTPUT«a b c␤»
20:38 jkva_ joined 20:39 jkva left 20:40 diana_olhovik_ left
FROGGS m: sub foo(*@values) { say @values[0] }; foo [1, 2, 3] # that's a glr bug, right? 20:41
GLRelia rakudo-moar 84375c: OUTPUT«1␤»
camelia rakudo-moar 815fff: OUTPUT«1 2 3␤»
leont m: sub foo(**@values) { say @values[0] }; foo [1, 2, 3] 20:42
GLRelia rakudo-moar 84375c: OUTPUT«1 2 3␤»
camelia rakudo-moar 815fff: OUTPUT«1 2 3␤»
nine How could I have broken EXPORT, so I'd get a "Method 'EXISTS-KEY' not found for invocant of class 'Mu'" in src/core/traits.pm:252? 20:45
FROGGS gist.github.com/jnthn/aa370f8b32ef...glr-p6-L64 20:46
20:46 ShimmerFairy left
nine m: sub foo(*@values) { say @values[0] }; foo | [1, 2, 3] 20:47
FROGGS nine: I guess the thing that is now Mu shouldn't be
GLRelia rakudo-moar 84375c: OUTPUT«1␤»
camelia rakudo-moar 815fff: OUTPUT«1␤»
laben there was an explaination around about *@ and **@, should be in irc logs
nine FROGGS: I guess it's the single arg rule that makes it interpolate 20:48
m: sub foo(*@values) { say @values[0] }; foo $[1, 2, 3]
GLRelia rakudo-moar 84375c: OUTPUT«1 2 3␤»
camelia rakudo-moar 815fff: OUTPUT«(Any)␤»
FROGGS nine: so I'll adjust the expectation of the tests 20:52
nine FROGGS: it's just my guess however :) I'd really like jnthn++ or TimToady++ to confirm that
FROGGS yeah... 20:53
20:53 Averna left
skids IIRC *@ always flattens. 20:57
m: sub foo(*@a) { @a.perl.say }; foo [1,2,3],[4,5,6]
GLRelia rakudo-moar 84375c: OUTPUT«[1, 2, 3, 4, 5, 6]␤»
camelia rakudo-moar 815fff: OUTPUT«[[1, 2, 3], [4, 5, 6]]<>␤»
20:57 muraiki left
FROGGS m: sub foo(*@a) { @a.perl.say }; foo [[1,2,3],[4,5,6]] 20:59
GLRelia rakudo-moar 84375c: OUTPUT«[$[1, 2, 3], $[4, 5, 6]]␤»
camelia rakudo-moar 815fff: OUTPUT«[[[1, 2, 3], [4, 5, 6]]]<>␤»
FROGGS okay
moritz m: sub foo(|a) { a.perl.say }; foo [1,2,3],[4,5,6]
GLRelia rakudo-moar 84375c: OUTPUT«\([1, 2, 3], [4, 5, 6])␤»
camelia rakudo-moar 815fff: OUTPUT«\([1, 2, 3], [4, 5, 6])␤»
21:00 skids left
laben >.< so much time lost because i fixed revdeps but forgot to remove installed libs and panda was going on and on with rebuilding them 21:00
nine laben: I wasted the whole evening without any progress ;? 21:02
:/
21:02 kaare_ left
laben nine: that's when you need to stop and do something else, get your head away. when you return, you'll have a better POV 21:03
nine laben: wisely spoken 21:05
Does panda need any more rakudo fixes? 21:06
laben panda does need panda fixes, one of which i just added to the PR
panda's code will probably need a good reread after glr has stabilized, if the fixes are not consistent enough 21:08
for now, i will follow my own advice and go to bed early, for once 21:09
good work | rest #perl6
FROGGS gnight laben 21:10
RabidGravy toodlepip 21:13
21:14 jkva_ left, ShimmerFairy joined 21:15 aborazmeh joined, aborazmeh left, aborazmeh joined
nine dalek down? 21:21
FROGGS seems like 21:22
nine Woah! Only 189/1047 spec test files failing now. Good work people!
FROGGS my commit to roast did not show up also
189? really?
197 test files fail on my box 21:23
nine Including my latest commit?
FROGGS ohh, perhaps not, no
nine That would rescue my evening if I fixed 8 files with that :)
FROGGS *g* 21:24
21:25 aborazmeh left
timotimo How about that bump for moar and nqp revisions? 21:25
FROGGS nine: and I potentially made three more pass with an upcoming commit :o) 21:26
timotimo: yes, we need to do that
timotimo I am without development machine at the moment 21:27
nine I get 198 failing without my commit
timotimo Though I could turn the laptop on for an hour or so
FROGGS nine: you probably miss a roast commit 21:28
timotimo: I'll do it in a second
nine m: my %a = { :a, :b, :c }; %a.pairs>>.say.say;
GLRelia rakudo-moar 3df39d: OUTPUT«b => True␤a => True␤c => True␤True True True␤»
camelia rakudo-moar 815fff: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/hVysqI5mFY:1␤␤»
nine m: my %a = { :a, :b, :c }; %a.pairs.say; 21:29
camelia rakudo-moar 815fff: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/qMzWFXM_8l:1␤␤»
GLRelia rakudo-moar 3df39d: OUTPUT«a => True c => True b => True␤»
nine m: my %a = { :a, :b, :c };
GLRelia ( no output )
camelia rakudo-moar 815fff: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/MyImK5AflE:1␤␤»
nine ??
FROGGS nine: don't use curlies 21:30
m: my %a = ( :a, :b, :c ); 21:31
GLRelia ( no output )
camelia ( no output )
FROGGS m: my %a = :a, :b, :c;
camelia ( no output )
GLRelia ( no output )
nine m: my %a = ( :a, :b, :c ); %a.pairs>>.say.say;
GLRelia rakudo-moar 3df39d: OUTPUT«b => True␤a => True␤c => True␤True True True␤»
camelia rakudo-moar 815fff: OUTPUT«b => True␤a => True␤c => True␤True True True␤»
nine Well I was trying it only because skids++ mentioned it as the reason for deprecations.t failing. It now passes :) 21:34
FROGGS: what do you think of gist.github.com/niner/c7137af6c613bdef985d as a fix for t/spec/S02-names-vars/perl.t? 21:40
FROGGS we are down to 184 test files fwiw 21:41
RabidGravy and tomorrow it will be less 21:45
21:45 dalek joined, ChanServ sets mode: +v dalek
FROGGS nine: I dont understand why this would fix it 21:46
RabidGravy the software fairies are smiling on you 21:47
nine FROGGS: well .perl on an an itemized empty hash would print ${} which triggers a worry about using $() in Perl 6 instead of ${} while {}.item doesn't and should mean the same, shouldn't it? 21:48
FROGGS nine: on my box it fails for \42
nine FROGGS: you sure? that's just a warning 21:49
FROGGS ok 41 - ("False").perl returned something whose EVAL()ed stringification is unchanged 21:50
ok 42 - ("False").perl returned something whose EVAL()ed .WHAT is unchanged
Type check failed in binding <anon>; expected 'Any' but got 'Mu'
and after False (?0) comes \42
nine ???
FROGGS: oh, you're running perl.t, not perl.rakudo.moar 21:51
FROGGS ups
sorry 21:52
nine So, would it make sense? 21:53
FROGGS m: my $h = {}; say $h.perl; say $h.perl.EVAL 21:54
camelia rakudo-moar 815fff: OUTPUT«{}␤␤»
GLRelia rakudo-moar 7896e4: OUTPUT«${}␤5===SORRY!5=== Error while compiling EVAL_0␤Unsupported use of ${}; in Perl 6 please use $()␤at EVAL_0:1␤------> 3${}7⏏5<EOL>␤»
FROGGS aha
nine: yes, I think it is sane
err, make sense to apply
gnight 21:55
21:56 rurban left, espadrine left 21:58 llfourn joined 22:02 llfourn left 22:05 Juerd left, Juerd joined 22:07 rangerprice joined
rangerprice Hi 22:09
vendethiel o/, rangerprice 22:10
rangerprice So, why Perl 6 has not metaprogramming features ?
vendethiel rangerprice: it has tons of them 22:11
rangerprice serious ?
vendethiel rangerprice: yes. meta-programming for objects, macros, lexical scope, etc 22:12
rangerprice Perl 6 is an homoiconic language ?
vendethiel m: sub f { g(); }; sub g { say callframe(1); }
GLRelia ( no output )
camelia ( no output )
22:12 jkva joined
vendethiel no, not homoiconic. Lisp isn't the only language with macros ;) 22:12
m: sub f { g(); }; sub g { say callframe(1); }; f();
GLRelia rakudo-moar 7896e4: OUTPUT«/tmp/bDIVSRz4bf at line 1␤»
camelia rakudo-moar 815fff: OUTPUT«/tmp/oOVP5T3ihV at line 1␤»
rangerprice You are a Perl 6 developer venderthiel ? 22:13
vendethiel rangerprice: user, at least ;-) 22:15
rangerprice: I wrote the learnxinyminutes, though I guess I still need to translate it to french! 22:16
but the developers are most definitely sleeping atthis hour
22:16 jkva left
rangerprice venderthiel: if you need traduction, i'm here 22:18
ugexe in a hash of array of hash/array etc (like projects.json for instance) is there a short and sweet way to find any instances of a specific key, any number of levels deep (but if it makes it easier, always at the end node), without knowing the exact structure of arrays and hashes? 22:19
22:21 laben left
vendethiel m: multi get(%hash, $key) { [//] %hash{$key}, (get($^v, $key) for %hash.values) }; multi get($, $) { Nil }; my %a = a => {b => 2};say get(%a, 'b'); 22:22
GLRelia rakudo-moar 7896e4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/rzcESsxGvI␤Placeholder variable '$^v' cannot override existing signature␤at /tmp/rzcESsxGvI:1␤------> 3multi 7⏏5get(%hash, $key) { [//] %hash{$key}, (ge␤»
camelia rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eGTZKZRWhj␤Placeholder variable '$^v' cannot override existing signature␤at /tmp/eGTZKZRWhj:1␤------> 3multi 7⏏5get(%hash, $key) { [//] %hash{$key}, (ge␤»
vendethiel m: multi get(%hash, $key) { [//] %hash{$key}, do for %hash.values { get($_, $key)} }; multi get($, $) { Nil }; my %a = a => {b => 2};say get(%a, 'b');
GLRelia rakudo-moar 7896e4: OUTPUT«2␤»
camelia rakudo-moar 815fff: OUTPUT«2␤»
vendethiel ugexe: something like this? :)
22:24 TEttinger joined
vendethiel I guess that doesn't work past one level, uh 22:28
ugexe yeah :( 22:29
rangerprice It would be great if perl have native c++ code integration in syntax
leont Good luck with that!
vendethiel rangerprice: that simply wouldn't be parsable. if your usecase is c/c++ code interop, nativecall is good at this
ugexe i was hoping there was a way to abuse antipairs or something to turn the hash inside out 22:30
RabidGravy except for the c++ name mangling part
vendethiel ugexe: there might very well be! i'm not versed into anti-pairs 22:31
leont RabidGravy: and its typesystem, and a bunch of other things
vendethiel leont: just think about name resolution! and ADL
rangerprice venderthiel : what metaprogramming features has perl
leont ADL will be fun too, yes
RabidGravy trivial to make a C wrapper of a C++ class in such a way the perl can use it
22:32 AlexDaniel joined
vendethiel rangerprice: you can use "tab" to autocomplete my name :) 22:32
rangerprice: as I said: MOP for the objects, macros, callframe()-style, etc.
rangerprice: the debugger is written only in perl6 code.
rangerprice oh 22:33
vendethiel here's teh debugger: github.com/jnthn/rakudo-debugger some metaprogramming code that adds a "monitor" keyword: github.com/jnthn/oo-monitors
RabidGravy at various times in the lifetime of a program yoy can get access to and modify the behaviour and meta data of nearly all the meta objects 22:35
what you do to them is obviously down to the program design 22:36
see also github.com/jonathanstowe/Staticish which takes some awful liberties with class composition to make a "static" class 22:38
rangerprice Why Perl is a hight level programming language and not a mid-level ? why perl has not C keyword like: const, static, constexpr...to produce a more optimized perl code ? 22:41
vendethiel static isn't related to optimization 22:43
constexpr is akin to our BEGIN/constant
const is "just" immutable data things in perl
RabidGravy it is optimised, but for programmer and design efficiency in mind rather than succinct machine code generation 22:44
"post-modern" - they've been banging on about moores law for years let's use it to make software developers lives happier 22:46
rangerprice okay, if perl can be optimized without an equivalent of the tons of keywords provided by C, why C need all this tons of keywords to produce optimized assembly and perl not ?
22:47 virtualsue left
RabidGravy because perl doesn't make assembly (it could if you cared to make it happen of course) 22:47
22:48 skids joined
rangerprice oh 22:49
oh i understand now
lizmat .tell [Coke] re github.com/perl6/roast/commit/0452...5bf2e7f183 I have *no* idea, I just reran the generate script 22:51
yoleaux lizmat: I'll pass your message to [Coke].
RabidGravy perl 6 is just a specification, the specification indicates that it will run on some virtual machine, the nature and implementation of the VM is a separate matter
lizmat .tell [Coke] I assumed it to be a hash ordering thing
yoleaux lizmat: I'll pass your message to [Coke].
22:53 danaj left
cognominal rangerprice, in modern language most optimization is moved at the runtime. The runtime gets more info than the programmer and static optimizers can dream of. 22:59
And the time spent doing dynamic analysis is recouped by the optimisation produced except for very slow processors. 23:01
rangerprice oh
vendethiel ...in theory, at least ;-) 23:02
vendethiel looks at SufficientlySmartCompiler
cognominal This has been pionnered by the Self language, used by Hotspot Java and now every javascript interprer.
vendethiel 's not sure he'd use "self language" rather than "whichever VMs the great engineers built" :P. didn't IBM sell self and all, back then? 23:03
cognominal rakudo has most of the infrastructure to do it, but is not quite there yet.
self was a resarch language at Sun Microsystems. I think you can trace the self engineers moving from self, to java, to javascript and Go :) 23:04
And then, there are the self taught people like jnthn :) 23:05
speaking of languages, I noted on #perlfr that Perl is rococo when the tendancy is now neoclassic like go :( But TimToady would argue that Perl is postmodern, not rococo. Things are there for a reason. 23:08
RabidGravy Yeah I'd go with post-modern too 23:09
cognominal well, that was an architectural pun, where neoclassic comes after rococo baroque :) 23:10
And go is definitevely neoclassical. 23:11
23:12 lizmat left
RabidGravy yeah but taken to the concrete extreme it would imply that perl (rococo) is a sentimental re-imaging of the pre-classical (e.g. cobol) 23:13
23:13 jkva joined
RabidGravy which clearly isn't the case 23:13
metaphor not pun
cognominal yea 23:14
RabidGravy :)
23:15 leont left 23:17 jkva left
RabidGravy of course the problem with the whole analogy set is that in architectural (and indeed the arts generally) we're talking timescales of hundreds of years, in programming at most tens of years 23:24
TimToady now at YAPC::Asia venue 23:28
RabidGravy yay! 23:29
cognominal RabidGravy, we could do a mapping like does Sagan with his cosmic calendar. There is clearly an event acceleration at the end and maybe some more complexity. 23:30
With the VM fashion, there is clearly the equivalent of endosymbiosis going on in the computer world. And that brings Sagan's wife, Lynn Margulis, in the picture :) 23:33
23:39 aborazmeh joined, aborazmeh left, aborazmeh joined
tony-o peter sagan? 23:39
cognominal fr.wikipedia.org/wiki/Carl_Sagan en.wikipedia.org/wiki/Cosmic_Calendar 23:42
tony-o i know 23:46
cognominal I don't know peter sagan
tony-o he's a professional bicycle racer
he also has event accelerations near the end
cognominal :) 23:48
23:57 fling left 23:59 llfourn joined, mjgardner joined