»ö« 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.
00:03 skids left, espadrine left 00:11 carlin left 00:14 gfldex left 00:16 avalenn_ joined 00:17 avalenn left 00:18 colomon left 00:19 colomon joined 00:29 laouji joined 00:37 atweiden left 00:39 laouji left 00:40 vendethiel joined 00:44 Akagi201 joined 00:50 laouji joined
zostay m: sub infix:</>(IO::Path $p, Str $s) { (~$p ~ '/' ~ $s).IO }; constant HOME = %*ENV<HOME>.IO; say HOME/"bin"; 00:56
camelia rakudo-moar d5eabd: OUTPUT«5===SORRY!5===␤Calling prefix:<~>(IO::Path) will never work with proto signature (Any)␤at /tmp/n5xe8DA6BI:1␤------> 3sub infix:</>(IO::Path $p, Str $s) { (7⏏5~$p ~ '/' ~ $s).IO }; constant HOME = %*␤Calling infix:</>(IO::Path, Str) will n…»
01:04 vendethiel left 01:10 vendethiel joined
timotimo huh, that's a weird error 01:10
can you try $p.absolute? also, what's the second error?
instead of ~$p i mean 01:11
[Coke] saw this on FB: perlhist.com/perl6/damian-conway/ 01:24
/me saw this on FB: perlhist.com/perl6/damian-conway/ 01:26
whoops.
01:28 colomon left 01:32 kaare_ joined 01:33 bjz left, colomon joined 01:36 aborazmeh joined, aborazmeh left, aborazmeh joined 01:40 bjz joined, aborazmeh left 01:42 raiph joined 01:46 aborazmeh joined, aborazmeh left, aborazmeh joined 01:47 ilbot3 joined 01:49 dayangkun joined 01:52 bjz left 01:53 bjz joined 01:58 ssqq joined
ssqq How to deep copy a Array or Array of Array? 01:59
p6: sub change($x is copy) { $x[0] = 10 }; my $a = [1,2,3]; change($a); $a.say.perl; 02:00
camelia rakudo-moar d5eabd: OUTPUT«10 2 3␤»
02:13 ssqq left 02:15 chenryn joined, bjz left 02:24 vendethiel left 02:29 raiph left 02:31 raiph joined 02:33 raiph left 02:34 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 02:36 raiph joined 02:38 koo6 left 02:39 raiph left 02:40 raiph joined 02:49 noganex joined 02:51 noganex_ left 02:53 raiph left 02:57 Akagi201_ joined 02:59 yqt left, Akagi201 left 03:06 Akagi201 joined 03:07 Akagi201_ left 03:20 bjz joined 03:38 araujo_ left 03:42 laouji left 03:43 dayangkun left 03:46 dayangkun joined 03:55 chenryn left 04:03 Ben_Goldberg left 04:04 bjz left 04:18 zacts left 04:23 bjz joined 04:26 laouji joined 04:30 aborazmeh left, chenryn joined, aborazmeh joined, aborazmeh left, aborazmeh joined 04:35 chenryn left, chenryn joined 04:37 bjz left 04:42 diana_olhovik_ joined
moritz m: sub id(\c) { c }; my $a = [1, [2, 3]]; my $copy = $a>>&id; $copy[1][0] = 42; say $a.perl 04:45
camelia rakudo-moar d5eabd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Fn4VWzxpr1␤Malformed postfix␤at /tmp/Fn4VWzxpr1:1␤------> 3 }; my $a = [1, [2, 3]]; my $copy = $a>>7⏏5&id; $copy[1][0] = 42; say $a.perl␤ expecting any of:␤ postfix␤»
04:51 laouji left, ssqq joined
moritz m: sub id(\c) { c }; my $a = [1, [2, 3]]; my $copy = $a>>.&id; $copy[1][0] = 42; say $a.perl 04:53
camelia rakudo-moar d5eabd: OUTPUT«[1, [2, 3]]␤»
04:53 laouji joined
tadzik masak++ # blog post 04:56
05:01 chenryn left 05:11 diana_olhovik_ left 05:12 laouji left 05:15 laouji joined 05:22 laouji left, chenryn joined, ssqq left 05:23 laouji joined 05:46 tinyblak joined 05:49 [Sno] left 05:54 diana_olhovik_ joined 05:58 vendethiel joined 06:04 Foxcool left 06:08 virtualsue joined 06:24 kurahaupo1 joined 06:26 flaviusb joined 06:30 [Sno] joined 06:35 _mg_ joined 06:43 domidumont joined 06:46 abraxxa joined 06:47 domidumont left 06:48 domidumont joined 06:50 zakharyas joined 06:52 FROGGS joined 06:57 espadrine joined
FROGGS o/ 07:05
nwc10 \o 07:06
07:06 fhelmberger joined 07:08 Ven joined 07:11 fhelmberger left 07:13 vendethiel left 07:19 RabidGravy joined 07:27 telex left, virtualsue left 07:28 telex joined 07:41 Alina-malina left 07:42 Alina-malina joined 07:44 smls joined
smls o/ 07:44
yoleaux 25 May 2015 20:59Z <lizmat> smls: re irclog.perlgeek.de/perl6/2015-05-25#i_10653489 assuming you mean instance attribute: has $!a; method a { $!a //= init code }
smls lizmat: thanks. 07:45
masak: nice blog post
"I wonder if I could submit that as a rakudobug." (from masak's post, regarding Rakudo regex engine backtracking slowness) -- I tend to agree :) 07:46
07:47 vendethiel joined
smls Playing around with the Amb example on rosettacode, I found it strange that it was fast with only 1 or 2 steps of backtracking, but adding just one more step of backtracking makes it suddenly go from ~1 second to minutes 07:48
That can't be right, can it?
jnthn Well, it's easy in most regex engines to construct non-linear backtracking cost increase. 07:49
jnthn got the .Net one to take 30 seconds to fail to match a 20KB string with a fairly small regex 07:50
07:52 virtualsue joined
RabidGravy morning 07:56
FROGGS morning RabidGravy
RabidGravy are we all fabulous? 07:57
FROGGS well, I am :P
RabidGravy perfect
FROGGS spiffy 07:58
jnthn I just managed to spray coffee across the kitchen. Talk about a bootstrapping problem... 08:00
FROGGS ewww
jnthn didn't know caffetieres had *that* failure mode... 08:01
08:01 espadrine left
nwc10 coffee slicks, coffee explosions. What's next? 08:02
RabidGravy yeah, sometimes the zeal for coffee can get the better of you
08:02 mr-foobar joined
jnthn This was, thankfully, much less messy than the time I caused a coffee flood at the office... 08:02
Righty. Time to fix a nasty race condition... 08:03
08:03 virtualsue left
nwc10 oh, drowning bugs in coffee? 08:04
jnthn Worth a try... 08:05
08:07 ab5tract_ joined 08:10 vendethiel left
RabidGravy anyway, to form the question raised by gist.github.com/jonathanstowe/2eb6...edbd877ef5 in a different way, if I have two classes in different files A & B such that A does "use B" then should A be available in methods in B? 08:10
FROGGS RabidGravy: if A loads B, then the A symbol won't be available under that name 08:11
08:12 darutoko joined
FROGGS but, if B is a role, and you call A.foo where foo is a method declared in B, then the invocant will be of type A 08:12
RabidGravy but in the simple case is the type A available to B at all? 08:14
FROGGS no 08:15
smls Can I run a piece of clean-up code before the program exits, even when it is killed via CTRL+C ?
FROGGS you can't even stub A in B.pm, because that requires A to be declared later somewhere in B.pm or in files that B.pm loads...
and you need to be able to compile B before A 08:16
smls END { } seems to catch Perl 6 exceptions, but not kill signals
RabidGravy right, bigger patch to Facter than I thought then
jnthn smls: signal(SIGINT).tap({ ... }); # iirc 08:17
smls ah, right, I remember you doing that in some presentation now :)
DrForr Hrm. Would "class RuleID is repr('Cint32') { }" be possible to replace "typedef RuleID int32;" in C headers? 08:20
08:20 dakkar joined
FROGGS DrForr: almost 08:21
DrForr I know there's a CStruct, but this is just a single element, not a full struct/union. 08:22
08:22 ab5tract_ left
FROGGS m: use NativeCall; my native RuleID is Int is nativesize(32) is signed is repr("P6int") { }; 08:22
camelia rakudo-moar d5eabd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GqJf1fXxI0␤'RuleID' cannot inherit from 'signed' because it is unknown.␤at /tmp/GqJf1fXxI0:1␤»
FROGGS m: use NativeCall; my native RuleID is Int is nativesize(32) is repr("P6int") { }; # signed is default
camelia ( no output )
DrForr Ah, nativesize() works wonderfully for that. 08:23
I'm playing with libmarpa, but it occurs in many places.
FROGGS yes, I also like to do that since it makes comparing the lib documentation/headers easier 08:25
DrForr Precisely the issue I was dealing with.
Now if we could allow 'returns void' :)
FROGGS I intentionally did not do that when adding void :o) 08:26
08:27 vendethiel joined
DrForr What were your reasons? Just curious, no wanting to start an argument. 08:28
FROGGS it should be more Perl6ish that Cish semantic wise 08:29
than*
DrForr Fair enough, 'returns Nil' isn't exactly a principle that comes out of Perl6, true. 08:30
FROGGS so even if NativeCall would treat the absence of the returns trait to 'returns void', other Perl 6 code inspecting the signature would not
likely our optimize would choke on that
DrForr Makes sense, it just feels like an awkward special case to me, not to mention it's harder to line up neatly :) 08:32
Though you may have just given me the means to do that just that, I wonder if 'native Void is void is nativesize(0)...' :) 08:33
FROGGS no
DrForr I know, just teasing.
FROGGS nativesize(0) will complain :o)
08:34 spider-mario left
FROGGS void is just a Pointer to an uninstantiable thing in NativeCall 08:34
DrForr It'd try to reserve space on the stack, if not throw an error.
FROGGS m: use NativeCall; say void
camelia rakudo-moar d5eabd: OUTPUT«(void)␤»
FROGGS m: use NativeCall; say void.^mro
camelia rakudo-moar d5eabd: OUTPUT«(void) (Any) (Mu)␤»
FROGGS m: use NativeCall; say void ~~ Pointer
camelia rakudo-moar d5eabd: OUTPUT«False␤»
FROGGS m: use NativeCall; say void ~~ Pointer[void]
camelia rakudo-moar d5eabd: OUTPUT«False␤»
FROGGS well, ... or not
08:34 espadrine joined
DrForr Don't worry, I won't enshrine the evil :) 08:35
08:35 kurahaupo1 left
FROGGS :o) 08:36
DrForr Hrm. I can't seem to declare multiple 'unit native ...' types. I remember a change to 'class Foo {}' declarations in the last few days. 08:48
(I just refreshed rakudo.)
DrForr looks for the unit{} doco. 08:49
08:49 vendethiel left 08:52 araujo joined, araujo left, araujo joined, araujo left 08:54 Ven left 08:55 andreoss joined 08:58 chenryn left
itz_ are coffee explosions the new coffee mug throwing> 09:01
09:01 chenryn joined
nwc10 itz_: I doubt it. I suspect that they impede progress, rather than helping to redistribute it. 09:01
09:03 cygx joined
cygx o/ 09:03
carlin++
09:03 vendethiel joined
cygx .tell masak the NQP version gist.github.com/cygx/1e010facd65dd...-money-nqp runs in 1.3 *seconds*, whereas perl6 takes 36s to run that version on my machine 09:04
yoleaux cygx: I'll pass your message to masak.
09:06 grondilu joined
smls jnthn, masak: This has to be a regex engine bug, right? gist.github.com/smls/85b78904e96eb589ea1e 09:09
The third example hangs indefinitely (if you comment out the { print "." } line you'll see it gets executed on infinite loop) 09:10
Whereas the 2nd example, which is identical to the first excapt with <{ }> generated regexes replaced with the literal equivalents, works fine.
And the 1st example, which is identical to the 3rd except doesn't have to backtrack, also works. 09:11
09:11 Isp-sec joined
smls So it's the combination of backtracking and <{ }> that makes the 3rd example hang. 09:11
s/identical to the first/identical to the 3rd/ 09:13
FROGGS DrForr: only one thing can be in unit scope 09:19
smls I added inline comments now, which should make it clearer than me trying to explain it on IRC.
FROGGS DrForr: you need to use the block form if you want to declare more that one thing per file
DrForr I thought I tried that but I'll check.
arnsholt Oooh. TAP's tests being numbered just came in very handy 09:20
DrForr I get 'Malformed unit' with 'unit { ... }' (of course, the contents aren't '...' :) )
09:21 pecastro joined
FROGGS DrForr: yes, why would you want to do that? 09:22
the 'class Foo;' (semicolon form) is now spelled 'unit class Foo;'
not block form 'class Foo { ... }' was not changed 09:23
DrForr In that case maybe I've run into a bug. I simply wanted to declare two different ID types. Marpa has several Marpa-$foo-ID types, and I wanted to properly type them as int32.
FROGGS DrForr: put it in a gist?
09:23 mr-fooba_ joined
DrForr In a moment, I'm on a roll elsewhere :) 09:24
09:25 mr-foobar left 09:26 vendethiel left
DrForr gist.github.com/drforr/a9a2030a12d57a0ece51 09:26
FROGGS DrForr: replace the semicolon at line 3 and 5 with an empty block, and remove the unit and its block entirely 09:27
09:28 _mg_ left
FROGGS though a short way, it you just want to give int32 another name is to: 09:28
DrForr Makes sense, it's just a little hard to see what the class declaration is in there, I take it it's the 'native'...
FROGGS m: constant Marpa-Rule-ID = int32;
camelia ( no output )
DrForr That soudns dangerously close to parameterized types :) 09:29
FROGGS yes, for the native type declaration the traits do the work
though, you can add convenience methods in the class body
DrForr Right, the 'native' trait in this case creates a class, got it. 09:30
09:30 brrt joined
brrt \o 09:30
masak++ for nice post
but
26 minutes
what the heck
09:30 _mg_ joined
brrt y that happen 09:30
smls
.oO( Dammit, why is it so hard to golf down regex bug testcases like this? Many moving parts; remove one and the problem disappears. )
09:37
09:38 araujo joined
arnsholt smls: I feel your pain. I'm trying to squash an indent-handling bug in my Python grammar >.< 09:39
FROGGS :S
arnsholt Yeah. Pretty much
DrForr I haven't looked at the Python grammar in the ANTLR test suite, but it passes my parser tests... 09:41
09:43 vendethiel joined 09:46 AlexDaniel joined 09:49 rarara joined, cygx left
masak good noon, #perl6 10:01
yoleaux 25 May 2015 23:23Z <avuserow> masak: Re memory leak in rakudo with regexes, reminds me of RT#123974 which I filed a while ago
09:04Z <cygx> masak: the NQP version gist.github.com/cygx/1e010facd65dd...-money-nqp runs in 1.3 *seconds*, whereas perl6 takes 36s to run that version on my machine
masak plan for today: (1) check/fix Yapsi hanging, (2) file the memory leak thingy 10:02
avuserow: rt.perl.org/Ticket/Display.html?id=123974 does seem related. thanks for the reference.
I may decide to file my sorrows along with that one, or separately -- depending on what I find when I investigate. 10:03
cygx: oh, that's *great* news! means there's some room for optimization. :D
masak adds this to the post 10:04
10:05 vendethiel left 10:06 broquain1 is now known as broquaint
masak cygx: I converted that version back to Perl 6. it takes 22 seconds! 10:07
10:08 Isp-sec left
masak and the corresponding Perl 5 version takes 1.3 seconds. (just as your nqp run) 10:09
this is much closer to the Haskell version!
oh, but the nqp version takes 0.68 s here... :) 10:11
masak pats his laptop approvingly
10:11 chenryn left
smls jnthn, masak: This is how far I can golf down the problem affecting the 'amb' rosettacode task: gist.github.com/smls/0f1185c050467a9ffee9 ...maybe someone else has more luck golfing it down further. 10:11
brrt there's always room for optimization 10:12
10:13 chenryn joined
masak loves it when blog posts (not just his own) cause... activity of various kinds 10:16
smls :)
btw, is :my ($a, $b); inside an m/.../ regex *supposed* to declare the variables in the parent Perl 6 scope? 10:17
I found that somewhat surprising.
masak no, I really don't think so. 10:18
the regex is supposed to be its own scope, and that's where the declaration should happen.
smls m: "" ~~ m{ :my $a }; "" ~~ m{ :my $a }; 10:19
camelia rakudo-moar d5eabd: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $a␤ at /tmp/IPbReQXdgk:1␤ ------> 3"" ~~ m{ :my $a }; "" ~~ m{ :my $a 7⏏5};␤»
10:21 chenryn left 10:24 chenryn joined
masak m: "" ~~ m{ :my $a }; say $a 10:27
camelia rakudo-moar d5eabd: OUTPUT«(Any)␤»
masak m: grammar G { regex foo { :my $a }; say $a }
camelia rakudo-moar d5eabd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Rgs_TBWIrU␤Variable '$a' is not declared␤at /tmp/Rgs_TBWIrU:1␤------> 3grammar G { regex foo { :my $a }; say 7⏏5$a }␤»
masak seems that different rules apply for m{ } regexes and regexes in grammars.
10:28 anaeem1 joined
masak m: my regex foo { :my $a }; say $a 10:28
camelia rakudo-moar d5eabd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/TDGSgUhCPP␤Variable '$a' is not declared␤at /tmp/TDGSgUhCPP:1␤------> 3my regex foo { :my $a }; say 7⏏5$a␤»
10:28 dayangkun left
masak ...and it seems more related to `m{ }` vs `regex foo` than to being in a grammar. 10:28
maybe it's a feature. maybe this is how you're meant to export values into the surrounding code. 10:29
smls++ # signal(SIGINT).tap 10:31
also, karma to whoever made that feature look like that. 10:32
moritz guesses jnthn++ 10:34
RabidGravy looking at the Panda code it seems that the only way I can abort a build is by making a Builder sub-class with a build that dies, is that right and will it result in an NA in the cpandatesters?
smls masak: To "export values into the surrounding code", you can simple reference variables declared in the surrounding scope.
10:34 _mg_ left
masak oh, troo. 10:35
smls It's not like you can use it to dynamically insert lexicals into a scope at runtime: 10:36
masak but maybe it's something like "regexes are not their own scope in the first place, because there are no scope braces"
smls m: sub r { rx{ :my $a = 3 } }; "" ~~ r; say $x
camelia rakudo-moar d5eabd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1W8ThljCB0␤Variable '$x' is not declared␤at /tmp/1W8ThljCB0:1␤------> 3ub r { rx{ :my $a = 3 } }; "" ~~ r; say 7⏏5$x␤»
masak that one made no sense, on so many levels.
smls: $a vs $x ?
smls oh
10:36 blackbolt_ joined
smls makes no difference though 10:37
masak no, of course not.
that's not how lexical scoping works :)
smls yes
10:37 raiph joined
smls just 'cause you said "export values into the surrounding code" :P 10:37
if it allowed to bypass the way lexicals normally work, it would at least serve a (possible) use 10:38
but as it is, you might as well declare the lexicals outside of the m// instead of inside.
just trying to gauge whether m// leaking its lexical was meant as a feature or not :) 10:39
though maybe you're right, and it was done as a matter of consistency regardless of whether it is usefulness. 10:40
masak I'm arguing that it's more like the "foo $(my $x) bar" situation.
m: say "foo $(my $x = 'OH HAI') bar"; say $x
camelia rakudo-moar d5eabd: OUTPUT«foo OH HAI bar␤OH HAI␤»
masak (yes, you can declare a variable in the middle of a string interpolation)
smls m: say "foo {my $x = 'OH HAI'} bar"; say $x 10:41
camelia rakudo-moar d5eabd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ShhOvDt2Cs␤Variable '$x' is not declared␤at /tmp/ShhOvDt2Cs:1␤------> 3say "foo {my $x = 'OH HAI'} bar"; say 7⏏5$x␤»
smls right
10:41 skids joined
masak ...and that highlights the difference between `$()` (thunk) and `{}` (block) 10:41
smls m// regexes may not have block braces, however: 10:42
m: say rx/a/ ~~ Block 10:43
camelia rakudo-moar d5eabd: OUTPUT«True␤»
smls ;)
10:43 chenryn left 10:46 skids left
blackbolt_ hi, can someone look on code: pastebin.com/QmAcQkwu There is problem "Cannot look up attributes in a type object" 10:47
masak well, if you want a block, then maybe you should `my regex {}`
blackbolt_: looking.
10:47 AlexDani` joined
masak blackbolt_: I see the problem. it's about using "new" wrong. 10:47
blackbolt_: before I explain it, easiest way to fix is probably to rename `method new` to `submethod BUILD` 10:48
10:48 yqt joined
masak blackbolt_: could you try that and see if the problem goes away. 10:48
...?
then come back for the explanation ;)
blackbolt_ ok
masak also, the `return self` at the end of `method dbConnect` is not necessary as your code stands right now. 10:49
smls @ anyone with rt privileges: close #125242 please
10:49 AlexDaniel left
masak has a look 10:49
(is anyone able to give smls rt privs?)
colomon: confirmed that Yapsi hangs, after printing 'ok 9' in t/compiler.t 10:52
colomon masak++
masak this looks like an easy fix. 10:53
may do it after lunch, though.
blackbolt_ masak, there is other problem with "createWindow" : "No such method 'run' for invocant of type 'Any' in block <unit> at llllll.p6:51"
masak one problem at a time :) 10:54
blackbolt_: did the change from `new` to `BUILD` fix the original problem for you? 10:55
blackbolt_ yeap
masak good.
now here's what happened.
blackbolt_ it is next problem
masak method `new` in Perl 6 is meant to construct an object.
you didn't do that in your method.
what you wanted was more like an initializer. in Perl 6 we call that `submethod BUILD` 10:56
10:56 darutoko left
masak (it's `submethod` because it's specific to that class and we don't want it to be inherited by deriving classes) 10:56
blackbolt_: if you're getting that error, it's because the object's $.app attribute doesn't contain a GTK::Simple::App, but is simply uninitialized. 10:57
blackbolt_: you should find out why :)
blackbolt_ hmmm, ok
10:57 itz2 joined 10:59 vendethiel joined 11:02 darutoko joined 11:04 tinyblak left 11:05 tinyblak joined
blackbolt_ masak, i initialize GTK::Simple::App $.app and there is similar problem to $.DB "Cannot look up attributes in a type object in method run at lib/GTK/Simple.pm6:328 in block <unit> at llllll.p6:51" 11:07
11:07 fhelmberger joined
smls blackbolt_: You assign to $.app even though you didn't declare it 'is rw' 11:08
11:08 ab5tract_ joined
arnsholt Aha! Found my bug 11:09
11:10 tinyblak left
smls blackbolt_: You should probably assign to $!app instead of $.app 11:10
blackbolt_ smls, but i need public variable 11:11
smls and, similarly, "$!DB = " instead of "$.DB = "
11:11 fhelmberger left
blackbolt_ with db you have right it should be private 11:11
smls yes, keep them public, but refe4r to them as $!DB when initializing them inside the class itself 11:12
11:12 darutoko- joined 11:13 Ven joined
smls The $.attr for is just a convenience accessor that gets added *in addition* to the direct $!attr attribute notation, which is always available within the class itself no matter what kindof attribute it is. 11:13
s/for/form/
Ven o/ #perl6!
11:14 darutoko left, AlexDani` left
FROGGS arnsholt: what was it? 11:17
11:18 chenryn joined, fhelmberger joined
blackbolt_ smls, so how can i run this application? 11:18
smls blackbolt_: Your pastebin example works for me after making these three replacements (matching once each): s/method new/submethod BUILD/ s/$.DB =/$!DB =/ s/$.app =/$!app =/ 11:19
11:20 inokenty joined
smls you can even apply it with sed ;) 11:20
sed -i'' 's/method new/submethod BUILD/; s/$.DB =/$!DB =/; s/$.app =/$!app =/' test.p6
11:21 vendethiel left 11:23 fhelmberger left
blackbolt_ smls, hmmm you have right it work... Thanks! 11:23
masak I agree that $!attr should be used for assignment most of the time.
the exception is if you're designing your class such that the `is rw` accessor is meant to be overridden by deriving classes.
then using $.attr for assignment is the right thing to do. but it's quite rare. 11:24
smls masak: In this case, $!attr *has* to be used for assignment, because the public accessor is *not* declared 'is rw'
arnsholt FROGGS: Compound statements in suites would mess up the indent level 11:25
RabidGravy anyone on macosx or windows fancy trying to panda install Crypt::Libcrypt ? It should crap out early
11:26 tinyblak joined 11:28 AlexDani` joined
Ven masak: irclog.perlgeek.de/perl6/2015-05-26#i_10656120 the equivalent nqp version runs twice faster than p5 for you? 11:29
11:32 AlexDani` is now known as AlexDaniel
smls masak: S05 says that <{ }> "declares a sequence point, and is considered to be procedural". Could that affect the amb backtracking problem? 11:34
11:37 _mg_ joined
dalek ake: 98f527b | arnsholt++ | / (2 files):
Fix bug with a suite containing a single compound statement.

