»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:04 BenGoldberg joined, hoverboard left
dalek ast: f57331b | (David Warring [email@hidden.address] | integration/advent2012-day06.t:
adding advent 2013 day 06
00:10
00:13 rurban joined 00:17 hoverboard joined, rurban left 00:45 Mouq joined
dalek ast: 7b9c4db | Mouq++ | S32-list/uniq.t:
Add test for RT #121434
00:46
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121434
Mouq Oh... 00:47
Add another test :P
I suppose more tests can't hurt…
TimToady better too many than too few :) 00:50
Mouq : while my $x = $*IN.get { say $x; last if Bool.roll }; say $x 00:55
j: while my $x = $*IN.get { say $x; last if Bool.roll }; say $x
camelia rakudo-jvm 11a693: OUTPUT«(Str)␤»
00:55 adu joined
Mouq :/ 00:56
adu :\
timotimo :| 00:57
Mouq :╽ 00:59
01:08 klapperl_ joined 01:10 bluescreen10 left 01:11 klapperl left
Mouq method samespace(Str:D: Str:D $pat) { my @self-chunks = self.split(rx/\s+/, :all); 01:12
^^ Uhhm 01:13
Is that correct?
01:14 rurban joined
Mouq Actually.. how does that work in the first place? it returns @self-chunks.join 01:14
01:14 baest left, baest joined
Mouq m: say "a b c".samespace("a b c") 01:14
camelia rakudo-moar 11a693: OUTPUT«ab b c␤»
Mouq O_o
01:15 anaeem1__ left
Mouq roast $ ack samespace 01:15
roast $
:(
01:15 anaeem1_ joined
lue r: say "a b c".samespace("a b c") 01:15
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«ab b c␤»
Mouq m: say "a b c".split(/\s+/, :all) 01:16
camelia rakudo-moar 11a693: OUTPUT«a 「 」␤ b 「 」␤ c␤»
Mouq m: say "a b c".split(/\s+/, :all).perl
camelia rakudo-moar 11a693: OUTPUT«(("a", Match.new(orig => "a b c", from => 1, to => 2, ast => Any, list => ().list, hash => EnumMap.new())), ("b", Match.new(orig => "a b c", from => 3, to => 4, ast => Any, list => ().list, hash => EnumMap.new())), "c").list␤»
lue At least it's Consistent across backends, and Strangely so ;) .
Mouq tries stringifying the match… 01:17
01:18 rurban left
Mouq m: sub SS ($orig, $space) {$orig.split(/\s+/, :all)[0,*+2..*] Z~ $space.split(/\s+/, :all)[1,*+2..*]} 01:19
camelia ( no output )
Mouq m: sub SS ($orig, $space) {$orig.split(/\s+/, :all)[0,*+2..*] Z~ $space.split(/\s+/, :all)[1,*+2..*]}; say SS "a b c", "a b c"
camelia rakudo-moar 11a693: OUTPUT«(timeout)» 01:20
timotimo does the samespace modifier work on s/// or where-ever it may be appropriate?
Mouq timotimo: It works on ss///
lue r: my $a = "a b c"; $a ~~ s:ss/[<.alpha> <.ws>?]+/d e f/; 01:21
camelia ( no output )
lue r: my $a = "a b c"; $a ~~ s:ss/[<.alpha> <.ws>?]+/d e f/; say $a;
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«db e f␤»
01:21 rurban joined
lue r: my $a = "a b c"; $a ~~ s:ss/[<.alpha> <.ws>?]+/d e f /; say $a; 01:22
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«db e f ␤»
lue r: my $a = "a b c"; $a ~~ s:ss/[<.alpha> <.ws>?]+/d e f /; say $a;
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«db e f ␤»
lue Mouq: Looks like the first space substitution is messed up, and seemingly the rest are fine. 01:23
Mouq m: sub SS ($orig, $space) {$orig.split(/\s+/, :all)[0,*+2...*] Z~ $space.split(/\s+/, :all)[1,*+2...*]}; say SS "a b c", "a b c"
camelia rakudo-moar 11a693: OUTPUT«ab ␤»
Mouq Oh wait 01:24
lue r: my $a = "α β γ"; $a ~~ s:ss/[<.alpha> <.ws>?]+/δ ε ζ /; say $a;
Mouq m: say "a b c".split(/\s+/, :all)[0]
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«δβ ε ζ ␤»
rakudo-moar 11a693: OUTPUT«a 「 」␤␤»
Mouq ^^ *that's* what's causing the regression 01:25
lue ah
timotimo huh ,ouchies!
oh, these were in the source
that's fine then %)
lue (me using greek characters was to make sure that the extraneous "b" was coming from the string, and not possibly some internal process) 01:26
01:26 rurban left
Mouq tries a fix 01:27
timotimo i didn't look closely at all, so i thought that was garbage memory or something :)
Mouq :) timotimo++, jnthn++, people++ 01:28
Mouq hasn't been online much but has been excitedly watching the work being done recently
01:29 vendethiel left
Mouq abandons trying to fix .split, and just calls .flat on it in .samespace instead 01:32
Mouq forgot to git pull -_- 01:36
dalek kudo/nom: e13671e | Mouq++ | src/core/Str.pm:
Fix Str.samespace (and with it ss///)
kudo/nom: 25c75c0 | Mouq++ | / (3 files):
Merge branch 'nom' of github.com/rakudo/rakudo into nom
01:39 snarkyboojum joined
dalek ast: 5004da4 | Mouq++ | S05-substitution/subst.t:
Unfudge ss/// test on Rakudo
01:43
lue r: my @a = "a b c".split(/\s+/, :all); say @a.map: {"({$_.gist})"}; say "[" ~ @a[0].gist ~ "]" 01:46
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«(a) (「 」␤) (b) (「 」␤) (c)␤[a]␤»
lue r: say "a b c".split(/\s+/, :all).map: {"({$_.gist})"}; say "[" ~ "a b c".split(/\s+/, :all)[0].gist ~ "]" 01:47
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«(a) (「 」␤) (b) (「 」␤) (c)␤[a 「 」␤]␤»
lue Mouq: apparently, storing the split in a variable fixes @thing[0] (?)
Mouq lue: I think the problem may have been the binding 01:48
r: my @a := "a b c".split(/\s+/, :all); say @a.map: {"({$_.gist})"}; say "[" ~ @a[0].gist ~ "]"
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«(a) (「 」␤) (b) (「 」␤) (c)␤[a 「 」␤]␤»
01:49 hoverboard left
lue Using the commandline, I see now that split returns something in the form of (("thing", Match.new(what was split on)), ("thing2", Match.new()), ... "last thing") 01:50
r: say "a b c".split(/\s+/, :all)[0]; say "a b c".split(/\s+/, :all)[0][0]
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«a 「 」␤␤a␤»
lue Huh, I think I just found out why this one script of mine broke all of a sudden a short while ago :) [it uses split(:all), so this is likely the issue] 01:51
timotimo split :all gives you not only the pieces, but also the splittings? 01:53
lue timotimo: yes
timotimo that's nice
lue Nope, not what broke my script though :/
timotimo i remember being excited i can capture the part after the % operator
(or even inside that part)
Mouq TimToady: Opinion wrt RT #71544 01:58
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=71544
Mouq ?
I.e., is that indeed the desired behaviour? 01:59
01:59 adu left
TimToady looking 01:59
well, I could also argue for about 3 other behaviors... 02:02
Mouq Lurkers: LHF: rt.perl.org/Search/Results.html?Qu...sPerPage=0 02:03
Hm
yo.io/c2a
^^ less godawful link
lue r: sub foo(@Y, @Z) { say @Y.perl; say @Z.perl }; my @a = [1,2],[3,4]; my @b = @a[0]; my @c = @a[1]; foo(@b, @c); foo(@a[0], @a[1]); 02:05
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«Array.new([1, 2])␤Array.new([3, 4])␤Array.new(1, 2)␤Array.new(3, 4)␤»
TimToady but that's probably a reasonable behavior for multi-arg grep, if we decide it should have one 02:06
lue Please tell me I'm not wrong for thinking @b = @a[0] should DWIM ? (It used to work, in any case :/)
TimToady if the original was saved with a [], it's an item
02:06 adu joined
Mouq TimToady: I imagine grep should at least complain when given a >1arity argument 02:07
TimToady just had to fix an RC entry for that
lue TimToady: The array ultimately is a return'd (@old, @new).lol
(using := makes it DWIM, by the way) 02:08
TimToady: I assume this newfangled behavior is the right one, correct? 02:10
Mouq r: sub foo(@Y, @Z) { say @Y.perl; say @Z.perl }; my @a = [1,2],[3,4]; sub n(\p) { p }; my @b = n(|@a[0]); my @c = n(|@a[1]); foo(@b, @c); foo(@a[0], @a[1]); 02:12
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤ in sub n at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
Mouq r: sub foo(@Y, @Z) { say @Y.perl; say @Z.perl }; my @a = [1,2],[3,4]; sub n(|p) { return |p }; my @b = n(|@a[0]); my @c = n(|@a[1]); foo(@b, @c); foo(@a[0], @a[1]);
camelia rakudo-parrot 11a693, rakudo-jvm 11a693, rakudo-moar 11a693: OUTPUT«Array.new(1, 2)␤Array.new(3, 4)␤Array.new(1, 2)␤Array.new(3, 4)␤»
timotimo isn't that what || is for?
lue @b := @a[0] does the trick
Mouq @b = |@a[0] should do it as ^^ above I think shows, but NYI :( 02:13
02:18 xenoterracide_ left
dalek ast: 1119261 | Mouq++ | S02-lexical-conventions/one-pass-parsing.t:
Copy Brent Laabs' tests for RT #76988
02:20
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76988
02:22 rurban joined 02:24 rurban1 joined 02:26 rurban left 02:28 rurban1 left 02:29 xragnar_ joined, xragnar is now known as Guest65451, Guest65451 left, xragnar_ is now known as xragnar, xenoterracide joined 02:34 hoverboard joined 02:41 hoverboard left
dalek ast: 27d6be5 | Mouq++ | S02-literals/adverbs.t:
Add adverbs tests
02:42
ast: a503ffa | Mouq++ | S02-literals/adverbs.t:
Add test for RT #74492
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=74492
02:43 kurahaupo left
Mouq r: say [foo => (1,2,3).map: {$_}].perl; say {foo => (1,2,3).map: {$_}}.perl # RT #120620 03:15
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120620
camelia rakudo-jvm 25c75c: OUTPUT«(timeout)»
..rakudo-parrot 25c75c: OUTPUT«["foo" => (1, 2, 3).list.item]␤{"foo" => (1, 2, 3).list.item}␤»
..rakudo-moar 25c75c: OUTPUT«["foo" => (1, 2, 3).list.item]␤{"foo" => ().list.item}␤»
Mouq Looks like JVM gets it right too, locally 03:16
So, MoarVM bug :( 03:17
Though if that bug was reported in November, it had to be failing on the other backends originally… hm
(Obviously needs a test) 03:18
(But I'm going to bed)
((So g'night #perl6)
)
03:18 Mouq left 03:27 woolfy left, plobsing left, thou left, Gothmog_ left, sftp left, FROGGS left, simcop2387 left, xenoterracide left, anaeem1_ left, klapperl_ left, telex left, molaf left, Pleiades` left, JimmyZ left, sjn left, salv0 left, Ven_ left, Guest97781 left, xinming left, bjz left, Grrrr left, ribasushi left, jercos left, itz_ left, ilbot3 left, perigrin left, mls left, sjohnson left, nwc10 left, Yappo__________8 left, xragnar left, baest left, BenGoldberg left, PerlJam left, bcode left, pecastro_ left, dalek left, lee_ left, jtpalmer left, [particle] left, ldthien0 left, Bucciarati left, zacts left, geekosaur left, mkz left, dylanwh left, atrodo left, tokuhirom left, atta left, amkrankruleuen left, integral left, frettled left, camelia left, Woodi left, apejens left, Rounin left, rjbs left, lue left, crazedpsyc left, Ulti left, revdiablo left, breinbaas left, thilp left, prammer left, ggherdov left, jnthn left, sergot left, Khisanth left, ponbiki left, sivoais left, Alula_ left, adu left, snarkyboojum left, Bryanstein left, segomos left, logie_ left, larks left, jlaire left, Celelibi left, Grimnir_ left, xfix left, synopsebot left, yeltzooo left, takesako____ left, cosimo left, go|dfish left, mhasch left, anocelot left, mathw left, araujo left, ClarusCogitatio left, cooper left, lizmat left, mtk left, djanatyn left, slavik left, Exodist left, effbiai left, nebuchadnezzar left, FOAD left, pdcawley left, cibs left, ggoebel11119 left, rurban_ left, hummeleB1 left, PZt left, daxim_ left, risou left, itz left, clkao left, sorear left, flussence left, TimToady left, aindilis left, eternaleye left, DarthGandalf left, REPLeffect left, labster left, lestrrat left, arnsholt left, huf left, retupmoca left, yoleaux left, Tene left, raydiak left, ivan`` left, zamolxes left, bowtie left, erdic left, isacloud__ left, Juerd left, yogan left, brother left, timotimo left, hoelzro left, pnu left, _sri left, eiro left, Timbus left, hugme left, renormalist left, yakudza left, jdv79 left, gfldex left, felher left, awwaiid left, sunnavy left, simula67 left, ascent_ left, eMBee left, broquaint left, cognominal left, Alina-malina left, mattp__ left, Psyche^_ left, mtj_ left, IllvilJa left, d^_^b left, cxreg left, Vlavv left, dagurval_ left, avar left, clkaoud left 04:26 bonsaikitten left 05:16 salv0 joined, sjn joined, JimmyZ joined, Pleiades` joined, molaf joined, telex joined, klapperl_ joined, xenoterracide joined, Grimnir_ joined, Celelibi joined, jlaire joined, larks joined, logie_ joined, segomos joined, Bryanstein joined, adu joined, snarkyboojum joined, anaeem1 joined, obra_ joined, simula67 joined, sunnavy joined, awwaiid joined, felher joined, gfldex joined, ascent_ joined, yakudza joined, jdv79 joined, renormalist joined, hugme joined, Timbus joined, eiro joined, breinbaas joined, revdiablo joined, Ulti joined, lue joined, Rounin joined, rjbs joined, apejens joined, Woodi joined, camelia joined, frettled joined, integral joined, amkrankruleuen joined, pdcawley joined, FOAD joined, nebuchadnezzar joined, effbiai joined, hitchcock.freenode.net sets mode: +vv hugme camelia, Exodist joined, slavik joined, djanatyn joined, mtk joined, lizmat joined, cooper joined, araujo joined, Juerd joined, mathw_ joined, cosimo_ joined, brother joined, ggoebel11119 joined, rurban_ joined, hummeleB1 joined, PZt joined, daxim_ joined, risou joined, itz joined, clkao joined, sorear joined, flussence joined, TimToady joined, aindilis joined, eternaleye joined, DarthGandalf joined, woolfy joined, plobsing joined, thou joined, Gothmog_ joined, sftp joined, FROGGS joined, simcop2387 joined, clkaoud joined, broquaint joined, cognominal joined, Alina-malina joined, mattp__ joined, Psyche^_ joined, mtj_ joined, IllvilJa joined, d^_^b joined, cxreg joined, Vlavv joined, dagurval_ joined, avar joined, kst joined, pmichaud joined, Maddingue joined, felipe joined, ingy joined, moritz joined, BooK joined, rhr joined, corecatcher joined, BinGOs joined, charsbar_______2 joined 05:18 BenGoldberg joined, xragnar joined, baest joined, PerlJam joined, bcode joined, isacloud__ joined, yogan joined, timotimo joined, pnu joined, _sri joined, Alula_ joined, thilp joined, prammer joined, ggherdov joined, jnthn joined, sergot joined, Khisanth joined, ponbiki joined, sivoais joined, erdic joined, pecastro_ joined, dalek joined, lee_ joined, [particle] joined, ldthien0 joined, Bucciarati joined, geekosaur joined, mkz joined, dylanwh joined, tokuhirom joined, hitchcock.freenode.net sets mode: +v dalek, anaeem1 is now known as 14WACHE1C, cotto joined, anocelot joined, masak joined, xinming joined, bjz joined, Grrrr joined, ribasushi joined, jercos joined, itz_ joined, ilbot3 joined, perigrin joined, mls joined, sjohnson joined, nwc10 joined, Yappo__________8 joined 05:21 14WACHE1C left 05:23 sivoais left 05:24 sivoais joined 05:27 xenoterracide left, anaeem1 joined 05:30 cibs joined, xfix joined, mhasch joined, go|dfish joined, takesako____ joined, yeltzooo joined, synopsebot joined, REPLeffect joined, labster joined, lestrrat joined, arnsholt joined, huf joined, yoleaux joined, Tene joined, raydiak joined, zamolxes joined, bowtie joined, hitchcock.freenode.net sets mode: +v yoleaux 05:31 xiaomiao joined 05:38 xiaomiao left, xiaomiao joined 05:49 eMBee joined 05:50 Ven_ joined 05:54 ivan`` joined 06:03 rurban joined 06:08 rurban left 06:20 plobsing left
masak rule #1 of floating-point arithmetic: avoid floating-point arithmetic. 06:48
07:04 rurban joined 07:06 rurban1 joined, darutoko joined 07:09 rurban left 07:11 rurban1 left
adu masak: lol 07:13
07:15 rurban joined 07:17 rurban left 07:18 xiaomiao is now known as Guest92459, masak is now known as Guest34297, sivoais left, sivoais joined 07:19 rurban joined, ClarusCogitatio joined 07:23 rurban left 07:30 erdic left, erdic joined 07:33 naderghanbari joined
naderghanbari Hi all 07:33
Guest34297 naderghanbari: hi! 07:35
07:35 Guest34297 is now known as masak, Guest92459 left, kurahaupo joined 07:37 xiaomiao joined 07:48 rurban joined 07:50 rurban1 joined 07:52 rurban left 07:54 rurban1 left 07:56 rindolf joined, naderghanbari left 07:59 molaf_ joined 08:00 FROGGS left 08:02 molaf left 08:06 anaeem1 left 08:07 anaeem1 joined 08:10 Rotwang joined 08:15 hummeleB1 left
adu hi 08:19
masak hi adu 08:21
adu how goes?
I'm having trouble building rakudo 08:22
masak building rakudo works fine here, thanks. 08:24
bbl
xiaomiao adu: what doesn't work?
adu pastie.org/9076678 08:25
xiaomiao segmentation fault? how rude 08:26
can you reproduce that?
adu I'm not sure, but nqp-[mpj] build fine
xiaomiao: yes, every time
xiaomiao hmm, that's "nice"
adu but I'm trying to build perl6-[mpj] and that's not working so well 08:27
I could try to build each backend separate, to see if it's only one of them
xiaomiao what exactly segfaults? make ? 08:29
adu i dunno
it looks like ExtUtils::Command is the last to run 08:30
xiaomiao what platform are you on? linux? 08:31
adu macosx
10.9
xiaomiao hmm, then I have to claim ignorance ;) 08:33
one of these platforms I have no idea how to debug
08:38 tomaw joined 08:50 rurban joined 08:51 klapperl joined 08:53 klapperl_ left 08:55 rurban left 08:59 SamuraiJack__ joined 09:02 BenGoldberg left 09:18 xfix left, synopsebot left, yeltzooo left, takesako____ left, go|dfish left, mhasch left, cibs left, REPLeffect left, labster left, lestrrat left, arnsholt left, huf left, Tene left, yoleaux left, raydiak left, zamolxes left, bowtie left 09:19 cibs joined, xfix joined, mhasch joined, go|dfish joined, takesako____ joined, yeltzooo joined, synopsebot joined, REPLeffect joined, labster joined, lestrrat joined, arnsholt joined, huf joined, yoleaux joined, Tene joined, raydiak joined, zamolxes joined, bowtie joined, hitchcock.freenode.net sets mode: +v yoleaux 09:40 klapperl_ joined 09:41 spider-mario joined 09:42 klapperl left 09:43 vendethiel joined 09:50 adu left 09:51 rurban joined 09:54 Rotwang left 09:56 rurban left 10:12 snarkyboojum left 10:17 SamuraiJack__ left 10:33 dmol joined 10:35 rurban joined 10:39 rurban left 10:45 bjz_ joined 10:48 bjz left 10:50 FROGGS[mobile] joined 11:02 anaeem1 left, anaeem1 joined 11:12 kaare_ joined 11:16 anaeem1 left 11:22 vendethiel left, anaeem1_ joined 11:25 vendethiel joined
itz_ I'm getting a MoarVM link error on NetBSD linking moar 11:26
./libmoar.so: undefined reference to `pthread_yield'
I think that should be sched_yield on that platform 11:27
jnthn wonders if that's a Moar or libuv thing. 11:29
tadzik seems like libuv's fault
lizmat wow: Files=801, Tests=31026, 173 wallclock secs ( 7.89 usr 3.52 sys + 1148.80 cusr 78.54 csys = 1238.75 CPU)
itz_ I think it's not linking a fixes file under libuv
jnthn ah
lizmat below 3 minutes!
jnthn No, it's ours I think...
itz_: It may be that also 11:30
itz_: But see src/platform/threads.h
itz_: There's a #elif on line 3 that likely wants a netbsd or other appropriate entry too 11:31
itz_ ok I see 11:32
jnthn lizmat: Latest Moar exits faster, so I suspect we got the win from there. :)
lizmat aha... ok :-)
11:32 rindolf left, spider-mario left, spider-mario joined
jnthn lizmat: Still, nice you can do it in under 3 mins :) 11:33
lizmat indeed :-) 11:34
although CPU usage has also dropped
jnthn Good for your battery? :) 11:35
lizmat yesterday: 1317.74, now 1238.75
11:35 kurahaupo left
itz_ adding defined(__NetBSD__) to that line fixes it .. will run tests too 11:35
jnthn Well, we're doing a lot less work at exit
11:36 rurban joined
jnthn So that's probably why it's down :) 11:36
lizmat and that's just way cool
jnthn The same work landed a fix for the "abort at exit" issue some threaded things ran into 11:37
m: Thread.start({ sleep 1; say 'kthxbai' }); say 'oh hai';
camelia rakudo-moar 25c75c: OUTPUT«oh hai␤kthxbai␤»
jnthn That also now works
m: Thread.start({ sleep 1; say 'kthxbai' }, :app_lifetime); say 'oh hai';
camelia rakudo-moar 25c75c: OUTPUT«oh hai␤»
jnthn And that. :)
lizmat cool cool cool!
11:40 rurban left
tadzik took 6 minutes here, but failed some tests :( 11:47
11:47 G-one joined
tadzik gist.github.com/tadzik/10580661 11:47
damn, I remember when it was close to an hour :D
11:50 colomon joined
lizmat tadzik: same here 11:51
timotimo o/ 11:52
lizmat concurrency/lock is mine, I guess I will fudge / remove them
main-usage I have no idea
phasers/first apparently only happens on OSX
tadzik only happens positively? :)
lizmat not been able to golf it yet
jnthn I'm...thinking tadzik ain't on OSX?
tadzik nope
lizmat then it *can* be reproduced elsewhere 11:53
tadzik :)
jnthn lizmat: And it was only failing sometimes, yes?
tadzik happy to help
lizmat it seems to fail more often now
tadzik when I run that individual test, it consistently passes
lizmat indeed, it only fails if part of a parallel spectest
so it appears to be CPU load-related
which is strange for a non-threaded feature 11:54
jnthn lizmat: nwc10++ gave me an ASAN backtrace and mentioned some things are giving those in spectest. 11:55
lizmat: I didn't managed to figure it out yet, but memory randomization is enough if we're reading stuff we shouldn't be.
lizmat ok 11:56
jnthn Sadly, MSVC's heap analysis doesn't trigger it. 11:57
11:59 anaeem1__ joined 12:02 anaeem1_ left
dalek ar: de33c20 | jnthn++ | / (2 files):
Switch over to FROGGS MIME::Base64 module.

Has fixes for running on Moar/JVM.
12:05
tadzik uh, Digest::MD5 :) 12:11
dalek ar: e0657f2 | jnthn++ | modules/ (3 files):
Bump various modules.

With this, we can now build a Rakudo Star that passes module tests on MoarVM.
12:12
timotimo ooooh yay :)
jnthn Oh!!
tadzik: yeah...what was I thinking :)
tadzik aww yiss
timotimo then you can get even more optimizations into the star before it lands :D
jnthn Well, or we may want to look at the state of r-j :) 12:13
In Star.
timotimo oh, of course
so, what's our stance on 32bit moarvm?
jnthn But this does mean we can at least have a distar. :)
timotimo: 32-bit on what arch?
timotimo linux, intel
12:13 denis_boyun joined
jnthn timotimo: I'd hope it'd work out on x86. 12:13
Yeah, shoudl work. If not, wants but hunging
... 12:14
bug hunting
timotimo someone on reddit pointed out that x86 gives trouble with NativeCall
12:14 G-one left
timotimo the array tests are like "hey, you wanted a 5, but this is a 324985724309857, what gives?" 12:14
so kinda looks like two pieces of the puzzle have a different opinion on what an int is?
jnthn Ah, it's probably "long"... 12:15
Guess I'll need to try and get myself a 32-bit VM
Oh, I may have one on my laptop...
And I'm heading away from home soon anyway for teaching trip. So will look on that while I'm away.
dalek kudo/nom: 80171d8 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Some Changelog additions
12:16
lizmat just spectested the 2014.03 release: 220 wallclock (vs 173 now), 1589.9 CPU versus 1238.75 now. 12:22
We've come a long way in this month!
jnthn Well, especially if you remember that 2014.03 wasn't running the threads tests, or unival tests... :) 12:23
Anyway, yeah, productive month :) 12:24
moritz and it's not over yet :-) 12:26
though I notice that release day is early this month
(on 17th, that is, this week; because 1st was a Tue) 12:27
jnthn I don't think we'll do anything too risky opt wise ahead of release.
I've decided I'm going to focus on async stuff in the next week: getting timers working on Moar, then adding I/O event notification supplies and async socket I/O. 12:28
(Not saying I'll manage it all in a week. otoh, stranger things have happened...)
I should actually have some non-"oh look a contrived demo" things to show off related to reactive programming in Perl 6 for my nlpw talk... :) 12:29
timotimo when is that? 12:30
jnthn Later this month...
Couple of weeks or so.
timotimo and that'll be on HEAD?
jnthn yeah :)
Well
All my live demos ever done on Rakudo I think have run on HEAD 12:31
timotimo sounds wise
jnthn Well, no, it's dangerous, you never know what mighta sneaked in :P
timotimo well ... yeah
that's why you write out your presentation in the form of tests before you do it :)
jnthn But generally things work out fine. We don't do too badly at keeping HEAD working well. 12:32
timotimo aye
masak release day is on Thursday, by masak, jetlagged. :> 12:34
jnthn ahaha
That was some clever planning :P
masak :>
clever or not, it *was* planning.
12:36 rurban joined 12:40 klapperl_ left 12:41 rurban left, zakharyas joined 12:42 denis_boyun left, klapperl joined
FROGGS[mobile] that is compiler release day, right? 12:46
timotimo are we going to bump parrot revision this month? 12:47
there was some performance improvements this month, no?
FROGGS[mobile] because I will have no time on monday and tuesday to fix things for r-j*
jnthn timotimo: Are there things there to make it worth it, and are we willing to do the testing?
timotimo did it get the environment fix?
environment for qx?
jnthn That'd sound worth bumping for.
12:48 xenoterracide joined
FROGGS[mobile] timotimo: no 12:48
timotimo i think so. though the project i wanted it for is now fine to run on moar, so ... :P
FROGGS[mobile] there was just an issue, not working parrot and rakudo code and a discussion
timotimo who tried to fix it? it was rurban_, wasn't it? 12:49
FROGGS[mobile] yes
timotimo and then pmichaud voted against the inclusion of more parrot-specific code to the core setting
vetod*
12:49 klapperl_ joined
FROGGS[mobile] yes, because it was the wrong approach 12:49
timotimo aye
jnthn Ah, I recall now. I think there were multiple issues with that fix... 12:50
timotimo nobody, not even me, came up with a proper fix yet, though
jnthn "use moar"? :P
FROGGS[mobile] *g*
timotimo yeah, i've been doing that for now
nwc10 it's not actually a state secret
rn: class A{}; A::boom(:foo)
camelia rakudo-parrot 25c75c: OUTPUT«Could not find symbol '&boom'␤ in method <anon> at gen/parrot/CORE.setting:12574␤ in any at gen/parrot/Metamodel.nqp:2710␤ in any find_method_fallback at gen/parrot/Metamodel.nqp:2698␤ in any find_method at gen/parrot/Metamodel.nqp:949␤ i…» 12:51
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any␤ at /tmp/tmpfile line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CO…»
..rakudo-jvm 25c75c: OUTPUT«Could not find symbol '&boom'␤ in method <anon> at gen/jvm/CORE.setting:12553␤ in any at gen/jvm/Metamodel.nqp:2627␤ in any find_method_fallback at gen/jvm/Metamodel.nqp:2626␤ in any find_method at gen/jvm/Metamodel.nqp:948␤ in any at gen/j…»
12:51 klapperl left
camelia ..rakudo-moar 25c75c: OUTPUT«===SORRY!===␤Could not find symbol '&boom'␤» 12:51
nwc10 that's a read 1 beyond a malloc'd area, as reported by valgrind and ASAN on MoarVM
yes, it's a Perl 6 runtime error
masak nwc10: looks fine above, though. 12:52
timotimo well, you could be doing it in an eval, so that could still be problematic
jnthn nwc10: It goes away if MVM_SPESH_DISABLE=1 is set in the env?
nwc10 masak: run it under valgrind
jnthn nwc10: Or still there?
That'll give a sizable clue...
nwc10 same error with MVM_SPESH_DISABLE=1
jnthn ok, I didn't think it was gonna be that... 12:53
timotimo doesn't valgrind also give you a stack trace for the wrong read?
nwc10 timotimo: yes. Here's one from ASAN: paste.scsys.co.uk/346819
it's trying to copy subroutine argument flags
jnthn nwc10: paste.scsys.co.uk/346819
oops, too slow :)
nwc10 arg_count is one more than it should be
it is not clear how that happens
jnthn arg_count = 3, num_pos = 1, 12:54
That implies a positional and a named 12:55
dalek kudo/nom: f9c9487 | (Elizabeth Mattijsen)++ | src/core/Bag (2 files):
Introduce direct .min/.max on Bags/BagHashes

Actually inspired by a code example of TheDamian that looked hacky, since one of the more common uses of Bags/BagHashes are to find out the frequence of things, and hence you probably want to know the lowest/highest frequency quite often as well.
nwc10 the stacktrace is for something like
m: class TestA { }; TestA::frobnosticate(3, :foo) 12:56
camelia rakudo-moar 25c75c: OUTPUT«===SORRY!===␤Could not find symbol '&frobnosticate'␤»
jnthn Yeah. That'd be a call with a positional and a named.
nwc10 it seems that it's only the named that matters
timotimo some part of the thing isn't noticing that the sub doesn't exist? :)
jnthn Well, what's also to note is that it's in the tweak_cs codepath. 12:57
timotimo the callsite stuff has a potential source of confusion where the amount of flags is one less per named than the arg count
clkao w/win 7 12:58
nwc10 x
:-)
jnthn yeah, and I think that's exactly what's happening 13:00
MVM_args_proc_to_callsite does the calc correctly. 13:01
find_invokee_internal does it wrong 13:02
nwc10: gist.github.com/jnthn/10583405 13:06
nwc10: That's to try, though not for applying; I'm going to factor the calc out into one place.
nwc10: Actually, I can't; the two places are calc'ing on values from different types. 13:20
nwc10: So if that patch helps I think it goes in :)
dalek kudo/nom: 4f3553d | (Elizabeth Mattijsen)++ | src/core/Set (2 files):
Add .min/.max to Sets/SetHashes for consistency
13:24
kudo/nom: 3ba878f | (Elizabeth Mattijsen)++ | src/core/Mix (2 files):
Add .min/.max to Mixes/MixHashes for consistency
13:24 rindolf joined 13:25 raiph joined
moritz m-spectest summary (2 test failures): perlpunks.de/paste/show/534a9046.1568.2cb 13:25
dalek rl6-roast-data: 73c7e3e | coke++ | / (6 files):
today (automated commit)
13:26
lizmat moritz: again, the concurrency/lock.t, I have tests 6 or 8 fail, randomly 13:30
unfamiliar with S29-os/system: that's a new one to me
moritz same here
it's fixed by 'make install' 13:31
Unhandled exception: Missing or wrong version of dependency 'gen/moar/stage2/QRegex.nqp' at <unknown>:1 (/home/moritz/p6/rakudo/install/languages/perl6/runtime/perl6.moarvm::295) 13:32
not ok 1 - run() to an existing program does not die (and returns something true)
13:32 crazedpsyc joined
moritz seems that something prefers the installed libs over the local ones 13:32
13:32 guru joined
lizmat ah, I always do "make install" before "make spectest" 13:32
13:33 guru is now known as Guest93467, Guest93467 is now known as ajr_
FROGGS[mobile] moritz: I merged a PR about the order of home and site or so 13:33
moritz FROGGS[mobile]: I have no ~/.perl6/, so home shouldn't matter 13:35
jnthn I've got a new failure in t\spec\S05-substitution\subst.rakudo.moar 13:36
moritz runs p-spectest now, and is amazed how long it takes (compared to m-spectest) :_) 13:37
dalek kudo/nom: fe27557 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add advent2012 tests that were sitting in roast
13:38
jnthn nwc10: I gotta go catch a train soon, so pushed the patch anyway. Fairly sure it'll help.
13:38 rurban joined 13:43 rurban left 13:44 telex left 13:46 telex joined
vendethiel r: class A { method ary { <a b c> } handles push; }; my $a = A.new; $a.push 1; say $a.ary; 13:47
camelia rakudo-jvm f9c948: OUTPUT«(timeout)»
..rakudo-parrot f9c948, rakudo-moar f9c948: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> class A { method ary { <a b c> } ⏏handles push; }; my $a = A.new; $a.push ␤ expecting any o…»
vendethiel fair enough
lizmat r: class A { method ary { <a b c> } handles push; }; my $a = A.new; $a.push: 1; say $a.ary; 13:48
camelia rakudo-parrot f9c948, rakudo-jvm f9c948, rakudo-moar f9c948: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> class A { method ary { <a b c> } ⏏handles push; }; my $a = A.new; $a.push:␤…»
vendethiel look at the error message :). The two terms is `} handles`
lizmat :-)
vendethiel not related to `.push` vs `.push:` 13:49
lizmat well, that was wrong too:
r: my @a; @a.push 1
camelia rakudo-parrot f9c948, rakudo-jvm f9c948, rakudo-moar f9c948: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> my @a; @a.push ⏏1␤ expecting any of:␤ method arguments␤ …»
lizmat you need the : there or parens
14:01 SamuraiJack__ joined
jnthn commute & 14:01
dalek kudo/nom: dca5394 | (Elizabeth Mattijsen)++ | src/core/ (4 files):
Inf/-Inf are not Int's but Num's
14:02
masak 'night, #perl6 14:03
14:04 pippo joined 14:05 jtpalmer joined
masak lizmat: why do .min and .max on a Set return a Num? isn't the type of Set elements more or less arbitrary? (including non-orderable things) 14:05
14:07 Alina-malina left 14:08 Alina-malina joined
lizmat an empty set returns Inf on .min 14:08
to be consistent
and -Inf on .max
the *number* of elements is always an integer 14:09
moritz shouldn't the return value be Real then?
lizmat in Sets, they can only be 1
moritz then it can be Int or +-Inf
lizmat well, the error I git was: Type check failed in assignment to '$!min'; expected 'Int' but got 'Num'
so I made it a Num
masak right, something is weird. Int !~~ Num.
lizmat *got 14:10
masak so any non-infinite return value will not be a Num, but an Int.
r: say Int ~~ Num
camelia rakudo-parrot f9c948, rakudo-jvm f9c948, rakudo-moar f9c948: OUTPUT«False␤»
lizmat hmmm.... 14:11
masak 'sides, I'm pretty sure that the spec still is of the opinion that Inf *is* an Int. as well as a Num. and a Str, when it feels so inclined.
now, I'm not saying that that's sane. but that's what it says currently.
food for thought :) really 'night 14:12
14:13 nebuchadnezzar is now known as nebu, nebu is now known as nebuchadnezzar
dalek kudo/nom: 2a30681 | (Elizabeth Mattijsen)++ | src/core/ (4 files):
We need Real to support Inf/-Inf right now
14:16
14:19 Rotwang joined 14:28 Sptsh joined
Sptsh Hello! 14:28
Say me pls, Learn perl6 as my first programing language is good idea? 14:29
14:32 rurban joined
jnthn lizmat: Yes, Real seems like a righter choice there. 14:34
Sptsh: Probably not as a first one. Not because of the language, but because of a lack of good introductory-level material for new programmers.
Sptsh introductory-level material of? 14:36
pippo m: say (a => 1.1, b => 2.2).MixHash (+) (a => 0.5).MixHash; 14:38
camelia rakudo-moar f9c948: OUTPUT«bag(a, b(2))␤»
pippo ^^ why convert to bag? 14:39
jnthn Sptsh: There's things to read if you're a Perl 5 programmer coming to Perl 6. There's things to read if you're coming to Perl 6 with knowledge of other languages. There's not really tutorials for those coming to Perl 6 who never programmed before.
14:42 spider-mario left
lizmat pippo: that looks like a bug to me 14:43
cognominal Sptsh, I agree with jnthn++. On the other hand, it provides an interactive shell to play with. That's a good way to learn small scale parts of the language.
dalek kudo/nom: 36e316d | (Elizabeth Mattijsen)++ | src/core/Set.pm:
Fix two Num stragglers to Real
14:45
jnthn cognominal: btw, it seems I may make the French Perl workshop after all this year...
pippo m: say (a => 1.1, b => 2.2).MixHash (|) (a => 0.5).MixHash; 14:46
camelia rakudo-moar dca539: OUTPUT«bag(a, b(2))␤»
pippo lizmat: also to me :-) 14:48
cognominal jnthn, you are welcome. Please submit talk proposals so we can advertise them soon enough. This suggestion goes for other people who want to talk about Perl 6.
lizmat pippo: must check spec first
14:49 Sptsh left
cognominal I hope I can go too but my parents are often in hospitals these days and I may have to take care of them. 14:49
vendethiel jnthn: where'd it be :-) ? 14:51
lizmat++: spacing in 36e316d9c0 seems off ?
jnthn vendethiel: The FPW? Thinks it's in a nice modern building of an ugly suburb of Paris, iirc :) 14:52
vendethiel jnthn: I'll watch out then :) 14:53
lizmat jnthn: the ugliness is mostly gone now, with even 14:54
a tram now stopping in front of the place
jnthn oh wow :)
lizmat considers trams/trollies a sign of civilisation
jnthn I was gonna be going to the conf in Kiev instead.
But it got moved to Russia.
lizmat indeed
.oO( well, how things are going now, Kiev might be Russia anyway by the time of the Perl Mova)
14:55
*sigh*
jnthn Let's hope not. :/ 14:56
vendethiel r: class A { has Real$!max; }
jnthn Russia is quite big enough already, thanks.
camelia rakudo-jvm dca539: OUTPUT«(timeout)»
( no output )
jnthn I know 'cus I took the train end to end :P
vendethiel just thinks it reads poorly 14:57
jnthn vendethiel: Yes, well, don't write it then :P
vendethiel jnthn: github.com/rakudo/rakudo/pull/256
this isn't a IHDWDDIT 14:58
DIHWIDT* 14:59
dalek kudo/nom: 2837807 | Nami-Doc++ | src/core/Set.pm:
Fix spacing
kudo/nom: 7d2e554 | jonathan++ | src/core/Set.pm:
Merge pull request #256 from Nami-Doc/patch-1

Fix spacing
jnthn yeah, it's just unpretty :)
15:00 hoelzro joined
lizmat hehe. almost simultaneous fix, vendethiel++ 15:02
dalek ast: 02346c6 | (Elizabeth Mattijsen)++ | S02-types/ (6 files):
Add tests for .min/.max on (Set|Bag|Mix)Hash
15:04
15:05 Rotwang left
jnthn vendethiel: journeesperl.fr/fpw2014/ 15:06
15:06 FROGGS joined
vendethiel and it's free ! 15:07
thanks jnthn :-) 15:08
jnthn I may only be able to make the Fridya evening/Saturday. 15:13
15:14 raiph left
cognominal jnthn, that would be great 15:15
jnthn (My schedule currently suggest I have an evening lecture to do on Thursday in Sweden) 15:17
FROGGS o/ from my couch!
jnthn FROGGS: o/ :)
FROGGS :o) 15:18
jnthn is on a train with FREE CAKE
cognominal jnthn, that's not a very nice part of Paris. But at last, most of the construction work is finished. Because of that, one year ago, going out of the subway, I thought first I was in the wrong place.
jnthn cognominal: Yes, it was under construction last time I was there. :)
cognominal: Venue has always been a nice place, though.
cognominal yes, and it is free!!
now, there is fablab there too. 15:19
dalek ecs: 9213b13 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
Spec .min/.max on Bags
15:20
cognominal lizmat, I hope you will come too to fpw and propose Perl 6 talks or do you have other engagements? 15:22
lizmat we'll probably make it to FPW this year 15:24
but are not sure yet
15:24 colomon left
lizmat as soon as we are, we will register and I will propose "How The Camel Is De-Cocooning" as a presentation 15:24
15:28 colomon joined, zakharyas left 15:32 ajr_ left
cognominal With all the IO stuff going on, that could be "Perl 6 not autist anymore" 15:33
vendethiel website says "[...] in bold (they paid their ticket or will be doing a presentation)" (?)
15:34 guru joined, guru is now known as Guest10100, Guest10100 is now known as ajr_
lizmat some presenters insist on paying their ticket :-) 15:35
one of the few things that Damian discussed in Zürich and which didn't work (yet), was "is cached" 15:38
cognominal speaking of moving to Russia, that may happen to a forthcoming conference in Kiev. :(
moritz nr: try { say $_ } given 2
lizmat cognominal: if you're referring to Mova, that *is* already moved, afak
camelia rakudo-jvm 7d2e55: OUTPUT«(timeout)» 15:39
..rakudo-parrot 7d2e55, niecza v24-109-g48a8de3: OUTPUT«2␤»
..rakudo-moar 7d2e55: OUTPUT«Nil␤»
lizmat oops, that feels wrong
moritz RT 111704
passing TODO on p-spectest
lizmat r: given 2 { try { .say } } 15:40
camelia rakudo-parrot 7d2e55, rakudo-jvm 7d2e55, rakudo-moar 7d2e55: OUTPUT«2␤»
lizmat seems only postfix given is affected
jnthn Ah, it's one of those broken thunk things I'll get.
*bet
cognominal vendethiel, where in the site to you see a mention of paying? this is probably boilerplate from the ACT software that handles the conference.
vendethiel cognominal: journeesperl.fr/fpw2014/search 15:41
15:41 rurban left
lizmat cognominal: a free conference is where one has automatically paid when registered ? 15:41
dalek ast: 64d2ee6 | moritz++ | S04-statements/try.t:
refudge test for rakudo

passes on parrot, so only needs TODOing on JVM and Moar
15:42
ast: 627aae5 | moritz++ | / (2 files):
remove some outdated rakudo.parrot fudges
15:46
kudo/nom: 3e1f329 | moritz++ | t/spectest.data:
advent2013-day19.t is a concurrency test
15:47
lizmat moritz++ 15:48
moritz tries to get clean {m,p} spectest runs for the release 15:49
FROGGS moritz++ 15:52
cognominal vendethiel, lizmat, fpw is free, even more though for people who do talks 15:54
vendethiel cognominal, I'm registered :). Glad it's free, else I wouldn't be able to attend it
cognominal s/though/so/ 15:55
dalek ast: caeebea | (Elizabeth Mattijsen)++ | S17-concurrency/lock.t:
Fudge Thread stress test for now
15:57
lizmat r: my $r = sub ($x) {}; say $r.signature.returns 16:12
camelia rakudo-parrot 7d2e55, rakudo-jvm 7d2e55, rakudo-moar 7d2e55: OUTPUT«(Mu)␤»
lizmat shouldn't that be (Any) ?
moritz lizmat: no 16:13
lizmat: that'd mean you can't return junctions without explicit declaration
lizmat ah, ok I guess :-) 16:14
jnthn yeah, Mu is right by spec, afaik
lizmat I'm trying to implement a production grade "is cached" :-) 16:15
I guess what I need is a .WHICH on the signature 16:16
to be used as a key in the hash
moritz t/spec/S02-types/mixhash.rakudo.jvm .......................... Failed 1/199 subtests (less 26 skipped subtests: 172 okay)
lizmat am I on the right path here?
moritz why on the signature?
vendethiel moritz: shouldn't that "less" be "minus" ?
moritz vendethiel: where? 16:17
vendethiel "less 26 skipped"
lizmat well, because that's where the parameters live ?
moritz lizmat: I still don't see why you need it 16:18
jnthn lizmat: On the capture surely?
lizmat duh
moritz lizmat: you need to cache per routine and capture
lizmat that's what I meant :-)
jnthn It's the arguments you want to cache on, rather than the parameters :) 16:19
Anyway, yes, a Capture.WHICH sounds like a sane approac.
*approach
lizmat parameters / arguments , what's the difference :-)
moritz property / debt, what's the difference :-) 16:20
jnthn callee / caller, what's the difference :-)
moritz ugh, the j-spectest takes 2.5GB RAM
(single process) 16:21
16:21 thilp left
lizmat r: my $r = sub ($x) { say $r.Capture.perl }; $r("foo") # interesting 16:22
camelia rakudo-jvm 7d2e55: OUTPUT«java.lang.NullPointerException␤ in method list at gen/jvm/CORE.setting:6905␤ in method perl at gen/jvm/CORE.setting:6973␤ in sub at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 7d2e55: OUTPUT«Null PMC access in clone()␤ in method list at gen/parrot/CORE.setting:6909␤ in method perl at gen/parrot/CORE.setting:6977␤ in method perl at gen/parrot/CORE.setting:1060␤ in sub at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 7d2e55: OUTPUT«(signal )»
vendethiel r: say $*DIR; say $*EXECUTABLE; 16:23
camelia rakudo-jvm 7d2e55: OUTPUT«Dynamic variable $*DIR not found␤ in method gist at gen/jvm/CORE.setting:12548␤ in sub say at gen/jvm/CORE.setting:13461␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 7d2e55: OUTPUT«===SORRY!===␤Dynamic variable $*DIR not found␤»
..rakudo-parrot 7d2e55: OUTPUT«Dynamic variable $*DIR not found␤ in method gist at gen/parrot/CORE.setting:12569␤ in method gist at gen/parrot/CORE.setting:1056␤ in sub say at gen/parrot/CORE.setting:13503␤ in block at /tmp/tmpfile:1␤␤»
moritz well, coercing a routine to a routine a Capture doesn't make much sense
FROGGS r: say $*CWD; say $*EXECUTABLE;
camelia rakudo-jvm 7d2e55: OUTPUT«IO::Path</home/p6eval_eval>␤IO::Path</home/p6eval/rakudo-inst-1/bin/perl6-j>␤» 16:24
..rakudo-parrot 7d2e55: OUTPUT«IO::Path</home/p6eval>␤IO::Path</home/p6eval/rakudo-inst/bin/perl6-p>␤»
..rakudo-moar 7d2e55: OUTPUT«IO::Path</home/p6eval>␤IO::Path</home/p6eval/rakudo-inst-1/bin/perl6-m>␤»
vendethiel m: say $*CWD.Str;
camelia rakudo-moar 7d2e55: OUTPUT«/home/p6eval␤»
16:24 thilp joined
vendethiel r: say "a\nb".lines; 16:25
camelia rakudo-parrot 7d2e55, rakudo-jvm 7d2e55, rakudo-moar 7d2e55: OUTPUT«a b␤»
vendethiel r: say "a\nb".lines.perl; say "a\r\nb".lines.perl;
camelia rakudo-parrot 7d2e55, rakudo-jvm 7d2e55, rakudo-moar 7d2e55: OUTPUT«("a", "b").list␤("a\r", "b").list␤»
vendethiel r: say "a\nb".lines.perl; say "a\r\nb".subst("\r" -> "").lines.perl; 16:26
camelia rakudo-parrot 7d2e55, rakudo-jvm 7d2e55, rakudo-moar 7d2e55: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/tmpfile:1␤------> nb".lines.perl; say "a\r\nb".subst("\r" […»
vendethiel r: say "a\nb".lines.perl; say "a\r\nb".subst("\r" => "").lines.perl;
camelia rakudo-moar 7d2e55: OUTPUT«("a", "b").list␤Cannot call 'subst'; none of these signatures match:␤:(Cool: Any $matcher, Any $replacement, *%adverbs)␤:(Str: Any $matcher, Any $replacement, Any :ii(:samecase($samecase)), Any :ss(:samespace($samespace)), Any :SET_CALLER_DOLLAR_SLAS…»
..rakudo-parrot 7d2e55: OUTPUT«("a", "b").list␤Cannot call 'subst'; none of these signatures match:␤:(Cool: Any $matcher, Any $replacement, *%adverbs)␤:(Str: Any $matcher, Any $replacement, Any :ii(:samecase($samecase)), Any :ss(:samespace($samespace)), Any :SET_CALLER_DOLLAR_SL…»
..rakudo-jvm 7d2e55: OUTPUT«("a", "b").list␤Cannot call 'subst'; none of these signatures match:␤:(Cool: Any $matcher, Any $replacement, *%adverbs)␤:(Str: Any $matcher, Any $replacement, Any :ii(:samecase($samecase)), Any :ss(:samespace($samespace)), Any :SET_CALLER_DOLLAR_SLASH…»
lizmat r: sub foo ($x) { say &?ROUTINE.Capture.list }; foo("bar") # moritz: should this work then?
camelia rakudo-parrot 7d2e55: OUTPUT«Null PMC access in clone()␤ in method list at gen/parrot/CORE.setting:6909␤ in sub foo at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 7d2e55: OUTPUT«java.lang.NullPointerException␤ in method list at gen/jvm/CORE.setting:6905␤ in sub foo at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 7d2e55: OUTPUT«(signal )»
moritz lizmat: no
lizmat so how would I get at the values in the capture then? 16:27
moritz lizmat: there's an nqp:: op for getting the arglist as capture
jnthn lizmat: |c in the parameter list.
The capture is *about the current invocation*. 16:28
moritz that would have been my second suggestion
jnthn Not something static about the routine.
moritz m: sub f(|c) { say c.^name }; f 2
camelia rakudo-moar 7d2e55: OUTPUT«Capture␤»
moritz lizmat: ^^
lizmat but I need the current invocation to create a .WHICH from, to be used as a key?
moritz m: sub f(|c) { say c.WHICH }; f 2
camelia rakudo-moar 7d2e55: OUTPUT«Capture|139644193353720␤»
moritz I'm just afraid you have to patch Capture.WHICH to be something more useful 16:29
lizmat but that WHICH is just an type/address of the capture and not value based
moritz aye, that's what you have to change first
lizmat indeed, and that's what I'm trying to do
jnthn lizmat: Yes, that's what needs changing.
moritz Capture acts as a value type
jnthn Yes, but you do it by looking at $!list and $!hash inside of the Capture.
lizmat ok
moritz lizmat: just write a multi method WHICH (for :D invocant) in class Capture
lizmat yup, that far I was conceptually 16:30
now to turn the ... into something useful :-)
jnthn To a first approximation, just taking the WHICH of each of the things in list and hash togehter with the names for the hashes is the key
moritz and of course sort the hash keys
lizmat yup, similar to Set.WHICH :-) 16:31
jnthn With that done, then the rest is sub trait_mod:<is>(Routine:D $r, :$cached!) { my %cache{Capture}; $r.wrap(-> |c { %cache{c} //= callsame }) } or so. 16:32
lizmat yeah, I already copy pasted that from moritz++ blogpost a few years ago
timotimo jnthn: do you have ideas for making rakudo-debugger useful for multi-threaded things? 16:35
16:35 xinming left, rurban joined
timotimo maybe it would be a good start to just check in what $*THREAD the hooks are being invoked and perhaps skipping them if it's not the right one? 16:35
i suspect the way it's currently doing things it'd try to run multiple prompts for commands that listen on the same stdin or something?
jnthn timotimo: I need to spend a good chunk of time thinking that through.
16:35 ajr_ left
timotimo i feared as much 16:36
jnthn I mean, what I really want is not the "just work" solution, but something useful and awesome.
timotimo aye
a split terminal that offers one split for every thread ;)
moritz tmux integration!
16:37 xinming joined, guru joined
timotimo :3 16:37
jnthn :)
16:37 guru is now known as ajr_
timotimo also, something that'd work on windows would be nice 16:37
jnthn Well, the other thing I want to look at is how you can understand what things are in flight at a given point in time too
timotimo yeah, that seems like a particularly tricky aspect of the whole thing 16:38
16:38 colomon left 16:39 rurban left 16:40 colomon joined
jnthn Right, but if we can provide a really good debugging experience there then we get a strong offering. 16:40
One of the things .Net devs tell me is they find Rx queries hard to debug, because you can't trace an items progress through it. I'm wondering if we can do better with our supplies. 16:41
timotimo that would be fantastic
hmpf. i really have to spend some time trying to grok Rx, i haven't done anything in that style so far 16:42
jnthn I'll have some Perl 6 sample programs in a couple of weeks, but if you're impatient I've some C# ones you can see now :) 16:43
timotimo it'd certainly help to figure out where applying Rx is a good idea :)
jnthn Where you have things happening asynchronously and there's a stream of them. 16:44
timotimo Rx don't introduce their own asynchrony, just like supplies, right? 16:45
jnthn Right 16:46
timotimo at each point where there's a fork in the chain, like two taps on the same supply, they't just be executed to completion in some order?
16:46 plobsing joined
vendethiel m: my @foo = [loop { 1; last; }]; say @foo; 16:46
camelia rakudo-moar 3e1f32: OUTPUT«WARNINGS:␤Useless use of constant integer 1 in sink context (line 1)␤True␤»
jnthn Yeah. It's things where time comes in, for example, where concurrency is introduced.
timotimo m: my @foo = [loop { LEAVE last; 1; }]; say @foo; 16:47
camelia rakudo-moar 3e1f32: OUTPUT«True␤»
vendethiel m: my $last = False; my @foo = [loop { if ($last) last else { $last = True; 1 } }]; say @foo;
camelia rakudo-moar 3e1f32: OUTPUT«===SORRY!=== Error while compiling /tmp/UCNFIucJzk␤Missing block␤at /tmp/UCNFIucJzk:1␤------> t = False; my @foo = [loop { if ($last) ⏏last else { $last = True; 1 } }]; say @f␤ expecting any of:␤ p…»
vendethiel m: my $last = False; my @foo = [loop { if $last { last } else { $last = True; 1 } }]; say @foo;
camelia rakudo-moar 3e1f32: OUTPUT«True␤»
timotimo o_O
vendethiel is starting to feel dizzy
brane hurts. Somebody mind explaining ? 16:48
timotimo m: my @foo = loop { LEAVE last; 1; }; say @foo;
camelia rakudo-moar 3e1f32: OUTPUT«===SORRY!=== Error while compiling /tmp/OUl9BVgkuM␤Undeclared routine:␤ loop used at line 1␤␤»
timotimo m: my @foo = do loop { LEAVE last; 1; }; say @foo;
camelia rakudo-moar 3e1f32: OUTPUT«True␤»
timotimo m: my @foo = do loop { NEXT last; 1; }; say @foo;
jnthn vendethiel: Putting any loop other than a for loop in r-value context at present doens't make a huge amount of sense to Rakudo.
camelia rakudo-moar 3e1f32: OUTPUT«(timeout)»
timotimo it does not? huh.
well, maybe if it's a gather-loop
16:48 retupmoca joined
jnthn yeah, but then you're doing a gather. :) 16:49
vendethiel m: my @foo = [while False {}]; say @foo;
camelia rakudo-moar 3e1f32: OUTPUT«False␤»
16:49 punter joined
timotimo nobody commented on my number guessing game one-liner :( 16:49
vendethiel k, just returns True if it actually ran
jnthn yes, but please don't rely on that
vendethiel I won't :-) 16:50
that's just from S04
lizmat jnthn: just got a spurious error in spectest: 16:51
t/spec/S17-concurrency/thread.rakudo.moar (Wstat: 0 Tests: 25 Failed: 1)
Failed test: 6
which is "Thread 1 got non-zero ID"
jnthn lizmat: hmm
lizmat can't reproduce
but that should never ever fail, so I guess there is a path where it can
jnthn Right. 16:52
vendethiel timotimo: how'd you search for "LEAVE", "NEXT" etc ? syn search won't help, doc.perl6 won't help, etc 16:53
timotimo "phaser" 16:54
or this: perlcabal.org/syn/index_X.html
perlcabal.org/syn/index_C.html i meant this
vendethiel should "LEAVE" get the same comment as "ENTER" wrt loops ? 16:57
timotimo you mean "repeats on loop blocks"? 16:58
vendethiel yes
timotimo hm, i don't see a big piece of text on the exact semantics of the LEAVE queue 16:59
vendethiel m: my $i = 0; loop { NEXT $i++; say $i; }; 17:00
moritz perlpunks.de/paste/show/534ac2bb.6b06.15d # j-spectest output, 2 fails
camelia rakudo-moar 3e1f32: OUTPUT«(timeout)0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51…»
vendethiel And what's the difference of `UNDO { stuff; }` vs `CATCH { stuff; }` ? 17:01
timotimo the undo will not cause exceptions to be considered handled, or rethrow
jnthn CATCH catches an exception. UNDO runs when you leave a block unsuccessfully.
vendethiel well,`CATCH { stuff }` will not consider exceptions to be handled either, would it ? 17:02
jnthn Depends on stuff :P
timotimo if you have a when inside, then yes
oh, i've been meaning to ask
vendethiel yeah, *if you have a when inside* :p^
timotimo what's the exact mechanism that makes that work? is it something that's defined only for catch blocks? is it "magical"?
17:03 colomon left
vendethiel I'm asking if CATCH without a when/default is the same as UNDO 17:03
timotimo i'm kind of not terribly fond of such cases of magic if they seem to come out of nowhere
jnthn timotimo: Not really. A CATCH has an implicit rethrow at the end of it.
timotimo ah, and the when, when it gets triggered, will skip the rest of its outer block
jnthn timotimo: If you write a when or a default, then you succeed out of the CATCH block.
timotimo great 17:04
jnthn r: sub foo() { die 'omg a manatee'; CATCH { succeed; } }; foo()
camelia ( no output )
..rakudo-parrot 3e1f32: OUTPUT«succeed without when clause␤ in block at gen/parrot/CORE.setting:559␤ in block at gen/parrot/CORE.setting:623␤ in sub foo at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
timotimo oh?
well, that's certainly interesting
jnthn uh, dunno what's going on with Parrot there. I think JVM and Moar have it right.
vendethiel m: sub foo { die 'foo'; CATCH { default } }; foo 17:05
camelia rakudo-moar 3e1f32: OUTPUT«===SORRY!=== Error while compiling /tmp/aCcLQqOObV␤Missing block␤at /tmp/aCcLQqOObV:1␤------> sub foo { die 'foo'; CATCH { default ⏏} }; foo␤ expecting any of:␤ statement list␤ scoped bloc…»
vendethiel m: sub foo { die 'foo'; CATCH { default {} } }; foo
camelia ( no output )
jnthn vendethiel: UNDO is different; fail out of a block will trigger it also
timotimo right, like return Any? 17:06
jnthn Or that.
vendethiel jnthn: that's very, very confuse in my mind, when you say, "fail out of a block", you mean using `fail` itself ?
17:06 rindolf left
timotimo m: sub foo { return Any; UNDO { say "welp, that was fantastic." } }; foo(); 17:06
camelia rakudo-moar 3e1f32: OUTPUT«welp, that was fantastic.␤»
timotimo m: sub foo { return 1; UNDO { say "welp, that was fantastic." } }; foo();
camelia ( no output )
timotimo perlcabal.org/syn/S04.html#Definition_of_Success
^ vendethiel
jnthn vendethiel: fail(...) counts too, yes 17:07
vendethiel timotimo++
timotimo i don't think i understand the piece about list context in "Definition of Success" 17:08
vendethiel r: try foo(); foo { fail "oh noes"; UNDO { say "alive" } }
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ foo used at line 1␤␤»
vendethiel m: try foo(); sub foo { fail "oh noes"; UNDO { say "alive" } }
camelia rakudo-moar 3e1f32: OUTPUT«alive␤»
17:08 japhb joined
vendethiel m: try { fail "oh noes"; UNDO { say "alive" } } 17:08
camelia rakudo-moar 3e1f32: OUTPUT«alive␤Unhandled exception: oh noes␤ at <unknown>:1 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:12613 (/home/p6eval/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarv…»
vendethiel doesn't understand why this isn't catched
jnthn vendethiel: Because you didn't catch it. 17:09
UNDO is nothing to do with catching
It's all about how you leave the block
vendethiel jnthn: I know, but in my previous code, I didn't CATCH it either
jnthn KEEP/UNDO are about transactionality.
vendethiel and there were no exceptions
jnthn vendethiel: You did, you wrote "try"
vendethiel I wrote try in my last one as well 17:10
jnthn Oh...
But you weren't inside a sub.
vendethiel yeah
jnthn fail is a kind of return.
It's like return Failure.new(...) or so
vendethiel Hmm-mmh. I'm having a bit of a hard time trying for it to make sense, but this helps :D. 17:11
I tried to look for `fail`'s doc on doc.perl6, but with no luck
japhb So ... thoughts on debugging concurrent perl6. I have a mental image of having notional panels that can be filled with different things. Depending on the smarts of the UI driver class, this could be multiplexed screens, split screens, just plain scrolling panels into view as needed (for a dumb terminal), tabs in a tabbed UI, whatever. The point is panels can contain a debugging view of a particular task, similar to rakudo-debugger's current interface, but also 17:15
active state of I/O handles (and the things they are connecting to), state of each Supply tree and Channel, task -> thread mapping, etc. 17:16
When a task puts something into a Supply or Channel, the user can see the item go to a given Supply or Channel ID, and then in the Supply/Channel panel, see the progress of the item as it moves through, gets forked on taps, and so on. 17:18
When it exits a Supply/Channel, that panel shows which task ID it goes to, and the user can switch to that task's debugging panel to see it come in and get processed. 17:19
17:19 rurban joined
japhb (And in a tiled UI with a small enough number of active tasks, you could just watch things move from panel to panel without having to switch manually.) 17:19
17:21 Rotwang joined, Rotwang left, pippo left 17:24 molaf_ left 17:26 kaare_ left
japhb I *think* this can be separated into layers relatively easily, but probably one more than we have now, where there is the debug binary and then a UI class. Perhaps something like this: the debug binary providing API and hooks, several panel-generation classes that can output a rectangular panel of a particular type (debug, task map, channels/supplies, etc.) to a particular backend (ANSI text, HTML, and so on), and a panel management and UI interaction class per b 17:27
Not sure that's ideal, but could do the job.
jnthn Hm, lots of good ideas :) 17:28
It needs some more sophisciated UI-building mechanism than we hav enow :)
japhb True. And I recognize it's a lot more work to do. I'm just trying to think from the point of view of A) a hopefully quite useful UI and interaction model for the poor bastard doing concurrent debugging, and B) not *horribly* painful to write 17:30
17:30 rindolf joined 17:32 Rotwang joined 17:34 raiph joined, ajr_ left
jnthn japhb: aye. :) 17:34
timotimo mhhh ... libcatui
jnthn Well, nice tools take effort
17:34 guru joined
timotimo i should get started on the actual design of that bloody thing at some point 17:34
jnthn timotimo: I...don't think we need to put cat pictures all over it :P
timotimo with all due respect 17:35
we totally do.
17:35 guru is now known as Guest81413
jnthn :D 17:35
17:35 Guest81413 is now known as ajr_ 17:38 ajr_ left
japhb
.oO( cat panel for HTML backend is just a YouTube feed )
17:39
timotimo :D
m: sub gimme_a_class { UNDO { say "undo triggered" }; my Mu \c := class Test { }; return c but role { method defined { True }; method unpack { c } }; }; gimme_a_class.unpack.new() 17:40
camelia rakudo-moar 3e1f32: OUTPUT«undo triggered␤»
timotimo :o
17:40 rindolf left
japhb I took a quick glance at what Go is doing (not searching super hard yet, so I may have missed something) but it looks like they're just doing thin wrappers over gdb, so ... eww. 17:40
jnthn ah crap...my train seems to have broken down :/ 17:41
japhb Ouch, fail. 17:42
timotimo you should call railside assistance to tow you to the next garage 17:43
17:43 rurban left 17:44 hoverboard joined
jnthn "have you tried turning it off and on again" 17:44
17:44 thou left
timotimo "are you sure it's plugged in?" 17:46
17:46 Mouq joined
japhb "Well, it's sitting on the electrified third rail, so ... yes." 17:47
jnthn Overhead cable in this case 17:48
17:48 rindolf joined
timotimo .o( like in most of germany ) 17:49
17:50 colomon joined
jnthn yes, but your trains seem to run more reliably there :P 17:50
well, we're moving again, it seems
17:51 kurahaupo joined 17:52 Alula_ left
jnthn But apparently can no longer achieve "full fart" 17:52
timotimo hmm 17:54
17:54 anaeem1__ left
japhb halvfart is good enough for anyone 17:54
timotimo twitter.com/selenamarie/status/455...8711326722 - not sure i understand correctly
17:54 btyler joined
Mouq .tell adu FWIW I use osx 10.9 and am not having issues (just built [rakudo|nqp|moarvm]-HEAD). Usually if the build segfaults, it's because I needed to reconfigure something, so you may want to doublecheck that 17:56
yoleaux Mouq: I'll pass your message to adu.
vendethiel timotimo: basically, the guy can't even handle hearing about perl6 (I think) 17:58
(if you tell him p6 is good, he wont get any sleep from the horror)
timotimo why would gvr say something like that?
vendethiel timotimo: because he hates perl6, probably ? 17:59
oh, and python 2.7 until 2020. haha
17:59 xenoterracide left, anaeem1 joined
timotimo oh well. can't win 'em all. 17:59
Mouq lizmat++: While you're adding things to Bag, would you consider a method that replicates the keys by their values? Right now you have to do .pick(*).sort, which is kinda silly IMO
cognominal there is many ways to do it, now including the choice between Perl 5 and Perl 6. The nightmare gets even worse. 18:00
Mouq It came up writing this: codegolf.stackexchange.com/a/25716/15012 (note that the sort is necessary anyway here, but the .pick(*) doesn't feel right) 18:01
vendethiel timotimo: some ppl are answering (to the 2.7 => 2020 extention) "Python 2.7 is the Perl 5 of Python"
timotimo strange. 18:02
well, i'm going to head out for now
be back in a few
geekosaur but it's probably true. and like perl 5, it's gonna stick around whether the cool kids want it to or not, because somehow cool has yet to trump operational
vendethiel which is why some people wanted to change perl6's name, I guess 18:05
geekosaur (also the flip side of that comparison might not be something they want to think about: that python3 is python's perl6...) 18:06
18:06 punter left
Mouq geekosaur: As if python3 were that cool ;) :P 18:06
18:07 ajr joined, ajr is now known as Guest83500
cognominal to their credit python3 is already there; but apparently does not bring enough to justify compatibility breaking. 18:07
18:07 Guest83500 is now known as ajr_
geekosaur well, I get the impression that for many python2 folks, python3 is *not* realy there yet, at least not to the point that it's worth adopting 18:08
cognominal so that's even worse than I thought 18:09
geekosaur so you might see python3 as their rakudo-star
18:10 colomon left
cognominal And it will stay so if they want to copy nice Perl 6 features... before realizing it is easier to adopt Perl 6 wholesale than steal from it. 18:11
_sri problem is that all the good stuff has been backported to python2
vendethiel cognominal: what did they steal ? 18:13
_sri if p5p was in a better state perl6 would be in trouble too 18:14
cognominal I don't know but once Perl 6 will be a reality they will have to react. Maybe that the meaning of the Guido quote. He can't ignore Perl 6 anymore?
vendethiel cognominal: hard to judge without context. 18:15
_sri: p5p ? perl5 in perl5 ?
btyler perl5 porters, vendethiel 18:16
vendethiel oh, alright
cognominal we will see if we get a link to his presentation.
vendethiel tbh, from an outsider point of view, perl is dead. I did a lot of web before coming here (~ 6 months ago), php, then mostly ruby and js, and nobody even considers perl (in its global state) a threat or anything. It just doesnt exist anymore 18:17
moritz S04-phasers/first.t aborted on rakudo-moar
geekosaur it also occurs to me that, considering that perl 5 is picking up stuff form perl 6, maybe he's responding to the fact that python 2.7 is backporting stuff from python3 in the same way
vendethiel I just came to know perl6 because a core coffeescript contributor is a really big perl fan, has a fork with many features, etc
Well, I certainly don't believe p6 people are in their own little world, but it's really how it felt from outside 18:18
cognominal vendethiel, you mean, he is forking coffeescript to make it more Perl 6 like? 18:19
vendethiel cognominal: he forked it a long time ago and added perl-ish features to it. I consider him to know more about coffee/coffee codebase than the creator.
and I got interested in perl 6 because he uses it as an exemple often enough. 18:20
cognominal what the name of the fork?
vendethiel cognominal: github.com/satyr/coco
moritz has trouble taking coffeescript seriously; if you want to *improve* on a language, relying on implicit scoping (esepecially if there are closures) seems like sarcasm to me 18:22
vendethiel autovivification, trying to take * where it's possible (like for array indexing), do, and something that's even more perl-ish than perl 6 has (like `a('foo')b'key here'`) 18:23
moritz: I agree people should try to stop wanting to "improve lexical scoping" :-)
(this fork has a kinda-fixed scoping, though)
cognominal moritz, that's indeed my main critic against coffeescript. 18:24
vendethiel (and that's the main reason why I don't use coffee as well, although I'm a team member as well. In reality, it doesn't often bit you, but when it does ...) 18:25
(mutability is bad anyway :D.)
btyler vendethiel: there's actually a lot of super awesome web stuff in perl5. mojo is like node.js done right
vendethiel btyler: I believe it ! But nobody knows about it ! that's my point :). 18:26
btyler fair enough
vendethiel perl has no "visibility" these days
for most people, perl is a relic from ancient time; hard to understand and to work with, with few people still using it (*for web*). That's the way it felt to me, at least. 18:27
Mouq only discovered mojo relatively recently, because of #perl6, and my father is a diehard perl5 user :(
vendethiel discovered mojo the same ay
_sri significant whitespace is just not cool... you can pry my curly brackets from my cold, dead hands!
vendethiel way* 18:28
Mouq s/my/his/ is I suppose
cognominal I am ashamed to say I don't even know the differences between the various Perl web toolkits.
Mouq s/is//
vendethiel Mouq: who's father then ? 18:29
cognominal: actually, for the tweet, maybe guido thinks they "failed" "in the same sense as perl 6"
_sri python3 changed too little, perl6 changed too much... ruby2 got it just right 18:30
_sri doesn't get how pypy and rubinius have not surpassed cpython and mri yet though 18:33
dalek ast: 9906142 | moritz++ | S (4 files):
JVM unfudges
18:34
cognominal Perl 6 regex question. what is the way to transform a grouping into a negated assertion?
moritz cognominal: example?
Mouq cognominal: Depends on what you're trying to do 18:35
moritz negated assertion is <!before ...>
Mouq <-[…]> might be what you're looking for though
(Although that's just "<!before <[…]> > ." I guess) 18:36
cognominal No, that's a negated character class.
Mouq cognominal: Ah, true
cognominal but, I think <!before ... > is what I really need. thx Mouq++ 18:37
vendethiel _sri: the "breaking version" of ruby was 1.9 tho
FROGGS <!before [ foo | bar ]> or just <!before foo | bar >
18:38 darutoko left
Mouq (moritz++) 18:38
cognominal FROGGS++, indeed
18:40 Adriaaan joined, SamuraiJack__ left
_sri has high hopes for mojolicious on perl6 btw. (poor parallelism in perl5 is holding us back atm.) 18:40
dalek ast: 67a7d45 | moritz++ | S04-blocks-and-statements/let.t:
JVM-fudge a failing test (with ticket number)
18:41 kivutar joined
vendethiel (would love to see mojo-perl6 with perl6-to-js :-).) 18:42
moritz m: (1,2,3,2,2,2,2).MixHash.kv.perl 18:43
camelia ( no output )
moritz m: say (1,2,3,2,2,2,2).MixHash.kv.perl
camelia rakudo-moar 3e1f32: OUTPUT«((1, 1), (2, 5), (3, 1)).list␤»
timotimo watch out, though, !before will not consume any characters
<-[ … ]> on the other hand will
moritz that's the nature of assertions 18:44
timotimo aye
18:44 rurban joined
timotimo to be fair, it's kind of hard to express both non-matching and consuming characters 18:45
without going insane
moritz well, you can do stuff like [ <!before ...> . ]*
which is "match any characters up to ... 18:46
dalek ast: 2053bb2 | moritz++ | S02-types/mixhash.t:
make MixHash.kv test more robust
18:47
Mouq moritz++
18:49 rurban left
japhb What are the prereqs for ipython support? ZeroMQ? 18:50
Anything else?
timotimo basic threading 18:51
we can fortunately do without HMAC 18:52
there needs to be a heartbeat service
18:52 xenoterracide joined
japhb Do we need SSL? 18:53
timotimo no
and if we did, i think zmq would have an abstraction in place fo rus
18:53 colomon joined
timotimo maybe 18:53
japhb OK, fair enough. So given that r-m and r-j both have basic threading, we just need a NativeCall ZeroMQ binding and then it's just a plain old module?? 18:55
s:1st/'?'//
timotimo it would appear to be the case, yeah 18:56
japhb Has anybody already looked at whether NativeCall on both r-m and r-j supports everything ZeroMQ needs at this point? 18:57
18:57 rindolf left
japhb timotimo: Oh, before I forget (again), thanks for making GH issues for perl6-bench. 18:57
timotimo yw :)
Mouq r: $_ = "a b c"; s:ss/[<.alpha> <.ws>?]+/d e f/; .say
18:57 pmurias joined
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«d e f␤» 18:57
moritz in m-spectest run, t/spec/S04-phasers/first.t aborts with exit code 139 after test 1; it runs fine on its own 18:58
Mouq r: $_ = "a\n\nb\t\nc"; s:ss/[<.alpha> <.ws>?]+/d e f/; .say
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«d␤␤e ␤f␤»
jnthn moritz: Does it work out with MVM_SPESH_DISABLE=1 ?
moritz jnthn: lemmi try
pmurias re coffescript scoping wouldn't fixing that be a trivial (although backward incompatible) change?
jnthn moritz: A fix that just landed in oarvm head may deal with it 18:59
moritz jnthn: ok, I'll try with latest moar first 19:00
jnthn: I suppose I don't need to recompile nqp and rakudo for it?
19:01 rindolf joined
jnthn moritz: nope 19:02
vendethiel pmurias: it'd :-). we're currently discussing improving it a bit 19:03
moritz "use strict"; 19:04
vendethiel moritz: already something in JS land ;-)
moritz vendethiel: I know
it's just ironic if language A is an attempt to fix some design flaws in language B, and now language A would benefit from the same hacks that langauge B has introduced years ago... 19:05
vendethiel (or has had since the beginning) 19:06
"if it's not broken, don't fix it", right ?
jnthn detrain, dinner; bbl & 19:07
19:07 xenoterracide left
moritz "if you think it's not broken, maybe you are?" :-) 19:07
pmurias the coffescript scoping still seems much saner the javascript one
vendethiel really ? `lst = (a i for i in [1..10]); a = -> i = 0;` #what happens here ? 19:09
imho, let > var > coffee's scoping 19:10
moritz oh, and make use-before-declaration (compare hoisting) a compile time error
vendethiel moritz: globals 19:11
do you specify each of them ?
moritz vendethiel: which globals are you talking about?
vendethiel: then ones I introduce myself? I sure hope I do
vendethiel moritz: `window` properties 19:12
like, `$ ->` is "use-before-declaration", right ?
19:12 uppompey joined
moritz function () { a(); function a() { } }; # use before declaration 19:12
vendethiel I thought you meant in coffee, which doesnt have that :)
moritz I actually don't know coffescript :-) 19:13
vendethiel but yeah, I agree. Lots of quirks. Another "weird hoisting" behavior :
moritz jnthn: MVM_SPESH_DISABLE=1 helped, updating to a new moar didn't
vendethiel `function foo(a) { var a; alert(a); }; foo(5);` actually alerts 5.
19:19 adu joined 19:20 Sqirrel joined 19:27 zakharyas joined 19:32 rindolf left 19:34 Mouq left 19:39 raiph left 19:41 hummeleB1 joined 19:43 FROGGS[mobile] left 19:44 dwarring joined 19:46 rurban joined 19:50 rurban left
vendethiel could you override the "add_method" to apply decorators to it ? I'm thinking of the ruby lib github.com/michaelfairley/method_decorators 19:53
19:54 xenoterracide joined
dalek ast: 6b23c08 | moritz++ | S29-os/system.t:
refude test for rakudo-m that depends on rakudo being installed

better to get a passing TODO than to get test failures
19:55
19:57 kivutar left 19:59 xenoterracide left 20:01 xenoterracide joined, colomon left, FROGGS left 20:02 molaf joined 20:04 uppompey left 20:05 BenGoldberg joined 20:14 adu left, Alula_ joined 20:15 denis_boyun joined 20:16 adu joined 20:18 aindilis` joined 20:20 aindilis left 20:21 Rotwang left 20:27 denis_boyun left, denis_boyun joined 20:34 pippo joined 20:35 zby_home_ joined
jnthn vendethiel: Yeah, I think I even wrote a demo of that once... 20:46
vendethiel: See slides of my meta-programming in Perl 6 talk
20:47 rurban joined 20:49 Mouq joined 20:51 rurban left
lizmat Mouq: re "While you're adding things to Bag, would you consider a method that replicates the keys by their values? " 20:54
I'm not sure what you're getting at
doesn't .keys work ? 20:55
Mouq r: say (bag <a a a c b>).keys
camelia rakudo-jvm 3e1f32: OUTPUT«b a c␤»
..rakudo-parrot 3e1f32, rakudo-moar 3e1f32: OUTPUT«a c b␤»
Mouq r: say (bag <a a a c b>).pick(*).sort
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«a a a b c␤»
20:55 ajr_ left
lizmat ah, you mean multiplied by their replication fcator 20:56
Mouq lizmat: Yeah
r: say (bag <a a a c b>).pairs.map: {.key xx .value}
camelia rakudo-jvm 3e1f32: OUTPUT«b a a a c␤»
..rakudo-parrot 3e1f32, rakudo-moar 3e1f32: OUTPUT«a a a c b␤»
Mouq Something like that 20:57
jnthn .keyses )
lizmat maybe we need an adverb on .keys ? 20:58
jnthn No, that feels a bit smelly
Mouq It only really makes sense on Bags, not so much Sets and really not Mixes
lizmat maybe .flat ? 21:00
21:00 virtualsue joined
lizmat or .list ? 21:00
21:00 zby_home_ left
Mouq r: say (bag <a a a c b>).list.perl 21:00
lizmat r: say (bag <a a a c b>).list # seems broken
camelia rakudo-jvm 3e1f32: OUTPUT«("b", "a", "c").list␤»
..rakudo-parrot 3e1f32, rakudo-moar 3e1f32: OUTPUT«("a", "c", "b").list␤»
rakudo-jvm 3e1f32: OUTPUT«b a c␤»
..rakudo-parrot 3e1f32, rakudo-moar 3e1f32: OUTPUT«a c b␤»
Mouq I think .list should stay as it is, honestly, for consistency with Set and Mix 21:01
r: say (bag <a a a c b>).hash.list.perl
camelia rakudo-parrot 3e1f32, rakudo-moar 3e1f32: OUTPUT«("a" => 3, "c" => 1, "b" => 1).list␤»
..rakudo-jvm 3e1f32: OUTPUT«("b" => 1, "c" => 1, "a" => 3).list␤»
Mouq m: say (mix <a a a c b>).hash.list.perl 21:02
camelia rakudo-moar 3e1f32: OUTPUT«("a" => 3, "c" => 1, "b" => 1).list␤»
lizmat .spread ? 21:03
Mouq m: say (mix <a a a c b>).flat.perl
camelia rakudo-moar 3e1f32: OUTPUT«(("a"=>3,"c"=>1,"b"=>1).Mix,).list␤»
Mouq m: say (bag <a a a c b>).flat.perl
camelia rakudo-moar 3e1f32: OUTPUT«(("a"=>3,"c"=>1,"b"=>1).Bag,).list␤»
21:04 pippo2 joined 21:05 pippo2 left
Mouq .k×v 21:06
21:06 pippo2 joined
jnthn .kxxv? :) 21:07
It's quite fun to try and say that one out loud.
And yet quite clear what it will do it you stare at it for a bit :) 21:08
21:09 kurahaupo left 21:11 zakharyas left
vendethiel jnthn: not really the same, though :-) 21:11
but yeah, kinda look-alike
I guess I'll need macros 21:12
21:14 adu left 21:16 adu joined
lizmat .kxxv it will be (for now) 21:16
jnthn haha :D 21:17
timotimo i don't understand it :( 21:18
jnthn timotimo: .k xx .v 21:19
timotimo: Where the keys are the things in the bag and the values are the number of times they are in there
timotimo ah
jnthn timotimo: and xx is the list repetition operator
timotimo okay
21:22 Vlavv left 21:23 pippo2 left, pippo2 joined, pippo2 left
dalek kudo/nom: 91f41bd | (Elizabeth Mattijsen)++ | src/core/Baggy.pm:
Add Bag.kxxv (preliminary name)
21:25
lizmat $ perl6 -e '<a b b c c c>.Bag.kxxv.perl.say'
("a", "b", "b", "c", "c", "c").list
Mouq++
vendethiel that'll be awkward to say out loud :-)
lizmat++
21:27 brrt joined
Mouq lizmat++ :) 21:28
jnthn vendethiel: Yes, next time I'm in a Perl 6 talk I'm going to ask somebody if there's an opertor to do what it does, jus tto hear them try :)
vendethiel jnthn: wrt that ruby stuff, I think I actually need to macro `class A` to `reset_decorators(); "class A"` then I'd want to parse stuff like 21:30
21:30 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
vendethiel `+mydecorater method foo {}` (which can't parse right now), to just the method but storing the associated decorator, and decorating every method at the end of the class declaration. No idea how it'd look like 21:31
(definitely feels forced)
jnthn yeah, that's ew
Also the call inserted before class A feels very bogus
vendethiel github.com/rakudo/rakudo/pull/257#...-40320398, funny one :)
jnthn Since that's runtime
vendethiel yeah I mean at BEGIN time 21:32
jnthn Yeah
but the way to do that is to write a module exporting a different ClassHOW
And then method foo is decorated(...) { } or so
vendethiel I might not even need to do that, since I can just reset a "decorator table" every time I add a function
is decorated looks much better ! if I'm able to chain them, definitely go with that ! 21:33
dalek ecs: 89cc32d | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod:
Spec Bag.kxxv
vendethiel thanks jnthn, I'll try that tomorrow :-)
21:34 Vlavv joined
jnthn chuckles at the confusion in the pr 21:34
21:35 hoverboard left
lizmat if captures are to be by value, then: 21:36
r: my @a = (1,2,3); my @b = (1,2,3); say \@a === \@b # should be True ?
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«False␤»
21:36 btyler left
lizmat jnthn, moritz: ^^^ 21:37
Mouq m: my \a = (1,2,3); my \b = (1,2,3); say \@a === \@b
camelia rakudo-moar 3e1f32: OUTPUT«===SORRY!=== Error while compiling /tmp/LVoOgy6DCm␤Variable '@a' is not declared␤at /tmp/LVoOgy6DCm:1␤------> y \a = (1,2,3); my \b = (1,2,3); say \@a⏏ === \@b␤ expecting any of:␤ postfix␤»
Mouq m: my \a = (1,2,3); my \b = (1,2,3); say \a === \b
camelia rakudo-moar 3e1f32: OUTPUT«False␤»
Mouq :(
jnthn lizmat: No, though @a.Capture === @b.Capture probably should.
lizmat: \@a is, iirc, like \(@a), which is a capture with one positional arg @a, and arrays are not value types 21:38
21:39 Adriaaan left
lizmat but that would mean that when the .WHICH of the Capture is to be used as a key for caching 21:40
that (@a) and (@b) would give different results ? 21:41
jnthn Yes
lizmat as in: not use the same cache key ?
jnthn Right, which is what I'd expect givne array is a reference type.
lizmat that feels wrong to me
jnthn Why? 21:42
r: say [1,2] == [1,2]
uh
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«True␤»
jnthn r: say [1,2] === [1,2]
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«False␤»
jnthn Using a mutable thing as a cache key is always gonna be bad design. 21:43
lizmat we're talking about implementing "is cached" 21:44
where the .WHICH of the Capture is to be the key in the cache, right ?
jnthn Right.
lizmat and now you're saying that doing that would be a bad idea ? 21:45
lizmat is confused
jnthn No, Capture is immutable.
I'm saying the WHICH of a Capture should be defined in terms of the WHICH of things inside of it.
And the WHICH of an Array is dependent on its identity, *not* its contents.
lizmat yes, that is what I'm doing
jnthn OK 21:46
lizmat then maybe the .WHICH of Array is wrong atm
jnthn So
lizmat $ perl6 -e 'my @a = (1,2,3); say (\@a).WHICH'
Capture|(Int|1)(Int|2)(Int|3)
jnthn Oh, hang on...
lizmat $ perl6 -e 'my @a = (1,2,[3,4,5]); say (\@a).WHICH'
Capture|(Int|1)(Int|2)(Array|4494462984)
voila, the problem 21:47
jnthn r: my @a = 1,2; my \c = \@a; say c.perl
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«Capture.new( list => (1, 2).list, hash => EnumMap.new())␤»
jnthn r: my @a = 1,2; my \c = \(@a); say c.perl
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«Capture.new( list => (1, 2).list, hash => EnumMap.new())␤»
lizmat I guess that should be fixed :-)
jnthn those are differnt
21:48 rurban joined
jnthn lizmat: what should be fixed? 21:48
lizmat sorry, nothing, the EnumMap.new got me confused
jnthn Ah, ok
You agree @foo.WHICH, where @foo is Array, has a WHICH basd on its identity, not its contents?
lizmat so: you're saying they are different, but the .perl doesn't see any difference 21:49
21:49 brrt left
lizmat yes 21:49
jnthn No, .perl won't
But
21:50 rurban1 joined
jnthn r: class Person { has $.name }; say Person.new(name => 'Dave').perl; say Person.new(name => 'Dave').perl; 21:50
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«Person.new(name => "Dave")␤Person.new(name => "Dave")␤»
jnthn the .perl of those two is the same, but there's more than one Dave in the world. :)
lizmat yeah, got ya
21:51 denis_boyun left
lizmat so this basically means I can *not* use .WHICH as the key for "is cached" 21:51
Mouq jnthn: Should this be so, however:
m: say List.new.WHICH
camelia rakudo-moar 3e1f32: OUTPUT«List|140655207615040␤»
lizmat as any Capture with an array ref, would calculate things anew 21:52
21:52 rurban left
Mouq Oh, Lists are mutable, nevermind... 21:52
lizmat r: my @a = (1,2,3); say @a.WHICH; @a.push(4); say @a.WHICH
camelia rakudo-parrot 3e1f32: OUTPUT«Array|-4362720946514231530␤Array|-4362720946514231530␤»
..rakudo-jvm 3e1f32: OUTPUT«Array|632880711␤Array|632880711␤»
..rakudo-moar 3e1f32: OUTPUT«Array|139965116036808␤Array|139965116036808␤»
jnthn lizmat: No, if you pass in two different arrays *even if they have the same contents* I'd expect them to calculate things anew, because I passed in a different reference type.
Mouq m: my \a = List.new; say a.WHICH; a.push(5); say a.WHICH 21:53
camelia rakudo-moar 3e1f32: OUTPUT«List|139723787273464␤List|139723787273464␤»
jnthn lizmat: I don't think you can use "is cached" in ignorance of the incoming argument types.
lizmat even then, if I change the array from one invocation to the next, I would get the same result when I probably shouldn't
jnthn lizmat: Well, it depends what you want. :)
lizmat eh, no what the spec wants :-) 21:54
21:54 rurban1 left
jnthn Well, I'd hope the spec wants to keep value types and reference types straight. 21:54
lizmat S06:2122
synopsebot Link: perlcabal.org/syn/S06.html#line_2122
21:55 raiph joined
jnthn lizmat: Nothing in there seems to contradict what I'm saying. 21:55
lizmat well, your explanation doesn't match my expectation of memoization 21:56
jnthn lizmat: It doesn't make what I'm saying explicit either.
21:56 adu left
lizmat in my world, it's the input values that determine what the output value is going to be (for an "is cached" sub) 21:57
note: *values*
jnthn Yes, and the key word there is *value*
And array is an entity, *not* a value.
lizmat so foo(@a) and foo(@b) should give the same result, if @a == @b 21:58
21:58 adu joined
jnthn lizmat: perlcabal.org/syn/S02.html#Immutable_types perlcabal.org/syn/S02.html#Mutable_types 21:59
Of note, the first sentence in the second link. 22:00
adu jnthn!
yoleaux 17:56Z <Mouq> adu: FWIW I use osx 10.9 and am not having issues (just built [rakudo|nqp|moarvm]-HEAD). Usually if the build segfaults, it's because I needed to reconfigure something, so you may want to doublecheck that
jnthn o/ adu 22:01
adu Mouq: thanks
lizmat well, ok: but then maybe there's something wrong with \@a
jnthn Maybe 22:02
nore that \@ and \(@a) behave differently at the moment
lizmat as that gets a flattend @a in $!list, rather than a single Array in $!list
jnthn Of note, they behave like @a.Capture and (@a,).Capture respectively.
That may be too surprising.
Lemme see if I can find some spec language on it... 22:03
lizmat that's why:
$ perl6 -e 'my @a = (1,2,3); say (\@a).WHICH'
Capture|(Int|1)(Int|2)(Int|3)
and that's not saying "Capture|(Array:76278692)'
jnthn Yeah 22:04
I think that our \@a behavior may be wrong
In S02 is this:
You may retrieve parts from a Capture object with a prefix sigil operator:
$args = \3; # same as "$args = \(3)"
timotimo huh?
jnthn S06 doesn't add much. 22:06
I can't find a single case of \@foo and \%foo in either S02 or S06 or S08
So yeah, I'm suspecting our \@a behavior is just wrong.
And it should be made consistent with \(@a) 22:07
Mouq my \a = (1,2,3); my \b = (1,2,3); say a === b; # shouldn't this be True, though?
m: my \a = (1,2,3); my \b = (1,2,3); say a.WHICH; say b.WHICH; say a === b; # shouldn't this be True, though? 22:08
camelia rakudo-moar 3e1f32: OUTPUT«Parcel|140040520206696␤Parcel|140040520212936␤False␤»
jnthn Mouq: Yes, I think that one probably should
Givne it's under S02's Immutable Types section
Mouq Also 22:09
jnthn I'm a little bit surprised to see LoL under Immutable Types, however...
Mouq m: say LoL.^mro # should probably be more like (LoL) (Parcel) (Cool) (Any) (Mu)
jnthn Curious about Exception there too. :)
camelia rakudo-moar 3e1f32: OUTPUT«(LoL) (List) (Iterable) (Cool) (Any) (Mu)␤»
jnthn Mouq: tbh, LoL is not clearly enough defined in my mind to be sure where it falls :) 22:10
Mouq Oh, wait mebbe not 22:11
22:11 hoverboard joined 22:16 adu left
jnthn lizmat: On unrelated matters: I'm planning to make .cue on scheduler return a Cancellation object of some kind. 22:16
lizmat: Especially useful for timer based things; you can stop them. But will support it for the non-timer caes too 22:17
lizmat that feels good
jnthn lizmat: Sound OK?
lizmat yup
but don't you have something like that already with e.g. :app_lifetime ?
jnthn I'm pondering them a bit 'cus I'm gearing up to give Moar support for them, which means I'm looking at the nqp:: op API for such things.
No, app_lifetime is at the thread lvel
*level
Timers don't make a thread each.
lizmat ah, yes 22:18
jnthn Otherwise if you have thousands of them...ouch. :)
lizmat yup
we don't want that
jnthn Aye.
Well, the JVM thing we use manages them as a heap, and libuv also does now, iirc.
So both should be able to cope with thousands.
lizmat
.oO( the new trend: thread bombs instead of fork bombs )
jnthn m: Thread.start({ }) while 1; # curious :) 22:19
camelia rakudo-moar 3e1f32: OUTPUT«Type check failed in binding &code; expected 'Callable' but got 'Hash'␤ in method start at src/gen/m-CORE.setting:17669␤ in block at /tmp/Z3Rmg2Hw0Q:1␤␤»
jnthn ahaha
m: Thread.start(-> { }) while 1; # curious :)
camelia rakudo-moar 3e1f32: OUTPUT«(signal )»
BenGoldberg That was quick
jnthn Really
22:19 xenoterracide left
BenGoldberg m: Thread.start(-> { }); 22:19
camelia ( no output )
BenGoldberg m: Thread.start(-> { }) for 1..5;
camelia ( no output )
BenGoldberg m: Thread.start(-> { }) for 1..99;
camelia ( no output ) 22:20
BenGoldberg m: Thread.start(-> { }) for 1..9999;
camelia rakudo-moar 3e1f32: OUTPUT«(signal )»
BenGoldberg m: Thread.start(-> { }) for 1..999;
camelia rakudo-moar 3e1f32: OUTPUT«(signal )»
BenGoldberg wonders if it's worthwhile to debug that, though
lizmat $ perl6 -e 'Thread.start(-> { }) for 1..999'
Segmentation fault: 11
jnthn Probably, yes. :)
m: Thread.start(-> { }).finish while 1; # wonder if this is OKer :)
camelia rakudo-moar 3e1f32: OUTPUT«(signal )» 22:21
BenGoldberg Now that, on the other hand...
jnthn Hmm...that one certainly wants debugging.
lizmat $ perl6 -e 'Thread.start(-> { }).finish while 1'
Segmentation fault: 11
jnthn I'm not gonna try it with j because I'll bring down the evalbot.
well, the r-j one anyway
BenGoldberg Poor bot ;)
jnthn oh, curious 22:22
On my (Windows) box the "Thread.start(-> { }).finish while 1" is not segv-ing at all
However, it is using plenty of memory :) 22:23
(not growing, mind)
22:24 xenoterracide joined
jnthn The non-.finish case also doesn't segv for me, it just keeps on trucking. 22:24
lizmat r: my $a = \3; my $b = \3; say $a === $b # shouldn't this be True ? 22:27
camelia rakudo-parrot 3e1f32, rakudo-jvm 3e1f32, rakudo-moar 3e1f32: OUTPUT«False␤»
jnthn lizmat: Yes. 22:28
lizmat ok, then the test for that is wrong
jnthn Does your work on Capture.WHICH make it so?
lizmat that makes it return True 22:29
jnthn yeah, sounds right to me.
22:29 adu joined
lizmat $ perl6 -e 'my $a = \3; my $b = \3; say $a === $b' 22:29
True
jnthn \o/
lizmat spectest is expecting False
jnthn OK, then I think spectest is out of line with spec :)
lizmat so the test s wrong 22:30
jnthn ooh, it's going to be sunny here this week rather than soaking me on the walk to/from teaching :)
Mouq lizmat++
lizmat m: say \3 === \3 22:31
camelia rakudo-moar 91f41b: OUTPUT«False␤»
22:31 xenoterracide left, pmurias left
lizmat $ perl6 -e 'say \3 === \3' 22:31
True
22:31 xenoterracide joined
lizmat same thing, I think, fixing spectest 22:31
BenGoldberg n: say \3 === \3
camelia niecza v24-109-g48a8de3: OUTPUT«False␤»
22:35 rurban joined 22:36 xenoterracide left 22:37 colomon joined
jnthn Teaching tomorrow...guess I should sleep :) 22:37
'night o/
Mouq night jnthn! 22:38
adu good night
dalek kudo/nom: c855a0f | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Implement Capture.WHICH
22:39
ast: 2cde4fb | (Elizabeth Mattijsen)++ | S03-operators/value_equivalence.t:
Unfudge TODO's passing / fudge test for \@a