In those cases, the parser would mess up the indentation levels and keep parsing the suite when it should have stopped.
Also adds test to make sure we don't do it again.
11:37
ake: 88ad99f | arnsholt++ | / (2 files):
Fix bug in NEWLINE token.

Previously, it didn't correctly eat up blank lines (which are supposed to be ignored).
arnsholt FROGGS: 98f527b above is the commit, if you're interested in the fix too 11:38
11:38 mr-fooba_ left 11:42 mr-foobar joined, inokenty left 11:44 andreoss left 11:46 blackbolt_ left 11:49 g5 joined 11:53 andreoss joined
FROGGS I see 11:54
11:55 Akagi201 left 11:56 blackbolt_ joined 11:57 inokenty joined 11:58 pauluu joined 12:00 domidumont left 12:01 laouji left 12:02 ggoebel joined 12:03 blackbolt_ left 12:06 fhelmberger joined 12:07 Ven left 12:17 Foxcool joined 12:19 blackbolt joined, blackbolt left 12:22 cschwenz joined, vendethiel joined, cschwenz left
[Coke] I can give out bugadmin rights, just need the account/email on rt 12:33
smls [Coke]: Was that directed at me? 12:37
[Coke] Only if you want to be able to close RTs. :) 12:38
12:38 Ven joined
masak (I suggested that.) 12:38
12:39 gunpee joined
smls btw, a spam email has just been sent to the bugtracker - can we delete it, or just close it? 12:40
FROGGS smls: we mark it as spam
(just done it)
smls ok 12:41
FROGGS there is a big "S" at the upper right once you can do that
12:43 gunpee left
[Coke] once you mark it spam, it vanishes from the perl6 queue. (doesn't seem to work on the p5 queue, but I've marked some of those over the years as well) 12:45
12:45 vendethiel left
masak does someone want to translate version A in strangelyconsistent.org/blog/send-m...y-in-perl6 into NQP? 12:47
I would love to have a benchmark for that.
smls masak: Do you have a Perl 5 translation of the regex version? 12:49
masak no, but I'm interested in that too.
12:50 mr-foobar left
masak also, if someone can tweak the Perl 6 version of variant C to actually compute the value (even if it takes a while), I'd be interested in that also. 12:50
12:50 vendethiel joined
masak maybe something like inlining amb would work. 12:50
(it would destroy the cleanness of the solution, but it would still be interesting if it worked)
smls yeah 12:51
I think I'll give it a try (the P5 regex one) 12:52
masak \o/
I might try later with the ugly Perl 6 regex one. 12:53
masak raises an eyebrow at the way he structured the code in Yapsi way back when 12:54
hoelzro o/ #perl6
masak \o
smls masak: are you sure your perl 6 regex version actually works?
(you say you cut it off after 88 minutes)
masak smls: pretty sure. I made it output progress in the form of changing variables.
and it looked right.
12:55 anaeem1 left
smls don't you experience the infinite-hanging bug with <{ }> that I've gist'ed earlier? 12:55
s/bug/problem that may or may not be a bug/
hoelzro does it make sense to be able to predeclare a role? for example: role R { ... } ; class C does R { } 12:56
masak no, I'm not experiencing that. 12:57
12:57 anaeem1_ joined
smls huh. 12:57
masak m: role R { ... }; class C does R {}; say "alive"
camelia rakudo-moar d5eabd: OUTPUT«Use of uninitialized value of type Any in string context in any try_select at src/gen/m-Metamodel.nqp:2429␤===SORRY!===␤No appropriate parametric role variant available for 'R'␤»
masak that warning looks like an LTA bug to me. 12:58
also, the error message doesn't feel like it has a good handle on what's going on.
13:01 anaeem1_ left
moritz aye 13:03
13:04 Ven left 13:06 carlin joined
carlin m: my $time = time; my $foo; loop (my int $i = 0; $i < 100000; $i++) { $foo = :10[50, 100, 150, 200]; }; say $foo; say time - $time; 13:08
camelia rakudo-moar d5eabd: OUTPUT«61700␤16␤» 13:09
carlin m: my $time = time; my $foo; loop (my int $i = 0; $i < 100000; $i++) { $foo = 50*1000 + 100*100 + 150*10 + 200; }; say $foo; say time - $time;
camelia rakudo-moar d5eabd: OUTPUT«61700␤0␤»
13:09 ab5tract_ left
lizmat finally continued working on the P6W 13:09
carlin m: my $time = time; my $foo; loop (my int $i = 0; $i < 1000000; $i++) { $foo = 50*1000 + 100*100 + 150*10 + 200; }; say $foo; say time - $time;
camelia rakudo-moar d5eabd: OUTPUT«61700␤1␤»
andreoss can i tell panda to not compile module in mbc?
carlin m: my $time = time; my $foo; loop (my int $i = 0; $i < 1000000; $i++) { $foo = :10[50, 100, 150, 200]; }; say $foo; say time - $time; 13:10
lizmat if you folks have any suggestions about things I should mention, please let me know!
camelia rakudo-moar d5eabd: OUTPUT«(timeout)»
13:10 aborazmeh left 13:12 vendethiel left
hoelzro masak: I was thinking of fixing it up 13:12
I'm giving a talk on working on rakudo at Chicago.pm on Thursday, and I'm going through my "rakudo idea junk drawer" to find a simple exercise to walk to audience through 13:13
13:13 yqt left 13:15 dalek left, vendethiel joined 13:16 dalek joined, ChanServ sets mode: +v dalek
masak hoelzro: nice. 13:19
13:23 yqt joined
masak ok, I managed to fix *that* hang in Yapsi. 13:27
there's another one later on.
I think the hang is related to changed whitespace handing in rules. but that change happened ages ago, so I don't know why it triggered now, six days ago.
13:32 mr-foobar joined, anaeem1_ joined 13:34 Akagi201 joined 13:35 chenryn left 13:38 anaeem1_ left, anaeem1 joined 13:40 grondilu left
RabidGravy I don't suppose anyone else is building/testing on FreeBSD 8 ? 13:41
13:42 vendethiel left
RabidGravy It's behaving link nativecall isn't loading .so files from the full path name 13:42
of course my system could be cocked up
13:42 anaeem1 left
DrForr Hrm. I've got a box that I could spin up some VMs here on at work, but I don't yet think that's a good idea. 13:43
FROGGS RabidGravy: BSD's test to do that, that is, to not load libs from random paths 13:44
DrForr (not that I don't think perl6 is stable, just the 'at work' part.
FROGGS RabidGravy: you need to put that directory in LD_LIBRARY_PATH before invoking perl6
RabidGravy ah so a panda build with a custom .so is unlikely to work as it currently stands 13:46
[Coke] I just tried out yapsi and am getting the same error I'm seeing testing rakudo star. 13:47
hoelzro is that a *BSD thing, not being able to dlopen() an absolute path? I tried that on an OpenBSD VM last week and it worked fine =/
[Coke] I did ufo && make, then ./bin/yapsi, and it complains it cannot find Yapsi in any of...
masak [Coke]: that's what I'd expect. 13:48
itz2 panda/ext needs new versions with no "unit" warnings I think?
13:49 anaeem1 joined 13:51 Ven joined, laouji joined
andreoss m: (1...3, Empty ,3...6).perl.say 13:51
camelia rakudo-moar d5eabd: OUTPUT«(1, 2)␤»
andreoss m: (1...3, Any ,3...6).perl.say
camelia rakudo-moar d5eabd: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at /tmp/cFW_IqrHeH:1␤(1, 2, 3, Any, 3, 4, 5, 6)␤»
andreoss m: (1...3, Nil ,3...6).perl.say 13:52
camelia rakudo-moar d5eabd: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at /tmp/PF8ngji3ll:1␤(1, 2, 3, Any, 3, 4, 5, 6)␤»
lizmat P6W: p6weekly.wordpress.com/2015/05/26/...-progress/
moritz lizmat++ 13:53
13:53 Sqirrel joined
lizmat please let me know of anything I've missed :-) 13:53
masak colomon: just pushed two commits that unstucks Yapsi's test suite.
colomon \o/
masak colomon: (now there are test failures instead, but that's one step better)
FROGGS RabidGravy: site/lib is in rpath, so will at least work once it is installed...
RabidGravy: can you show us the code that is failing? 13:54
colomon masak: it’s a huge step forward as far as smoke testing is concerned. :)
masak I'm just looking at the whole Yapsi code base (which is not very big, actually) and going "oh dear, whoever wrote this was not very experienced, was he?"
FROGGS lizmat++ # !
13:55 fhelmberger left
masak heh. I knew how much of the Yapsi learnings I took with me to 007. I hadn't really realized how much I had learned in-between those two projects, though. 13:55
[Coke] masak: just did an update, same failure mode on the make test. Not sure if it was intended to fix that issue.
masak it was. it's not supposed to hang anymore. 13:56
it doesn't hang here :/
13:56 fhelmberger joined
masak I'm not running `make test`, though. I'm running `prove -e'perl6 -Ilib' -r t/` 13:56
13:56 carlin left
brrt (1.6s for the nqp version here) 13:57
RabidGravy FROGGS, It's e.g. the Sys::Utmp github.com/jonathanstowe/p6-Sys-Utmp
masak brrt: what's that?
RabidGravy but it looks like it's all the other code
colomon masak++: I get test failures but not hang when installing with panda
FROGGS lizmat: 'perl -MMoose -e1' is .18 and 'perl6 -e1' is .10 here fwiw 13:58
brrt the iterative version of send more money (i think from cygx)
cygx++
lizmat FROGGS: good to hear :-)
FROGGS RabidGravy: what's the error message you get? 14:00
RabidGravy let me find the window ;-)
14:01 fhelmberger left
RabidGravy "Cannot locate native library '/usr/home/jns/devel/perl6/p6-Sys-Utmp/.panda-work/1432648885_1/blib/lib/utmphelper.so'" 14:02
14:02 domidumont joined, Ven left
RabidGravy and it's definitely there at that point 14:02
timotimo o/ 14:05
thank you lizmat, i'll read it right away :)
brrt: do we actually expect startup time to benefit greatly from better jitting? 14:07
14:07 vendethiel joined
timotimo lizmat: short and sweet. i like it :) 14:07
lizmat timotimo brrt it was more intended as a teaser :-)
timotimo i know for a fact that if i had written that post, i'd've stressed for hours about "not enough text, oh god what have i missed" 14:08
brrt wait, what did i miss
14:09 xinming left
brrt timotimo; I do actually expect that this helps, at any rate for real programs, because the compiler is itself a perl6/nqp program 14:09
not for perl6 -e '1;'
but for 'real' programs, yes, i do expect it will help
if only so little 14:10
timotimo right; we recently tuned spesh thresholds so that less spesh work gets done in the bare startup, though :P
it seems like we can get a pretty huge speedup for :10[ ... ] and friends
as carlin demostrated 14:11
14:11 g5 left
brrt what does :10[...] do, or rather, how is it implemented 14:15
14:15 xinming joined
timotimo that's the question, isn't it? :) 14:15
m: say :10[ 1, 2, 3, 4 ]
camelia rakudo-moar d5eabd: OUTPUT«1234␤»
brrt recently had an epiphany with regards to the param_* set of ops
timotimo oh, that's excellent!
brrt basically, it's just a conversion matrix, right?
timotimo yes
i'm still pulling latest parts and building 14:16
i'll have a look at how :10 and friends are implemented
brrt well, there are 4 possiblities from source, and 4 possiblities from destination
(namely, i, n, s, o)
timotimo yeah
brrt this means we can encode every transformation in 4 bits, and we can create a single transformation switch that switches on those bits 14:17
all that is left is filling out the 16-entry matrix to be 'correct' with regards to current behaviour
timotimo ah?
brrt (and then a slight API change, but that is a small matter)
14:17 skids joined
dalek kudo/nom: c2a57ec | lizmat++ | src/core/Backtrace.pm:
Lose the <unit-outer> in backtraces

The lazification of backtraces accidentally included the <unit-outer> scope, where it didn't before.
14:18
timotimo :10[ ... ] calls UNBASE_BRACKET
:10( ... ) calls UNBASE
14:19 aindilis joined, xinming left
timotimo the unbase bracket version has to work with '.', too 14:20
14:20 xinming joined
timotimo i expect if we have a list of $ sigil'd vars, we can generate a bit of numeric code instead of a full call to unbase_bracket 14:21
except ... binding trickery may be involved
m: my $foo := 1, 2, 3; say :10[ $foo ]; 14:22
camelia rakudo-moar d5eabd: OUTPUT«123␤»
timotimo m: my $foo = 1, 2, 3; say :10[ $foo ];
camelia rakudo-moar d5eabd: OUTPUT«WARNINGS:␤Useless use of "," in expression "my $foo = 1, 2, 3" in sink context (line 1)␤1␤»
timotimo m: my $foo = (1, 2, 3); say :10[ $foo ];
camelia rakudo-moar d5eabd: OUTPUT«3␤»
timotimo this just numifies, i suppose
FROGGS RabidGravy: can you try latest MoarVM and check if the error msg provides any hints now? 14:23
RabidGravy 'ang on
14:25 rindolf joined 14:28 anaeem1 left, ab5tract_ joined, vendethiel left
ab5tract_ I haven't been around much recently, but I wanted to a big karma hug to everyone on the impressive amount of work that's been happening 14:29
to *give a
timotimo i suppose the right place to put an optimization like that is the optimizer, since we can ask what the involved lexicals have set as their type constraints
dalek pan style="color: #395be5">perl6-examples: 6e8e53f | andreoss++ | / (2 files):
[euler] problem 30 solution
brrt wait, what kind of optimization are we talking about :-)
timotimo this is about unbase_bracket 14:30
RabidGravy FROGGS, exactly the same
14:30 colomon left
brrt is it possible that the spectest actually hangs on mac, or is it just *really* slow 14:31
FROGGS RabidGravy: unlikely
RabidGravy: I changed the error message...
RabidGravy Hmm, maybe it didn't get the latest moar 14:32
FROGGS RabidGravy: just go to your MoarVM dir, and type 'git pull && make install'
or something along these lines
andreoss only 56 of 516 problems are solved 14:34
timotimo now i wonder if unbase_bracket is meant to support numbers bigger than the base 14:37
m: say :10[ 12345, 12345 ]
camelia rakudo-moar d5eabd: OUTPUT«135795␤»
14:41 vendethiel joined
lizmat timotimo: re size of blog post: I think the regularity is more important than the size 14:44
timotimo that's a fair assumption, i think 14:45
note that i'm far from rational in this regard :P
14:49 _mg_ left 14:50 colomon joined 14:52 laouji left
lizmat afk for a while again& 14:53
smls masak: This seems to work, although it's very slow: gist.github.com/smls/f41a4384e03d58dd18e4 14:54
Slowness probably stems from the fact that the sub-regexes returned by (??{ }) are recompiled every time they get backtracked over. 14:55
brrt Offtopic: one of the larger misfeatures of python is the large number of __double_underscore__ methods 14:57
smls Also, when running it the memory usage rises constantly until the kernel kills the process. :(
14:57 colomon left
RabidGravy FROGGS, which file did you change in Moar ? I'm still getting the same and not sure what is going on 14:58
FROGGS RabidGravy: src/core/nativecall.c 14:59
RabidGravy: look at github.com/MoarVM/MoarVM/commit/5ddab9a43d
smls masak: It managed to get to the iteration "1085 + 7460 == 74803" before exhausing all RAM on my 8GB computer :P 15:00
15:01 anaeem1 joined, raiph left 15:04 cognominal left 15:05 vendethiel left 15:06 telex left 15:08 telex joined 15:10 domidumont left 15:11 molaf_ left, smls left
timotimo oh, re-compiling the regex every time you backtrack over it. that's a bad miss 15:13
15:14 anaeem1 left, vendethiel joined 15:15 anaeem1_ joined, smls joined
smls masak: Correction, it gets up to an iteration with $send == 1246, before exhausting ~7 GB of RAM. 15:19
15:19 anaeem1_ left 15:20 anaeem1_ joined
smls And it took 5 minutes to get there. 15:20
Since it starts looking at $send=1000 and the solution would be found at 9567, that means it only got 2.9% of the work done in that time & RAM :S 15:21
So yeah, this does not seem to be a practically viable solution to the problem in Perl 5. 15:22
RabidGravy FROGGS, got it!
FROGGS RabidGravy: do tell
15:23 koo6 joined
RabidGravy the "Cannot locate" is a red-herring, it actually can't find the symbol in the library 15:23
FROGGS eww
RabidGravy: but then it should state: Cannot locate symbol '%s' in native library '%s' 15:24
RabidGravy which is odd anyway as I've definitely seen it say that before
Cannot locate native library '/usr/home/jns/devel/perl6/p6-Sys-Utmp/.panda-work/1432653646_2/blib/lib/utmphelper.so': /usr/home/jns/devel/perl6/p6-Sys-Utmp/.panda-work/1432653646_2/blib/lib/utmphelper.so: Undefined symbol "getutent"
FROGGS RabidGravy: ahh!
nice, so my patch does something sensible 15:25
RabidGravy: you need to link against the library that defines detutent
getutent*
bbkr r: sub MAIN (Int :$x) {...} # why it does not print usage? 15:26
camelia rakudo-jvm c2a57e: OUTPUT«Unhandled exception: Stub code executed␤ in throw (gen/jvm/CORE.setting:14593)␤ in sink (gen/jvm/CORE.setting:16528)␤ in MAIN (gen/jvm/main.nqp:41)␤ in <mainline> (gen/jvm/main.nqp:35)␤ in (gen/jvm/main.nqp)␤␤»
..rakudo-moar c2a57e: OUTPUT«Unhandled exception: Stub code executed␤ at <unknown>:1 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:16742 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:s…»
timotimo because named arguments are optional by default
r: sub MAIN (Int :$x!) {...}
camelia rakudo-{moar,jvm} c2a57e: OUTPUT«Usage:␤ /tmp/tmpfile -x=<Int> ␤»
RabidGravy no, FreeBSD of a certain vintage doesn't have it at all so the .c will supply it
geekosaur was thinking that sounded like a BSD 15:27
timotimo bbkr: ^^
15:28 ab5tract_ left
bbkr timotimo: thanks. I also found small inconsistency in MAIN behaviour - named params print expected type but positional does not. Is that also expected? 15:29
timotimo oh
dunno
might be an easy fix :)
for you, i mean :P
bbkr r: sub MAIN (Int $x!) {...}
camelia ( no output ) 15:30
..rakudo-moar c2a57e: OUTPUT«Usage:␤ /tmp/tmpfile <x> ␤»
FROGGS hehe
15:30 zakharyas left 15:31 grondilu joined 15:34 diana_olhovik_ left
bbkr reported bug 15:38
15:39 _mg_ joined
RabidGravy WTF 'Undefined symbol "croak"' 15:40
bbkr another question - how to turn on strict mode by default? 15:41
15:41 _mg_ left 15:43 colomon joined, brrt left
bbkr nvm, found the answer: "-e one line of program, strict is disabled by default". I thought it was disabled for regular file interpreting too. 15:44
RabidGravy me-- # total forgot all the C he ever know 15:46
timotimo bbkr: oh god, a comeback of "you have to put 'use strict;' at the beginning of any script"? nooooooo~
i can't think of anything we could do that'd be worse 15:47
bbkr I was just confused because my oneliners allowed bare perl6 -e "$x = 3" and I was scarred that strict mode declaration in every file came back :) 15:49
timotimo i can imagine you'd be scarred by "no strict by default" 15:50
15:50 FROGGS left 15:52 gfldex joined, laouji joined
bbkr I'm maintaining such large Perl 5 codebase that I simply force people to do 20 push ups for forgetting "use strict". switching to Perl 6 will severely reduce my team physical condition :) 15:53
timotimo mhm
tony-o_ Attribute '$!path' already exists in the class 'MyApp::Basic', but a role also wishes to compose it 15:54
oops
15:57 laouji left 16:01 [Sno] left, Akagi201 left 16:09 itz2 left
andreoss maybe there's something like INIT to compile a block and run it as the byte code? 16:09
hoelzro is it a reasonable assumption that a predeclared role must be declared before it is consumed by a class?
the complexity I'm imagining to get role R { ... } class C does R { } role R { #`(impl) } to DWIM makes me shudder 16:10
16:10 diana_olhovik_ joined
timotimo andreoss: what now? 16:11
16:11 pauluu left
ugexe hoelzro: can you better explain what you want to do? 16:12
hoelzro m: role R { ... } class C does R {}
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hnyctndCLf␤Strange text after block (missing semicolon or comma?)␤at /tmp/hnyctndCLf:1␤------> 3role R { ... }7⏏5 class C does R {}␤ expecting any of:␤ infix␤ infix stopper␤…»
hoelzro er
m: role R { ... } ; class C does R {} 16:13
camelia rakudo-moar c2a57e: OUTPUT«Use of uninitialized value of type Any in string context in any try_select at src/gen/m-Metamodel.nqp:2429␤===SORRY!===␤No appropriate parametric role variant available for 'R'␤»
hoelzro there we go
ugexe: that error message is LTA, so I was thinking about fixing it
andreoss timotimo: i'm not following.
timotimo "compile a block and run it as the byte code"?
i don't understand
hoelzro I can do stuff like class C { ... } ; my $c = C.new; class C {} and that works fine
timotimo everything you have in your perl6 script is compiled to bytecode before its run
hoelzro but that's because the stuff actually using C is runtimey 16:14
timotimo well, any way, i'll be AFK for a bit now
hoelzro so I think that making role R { ... } ; class C does R {} ; role R {} would be hard to do, and perhaps not terribly useful
16:15 anaeem1_ left
andreoss COMPILE { ... } == perl --target=mbc '...' > bytecode.moarvm; moar bytecode.moarvm 16:15
timotimo: like that
moritz m: class A { ... }; class B is A { }; class A { }
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AQ21RpRfFO␤'B' cannot inherit from 'A' because 'A' isn't compose yet (maybe it is stubbed)␤at /tmp/AQ21RpRfFO:1␤»
andreoss i mean to compile at runtime
timotimo so you want to emit a bytecode file?
on top of running the code 16:16
i'll get back to you later
o/
andreoss is it a bad idea?
16:18 dwarring left
andreoss i see now why my question sounded stupid. So basically i want some code (like a class) to be compiled before the rest of code. 16:19
moritz so, put it into a module? 16:20
andreoss i'm trying to golf futher this rt.perl.org/Public/Bug/Display.html?id=125245 16:25
so complied bytecode and the bytecode compiled on the fly do behave differently 16:26
16:27 rindolf left
andreoss i wondered if i can to compile a block like that and compare it with the same block without pre-compilation 16:27
16:27 rindolf joined
andreoss sorry if i used the wrong terms here 16:28
16:28 chenryn joined
ugexe hoelzro: why the { ... } and not just { }? 16:29
hoelzro ugexe: because I'm predeclaring the role
dalek osystem: a2938b6 | skids++ | META.list:
Add X::Protocol to ecosystem

  ...getting folks to actually use it may end up being an exercise in cat-herding.