The value is probably wrong, because \@a gets flattened into Capture.$!list rather than having a single Array object in Capture.$!list[0]
22:39 rurban left
lizmat gnight jnthn! 22:39
Mouq r: .say for <j m p> Z=> (<29205 29573 29115> Z/ <31342 31567 31155>) 22:46
dalek kudo/nom: 442cdf8 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Naively implement "is cached" on Routines
camelia rakudo-parrot 91f41b, rakudo-jvm 91f41b, rakudo-moar 91f41b: OUTPUT«"j" => <29205/31342>␤"m" => <29573/31567>␤"p" => <1941/2077>␤»
Mouq m: say ($_*100).Int for <j m p> Z=> (<29205 29573 29115> Z/ <31342 31567 31155>) 22:47
camelia rakudo-moar 91f41b: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: *%_)␤ in sub infix:<*> at src/gen/m-CORE.setting:4154␤ in block at /tmp/nnoP4rsZ8s:1␤␤»
Mouq -_-
22:47 xenoterracide joined
Mouq Oh 22:47
m: .say for <j m p> Z=> ((<29205 29573 29115> Z/ <31342 31567 31155>) »*» 100)».Int 22:48
camelia rakudo-moar 91f41b: OUTPUT«"j" => 93␤"m" => 93␤"p" => 93␤»
Mouq m: .say for <j m p> Z=> ((<29205 29573 29115> Z/ <31342 31567 31155>) »*» 100)
camelia rakudo-moar 91f41b: OUTPUT«"j" => <1460250/15671>␤"m" => <2957300/31567>␤"p" => <194100/2077>␤»
Mouq m: .say for <j m p> Z=> ((<29205 29573 29115> Z/ <31342 31567 31155>) »*» 100).Num
camelia rakudo-moar 91f41b: OUTPUT«"j" => 3e0␤»
Mouq Hmm
m: .say for <j m p> Z=> ((<29205 29573 29115> Z/ <31342 31567 31155>) »*» 100)».Num 22:49
camelia rakudo-moar 91f41b: OUTPUT«"j" => 93.1816731542339e0␤"m" => 93.6832768397377e0␤"p" => 93.4520943668753e0␤»
dalek kudo-star-daily: 1f3b2ea | coke++ | log/ (5 files):
today (automated commit)
22:51
rl6-roast-data: 30f4207 | coke++ | / (6 files):
today (automated commit)
22:52 Mouq left, xenoterracide left
[Coke] (mojo6) i knew work made me forget something :) 22:57
dalek ast: 840d421 | (Elizabeth Mattijsen)++ | S02-names/is_cached.t:
Add tests for "is_cached"
22:58 colomon left 22:59 colomon joined 23:00 aindilis` left 23:03 aindilis joined 23:06 robinsmidsrod left, robinsmidsrod joined
dalek kudo/nom: 3aa101a | (Elizabeth Mattijsen)++ | t/spectest.data:
Add "is_cached" tests to roast
23:07
kudo/nom: 79167a1 | (Elizabeth Mattijsen)++ | docs/ChangeLog:
Some more Changelog updates
23:09
lizmat and sleep&
cognominal lizmat, how come %cache is lexical _into_ the trait_mod sub? /me suspects he should go to sleep too 23:11
it should be outside to cache anything?
23:21 pippo left 23:26 anaeem1 left 23:32 hoverboard left 23:35 dmol left 23:36 rurban joined 23:40 rurban left 23:41 ponbiki left 23:43 ponbiki joined, ponbiki is now known as Guest13666 23:45 Guest13666 is now known as ponpon 23:46 Alula_ left, Alula_ joined
cognominal r: sub a(|a) { say a.WHICH }; a 1; a 1 23:54
camelia rakudo-parrot 3aa101, rakudo-jvm 3aa101, rakudo-moar 3aa101: OUTPUT«Capture|(Int|1)␤Capture|(Int|1)␤»
cognominal r: sub a(|a) { say ~a.WHICH }; a 1; a 1 23:56
camelia rakudo-parrot 3aa101, rakudo-jvm 3aa101, rakudo-moar 3aa101: OUTPUT«Capture|(Int|1)␤Capture|(Int|1)␤»