16:31
skids Oh, I had access to that? :-) 16:32
tony-o_ skids, what is it
skids It's a pretty bland module to for X:: based things like HTTP::Status 16:33
So we don't have to keep redundant lists of "404", "Not found" and such.
16:35 molaf joined
ugexe is there an X::BlameUser yet? 16:36
tony-o_ lol
16:37 chenryn left, camelia left
skids X::PEBKAC? 16:37
tony-o_ X::TIMTOWTDI 16:38
16:39 camelia joined, muraiki joined, avalenn_ left 16:40 itz2 joined
raydiak if you think herding cats is difficult, you either don't live with them, or haven't tried to open a can of tuna for yourself 16:40
16:40 itz2 left, ChanServ sets mode: +v camelia, itz2 joined
skids raydiak: I don't anymore, but I still put the toilet paper on "backwards" out of habit. 16:41
nine m: say "alive in the VM"
yoleaux 19 May 2015 21:43Z <jdv79> nine: please see the PR on I::Py
camelia rakudo-moar c2a57e: OUTPUT«alive in the VM␤»
yoleaux 20 May 2015 20:04Z <lizmat> nine: Is there a reason why nobody has added a "unit" statement to Inline::Perl5 to quiet the warnings?
ugexe skids: have you done anymore http rfc related work? 16:42
nine j: say "alive in the VM"
camelia rakudo-jvm c2a57e: OUTPUT«alive in the VM␤»
16:42 avalenn joined
skids ugexe: haven't had time yet. 16:43
[Coke] nine: How can I run the inline:perl5 tests with a local ./install?
nine [Coke]: make test?
skids ugexe: are you going to add those grammars to the ecosystem? 16:44
[Coke] nine: er, the spectest tests. I can't use panda to install into the ./install directory.
ugexe i have a http client build on top of rfc grammars, still has a few bugs parsing certain headers though. i dont think 7230-7235 can properly be translated automatically and work
[Coke] so how do I install Inline::Perl5 ?
doing a fresh test now so I can try to find where the failure point is. 16:45
nine [Coke]: sorry, I have no idea. Stil have to find my way through the CompUnitRepo land
skids ugexe: the rfc itself pretty much says not to just run the grammar. Also it has works like proxies are supposed to tolerate and normalize things that would normally fail a client/server parse.
ugexe skids: i have updated ones in zef currently which is in the ecosystem: github.com/ugexe/zef/blob/master/l...s/HTTP.pm6 nad Zef/Utils/HTTPClient.pm6
skids s/works/wording/ 16:46
ugexe yea... headers are even worse. the default doesnt allow single letter words in a quoted string if there is space on both sides (a bug), and the eratta for it breaks other things 16:47
makes trying to keep it all in the grammar difficult
16:48 dakkar left 16:49 rarara left, vendethiel left 16:50 sftp left
skids Security wise the advice is do two passes -- one to get individual headers and then per-header stuff after aggregating the compound headers. So I guess the per-header pass could be lazy. 16:51
ugexe whats the security risk in doing it in a single pass? 16:52
skids Complexity mostly, I think.
ugexe i have hard coded rules for most known headers. but the default rule for when it doesnt match a known header has been a source of pain for me 16:54
skids I saved a bunch of links to for later making spectests from greenbytes.de, e.g. greenbytes.de/tech/tc2231/. Those pages are a bit scattered. 16:56
16:56 [Sno] joined
colomon ==> HTTP::Server::Threaded::Router depends on HTTP::Server::Threaded::Router 17:01
Killed
masak smls: after getting rid of the experimental signatures -- I still run 5.18 here for some reason -- I got gist.github.com/smls/f41a4384e03d58dd18e4 working.
17:01 grondilu left
masak smls: it gets lot further here than what you report. 17:01
smls oh? how fast?
dalek pan style="color: #395be5">perl6-examples: 6d20768 | paultcochrane++ | .travis.yml:
Add Text::VimColour dependency to Travis config
17:02
pan style="color: #395be5">perl6-examples: 6992ab5 | paultcochrane++ | categories/wsg/advanced-2008/event010-dwhipp.p6:
[wsg] replace .for with .flatmap

The method .for is deprecated and will be removed in Rakudo 2015.09. Its replacement is .flatmap as corrected here.
pan style="color: #395be5">perl6-examples: ee436d9 | paultcochrane++ | README.md:
Update dependencies list in README
pan style="color: #395be5">perl6-examples: f52a30d | paultcochrane++ | t/categories/euler.t:
[euler] add expected output for prob030
masak I had it print on every 100_000 iterations. it does so about once a second.
17:02 Akagi201 joined
hoelzro does anyone know why stubby roles might not qualify for add_stub_to_check? 17:03
masak smls: something is wrong. $send went from 1980 to 1025 in my output. 17:04
smls huh :P
andreoss [ptc]: i knew i missed something, sorry 17:06
tony-o_ colomon: thank you
colomon tony-o_: you’re welcome
dalek pan style="color: #395be5">perl6-examples: 7a937dc | paultcochrane++ | categories/euler/prob0 (5 files):
[euler] replace hard tabs with spaces
17:07
tony-o_ colomon: fixed it - it still needs the H:S:T dpends :-)
[ptc] andreoss: that's ok.
17:07 Akagi201 left, gfldex left
[ptc] andreoss: the funny thing is, that the test file wouldn't even compile since a variable wasn't defined... 17:07
tony-o_ colomon: if you're interested in using that - i have something that builds on that module on the way 17:08
[ptc] andreoss: does travis notify you if the build breaks? Or is it just me to whom that happens?
colomon tony-o_: nah, this turned up in the smoke test. :)
17:09 andreoss left, andreoss joined
RabidGravy boom 17:10
timotimo hey tony-o_, jnthn has most likely figured out what causes instabilities all over the map 17:23
colomon tony-o_: actually, things seem to be hung up in the HTTP::Server::Threaded tests now….
tony-o_ colomon: it's an issue with the way stuff works with start {} blocks 17:24
start blocks and sockets
timotimo: that is awesome!
17:25 diana_olhovik_ left
tony-o_ timotimo jnthn what was it? 17:25
timotimo a race inside lazy deserialization 17:26
dalek rl6-roast-data: 0b1d661 | coke++ | / (9 files):
today (automated commit)
17:27
jdv79 [Coke]: we don't have full output of your runs there? 17:31
17:31 yqt left
[Coke] ok, I was able to get panda to install inline perl5 just now. wonder why it borked earlier. Now only "problem" is large number of deprecated warnings during the panda process. 17:34
jdv79: no. I locally track the full build output, but don't capture it. 17:35
we can change that if it's needed. the roast data was mainly about roast, though, not rakudo itself.
17:38 vendethiel joined 17:39 espadrine left 17:40 FROGGS joined 17:41 yqt joined 17:42 laouji joined 17:45 _mg_ joined 17:46 laouji left
japhb masak: Pretty please can you turn your various make+more=money variants into minibenchmarks for github.com/japhb/perl6-bench -- especially since y'all have been making NQP and Perl 5 versions as well as the Perl 6 ones. 17:48
(Would also be a strong incentive to take some of my personal hack time to do comparisons of different algorithms solving the same problem as well as different compilers running the same algorithm. 17:49
17:50 abraxxa left
pmichaud r: sub MAIN (Int $count) { ... } 17:52
yoleaux 20 May 2015 16:49Z <TimToady> pmichaud: FYI I'm intending to slaughter the $!flattens flag after this release since it makes @a,@a misbehave in non-flat list context, looks like we'll have to fix all the (foo,).flat.eager things scattered here and there too
camelia rakudo-{moar,jvm} c2a57e: OUTPUT«Usage:␤ /tmp/tmpfile <count> ␤»
17:52 spider-mario joined 17:53 anaeem1 joined, andreoss left 17:54 inokenty left
masak japhb: that sounds like a worthy thing to do. I'll spend some time on it tonight. 17:56
japhb: what's the closest thing to "here's what you need to do to create and submit a perl6-bench microbenchmark" ?
pmichaud r: sub MAIN ($pattern!, *@files) { ... }
camelia rakudo-{moar,jvm} c2a57e: OUTPUT«Usage:␤ /tmp/tmpfile <pattern> [<files> ...] ␤» 17:57
masak should probably check the github repo before asking
17:57 fhelmberger joined
FROGGS good evening dear sir or madam 17:58
m: sub MAIN($a) { ... } #= flubber 17:59
camelia rakudo-moar c2a57e: OUTPUT«Usage:␤ /tmp/jF9IVKBBk9 <a> -- flubber␤»
FROGGS m: sub MAIN($a where True) { ... } #= flubber
camelia rakudo-moar c2a57e: OUTPUT«Usage:␤ /tmp/1Z80c6DhRA <a> ␤»
pmichaud m: sub MAIN (Int $integer) { ... }
camelia rakudo-moar c2a57e: OUTPUT«Usage:␤ /tmp/SJk_VxNAxM <integer> ␤»
FROGGS was that already rakudobugged?
17:59 anaeem1 left 18:00 koo6 left
itz2 grrr why doesn't git install subtree by default? 18:00
pmichaud FROGGS: I'm responding to RT #125251 18:01
18:01 domidumont joined, yqt left
pmichaud m: sub MAIN ( :$x! ) { ... } 18:01
camelia rakudo-moar c2a57e: OUTPUT«Usage:␤ /tmp/2gFQ1UuDcN -x=<Any> ␤»
18:02 fhelmberger left
masak japhb: oh, from looking at the repo layout, it's just a matter of adding the scripts to the nqp/, perl5/, and perl6/ directories. all with the same name. yes? 18:02
japhb: do you prefer pull requests?
18:02 pierrot_ joined 18:03 gtodd joined, pierrot left
FROGGS pmichaud: k, I'll rakudobug the lack of the comment when a where clause is present 18:03
18:03 Akagi201 joined 18:08 pierrot_ is now known as pierrot, inokenty joined, Akagi201 left
japhb masak: I'm happy to add commitbits too, especially as I already know your code style won't drive me batty. :-) 18:09
There is one more thing to do than putting the scripts in the right directories; you need to add a stanza to minibenchmarks.pl in the top level.
masak: You now have a commitbit. Go out and -Ofun. :-) 18:11
masak \o/ 18:12
ah, yes. minibenchmarks.pl. 18:13
japhb: I'll try and get around to this tonight. 18:14
japhb masak: Thanks! 18:15
18:16 Peter_R joined
japhb Anyone happen to know of a relatively *simple* (not a ton of rules) pen-and-paper RPG? I've discovered while attempting to capture the essence of a couple of my old favorites in Perl 6 code that they were, in fact, extraordinarily complicated. 18:23
18:23 [Sno] left
japhb And hard to tease out the fun starting bits from the "only old timers care one whit about this" sort of rules. 18:23
DrForr GURPS is pretty straightforward. 18:24
japhb DrForr: You'd be surprised (I was an old GURPS fan, and that was one of the first I tried, and it's certainly less complex at the core than e.g. Pathfinder, but still ... DANG.) 18:25
DrForr Then D20 maybe?
japhb Pathfinder is basically D20 3.5+i 18:26
DrForr Amber Diceless comes to mind as well.
japhb The thing I'm coming to understand is that humans are so good at internalizing exceptions and obscure stacking rules and such that they don't realize that, from the point of view of coding the rules, it's a completely entangled web. 18:27
Hmmm, haven't played that one, though I've heard of it.
18:27 gfldex joined
dalek kudo/nom: b9f993b | FROGGS++ | src/core/CompUnitRepo/Locally.pm:
dont create dirs when instanciating CUR

But also do not skip non-existing locations, because we might be creating them when installing into.
18:27
18:28 [Sno] joined
DrForr That requires a bit more maturity on the behalf of the players than you may be able to assume :) 18:29
japhb Amber Diceless, you mean?
DrForr Yeah.
GURPS though has the geek cred, EFF and NSA ties :) 18:31
japhb Heh 18:32
That one was my favorite in college; old school D&D before that. 18:33
DrForr Same here. In fact I just hooked up with some of my cohorts from that time as well.
18:34 mr-foobar left
colomon is a big Amber Diceless player 18:35
colomon doesn’t think Amber would do well as a Perl 6 program 18:36
japhb The wikipedia page for it was an interesting read, at least. 18:38
masak FROGGS: s/instanciating/instantiating/ -- for some reason, this type seems common among Germans (haven't figured out why yet) 18:39
DrForr I don't think it'd be a good program either, but he was looking for a simple RPG.
18:39 _mg_ left, yqt joined
colomon japhb: Oh, Amber is an awesome game. But the rules are so slight they tend to fall away to nothing in practice. 18:39
FROGGS masak: ahh, now that you write it it seems clear to me
masak I mean, we should all blame Lating for doing things like instance : instantiate 18:40
colomon japhb: it’s basically all either, “You automatically win” or “It’s the GM’s call.”
skids ISTR Paranoia being pretty simple.
japhb skids: Oh, that's an interesting idea. An old friend of mine used to love that. 18:41
DrForr Oh, wait, I'm an idiot. The Laundry. Geek cred on two levels :)
skids Considering you burn through all those clones faster than the average RPG character lifespan, you need autogenerators, more too :-) 18:42
[Coke] paranoia was awesome.
japhb colomon: Hmmm, yeah, that makes sense. Part of the reason I didn't go for Ars Magica (original rules), because that's a game of storytelling, not so much exploration and Indiana Jones stuff.
nine masak: in German it's Instanz : instanzieren so we kind of fixed that ;)
masak German++ 18:44
japhb: you could always implement a Nomic :P
japhb Didn't you already do that? :-) 18:45
masak no, I sketched some plans to do it.
DrForr I thought that's what the perl6 parser was.
japhb DrForr: Oh geez, now I have to go and pick up more Stross novels. :-)
tony-o_ are we going to have some kind of p6 rpg bot in here?
DrForr You're *missing* some? :) 18:46
japhb
.oO( The #perl6 MUD )
masak tony-o_: that would be *awesome*. a slow-moving game, without all-that-clear winning conditions, with people lazily making moves every week or so. :)
18:46 mr-foobar joined
masak if I had a hand in it, it would probably come out seeming more like Mornington Crescent than anything else. 18:47
tony-o_ masak: i've considered it a number of times
japhb DrForr: I'm a binge reader. I have to reduce my novel reading the only way I can: by *not* buying everything I've heard of. :-)
DrForr You're describing debugging teh core :)
tony-o_ masak: i'm more interested in it from an engine perspective than a story perspective :-)
japhb imagines a Perl 6 implementation of Core Wars
18:49 diana_olhovik_ joined
dalek line-Perl5: eed9d90 | lizmat++ | lib/Inline/Perl5.pm6:
Add 'unit' to silence deprecation warning
18:49
tony-o_ masak: i'll build an engine for one in p6 when i finish this http {mv[c?]} stuff i'm working on
raydiak some web-based civilization-building games roughly fit that long-running sandbox description
tony-o_ if you're interested
colomon japhb: I dunno about Ars Magica, but certainly “exploration and Indiana Jones stuff” fits very easily into the Amber system. :)
japhb hmmm 18:51
tony-o_ or if anyone is, really
skids FWIW as far as modern *board* games go, the main reason they can't be coded is because the quality of the rules is generally very low.
raydiak world of darkness games e.g. Vampire lend themselves well to simplicity in some ways, if fistfuls of D10s aren't the type of complexity you're worried about...dunno anything about their modern incarnations though 18:52
dalek line-Perl5: ef02770 | (Stefan Seifert)++ | t/p (2 files):
is_deeply now is called is-deeply
line-Perl5: dcd0b0c | (Stefan Seifert)++ | META.info:
More complete META.info
tony-o_ hard to steal from the bank in an online monopoly
nine lizmat: you literally beat me by 3 minutes
lizmat and *you* beat me on the is_deeply :-)
nine lizmat: and that after I've been pretty much offline for almost a month ;) 18:53
lizmat sorry, I got inspired by itz++ 's panda pull request :-)
nine Why do we need unit now anyway? The p6weekly and Rakudo's changelog only mention that we need it, not why. 18:54
lizmat to prevent confusion between stubbing a package and a file scope package 18:55
package Foo; # just a stub
(well, in the future)
nine oh
lizmat unit package Foo; # file scope package
FROGGS and also a 'package Foo;' was in unit scope already, and like we push regex modifiers upfront we do not like that a thing that changes meaning comes that late 18:56
(the semicolon here)
nine I guess "unit" refers to the CompUnit?
japhb raydiak: Hmmm, thank you. Fistfulls of dice aren't a problem per se ... which makes me wonder about some "go get the bag of d6's" games ... it's the complexity of things like Pathfinder's Armor Class rules, which I swear vary your armor class based on so many things that I despaired of a decent data structure.
FROGGS nine: aye 18:57
japhb
.oO( Standing behind a tower shield, using it as a shield and not as cover, hasn't acted yet in this combat, wearing magical armor that gets its defense from force, not from strengthening the metal, defending against a touch attack, from an incorporeal being ... )
18:59
raydiak japhb: you're welcome :) I have seen mixed-gender groups of geeks and non-geeks alike enjoy it in some form, so thought it might have the flexibility you're looking for
DrForr I would mention CCGs but given how jealously WotC..er, TSR... er, WoTC, that might not be a good idea. 19:00
That is, how jeaously they guard their copyrights. 19:01
lizmat panda installs should now be a lot less noisy 19:02
19:04 virtualsue joined, diana_olhovik_ left
[Coke] lizmat++ 19:04
japhb DrForr: Yeah, I avoided pure D20 because these days it's actually hard to figure out how you can even refer to those rules without invoking Lovecraftian contracts
19:04 diana_olhovik_ joined
japhb Despite they used to be free enough that Pathfinder managed to fork from them. 19:04
vendethiel lizmat++ # weekly :) 19:08
19:10 mr-foobar left 19:11 mr-foobar joined
DrForr Yeah, I remember the original hoohaa over a Creative Commons or whatever RPG ruleset. 19:12
19:15 ab5tract_ joined
DrForr grouses over a segfault that only happens every 4-5 test suite runs. 19:16
FROGGS DrForr: run it with perl6-gdb-m and ticket it please 19:19
DrForr It's nothing to do with p6 core, it's a NativeCall isue.
*issue 19:20
FROGGS if it segfaults in MoarVM, we need to fix it either way 19:21
19:21 xfix joined
DrForr Once I track it down I'll rakudobug it. 19:22
19:23 colomon left 19:24 domidumont left
FROGGS DrForr++ 19:24
19:26 andreoss joined 19:31 laouji joined
flussence is slightly annoyed that I only saw those pull requests by chance glancing at github's front page, and it sent neither email nor website notification... 19:34
19:34 Akagi201 joined, diana_olhovik_ left 19:35 tinyblak left, laouji left 19:36 mr-foobar left, mr-foobar joined 19:39 Akagi201 left 19:40 pecastro left
DrForr rakudobug sent. 19:41
FROGGS looks
DrForr I'm headed to bed soonish, but I've got the backtrace open right now if you need anything. 19:42
FROGGS I'll try to reproduce it on my box in a bit 19:43
DrForr 64-bit Ubuntu 14.04 VM on Windows 8, 6Gb RAM.
FROGGS k 19:44
19:45 xfix left 19:46 pecastro joined
dalek kudo/nom: d5d5a48 | lizmat++ | src/core/ (2 files):
Introduce :&as parameter to .categorize as well

Plus some other associated cleanup with .classify
19:48
19:49 colomon joined 19:51 brrt joined 19:52 ab5tract1 joined
masak lizmat++ # p6weekly.wordpress.com/2015/05/26/...-progress/ 19:55
lizmat: says "in Markup", should be "is Markdown" ? (polarity accidentally reversed?)
lizmat masak: duh
masak er, "in Markdown", of course 19:56
DrForr FROGGS: If you comment out the Stiflng' block, the history_list() call, and current-history to the end, I just got a 'tried to double-free' error.
lizmat fixed, masak++
20:00 darutoko- left
masak japhb: how do I know what to put in the 'scale' setting in minibenchmarks.pl ? 20:01
dalek ast: 3f4554b | usev6++ | S09-hashes/objecthash.t:
Add test for RT #125249
20:05
ast: 0be89df | usev6++ | S09-hashes/objecthash.t:
Rewrite dubious tests

looked wrong to use 'ok' (with wrong precedence) just to make the fudging work
ab5tract1 every time I think I've got it figured out... 20:06
gist.github.com/ab5tract/2c618fa8accc70464952
FROGGS m: gist.github.com/ab5tract/2c618fa8accc70464952 20:07
camelia rakudo-moar c2a57e: OUTPUT«gist not found»
20:07 khisanth_ is now known as Khisanth
FROGGS :/ 20:07
ab5tract1 Backstory: I've been waiting to release Terminal::Printer until I have it safely printing from multiple threads 20:08
and I've been trying to wrap my brain around how to do this..
20:08 itz2 left
japhb masak: scale refers to the scale (size of problem) at which it is expected that benchmark timings will rise out of the noise and become reliable. Given the extreme slow start of e.g. r-j combined with multiple runs to get decent statistics, it's important to avoid wasting a pile of benchmarking runs just to gather data that is essentially junk. 20:10
ab5tract1 my current idea is to use a frame timer and enqueue modifications to the grid (an array representing the terminal's character cells), and then doing the mutating on the ticking of the frame timer
japhb For problems that don't have an intrinsic scale, just use scale 1.
ab5tract1 FROGGS: so that gist doesn't show up for you?
masak japhb: then what does scale 0 (which most problems seem to have) mean?
ab5tract1 or is camelia meant to be able to run gists now??
FROGGS ab5tract: it does not work with camelia it seems 20:11
ab5tract: it was until it broke
ab5tract1 that's very cool though
I would be much obliged if anyone with some concurrency chops could point out what I'm being dumb about now
I'd like to turn this into a conference presentation
japhb masak: Most? Err, hopefully not, because then people have been wasting tester's time a bit. 20:12
[Coke] ab5tract1: what are you expecting that file to output?
I see it start up and run to 50, then stop.
ab5tract1 [Coke]: The loop does not seem to have any activity whatsoever
japhb Ah yes, hmmm, appears there have been a few scale => 0 added recently. 20:13
masak japhb: about to commit -- my commit adds a total of five scripts for two new problems. I'm committing "blind" because at this point I don't want to be slowed down by getting perl6-bench running for the first time. I might try that next, though.
20:13 molaf left
masak japhb: ok, using scale => 1 20:13
ab5tract1 I'm not sure why I'm not being flooded with "yeah looping"
let alone why my timer tap's say is never called
japhb Remember that if you want to test just particular benchmarks, you can time with --tests=list,of,tests
FROGGS DrForr: the test file trat triggers the error is missing in the ticket
japhb or --tests-tagged=list,of,tags
[Coke] ab5tract1: here it outputs up to 50.
masak japhb: pushed. 20:14
dalek rl6-bench: 03de262 | (Carl Masak)++ | / (6 files):
add send-more-money scripts
masak japhb: that is indeed a useful tip after I get perl6-bench running. thanks.
japhb Excellent, thanks masak.
masak tries to satisfy the deps to get perl6-bench running 20:15
ab5tract1 [Coke]: yes, that is one for every interval of the timer at the bottom there, which just serves to create subsecond input for testing purposes
20:16 RabidGravy left
japhb Gah, no one ever changed quickstart to start later than 2014.01 20:16
dalek kudo/nom: 71128b8 | lizmat++ | src/core/Any.pm:
Make sub classify/categorize work with :into
japhb masak, since you're in there, you might consider patching github.com/japhb/perl6-bench/blob/.../bench#L28 to use a more recent threshold than 2014.01, otherwise you'll build a LOT of releases
ab5tract1 What I am trying to do is to get that thread I am creating in the init method to output the concatenated contents of the channel
once per second
japhb (and so will everyone else who uses quickstart for the first time ....) 20:17
20:17 itz2 joined
ab5tract1 But even my rudimentary, braindead debug output from that loop {} is not outputting 20:17
[Coke]: Does that make any sense? 20:18
timotimo japhb: sorry %) 20:19
[Coke] sort of. having your expected output would make it more clear.
ab5tract1 every 10th line it should output the last ten numbers on a single line. on line number 23 20:20
tony-o_ ab5tract1: i also don't see anywhere you're doing $!chan.receive 20:21
masak japhb: set it to 2015.05 ?
japhb timotimo: No worries, could have done it myself. :-)
masak: Yeah, that's fine. 20:22
masak oki
ab5tract1 tony-o_: I thought @!chan.list in the supply emit sub would make it unnecessary
[Coke] Looks like nothing after my $closed = $!supply.closed; is happening in that start. 20:23
dalek rl6-bench: f217da7 | (Carl Masak)++ | bench:
patch to use a more recent threshold

  <japhb> masak, since you're in there, you might consider patching
   github.com/japhb/perl6-bench/blob/.../bench#L28
   to use a more recent threshold than 2014.01,
   otherwise you'll build a LOT of releases
  <masak> japhb: set it to 2015.05 ?
  <japhb> masak: Yeah, that's fine.
ab5tract1 [Coke]: oh god
[Coke] (via more debug output)
ab5tract1 That's a huge dumb
japhb masak++ # Thanks again
ab5tract1 that should be $!chan.closed 20:24
though when I change it to that, I get an unhandled exception error :)
20:24 sue__ joined
tony-o_ not sure Channel.list does what you mean it to there 20:25
20:27 sue__ left
ab5tract1 tony-o_: you are absolutely right, thanks 20:27
20:28 RabidGravy joined
ab5tract1 hmmm, so this approach might not be what I need, either 20:28
[Coke] I would recommend putting a try/catch wrapping the contents of the init method and dumping out any errors.
That should let you get past the silent failure that seems to be happening.
ab5tract1 [Coke]: Fair idea, but I think I've got this a bit backwards to begin with. Going to try another tack first 20:29
Thanks for the help!
[Coke] (ah, changing it from supply to change avoids the runtime boom) 20:30
good luck. :)
ab5tract1 \o/ 20:33
andreoss m: say 16/0.22 20:34
camelia rakudo-moar c2a57e: OUTPUT«72.727273␤»
timotimo did you make something faster? :P
ab5tract1 gist.github.com/ab5tract/2c618fa8a.../revisions
so the conceptual shift was: poll the channel to fill in the array, and then print that from the tap and reset the list 20:35
andreoss nqp is 72 times faster than perl 6
timotimo ah
andreoss with almost the same code 20:36
tony-o_ ab5tract1: replied to your gist 20:37
ab5tract1: if you let that run for more than 10 seconds you should get a line 0 1 2 3 4 5 ...
if you want to keep track of the last ten values, you need to do it in the 'start' loop without the private supply 20:38
20:40 mohij joined
timotimo andreoss: this is "send more money" again? 20:40
andreoss eulers problem
tony-o_ who's handing out money?
masak TPF :) 20:41
nwc10 PLEASE SEND BANK DETAILS AND 3 PATCHES
actually, really, I suspect that that part should be in e-mail number 3 20:42
tony-o_ haha
20:42 colomon left
nwc10 at the part about "payment held up due to buggy software. If you could help fix it, the money will soon be on its way" 20:43
20:43 anaeem1 joined
timotimo did anybody actually wind up doing a --profile of the send more money thing? 20:44
also, andreoss, where can i find that nqp code?
did it land in perl6-bench?
ah, indeed
tony-o_ did you end up checking out my benchmark module? 20:45
ab5tract1 tony-o_: very interesting! TMTOWTDI :D 20:46
I was able to get my existing code working with a very small change gist.github.com/ab5tract/2c618fa8a.../revisions 20:47
tony-o_ ab5tract1: i'm knee deep into this start block stuff
ab5tract1: that's also a good one^ 20:48
20:48 colomon joined
andreoss tony-o_: i did, my theory about .map == 2 * »» == 3 * Xop didn't hold 20:48
ab5tract1 tony-o_: good one? you mean that revision? 20:49
tony-o_ yea
20:49 sftp joined
tony-o_ andreoss: so the cmpthese worked for you? 20:49
i used it quite a bit to cmp perl to perl6 doing the same stuff and then didn't really use it much after that so i'm curious if it still works well (it's old by perl6 standards) 20:50
ab5tract1 tony-o_: thanks mate :)
andreoss how do you cmpthese perl 5 code against perl 6 code ? 20:51
ab5tract1 the start stuff is really quite crazy
tony-o_ andreoss: i was comping with Proc
so it included start up + run time
andreoss: yea it can get hairy, i still like it better than callback hell where you can easily wind up with 30 variable declarations or, alternatively, 30 indents 20:52
20:52 rindolf left
ab5tract1 so many concurrency examples use 'say' as an example, and I'm hoping that this might be a useful demonstation of queuing mutations to a data structure 20:53
20:54 colomon left
andreoss perl6-bench probably should use some kind of eval servers for that 20:55
20:56 dolmen joined
timotimo JSON::Tiny wants to get a .flatmap instead of a .for, moritz :) 20:57
dalek kudo/nom: a20619a | lizmat++ | src/core/Any.pm:
Fix thinko not found by spectest
20:59
21:01 anaeem1 left
timotimo fwiw, 20% and 16% exclusive time are used for &next alone 21:01
brrt next is a lexotic right? 21:02
brrt would've thought they weren't that bad...
21:02 cognominal joined
timotimo look at m-CORE.setting line 722 21:03
it may be more efficient if we could get the check for "does it carry a label" out of the sub that's executed every time 21:04
lizmat ahhhhh....
timotimo &next is responsible for 5708403 BootCODE allocations 21:05
and it only ever gets speshed, never jitted
lizmat so why are these not just subs anyway ???
timotimo i'm not sure; it sort of feels like i knew at some point
lizmat if nobody else will, I'll play around with it after I added some more classify / categorize spectests 21:06
21:07 Peter_R left
timotimo right; but even if we can't just make those subs, we may get away with assigning a proto to &next and give it two candidates? 21:09
lizmat who knows ? :-)
perhaps it wasn't possible at one time, and it is now
ran into that a few times myself :-)
timotimo right 21:10
21:12 cygx joined
cygx o/ 21:12
lizmat: commit e60f85c2 broke dispatch to the :$basename! candidate of IO::Path.new 21:13
lizmat cygx: could you give me an example ? 21:14
cygx m: IO::Path.new(:basename<foo>) 21:15
camelia rakudo-moar c2a57e: OUTPUT«IO::Path is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:1␤ in method new at src/RESTRICTED.setting:32␤ in block <unit> at /tmp/XFzqFccatO:1␤␤»
cygx ^ that warns in non-restricted setting instead of dispatching to the correct new candidate
lizmat cygx: confrirmed
21:16 FROGGS left
lizmat looking at a fix 21:17
21:17 colomon joined 21:18 hudo joined
lizmat spectesting the fix 21:21
21:22 andreoss left
lizmat cygx: could you add some tests to make sure it now works ? 21:22
21:23 Akagi201 joined
cygx lizmat: I can do that, but not today 21:24
lizmat ++cygx :-)
dalek kudo/nom: 00b44eb | lizmat++ | src/core/IO/Path.pm:
Fix IO::Path(:basename<foo>), spotted by cygx++

Which I broke with e60f85c275af59e9d42d and which did not cause any spectest breakage :-(
21:26
21:28 Akagi201 left
cygx lizmat++ # my code works again 21:31
21:32 brrt left, laouji joined 21:37 laouji left
dalek kudo/nom: e6f4046 | lizmat++ | src/core/Any.pm:
Fix MMD named parameter snafu again

When will I learn that named parameters only serve as tie breakers, and that therefore the order of the candidates is important!
21:38
tony-o_ got perl6-hiker auto rendering pages after the controller is called
oops 21:39
jdv79 what's a perl6-hiker?
21:40 itz2 left, colomon left
tony-o_ wrong channel, it's an mvc framework i'm working on 21:40
21:40 telex left
dalek ast: 01c49d6 | lizmat++ | S32-list/classify.t:
Add classify tests for :into and :as
21:41
21:41 colomon joined
lizmat and with that I've committed enough for today 21:41
tony-o_ jdv79: no documentation yet: github.com/tony-o/perl6-hiker/tree/master/usage
lizmat good night, #perl6!
21:42 smls left, smls_ joined
tony-o_ later lizmat 21:42
21:42 telex joined 21:45 kaare_ left
timotimo so, 5708404 allocations of Parcel and one less of BOOTArray are created by the next code block 21:45
maybe we could re-use an empty parcel in there? or something like that? 21:46
because i don't think we have a need for arguments to the THROW sub's first parameter
21:46 mr-foobar left
timotimo not that i've looked at THROW or something 21:47
ah, that's just the exception payload
dalek kudo-star-daily: 28183a9 | coke++ | log/ (2 files):
today (automated commit)
21:48
tony-o_ timotimo: do you know if jnthn already fixed the race?
jdv79 oh some sort of web frame-ish thing 21:49
does anyone use perl6 for a real webapp yet?
tony-o_ jdv79: yea like mojo but less intimidating
jdv79 i imagine the threading instability might make that difficult yet
21:49 espadrine joined
timotimo he has not pushed the fix, at least 21:49
he's traveling today
21:52 virtualsue left
tony-o_ jdv79: it works really well as long you have no traffice 21:56
21:58 fhelmberger joined, espadrine left 22:00 colomon left
timotimo spec tests a thing 22:01
ab5tract1 .tell jnthn This async code will work more often than not, but if I do it 20 times in a row, I can get fairly consistent blowups at some point in the run gist.github.com/ab5tract/2c618fa8accc70464952
yoleaux ab5tract1: I'll pass your message to jnthn.
22:03 fhelmberger left, muraiki left
ab5tract1 .tell jnthn also, I expected the output to be relatively uniform across 'frames', but sometimes the delay values to sleep don't seem to be taking effect 22:03
yoleaux ab5tract1: I'll pass your message to jnthn.
22:05 hudo left
timotimo the S17 tests are a whole lot more crashy since jnthn fixed the "we run a single core at 100% usage" thing, eh? 22:07
22:08 ab5tract_ left, ab5tract1 left, vendethiel left
japhb ab5tract1: Note that github.com/japhb/perl6-bench is also able to do stress testing and capture failure modes -- so I'm looking for more failure cases that can be turned into stress/threading minibenchmarks like github.com/japhb/perl6-bench/blob/...nd-conquer 22:10
Please to consider adding your test there. :-)
22:11 vendethiel joined
cygx .tell lizmat github.com/perl6/roast/pull/60/files ; it's my first commit to roast, so please sanity-check 22:18
yoleaux cygx: I'll pass your message to lizmat.
22:19 colomon joined 22:20 Foxcool left
timotimo hm. my "improvement" reduced GC load, but made us JIT a whole lot fewer frames 22:20
timotimo checks out what's wrong
it only reduced GC load a bit 22:21
but i have an idea for how to improve it a tiny bit more
oh, another interesting thing: ordfirst is now our blocker for jitting MATCH 22:22
we may want to hook that up with the jit very soon
tony-o_ japhb++ 22:26
22:27 RabidGravy left
masak 'night, #perl6 22:30
tony-o_ later 22:31
22:32 cygx left 22:38 ab5tract_ joined, ab5tract1 joined
timotimo great. i have an improved (?) next sub thingie, i'll do the same for last and redo and see if it still spec tests properly 22:40
jdv79 timotimo: where is this? 22:41
seems mildly interesting
timotimo where is this what? 22:42
it's only a performance improvement 22:43
jdv79 the diff
timotimo you'll get to see it in a few. if it is a success
jdv79 .tell masak what of RT #109880? 22:44
yoleaux jdv79: I'll pass your message to masak.
22:45 ab5tract1 left
timotimo well, it still runs the benchmark just fine 22:45
jdv79 .tell masak also what of RT #113040 22:46
yoleaux jdv79: I'll pass your message to masak.
22:46 ab5tract_ left
jdv79 what is it about - invariants in loopy code? 22:46
dalek kudo/proper_control_multi_subs: abeb0f2 | timotimo++ | src/core/control.pm:
promote last, next and redo to full multi subs

at some point it had to be changed into this, but it seems like it's safe to have it like this now.
the no-arguments version of those will now not only not allocate a BOOTArray and a Parcel, but also get jitted properly due to not using param_sp (slurpy positional) op codes.
22:48
timotimo i'd be glad if someone could spec test this on the JVM
flussence I'm getting «Cannot call method '!cursor_next' on a null object», on stuff that hasn't changed and was working fine ~2 months ago...
timotimo oh, yikes 22:49
can you locate the source of that exception?
flussence github.com/flussence/Text-Tabs-Wra...rap.pm#L45 this line here, I'm pretty certain $text is always a string with chars in it at that point...
the only thing unusual is I'm actually using :pos in there, hm. 22:51
timotimo on moar it spec tests successfully 22:53
it can possibly now also be inlined 22:54
22:54 vendethiel left
dalek ast: aa22e3b | cygx++ | S32-io/io-path.t:
Str.path is deprecated: Use .IO instead
22:54
ast: 287a9c5 | cygx++ | S32-io/io-path.t:
Add tests for :basename and :dirname parameters of IO::Path.new
ast: 2f3c79a | labster++ | S32-io/io-path.t:
Merge pull request #60 from cygx/io-path

Update S32-io/io-path.t to use .IO instead of .path and test :basename, :dirname args
timotimo nope, the optimizer doesn't seem to inline a "last", but it does turn it into a callstatic 22:55
but perhaps the optimizer inlines THROW into the next, last, and redo subs 22:56
22:56 dolmen left
timotimo jdv79: did you see my commit up there? ^ 22:59
jdv79 i did, thanks 23:02
timotimo it seems like the code was like that previously because the JVM version of rakudo was unhappy about it 23:03
tony-o_ is rakudobrew test what you're looking for on jvm timotimo ? 23:04
timotimo dunno if it runs spec tests at all 23:05
flussence
.oO( If a module fails its tests and nobody's using it, did it fail at all? Maybe it's better for me to leave it alone... )
timotimo and i don't know if the non-spectest tests exercise next, redo, and last
flussence oh and on a totally unrelated subject: my desktop just ran a full spectest under 5 minutes for the first time :D 23:06
tony-o_ flussence: maybe just a note in github and not wasting time iwth it
timotimo not bad :)
tony-o_ timotimo: it's running spec/S\d\d.+
timotimo cool
yeah, can you run that?
maybe i'll install a jvm nqp, too
tony-o_ yea i'm running it now
on jvm
i'm on the magicals 23:07
timotimo -j2 makes it not so annoying
tony-o_ i'll gist it when it finished
timotimo thank you
23:08 Akagi201 joined
tony-o_ s/d$/s/ 23:09
23:13 Akagi201 left 23:16 andreoss joined 23:18 andreoss left
timotimo stage parse ... 100 seconds :\ 23:19
(well, a system under load)
23:20 virtualsue joined 23:21 mohij left 23:23 smls_ left, amurf joined, smls joined
tony-o_ on S17 23:26
23:26 inokenty left
tony-o_ my stage parse was 29s for moar and 62s for jvm 23:26
23:28 smls left 23:31 virtualsue_ joined 23:32 virtualsue left, Vlavv left, virtualsue_ is now known as virtualsue 23:38 gfldex left
timotimo i don't even have to TEST_JOBS=* because it already maxes out all my 4 cores with just one job 23:40
23:41 inokenty joined 23:45 Vlavv joined
tony-o_ ready for 1001 lines of greatness? 23:47
gist.github.com/tony-o/968656e889f1a95aa4c3 23:48
timotimo that's good
i can merge, in that case
dalek kudo/nom: abeb0f2 | timotimo++ | src/core/control.pm:
promote last, next and redo to full multi subs

at some point it had to be changed into this, but it seems like it's safe to have it like this now.
the no-arguments version of those will now not only not allocate a BOOTArray and a Parcel, but also get jitted properly due to not using param_sp (slurpy positional) op codes.
23:49
tony-o_ i thought perl *just handled* utf8 without me having to do much to it :/
timotimo masaks send-more-money benchmark now runs only half as many GC collections as it used to
what do you mean?
tony-o_ i'm writing an application for a client and they have an api server i'm getting info from for the end user and it took a big fat poop as soon as i started getting unicode chars from the api 23:50
LWP+JSON 23:51
the fix is easy but finding out that was the problem wasn't
timotimo m: say "we used to take { 26392.53 / 19400.56 }x as much time for that benchmark"
camelia rakudo-moar c2a57e: OUTPUT«we used to take 1.36040042x as much time for that benchmark␤»
timotimo FWIW
tony-o_ that's p good speed up 23:52
timotimo for what i did, yeah
tony-o_ i wish i could cycle 1.3x faster
timotimo hah
tony-o_ then i'd cruise at 27mph :-)
timotimo m: say "entered and exited { 41483844 / 30067041 }x as many frames before the change" 23:53
camelia rakudo-moar c2a57e: OUTPUT«entered and exited 1.379711559x as many frames before the change␤»
timotimo i can't deal with mph
tony-o_ ~43kph
timotimo oh wow
tony-o_ i have an easier time visualizing kilometers, that's mostly from field military stuff though 23:54
timotimo that's pretty fast for a bike even before the 1.3x speedup
tony-o_ i separated my rib from the cartilage so my cruising speed is down right now
timotimo :o 23:55
that seems like a failed optimization attempt
tony-o_ haha 23:56
it's caused me to diet until it heals, so i'll gain some aerodynamic improvement from it, i guess
timotimo :o 23:57
tony-o_ by diet i mean i forego the peanut butter and nutella sandwiches
timotimo OK :) 23:58
if i wanted to lose some unnecessary weight, i think i'd need a more proper change of intake
and also do sports
i have to clean my bike and get it repaired
tony-o_ i eat 3k-5k cals / day even without the sandwiches, despite ugexe's advice 23:59
where do you live timotimo ?