»ö« 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:03 Hor|zon left 00:08 xenoterracide left
timotimo gtodd: it's not terribly much content, so you will likely not feel so bad after an archive binge :) 00:16
00:16 _slade_ joined
gtodd timotimo: I felt a bit peckish so a read S99 :-) 00:17
a read of S99 was my dessert 00:18
00:24 nbrown_ joined 00:29 nbrown_ left
timotimo :) 00:29
dalek osystem: bbf2d36 | tony-o++ | META.list:
DB::ORM::Quicky

Quick prototyping ORM, nothing cool or special to see here. (Def not for production or to replace DBIx)
00:32
00:32 xenoterracide joined 00:45 xenoterracide left 00:50 slavik left 00:52 xenoterracide joined 01:02 slavik joined 01:03 xenoterracide left, xenoterracide joined 01:06 cosimo left 01:07 cosimo joined 01:09 kurahaupo joined, kbaker joined 01:10 kurahaupo is now known as kurahaupp, kurahaupp is now known as kurahaupo 01:11 xenoterracide left 01:12 fhelmberger joined 01:13 Mso150 joined
dalek rl6-roast-data: a81ba73 | coke++ | bin/rakudo.moar (2 files):
Track today's change that made JIT the default
01:14
01:14 kurahaupo left, kurahaupo joined, kurahaupo left 01:16 kurahaupo joined, fhelmberger left 01:18 bjz_ left 01:23 xenoterracide joined 01:24 skarn joined 01:25 nbrown_ joined 01:28 kbaker left, avuserow joined 01:29 kbaker joined, xenoterracide left, nbrown_ left 01:32 kurahaupo left
BenGoldberg tony-o, I initially read DB::ORM::Quicky as DB::ORM::Quircky :) 01:32
01:33 kurahaupo joined
tony-o :-) 01:33
I'm not real inventive with names
01:35 nbrown_ joined 01:36 Mso150 left 01:37 Mso150 joined 01:44 Mso150_a joined, Mso150 left 01:49 Mso150_a left 01:54 FROGGS_ joined 01:56 Sqirrel left 01:58 FROGGS left, nbrown_ left 01:59 Hor|zon joined 02:04 Hor|zon left 02:05 noganex joined 02:08 noganex_ left 02:10 Sqirrel joined 02:36 kurahaupo left 02:57 kurahaupo joined 03:03 kurahaupo left 03:11 kbaker left 03:19 robins left 03:21 kurahaupo joined, robinsmidsrod joined 03:38 robinsmidsrod left, robinsmidsrod joined 03:44 BenGoldberg left
masak morning, #perl6! 03:48
m: say (<jet plane> (^) <network lag>) (^) <plane network> 03:55
tony-o sup masak
camelia rakudo-moar d60a8f: OUTPUT«set(jet, lag)␤»
masak m: say <jet plane> (^) <network lag> (^) <plane network>
camelia rakudo-moar d60a8f: OUTPUT«Too many positionals passed; expected 2 arguments but got 3␤ in sub infix:<(^)> at src/gen/m-CORE.setting:17981␤ in block <unit> at /tmp/Dmz0L7vPBz:1␤␤»
masak surely I should be able to do the latter too? 03:56
(a) because if nothing else, infix:<(^)> should left-associate
(b) because maybe it even chains? I dunno.
masak submits rakudobug
tony-o what is that even doing 03:58
m: <jet plane> (^) <network lag>
camelia ( no output )
tony-o m: say <jet plane> (^) <network lag>
camelia rakudo-moar d60a8f: OUTPUT«set(jet, plane, network, lag)␤»
tony-o is that a union? 03:59
masak tony-o: symmetric difference. 04:00
tony-o: "in one set or the other, but not in both"
tony-o: think XOR for sets.
04:00 Hor|zon joined
tony-o interesting 04:04
04:05 Hor|zon left
masak tony-o: commons.wikimedia.org/wiki/File:Venn0110.svg 04:14
tony-o i got it from the xor :-) 04:16
that is a cool image tho
well, the ones further down the page
pmichaud see my response to RT #12282 :) 04:18
er, #122882
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122882
pmichaud mainly, infix:<(^)> should list associate 04:19
imo, <jet plane> (^) <network lag> (^) <plane network> should result in <jet lag>
more to the point, <a network> (^) <b network> (^) <a network> should result in <b> and not <b network>, which is hard to do if (^) is left-assoc 04:21
masak pmichaud: I agree. that rhymes with infix:<^^> semantics, too. 04:22
pmichaud exactly.
masak pmichaud++
pmichaud anyway, the problem is the way infix:<(^)> is implemented in src/core/set_operators.pm 04:23
masak p6: say 1 ** Inf # [RT #85750]
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=85750
camelia niecza: OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
..rakudo-jvm d60a8f: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
..rakudo-{parrot,moar} d60a8f: OUTPUT«1␤»
masak the RT ticket says there are tests expecting this to be 1, but it's NaN on some systems.
I was curious to find out what IEEE 754 stands on the matter. 04:24
haven't found out yet.
my *expectations* of these regions of arithmetic, of the concepts 1/Inf/NaN, and of IEEE 754, though, tell me that either 1 or NaN are acceptable answers, but I don't know which. I'm pretty sure IEEE 754 has an opinion, and unless there's a really good reason to deviate, we shouldn't. 04:25
it's easy to argue for either:
(it should be 1) -- because 1 ** $anything is 1 04:26
(it should be NaN) -- because there's an inherent conflict between 1 ** $anything being 1 and $at_least_1 ** Inf being Inf, and so rather than resolve that, the sysstem has to give NaN. 04:27
this could be more formally argued using limits, but my hand-wavy argument shows the way, approximately.
04:27 kurahaupo left
tony-o lol 04:28
TimToady now in Mountain View, CA :) 04:30
04:31 sorear joined
pmichaud TimToady: o/ 04:36
pmichaud is looking forward to hackathoning again after a long absence 04:37
04:46 xenoterracide joined 05:00 xenoterracide left 05:12 fhelmberger joined 05:17 fhelmberger left 05:20 notfix is now known as xfix 05:35 ecocode joined
masak fwiw, Python (both 2 and 3) has 1 ** Inf as 1. gist.github.com/masak/675fbe68a6474a94b722 05:36
it doesn't have a reified symbol for Inf, hence the workaround with 1e3000. 05:37
05:37 anaeem1_ joined
masak steve.hollasch.net/cgindex/coding/ieeefloat.html lists a number of "Special operations", which is something like I was looking for. pow(1, Inf) -- or anything involving pow -- is notably absent. 05:38
ditto users.tkk.fi/jhi/infnan.html
05:51 chipotle left, chipotle joined 05:56 chipotle left 05:57 kurahaupo_ joined, ClarusCogitatio left 06:00 ClarusCogitatio joined 06:01 Hor|zon joined
masak lichtkind: thank you for hypothetical sofa and sandwich! blogs.perl.org/users/lichtkind/2014...unity.html 06:02
lichtkind: the feeling is reciprocated. :) though I don't have a sofa -- should really get one. 06:03
06:04 bartolin joined
masak I think lichtkind++'s post can be summarized as "community is a special type of acquaintance akin to friendship" 06:04
I'm not sure that fully covers/explains the concept of "community"... but I like the way it partially defines/explains it. 06:05
bartolin masak: S03-operators/arith.t mentions mathworld.wolfram.com/Indeterminate.html, as I understand it this argues in favour of 1 ** Inf == NaN
06:06 Hor|zon left 06:07 gfldex joined
masak bartolin: sure, I'm already concinced that *math* makes the argument for 1 ** Inf == NaN. 06:09
but IEEE 754 deviates from math in some places where it finds doing so convenient in a computing environment. 06:10
for example, 0 ** 0 06:11
m: say 0 ** 0
camelia rakudo-moar d60a8f: OUTPUT«1␤»
masak m: Inf ** 0
camelia ( no output )
masak m: say Inf ** 0
camelia rakudo-moar d60a8f: OUTPUT«1␤»
FROGGS_ timotimo: I don't think I can make it any faster than I did... my sample code took 14s with CAPHASH and now takes 17s
06:11 FROGGS_ left
bartolin ok, just wanted to note the link 06:11
masak bartolin: yes -- thank you.
bartolin: adding to ticket.
06:16 SamuraiJack_ joined, sorear left 06:17 sorear joined 06:18 vike joined 06:19 darutoko joined 06:21 Akagi201 joined 06:22 ghostlines joined 06:27 ghostlines left 06:28 gfldex left 06:35 vike left, Akagi201 left, Akagi201 joined 06:39 vike joined
jnthn morning, #perl6 06:42
06:43 Mso150_a joined
nwc10 good UGT, jnthn 06:44
(+0100)++ ?
jnthn Well, +0200 from UTC given it's still daylight savings, I think :) 06:46
nwc10 oh gosh, fail
agree, "this week" (and next week)
dalek ast: c9f80da | usev6++ | S02-literals/radix.t:
Change test for RT #107756
06:47
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=107756
06:53 zakharyas joined
dalek o: 1b5efbe | raydiak++ | bin/ufo:
Leave .pm(6) in compiled module names, like panda
06:53
o: ac25072 | moritz++ | bin/ufo:
Merge pull request #19 from raydiak/master

Leave .pm(6) in compiled module names, like panda
07:00 JimmyZ joined
bartolin a general question to tests and tickets: there are some tickets which complain about LTA error messages. given the error handling is improved: should we have tests which check for the specific (improved) error message (or parts of it)? 07:08
07:10 FROGGS joined
FROGGS bartolin: you'd check for typed arrays using throws_like 07:12
07:12 zakharyas left, FROGGS left, FROGGS joined 07:13 kjs_ joined
FROGGS bartolin: where you create the very same exception object, and compare its properties 07:13
07:13 ghostlines joined
bartolin FROGGS: well, but the error message (which end users see) could be LTA nevertheless (and thats what some of the tickets complain about) 07:13
FROGGS: yes, I've learned that already (checking for typed exceptions) ;-) 07:14
FROGGS bartolin: how can that happen when we know about the message pattern of that exception type?
bartolin FROGGS: oh, I misread your answer, sorry 07:15
FROGGS: basically, you said "Yes, check for typed exceptions _and_ error messages"?
FROGGS no 07:16
07:16 [Sno] left
FROGGS bartolin: the ex type has a message pattern... when we got the correct exception type we know the pattern is correct and so will be the displayed message 07:17
JimmyZ speaking of parametricity, what is parametricity? I google it and all about it is math in english
bartolin FROGGS: but what if someone changes the message pattern (but keeps the ex type)? 07:18
07:19 xfix is now known as notfix
FROGGS bartolin: the he/she either improved the message or he/she needs to get slapped :o) 07:19
07:19 MilkmanDan left 07:20 MilkmanDan joined
bartolin FROGGS: ;-) 07:20
FROGGS the reason we have exception types other X::AdHoc was to be able to not check the message directly, which is messy 07:21
JimmyZ nerver mind, I find it in www.fpcomplete.com/school/starting...pe-classes 07:22
bartolin FROGGS: I tend to agree that it should be enough to test for the correct exception type. 07:23
FROGGS: so said tickets (complaining about LTA error messages) could be closed once there are a) an appropriate typed exception and b) an adequate error message and c) a test for the correct exception type? 07:27
07:29 kjs_ left
FROGGS bartolin: yes, exactly :o) 07:29
bartolin FROGGS: fine, thanks for explaining!
FROGGS pleasure :o)
masak JimmyZ: see also en.wikipedia.org/wiki/Hindley%E2%8...m#Polytype which I think comes down to the same concept. 07:31
JimmyZ: I tend to see it as "type with an unbound type variable", that is, for something like `a -> a -> a`, you still have to specify what `a` is at some point before it's fully concrete. but keeping it general allows you to abstract over types and maps of types. 07:32
kind of like a "type family", I guess.
07:33 virtualsue joined
masak (a concept I don't think is established, but it sounds nice) 07:33
JimmyZ Does it solve type match problems? 07:34
JimmyZ doesn't know what problems is jnthn++ said 07:35
07:35 kjs_ joined
masak JimmyZ: `map` has type `[a] -> (a -> b) -> [b]`. this translates as "If you give me a bunch of a-type things, and a way to transform an a-type thing into a b-type thing, then I can give you a bunch of b-type things". 07:40
JimmyZ: it's great because it works no matter what you decide `a` and `b` need to be.
JimmyZ: I don't see where jnthn spoke of parametricity-related problems, sorry. 07:42
jnthn doesn't either... :)
Not sure I drank enough coffee to be smart enough to talk about parametricity yet today... :) 07:43
JimmyZ masak: irclog.perlgeek.de/perl6/2014-10-01#i_9441560 :P 07:45
masak: thanks, much easy to understand now 07:46
jnthn gets latest builds of everything 07:49
30s NQP build, 60s Rakudo build. :)
07:51 JimmyZ_ joined 07:53 leont joined, chipotle joined 07:55 JimmyZ left, JimmyZ_ is now known as JimmyZ, bjz joined 07:58 chipotle left 08:00 odc left, bjz left 08:01 odc joined
masak JimmyZ: glad my ramblings were of some help. 08:01
08:02 Hor|zon joined 08:04 kjs_ left, zakharyas joined 08:07 _slade_ left, Hor|zon left 08:09 jack_rabbit left, jack_rabbit joined
dalek kudo/nom: 178eec7 | usev6++ | src/core/Exception.pm:
Extend error message of X::Numeric::Confused
08:09
kudo/nom: f6d011d | lizmat++ | src/core/Exception.pm:
Merge pull request #315 from usev6/nom

Extend error message of X::Numeric::Confused
kudo/nom: 3f59306 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm:
Fix for #122882
08:11
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122882
lizmat $ 6 'say <a network> (^) <b network> (^) <a network>' 08:12
set(b)
08:12 Hor|zon joined, zakharyas left
lizmat #122882 can be marked as TEST NEEDED :-) 08:13
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122882
08:15 kurahaupo_ left 08:18 zakharyas joined 08:19 kurahaupo_ joined 08:23 ecocode left 08:24 ecocode joined 08:25 jack_rabbit left, jack_rabbit joined 08:26 jack_rabbit left, jack_rabbit joined 08:27 zakharyas left 08:28 ecocode left
lizmat timotimo++ timotimo++ timo++ for 2.5 week of Perl6 weekly :-) 08:29
08:30 dakkar joined 08:33 jack_rabbit left 08:37 Mso150_a left 08:39 kjs_ joined
nine FROGGS: but the whole point of tests is to detect if something got inadvertently broken. To slap someone for making an error message worse you have to know that it's changed in the first place. 08:40
FROGGS nine: true, but still, checking error message texts that that interpolate variable and/or type names and other stuff is error prone 08:41
what I wanted to say is that we have to trust our devs when someone changes a error message template of a types exception 08:42
sjn reads timotimo's p6weekly post
nine FROGGS: so it's a consideration between risking false positives in tests here and there and missing an actual user visible bug in your product. 08:43
FROGGS yes 08:44
08:48 [Sno] joined
jnthn reads the p6weekly to see what he might have missed in the last weeks :) 08:50
timotimo++ for writing it :) 08:52
08:57 zakharyas joined, zakharyas1 joined 08:58 zakharyas left 09:09 pecastro_ joined 09:11 pecastro left 09:13 fhelmberger joined 09:18 fhelmberger left 09:21 kurahaupo_ left 09:22 ibo2perl6 joined
ibo2perl6 hi #perl6 09:23
m: say bag (^12).roll(49_000)
camelia rakudo-moar d60a8f: OUTPUT«bag(2(4037), 7(4045), 1(4070), 11(4100), 4(4112), 9(4038), 5(4137), 10(4107), 3(4108), 0(4134), 8(4090), 6(4022))␤» 09:24
ibo2perl6 m: say bag (^12).roll(50_000)
camelia rakudo-moar d60a8f: OUTPUT«bag(0(4136), 11(4186), 6(4137), 8(4171), 3(4225), 1(4195), 10(4107), 2(4174), 4(4097), 9(4145), 5(4164), 7(4263))␤»
ibo2perl6 m: say bag (^12).roll(60_000)
camelia rakudo-moar d60a8f: OUTPUT«(timeout)» 09:25
ibo2perl6 locally I get an error: arg flag is empty in slurpy positional
09:25 Hor|zon left
ibo2perl6 m: say bag (^12).roll(50_000) 09:25
camelia rakudo-moar d60a8f: OUTPUT«bag(4(4146), 3(4289), 1(4214), 9(4087), 2(4131), 6(4143), 5(4198), 7(4191), 8(4145), 0(4097), 10(4169), 11(4190))␤» 09:26
09:26 Hor|zon joined
jnthn ibo2perl6: What version are you running? I know I fixed a bug in large bag construction a week or so ago... 09:27
ibo2perl6 This is perl6 version 2014.09 built on MoarVM version 2014.09
09:28 fhelmberger joined
ibo2perl6 jnthn: oh great you must have fixes it jbthn++ 09:28
masak yes, one week old rakudo is way too old ;) 09:30
ibo2perl6 jnthn: Can I unite 2 bags? 09:31
jnthn rt.perl.org/Ticket/Display.html?id=122810 was the ticket... 09:33
ibo2perl6: Unite as in union? 09:34
ibo2perl6 Jnthn: Yes. somehing like $bigBag = $b1 + $b2 09:36
jnthn Good news all: I think I found the hard-to-find inlining + GC bug. Turns out it was a bad interaction involving all of GC, inlining, type logging, AND continuations... 09:37
ibo2perl6: Try the union operator; think you can write the Unicode union char, or the ASCII version (|) 09:38
ibo2perl6 m: bag (^12).roll(50) ∪ bag (^12).roll(50) 09:40
camelia ( no output )
ibo2perl6 m: say bag (^12).roll(50) ∪ bag (^12).roll(50)
camelia rakudo-moar 3f5930: OUTPUT«bag(bag(4(6), 5(6), 6(4), 3(7), 11(10), 2(5), 9(3), 10(7), 8(6), 0(4), 1(4), 7(4)))␤»
jnthn .u ∪ 09:41
yoleaux U+222A UNION [Sm] (∪)
jnthn Hm, why's my font make it look odd :)
09:44 yeahnoob joined 09:45 yeahnoob left, yeahnoob joined
jnthn hah, with TEST_JOBS=10 on this box and the startup time improvements, I often get "make test" reporting 1s now :) 09:50
yeahnoob Yesterday I try to compile perl6-bench on my 1G RAM Ubuntu server, and it make the server down. Hehe:) 09:51
github.com/japhb/perl6-bench
FROGGS jnthn: we still have the deal to get stage parse down to 20s on my box this year :o)
jnthn FROGGS: Well, how far off are we?
On my box we're in the 26s-27s range... :) 09:52
FROGGS jnthn: 34s
jnthn darn
FROGGS err, 14s away
or off*
jnthn OK, so twice as much as we need to win on mine.
I'm 8s or so on my box off entire CORE.setting build (all stages) being within 30s. :) 09:53
FROGGS wow :o) 09:55
timotimo do you know of the linux distro that ships the kernel as source code plus a tcc that compiles it on boot? 09:56
since tcc is so tiny that it mostly fits into the cpu cache, it's still surprisingly fast to come up
or so i'm told
09:57 Akagi201 left, Akagi201 joined 09:58 vendethiel left 10:08 elimik joined 10:09 kurahaupo_ joined
dalek p: 5107793 | jnthn++ | tools/build/MOAR_REVISION:
Get MoarVM with a couple of SEGV fixes.
10:11
kudo/nom: 230233b | jnthn++ | tools/build/NQP_REVISION:
Bump to get latest MoarVM, with SEGV fixes.
10:13
ast: 54b2715 | jnthn++ | S12-attributes/clone.t:
Add a test for type object clone not crashing.
10:15 Hor|zon left
ibo2perl6 m: <1 2 3>.Bag ∪ <1 2 2>.Bag 10:16
camelia ( no output )
ibo2perl6 m: say <1 2 3>.Bag ∪ <1 2 2>.Bag
camelia rakudo-moar 3f5930: OUTPUT«bag(1, 2(2), 3)␤»
ibo2perl6 i was expecting bag(1(2), 2(3), 3)
jnthn Uh...I think I would do...
jnthn hasn't been paying a lot of attention to the set/bag bits, alas... 10:17
s/would do/would too/ 10:18
10:18 denis_boyun_ joined
jnthn lizmat: If you're about, you might have an opinion on the bag thing above... :) 10:18
masak jnthn, ibo2perl6: nope. 10:19
you're using the *set* union operator ;)
m: <1 2 3>.Bag ⊎ <1 2 2>.Bag
camelia ( no output )
masak m: say <1 2 3>.Bag ⊎ <1 2 2>.Bag
camelia rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(3), 3)␤»
jnthn masak: Ohhh... 10:20
masak: What's the ASCII form of that one? :)
masak in Perl 6, the *operator* determines the coercion, not the operands.
ibo2perl6 masak: oh cool! where is that documented?
jnthn masak: Well, that kinda makes sense except...if it's set union, why do we get a bag result, not a set result?
ibo2perl6: Turns out it's listed on doc.perl6.org/language/Sets_Bags_and_Mixes 10:21
masak jnthn: infix:<(+)>, it seems. 10:22
jnthn: because returning a set would be lossy compared to returning two set-union'd bags? 10:23
jnthn: ...I honestly don't know.
nine ibo2perl6: that operators determine types instead of operands has been fundamental in Perl pretty much forever.
jnthn masak: OK. It's just that things that paradigm-coerce also tend to return a type matching the paradigm used :)
10:25 FROGGS left, FROGGS joined
masak jnthn: yes, agreed. 10:25
m: say (<1 2 3>.Bag ∪ <1 2 2>.Bag).Set 10:26
camelia rakudo-moar 3f5930: OUTPUT«set(1, 2, 3)␤»
10:26 Sqirrel left
masak the more I think about it, the more I *would* expect Set-union to return a Set. 10:26
what's the use case for "no, I want a Bag, but I want to perform Set-union of the two Bag operands"? 10:27
in order to get more clarity in the matter, I hereby declare myself to belong to the political camp which considers infix:<∪>(Bag, Bag) to wrongly return Bag today, rather than Set. 10:28
jnthn masak: It would certainly ahve made me less confused :)
masak joins "Occupy ∪"
jnthn :P 10:29
10:32 JimmyZ left 10:33 Hor|zon joined
lizmat well, if that's the way you want it, we can make it that way... 10:39
10:39 psch joined
lizmat fwiw, I mostly just ported colomon's set work on niecza to rakudo 10:39
psch hi #perl6 10:40
Callables and binding of $/ has me stumped: gist.github.com/peschwa/ca9e9451d9da19f29c73
i'd expect $call() to give me the $0 from the $/ in the surrounding scope, but it seems to be the one from the declaring scope?
er, scope surrounding the declaration is probably a clearer formulation 10:41
i notice i forgot adding output...
jnthn $0 is $/[$0]
Which compiles into something like getlex('$/')[0] 10:42
$/ may be dynamically *visible*, but it is lexically resolved.
masak lizmat: I don't know if that's the way I want it, though.
lizmat: maybe there is something incredibly clever or useful about the way it's currently set up.
jnthn lizmat: Probably warrants discussion with colomon, TimToady, etc. before jumping in and changing it. 10:43
lizmat fwiw, shown like that, it doesn't make sense to me either
masak lizmat: I just ask that my reason for making it consistent in the way other operators work be weighed against the awesome use case I can't spot right now ;)
jnthn masak: It is possible there isn't such a use-case and the way it is now is an accident. :) 10:45
But yeah, I'm quite open to being shown such a case too :)
masak I bet colomon'd know. or TimToady. 10:47
psch jnthn: ok, so my expectation wasn't quite correct. use-case here is the closure tests for .trans, e.g. '[36][38][43]'.trans(/\[(\d+)\]/ => {chr($0)})
github.com/peschwa/rakudo/blob/imp...r.pm#L1111 (and around there) is what i have
might well be that i *still* don't quite understand how exactly LSM works... :) 10:48
colomon Hmmm? The way union on Bags works now is no accident. 10:49
and I've recently used it in a conceptual sense
psch my question probably would be "how do i get the closure to get the outer $/ instead of lexical $/?", with a side of "...unless there's a better way i don't see"
lizmat masak: looking at the implementation, it should give what we all think it should :-( 10:50
jnthn psch: I think .subst does it by updating the caller's $/
lizmat m: say <1 2 3>.Bag ∪ <1 2 2>.Bag # wrong
camelia rakudo-moar 3f5930: OUTPUT«bag(1, 2(2), 3)␤»
lizmat m: say <1 2 3>.Bag (+) <1 2 2>.Bag # right 10:51
camelia rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(3), 3)␤»
jnthn m: say <1 2 3>.Bag (|) <1 2 2>.Bag
camelia rakudo-moar 3f5930: OUTPUT«bag(1, 2(2), 3)␤»
psch jnthn: ok, thanks.
lizmat ah, ok... jnthn thanks
jnthn lizmat: Just to make sure we're understanding it the same, it's ∪ that has (|) as it's ASCII version...
lizmat yup 10:52
jnthn lizmat: And (+) is the bag union
lizmat see that now :-)
jnthn colomon: My question really is, if (|) is set union and (+) is bag union, why does (|) on two bags return a bag, not a set?
lizmat yeah, that feels weird
colomon It's the names for the operators which are strange, not what they do. 10:53
"set union" returns the maximum quantity of each key in its input.
"bag union" returns the sum of the quantities of each key in its input
10:54 bjz joined
colomon both operations make perfectly good sense on Bags and returning Bags 10:54
jnthn m: say <1 2 3>.Bag ∪ <1 2 2 1 2 2>.Bag
camelia rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(4), 3)␤»
jnthn Aha
OK, now I understand what's going on
lizmat colomon: shouldn't that be 2(5) ?
colomon It would probably make more sense to call "bag union" "bag sum" 10:55
lizmat: no, because it's taking the max quantity, not the sum of the quantities
lizmat aha.. ok
jnthn m: say <1 2 3>.Bag (|) <1 2 2 1 2 2>.Bag
camelia rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(4), 3)␤»
jnthn m: say <1 2 3>.Bag (+) <1 2 2 1 2 2>.Bag
camelia rakudo-moar 3f5930: OUTPUT«bag(1(3), 2(5), 3)␤»
colomon just like when you take the union of two sets, you don't get a Bag if there are duplicate members
10:55 chipotle joined
jnthn colomon: OK, I can see how you might usefully want both of those. 10:55
And yeah, the names I/we used for them were confusing matters. 10:57
colomon++
colomon note that the texas names accurately convey what is going on: (&) is minimum quantity, (|) is maximum quantity, (+) is sum of quantities
TimToady++ # I'm just remembering. ;)
jnthn tries to remember this for next time he's looking at such a problem. 10:58
I suspect I still lean to doing a few things with hashes etc. that I could use bags for and get a much more elegant result...
colomon jnthn that's probably not a bad instinct, I think using Hashes directly is still significantly more efficient. 10:59
jnthn colomon: At the moment perhaps. 11:00
colomon wrote if "datakit" ∈ @translators in some $work code yesterday, and it made him very happy
masak \o/
jnthn colomon: That's more a consequence of Hash having had a lot more optimization time
masak colomon: though if that's in a hot path... :)
colomon jnthn: sure.
11:00 chipotle left
colomon masak: that happens once in the program execution. 11:01
lizmat FWIW, sets/bags/mixes would benefit from fast typed hashes in the core
masak colomon: ah :)
colomon and the script itself isn't one I need to run very often, so if it's a bit slower than it has to be, that's fine. :)
lizmat I couldn't use typed hashes, as they don't currently work in the core :-(
jnthn lizmat: Yeah, that's partly why I spent a chunk of my plane ride yesterday reading papers and pondering how to push parametricity down into the 6model level 11:02
colomon jnthn++ 11:03
lizmat S02:3622 states that "$a = Parcel.new('a');" is the same as $a = (< a >,)
synopsebot Link: perlcabal.org/syn/S02.html#line_3622
jnthn lizmat: The way we do typed hashes (and arrays) right now has multiple issues, and are mostly a case of "build them out of what we have now" rather than "this is how they want to be"
lizmat yeah, I got that... and that also goes for sets / bags / mixes :-) 11:04
m: say Parcel.new("a")
camelia rakudo-moar 3f5930: OUTPUT«Default constructor for 'Parcel' only takes named arguments␤ in method new at src/gen/m-CORE.setting:923␤ in block <unit> at /tmp/RhkUgOje7n:1␤␤»
lizmat I've been bitten by Parcel.new not working before
is that a NYI, or is there a deeper reason this doesn't work ?
jnthn m: say Array.new(1,2,3) 11:05
camelia rakudo-moar 3f5930: OUTPUT«1 2 3␤»
jnthn It's certainly surprising to me that Parcel doesn't behave like that.
colomon masak: that's the great thing about many of the ways I use Perl for $work -- speed isn't that important because it's things that get run only occasionally in my build process. So converting to p6 today doesn't really have any drawbacks. (Mind you, this particular script was brand new.)
jnthn Needs writing very carefully, mind.
lizmat Parcel just doesn't have its own method 'new'
jnthn Since it should not enforce any context
So must be done with vmargarray or whatever it's called 11:06
lizmat yeah, I thought so... :-)
let me try that and see what breaks
jnthn And remember to shift off the invocant before wrapping it in a Parcel ;)
11:10 bartolin left
lizmat
.oO( grumble, nqp::p6argvmarray and nqp::p6parcel are not documented :-)
11:13
11:19 anaeem1_ left 11:25 notfix is now known as xfix 11:29 ghostlines left
dalek kudo/nom: 9814e86 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
Make Parcel.new('a') work as specced
11:29
11:31 ghostlines joined 11:36 darutoko- joined
dalek ast: 8f1def5 | (Elizabeth Mattijsen)++ | S02-literals/radix.t:
Fix test wrt to type of exception
11:38
ast: c7afefb | (Elizabeth Mattijsen)++ | S12-attributes/clone.t:
Merge branch 'master' of github.com/perl6/roast
ast: 4bc5f70 | (Elizabeth Mattijsen)++ | S02-types/parcel.t:
Add some Parcel.new tests
11:40 darutoko left, darutoko joined 11:41 darutoko- left 11:46 Hor|zon left
masak timotimo: typo spotting: s/lazyness/laziness/ in p6weekly.wordpress.com/2014/09/08/2...mizations/ 11:52
timotimo++ for p6weekly
also, overcorrection in "Until The Big List Refactor has happened, the performance of lists, list iteration, lazy lists and so on are going to be suboptimal" -- s/are/is/, as "the performance" is singular. 11:56
12:00 ghostlines left 12:02 ghostlines joined 12:03 bartolin joined 12:05 JimmyZ joined 12:06 dakkar left
grondilu Stage parse : 566.323 12:07
^usually around 200
jnthn grondilu: Helpful if you can specify backend... 12:09
grondilu MoarVM, today's update 12:10
it may be due to an excess of swap, though. I'm closing browser windows right now.
jnthn Yeah, I suspect so...my builds of Moar today have all had very normal times 12:11
60s for the full build, a bit under 40s of it on setting, and 26s or so parse....
lizmat mine as well
jnthn uh, builds of Rakudo on Moar
12:11 dakkar joined
grondilu not related: any hope of supporting 32bit JIT soon? 12:12
FROGGS hmmm, my guess is that it won't be soon, since it might make more sense to improve it on x64 first 12:19
and port it at the "end" 12:20
12:20 pepl left 12:23 pepl joined
moritz my guess is that it won't be seen, because nobody's working on it (afaict) 12:31
FROGGS maybe brrt pops in and replies :o) 12:34
jnthn s/seen/soon/? :) 12:36
But yeah, it's some work, I imagine 12:37
Since less registers so will need to spill more to the stack, different calling conventions, everything that deal with 64-bit integers probably has to change... 12:38
FROGGS hmmm, so it might not be a goal at all? 12:41
yeahnoob I thought, the 32bit System&CPU will be only available in the Embedded environments, in several years later. 12:48
grondilu tries to find a name for a subset of Real where * != 0. Suggestions?
grondilu would find NonZeroReal quite lame 12:49
jnthn Real-yNotZero 12:50
moritz grondilu: Real-but-not-Naught
grondilu I can't use "Real!" as subset name, can I?
moritz nope
dalek kudo-star-daily: ec06b0d | coke++ | log/MoarVM-version.log:
today (automated commit)
12:51
lizmat
.oO( UnNaughty )
[Coke] looks like java was updated on host08 (moritz++) will try a java run again later today.
grondilu considers Rea1 12:52
[Coke] f
ruoso RealButTrue 12:54
FROGGS [Coke]: can you ping me with your results afterwards?
[Coke] ooh, I'm in time, I'll re-enable jvm for today. 12:55
grondilu m: say so -1
camelia rakudo-moar 9814e8: OUTPUT«True␤»
grondilu ruoso: ^ 12:56
grondilu considers DReal (for "Divisible Real")
ruoso well, 0 is divisible 12:57
grondilu ?
ruoso you can't divide by it
but you can divide it
grondilu oh yeah
IReal or InvReal, then I guess 12:58
too bad "Inversible" begins with the same two letters as "Integer" 12:59
ruoso I didn't understand what you tried to say before, why isn't RealButTrue appropriate?
grondilu because negative Real are still true
oh wait
ruoso Right, but you said != 0
grondilu right, my bad
"But" looks too much like role composition, though. 13:00
But I can go for TReal for "True Real"
ruoso I'm not sure the reference to role composition is wrong 13:01
it is a value that is a Real and is True
I always thought of the mathematical number sets as roles 13:02
grondilu the problem is that it would suggest it is actually implemented with a role composition, which it won't. It'll be a subset. 13:03
ruoso You can always call it RomanReal... since the romans didn't have 0 :)
tadzik :D
that's awesome
13:03 Hor|zon joined
grondilu considers just "Roman" 13:04
grondilu remembers Romans did not have real numbers
I think I'll go with TReal 13:05
(or maybe TrueReal)
JimmyZ NonZeroReal 13:06
or NoZeroReal ...
NotZeroReal? 13:07
grondilu it's just too long for my taste 13:08
masak RealNZ
JimmyZ NZReal
masak ReNZal 13:09
grondilu on the other hand I'm not supposed to write it often, so maybe NonZeroReal is fine.
ruoso new zealand has a different number system?
ruoso stops trolling now...
masak ruoso: they use a maoreal number system.
JimmyZ I think NonZeroReal is easy to understand for others too
grondilu JimmyZ: yeah, that's also a point.
masak NonZeroReals form a group under multiplication. 13:10
moritz grondilu: some physicists use "finite" for "non-zero" (because the inverse is finite)
13:13 kurahaupo_ left 13:19 clkao is now known as clkao_ 13:20 clkao_ is now known as clkao 13:23 guru joined 13:24 guru is now known as Guest30500, Guest30500 is now known as ajr_
lizmat m: my $y = 42; sub a { state $x := $y }; say a # would expect 42 ? 13:24
camelia rakudo-moar 9814e8: OUTPUT«(Mu)␤»
13:25 kbaker joined
lizmat m: my $y = 42; sub a { state $x = $y }; say a # not binding works as expected 13:25
camelia rakudo-moar 9814e8: OUTPUT«42␤»
woolfy oO(looking forward to Austrian Perl Workshop, nice people, hackathon with lots of Perl6-people)
lizmat maybe the binding case should be disallowed? What does it mean to bind the variable only once ?
jnthn lizmat: We implement state as "keep the containers around from invocation to invocation" 13:27
FROGGS woolfy: I read that as: "nice people and Perl6-people" :P
jnthn lizmat: So yeah, if you go re-binding the container...well...surprise...
lizmat but it is silent right now, so maybe it should blow up ? 13:28
jnthn I dunno. Maybe it's useful for something... :)
pmichaud FROGGS: Perl6 people are nice people at another level :)
good morning, #perl6
woolfy FROGGS: you read that right, you un-nice Perl-6-ish bastard of a German Frosch! :-( Oh, wait, it does not mean that at all, rather the oppositie.
\o/ pmichaud 13:29
FROGGS hi pmichaud :o)
woolfy: *g*
woolfy FROGGS: I will give you a hug to make you remember how nice you are!
FROGGS woolfy: I was about offering that, hehe 13:30
jnthn hi pmichaud :) 13:31
psch t/spec/S05-transliteration/trans.rakudo.moar (Wstat: 0 Tests: 60 Failed: 0) TODO passed: 28, 31-34, 36-40, 45-46
pmichaud jnthn: o/
psch \o/
lizmat m: my $y = 42; sub a { once my $x := $y; ++$x }; say a; say $y # make state visible outside ???
camelia rakudo-moar 9814e8: OUTPUT«43␤43␤»
jnthn pmichaud: Glad you'll be making it to the hackathon. \o/
FROGGS psch++ # was that you?
psch ...except that i had to adjust #46 for that
pmichaud jnthn: me too!
psch FROGGS: i'm fiddling with it, yeah
FROGGS psch++ # again :o)
pmichaud unless others have better suggestions, I'm thinking I'll focus on S07 at the hackathon
FROGGS pmichaud: TimToady is also musing about that as far as I understand 13:32
lizmat m: my $y = 42; sub a { once my $x := $y; ++$x }; sub b { once my $x := $y; --$x }; say a; say $y; say b; say $y # jnthn: sharing state between blocks ?
camelia rakudo-moar 9814e8: OUTPUT«43␤43␤42␤42␤»
pmichaud FROGGS: yes, which means the hackathon might be a good place for us to _finally_ resolve a lot of stuff there :) 13:33
S07 has been hurting for.... well, since well before Rakudo Star :)
FROGGS pmichaud: yes, exactly :o)
jnthn pmichaud: I think a lot of us will focus on that at the hackathon. ;)
dalek ast: a9bfb14 | (Pepe Schwarz)++ | S05-transliteration/trans.t:
Correct a test.
psch ^^^ that's the test that didn't make sense before, in my understanding
lizmat jnthn pmichaud: it would be my goal to have clarity on what will be in 6.0 and what not 13:35
pmichaud lizmat: +1
FROGGS ohh yes
and write it down and assign (concrete) tasks 13:36
lizmat FROGGS: indeed
maybe not assign but at least identify
masak pmichaud! \o/
woolfy oooww, lizmat made her secret goal for the APW-hackthon public now... 13:37
lizmat or maybe assign in the way of "project manager" rather than developer
jnthn woolfy: It was a secret? :)
masak lizmat: +1 13:38
13:38 FROGGS[mobile] joined
masak not being able to be there in person, my plan is to astral-project to APW and the hackathon, and then haunt you in the form of a poltergeist. 13:38
er, I mean, I plan to pay a lot of attention to IRC while it happens. 13:39
lizmat
.oO( don't knock it! )
colomon \o/
lizmat
.oO( we should stay clear of the light )
woolfy jnthn: not to me... 13:40
colomon will be following masak's example. 13:41
masak poltertwins! 13:42
geekosaur polterguests 13:43
13:43 FROGGS left
lizmat and we may want to call it the 'Salzburg Consensus' :-) 13:44
13:46 FROGGS joined
lizmat jnthn (or anybody else): ideas of allowing "state $a := $b" as a way of sharing state between scopes ? 13:47
jnthn lizmat: I...hmmm.. 13:48
lizmat I guess the thing to be sharing with could be a parameter
jnthn lizmat: Trouble is, it creates variables at first-entry-of-a-closure-clone.
masak clearly Salzburg itself must at some point have been the consensus between two previous cities, Säureburg und Baseburg.
jnthn lizmat: And stashes them away. 13:49
lizmat: And then re-instates them for each follow-up entry to the scope
lizmat ah, a subtle difference between 'once my $a' and 'state $a', right ? 13:50
once would only execute once ever, whereas state would be done for each new closure ?
dalek ast: afdcba5 | pmichaud++ | S03-operators/set.t:
Add test for RT #122882 - symmetric difference with 3+ args.
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122882
pmichaud feels good to close an RT ticket :) 13:52
jnthn lizmat: once also has state semantics.
lizmat: 'cus it's done using a state var, iirc?
And was once called START...and I know I impl'd that with a state var...
13:52 ajr_ left
lizmat ah, ok :-) 13:53
jnthn But "once my $a" doesn't say anything about $a staying around...
[Coke] [A
lizmat ah, yes, good point :-)
.oO( duh! )
jnthn The problem with trying to come up with a model other than what Moar/JVM do now, is that you need to hook scope exit and write back any re-bound changes... 13:54
13:54 ajr joined, ajr is now known as Guest62709, Guest62709 is now known as ajr_
lizmat well, all of this was because of a question of Father Chrysostomos (a very productive p5p contributor) on p6l 13:55
13:55 molaf joined
jnthn OK. Well, I'll leave it at, I'm happy enough with the current semantics, so unless TimToady++ feels they have to chnage, then I'm not inclined to do much about the status quo. 13:56
(Where by "the current semantics" I mean, what Moar does, and I'm about certain what we do on JVM. I don't actually know how things are on Parrot.) 13:57
lizmat eh, but the current semantics silently do the wrong thing, no ?
jnthn lizmat: Depends how you define the semantics of state. 13:58
lizmat: Note that if you go binding a temp or let var you are in equal trouble. 13:59
moritz wouldn't mind compile-time disallowing rebinding temp/let/state vars
jnthn 'cus those are certainly about value, not container
lizmat moritz +1
jnthn I took state to be wanting the same semantics
Yeah, I could go with a conservative approach of "just disallow it"
lizmat I'll answer FC 14:00
14:04 SamuraiJack_ left
pmichaud I'm afk for a while again 14:04
14:06 kaare_ joined 14:11 molaf left
psch t/spec/S17-procasync/print.rakudo.moar (Wstat: 0 Tests: 16 Failed: 0) TODO passed: 12-14 14:11
that surprised me? is trans somehow involved or are those 3 all flapping? 14:12
wait, the test file says the one after those flaps...?
dalek ast: 8cfc793 | (Elizabeth Mattijsen)++ | S03-operators/set.t:
Fix test count
jnthn psch: Flappin,g I think...
lizmat yeah, flipflapping :-)
14:12 Possum left
moritz once I even got a test failure from that file 14:13
psch github.com/rakudo/rakudo/pull/317
14:13 Possum joined
psch i still feel i haven't treated LSM quite as i should, but the tests say it's ok 14:14
that might mean there's not enough tests :)
14:16 FROGGS left 14:30 FROGGS joined 14:42 kurahaupo_ joined 14:59 chipotle joined 15:00 xfix is now known as possiblynotfix 15:03 chipotle left
lizmat cycling& 15:03
15:09 mls joined 15:23 molaf joined 15:24 ajr_ left, guru joined 15:25 guru is now known as Guest30849, Guest30849 is now known as ajr_
masak lol! 15:31
I blogged! o.O
strangelyconsistent.org/blog/macros...long-break
FROGGS O.o
masak I just want to add that I feel really good about this. 15:32
a special "thank you" goes out to Ven++, who did not make an appearance in the blog post, but who has influenced and inspired my thinking a lot recently, and with whom I expect to have similarly stimulating discussions in the future. 15:33
pmichaud masak++ 15:37
15:40 ghostlines left
PerlJam pmichaud! 15:41
o/
15:44 Hor|zon left
PerlJam rereads 2012 advent day 23 to refresh his p6-macros model 15:45
15:46 Hor|zon joined
[Coke] ok, jvm run today (on oracle jvm) -seems- faster. 15:48
15:48 denis_boyun_ left
[Coke] moritz++ 15:49
15:51 zakharyas1 left
PerlJam [Coke]: Improvement perceived is improvement achieved? :) 15:52
15:52 Hor|zon left
jnthn masak: Nice post 15:52
15:53 pepl left
masak thx 15:53
jnthn didn't blog in aaaages either :) 15:55
15:59 fhelmberger left
PerlJam masak++ a very nice post indeed. 16:01
16:02 yeahnoob left, darutoko- joined
JimmyZ masak++ 16:03
16:04 possiblynotfix is now known as xfix, darutoko left 16:08 JimmyZ_ joined 16:10 JimmyZ left, JimmyZ_ is now known as JimmyZ 16:11 erkan left, beastd joined, fhelmberger joined, JimmyZ left
grondilu m: (my %).pairs == 0; # should this really warn?? 16:11
camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
16:12 erkan joined, erkan left, erkan joined
grondilu got "use of uninitialized value of type Nil in numeric context" 16:13
timotimo well, (my %) is the hashes type object, no? 16:14
16:15 fhelmberger left
FROGGS m: (my %).pairs.elems == 0; # this should not warn 16:16
camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
moritz masak++ # macro post 16:17
16:17 darutoko joined
moritz masak: I don't know if I've expressed the thought before here, but I nevere expected rw access to a QAST tree; rather high-level wrapper objects around QAST + World 16:18
16:18 Hor|zon joined
moritz masak: and having read large (and written small) parts of Actions.nqp, I don't know if that's feasible at all 16:19
masak: hence, I'm excited about your upcoming posts :-) 16:20
16:20 darutoko- left 16:23 Hor|zon left 16:25 sivoais joined 16:27 darutoko- joined 16:29 elimik left 16:30 darutoko left 16:31 darutoko- left, darutoko joined
timotimo are we too late to get projects idea in for perl's participation in gnome's outreach program for women? 16:41
it seems like at the moment the project ideas are 1) working on dancer, 2) working on metacpan 16:42
16:44 laben joined
laben hi perl6 :) 16:44
[Coke] We could abolutely come up with some perl 6 stuff
timotimo hi laben
[Coke] laben: hio
timotimo [Coke]: i don't know the details of that program, but i expect we'll be expected to provide mentoring like in the GSoC 16:45
laben i bring good news! after rebuilding from latest git, i cannot reproduce the segfault anymore
timotimo hooray 16:46
is this related to the inlining segfault jnthn has fixed today?
laben i honestly hope it's that and not a heisenbug
16:47 molaf left
colomon is trying to decide if it's worth cleaning off his desk to make a spot for the ancient PowerPC iMac from the basement. 16:47
timotimo i feel you; heisenbugs are nasty to track down
laben btw i updated ufo too since i saw a commit there and that helped fix another thing that bugged me, so today is a good day for my use of perl6 :) 16:48
jnthn laben: Well, did the segfault go away before if you set MVM_INLINE_DISABLE? Or did you not try that?
uh, MVM_SPESH_INLINE_DISABLE...
If it did, there's a very good chance my fix did it. :)
16:48 erkan left
jnthn (Since I fixed the only inlining-related segv I'm aware of us having.) 16:49
laben jnthn: i did try that but did not work, but according to my logs i tried MVM_INLINE_DISABLE, not MVM_SPESH_INLINE_DISABLE
timotimo oh, then it might be something else
laben i only saw that error when i went to see the code
16:49 pepl joined
laben MVM_INLINE_DISABLE desn't exist 16:49
doesn't* 16:50
timotimo that's right
laben it would be better to document those environment vars...
jnthn Somebody did... 16:51
Recently, though
laben where?
timotimo in the man page draft
it'd be called moar.pod i believe
moritz it's in docs/moar.pod
jnthn moritz++
japhb
.oO( Autosuggest for typoed MVM_* envvars )
jnthn we should maybe make moar --help include 'em... 16:52
japhb That's definitely a good idea
grondilu m: say so (my %).keys.map({rand}).all == 1;
japhb masak++ # Excellent macro blog post 16:53
camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
grondilu m: say ().all == 1;
camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
timotimo i believe in micro evolution, but i think macro evolution is just a hoax
m: say "hi" 16:54
camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
laben oh, indeed they are there, maybe render it into a simple format and install it with a make target
is there some pod->man modules ready? 16:55
timotimo that's why moritz decided to write it as a .pod, pod2man exists and is apparently pretty good
16:55 PZt left
laben ofc, it's there in the core lib, let me try it 16:57
16:58 pmurias joined
pmurias masak: do we have a list of macro 'use cases'? 17:00
yoleaux 28 Sep 2014 04:17Z <jnthn> pmurias: I'm fine with 4c5981159e being put in master
17:01 chipotle joined 17:04 dakkar left 17:06 chipotle left 17:09 vendethiel joined
vendethiel thanks masak++ :). Also always up for a chat! 17:09
17:09 pecastro_ left
timotimo m: use cases; 17:10
vendethiel (and btw, if you want to steal more from common lisp, I've got plenty of ideas. Restarts, pandoric macros and other codewalkers)
camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
vendethiel timotimo: there are no use cases for a timeout, it seems.
17:11 pecastro joined
vendethiel
.oO( does that mean we get to throw away that turing-completeness thingie? )
17:11
moritz laben: iirc rakudo's Makefile already uses pod2man
flussence whee, that bash thing hasn't been fixed properly... 17:12
moritz though maybe only when the parrot backend is used
flussence «foo='() { echo not patched; }' bash -c foo» is today's test...
vendethiel Re-reading the syn another time, I realize I'm starting to "know" Perl 6. 17:13
boi, is it a long list of things to learn
pmurias what I mean is do we have exxamples of stuff we would like macros to be used for
vendethiel pmurias: I can give you aplenty
colomon just found doc.perl6.org invaluable. <whoever did that>++
vendethiel or plenty. Can't english, sorry
laben sorry, need to afk for some time, see you later 17:14
pmurias vendethiel: I would love to see some
vendethiel pmurias: So, an obvious one is generating methods for some class, with more-or-less specific checks. Think an ORM 17:15
17:16 _slade_ joined
pmurias isn't that something that can be done with the metamodel? 17:16
vendethiel You *can* hack the metamodel to do that, yes
that's a pretty slow solution though
and you *can't* count on static optimizations, for obvious reasons
pmurias the slow part is generating signatures for those methods? 17:17
vendethiel you can't "see" them beforehand. How do you inline something that's added at runtime?
17:17 ajr_ left
pmurias we can use the metamodel at compile time (BEGIN) 17:17
jnthn japhb: envvars are now also in the usage :) 17:18
17:18 gfldex joined
vendethiel pmurias: hardly so if you want dynamic method bodies 17:19
17:19 kjs_ left
vendethiel especially considering the lexpads 17:19
jnthn vendethiel: We never inline methods at compile time at present anyway; it's all left to the dynamic optimizer 17:20
vendethiel alright, great then.
even the EVAL'd ones?
17:20 slavik left, guru joined, guru is now known as ajr_
jnthn vendethiel: We can inline across compilation units 17:20
The inliner doesn't care much. It only cares if they're blocks from different programming languages.
vendethiel good thing :) 17:21
jnthn But if it's all Perl 6 code, no problem.
17:21 laben left
vendethiel I guess, for an ORM, you could create every single part of the class through the MOP; add a fallback for the getter/setters with a lot of introspection, etc 17:22
basically what the ruby guys are doing. Looks a lot like macros, only it's slow
(and failprone because of the complexity)
vendethiel eat&
jnthn Macros could be more efficient and certainly more elegant here
My point was just that you can build up classes at BEGIN time and not have to miss out on optimizations. 17:23
ruoso can the jit see through different meta-classes? 17:24
17:24 ajr_ left
ruoso if so, you could just implement a different meta-class and it would be jit'd, so using macros become a premature optimization 17:25
17:25 guru joined, guru is now known as Guest24387 17:26 Guest24387 is now known as ajr_
jnthn ruoso: In terms of its specializations, it mostly cares about types rather than the particular meta-class implementing that type. 17:27
ruoso: Since meta-objects are just, well, objects, I've seen cases where it inlined bits of meta-objects.
ruoso right, at which point you get the same benefit than doing with a macro would add 17:28
pmurias I'm not sure just generating a much of accessors with macros will be more elegant than with the metamodel 17:30
jnthn pmurias: For simple accessors, likely not. For more elaborate things, macros could come off better. 17:31
pmurias and optimizing something like my $flag = 0; $class.add_method($class, $accessor, sub {...; if $flag {...}; ... }) seems in the realm of possibility 17:32
17:33 ssutch joined, slavik joined
pmurias generating tight numeric crunching code seems one marco use case 17:34
s/numeric/number
jnthn *nod* 17:35
yay, my big pan of chili is ready...
nom &
ruoso I guess I have been too bruned by C++ templates in the past few years, and I just want to make sure that we're not doing the same mistake :) 17:36
17:36 b2gills joined 17:37 psch left
pmurias ruoso: are we in risk of that? 17:40
ruoso I think if people start using macros as a way to write generic code instead of using the meta-model, yes 17:41
17:42 erkan joined 17:43 _slade_ left
vendethiel ruoso: you shouldn't even need to resort to the meta-model, really :) 17:43
the "main" feature of templates lies in our [::T]
(most of the time, that is. Obviously, people went far too far in c++ with parsing libraries or other stupid nonsense. Some of these abuses are useful, like enable_if, a lot of others aren't) 17:44
leont vendethiel: having gone far too far, I can see your point ;-) 17:45
vendethiel and; yeah; with EVAL you don't really "need" macros. Or even with a "less evil eval" (or "less eval evil"), as the MOP we have or the "define_instance_method" and stuff in Ruby 17:46
17:47 daxim_ left
vendethiel leont: to be honest, that's the only C++ I'm writing: abusing templates and stuff :P 17:47
when you see that people implemented lambda with them (before c++11 supported it) - even if they were quirky - you realize how far can people go. 17:48
leont Yeah. They work great until you make a minor mistake and they blow up with three pages of errors􏿽x85
vendethiel leont: to be fair, gcc and clang did a lot of work there in the last few years, and concepts will help as well.
pmurias the MOP is not evil in the sense EVAL is, it doesn't do any code as strings manipulation 17:49
vendethiel pmurias: just like the other ruby equivalents I talked about!
leont Yeah, concepts would help a lot
ruoso I believe most of the c++ template usage is solved with Roles in Perl 6 17:50
(the sane ones)
pmurias vendethiel: are the ruby equivalents inelegant?
ruoso and the crazier ones are solved with MOP
vendethiel pmurias: kind of. Easy to be abused, that's for sure
m: role A[int]{...}; role A[5]{ subset Type of Str; }; role A[6]{ subset Type of Int; }; constant a = 5; say A[a]::Type.refinee.new 17:51
Dependently typed Perl6 ?
camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
vendethiel Dependently timed Perl6.
17:51 Ven joined
ruoso The usage of macros that I think does make sense is as an easy way to introduce a new syntax without having to get too much into grammas specialization 17:51
pmurias vendethiel: a lot of the speed issues with them can be solved by doing the magic at BEGIN time and a good compiler
ruoso for instance, the feed operator is kind of a macro 17:52
vendethiel can I not expose the subset inside the class? The our fails :( 17:53
pmurias: c2?SufficientlySmartCompiler
pmurias: so, that's one use-case. Another use-cases of macros are of course the to-maybe-exist "is parsed", that'd for example allow timotimo++'s ADT.p6 module to have a rather nice syntax 17:54
(and in general, not have to quote everything)
pmurias vendethiel: just inlining closures with known outer values doesn't seem like something outside the realm of possiblity
vendethiel pmurias: this one doesn't :-) 17:55
pmurias: github.com/rails/rails/blob/08754f...ger.rb#L14
lizmat jnthn++ for an excellent reply to FC
vendethiel rails has just everything like that :-)
lizmat: link maybe :)?
lizmat not sure where p6l is being archived
vendethiel pmurias: also, ruby can get you really far with instance_eval that allows you to change the self's value for some time. 17:56
pmurias: a great example of that is squeel: github.com/activerecord-hackery/squeel/ A nice and cute DSL!
pmurias I have to leave now, but I'll look into that soon (and brush on my ruby) 17:57
lizmat vendethiel: I guess it will wind up here at one point: www.nntp.perl.org/group/perl.perl6.language/ 17:58
pmurias the macro use I'm most looking forward too is making ok(expr() eq "foo") make an equaly good error message as is(expr(), "foo")
17:58 darutoko- joined
pmurias got to leave& 17:58
17:58 pmurias left
lizmat vendethiel: www.nntp.perl.org/group/perl.perl6....36016.html 17:59
vendethiel .tell pmurias stuff in ruby does that too :-). It's really amazing
yoleaux vendethiel: I'll pass your message to pmurias.
vendethiel lizmat: thanks. That's the p5pumpking, right? 18:00
lizmat no, rjbs is the pumpking
FC is a very prolific committer
vendethiel fair enough -- my bad 18:01
18:01 darutoko left
tony-o lol 18:01
lizmat oddly enough, jnthn's reply is not there yet
18:02 SamuraiJack_ joined, darutoko- left
bartolin There is an old ticket (RT #111046) which states that building Rakudo Star fails in a directory with a space in the name. I reproduced this with a recent version (from git) on a linux box. Looks like there are a lot of places where the space in the path causes problems. Do you think it's worth the trouble to fix this or is the answer "please build in a directory which doesn't contain spaces"? 18:04
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=111046
ruoso bartolin, it requires a deep review of the build system to make sure that all file references are made with the proper quotes
18:05 Mso150_a joined 18:07 darutoko joined
bartolin ruoso: that's my impression to. Just trying to get it building I already had to modify nine different pieces of code (e.g. system calls from perl scripts or Makefiles from 3rdparty libraries) 18:07
18:08 treehug88 joined 18:11 laben joined
[Coke] bartolin: yes, it's worth fixing. 18:11
but it's a PITA, so no one has bothered yet.
basically: every command we exec should "" its args.
one of the rakudo.jvm tests hung, had to kill it. 18:12
bartolin I'm afraid the biggest problem is "make". 18:13
[Coke] easy to wrap args in make. :)
laben sorry, i'm back 18:14
[Coke] we're sorry too? ;)
18:15 laben left
jnthn o.O 18:15
18:15 laben joined
bartolin hmm, I think I have to do some reading wrt make ;-) 18:15
laben welp, seems like i have some net problems 18:16
so, it was easy to build the man page 18:17
jnthn agrees with [Coke]++; spaces in paths are worth fixing, but a pain enough nobody did yet...
masak pmurias: not a centralized list, no. 18:18
pmurias: that sounds like a nice goal, though.
ruoso didn't want to imply it was not worth fixing the file acces, fwiw
masak ruoso! \o/
vendethiel \o/ 18:19
18:19 Hor|zon joined
ruoso i am trying to come out of the cave I've been in the past three years :) 18:19
masak ruoso: long time, no see! 18:20
vendethiel come check us out, we're doing pretty great :-) 18:21
we're nearly webscale now.
(we just need some more sharding, I guess)
18:22 [Sno] left
ruoso I've also been mostly working in build automation, not really writing apps 18:22
vendethiel bartolin: just punish people with spaces in their folder names :P 18:24
18:24 Hor|zon left
laben mmh, where was the page with the test results of perl6 modules? cannot find it on perl6.org 18:25
bartolin thanks for the feedback! I'll have a look for some LHF first (like quoting file names for system calls) 18:30
18:33 Ven left 18:37 ajr_ left
FROGGS laben: I think it should be here: host08.perl6.com:8080/report 18:37
18:38 chipotle joined
laben FROGGS: many thanks 18:41
18:42 kbaker left
laben mmh weird, TestML does not build here, what's going on? 18:42
tony-o xxwhat is that? 18:43
laben Too late for semicolon form of class definition 18:47
at lib/TestML/Document.pm:13
from github.com/ingydotnet/testml-pm6 18:48
FROGGS that's the correct version: github.com/perl6-community-modules.../TestML.pm
18:48 Hor|zon joined
laben bleh github search function sucks cobols 18:50
didn't find that one
bartolin jnthn: looks like you also fixed the segfault with moar from RT #122842, thanks! (btw, should I have reported that segfault as an issue at github instead?) 18:52
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122842
18:54 Hor|zon left
jnthn bartolin: That doesn't surprise me. 18:55
18:55 brrt joined
jnthn bartolin: The bug typically showed up if you ended up with a GC happening while an optimized list reify frame was held in a continuation (meaning inside a gather block somewhere) 18:56
18:57 Ven joined
jnthn bartolin: Which takes enough stars to align that it only went wrong now and then, but happens often enough that it was likely to trip a few things up 18:58
laben FROGGS: thanks again, you saved me several headaches 18:59
FROGGS :o)
18:59 guru joined, guru is now known as Guest54141 19:00 Guest54141 is now known as ajr_ 19:03 Hor|zon joined, Mso150_a_u joined
raydiak has anyone started/seen/heard of a p6 module for parsing and manipulating math equations/expressions? 19:03
19:03 Mso150_a left
laben for latex? 19:04
raydiak no, just for math in general 19:05
laben i see nothing of that in modules.perl6.org
raydiak yeah I didn't either, but it seemed really likely that someone would have started it already, so just figured I'd ask 19:06
moritz raydiak: I've written a p5 module for that
it turned out to be not very useful for me, but somebody else made a graphing/plotting websites where it's in heavy use 19:07
raydiak moritz: what's it called? maybe I'll at least steal some ideas if the code is easy for me to follow
moritz raydiak: Math::Expression::Evaluator 19:08
19:08 darutoko left
raydiak nice, thanks moritz++; reading 19:09
19:10 Hor|zon left
laben moritz: interesting, what was the use case you had for writing it? 19:10
moritz laben: none, really :-) 19:11
laben: I was actually writing a turing complete interpreter
laben: with a bit of nice syntax, function calls, lexical scopes and all that
laben: just because I always wanted to do that 19:12
laben: and the math part was the only thing that I though might be worth polishing and publishing
laben moritz: then the only thing that remains to be done is making a ACME::Turing::Machine package :P 19:13
19:14 rindolf joined, sqirrel joined
moritz wonders if the code still lives on that old desktop machine, or in a backup 19:19
19:22 FROGGS[mobile] left
timotimo what'd i miss? 19:24
tony-o mortiz is turing complete 19:26
timotimo mhm, that'll be a good step towards our rise to absolute power
19:26 SamuraiJack_ left 19:27 ghostlines joined 19:29 Mso150_a_u_v joined
moritz is also bullshit complete 19:29
19:30 Mso150_a_u left 19:31 spider-mario joined
[Coke] nope. rakudo.jvm is still very slow. 19:32
testing box only made it to S04 so far; it's nearly done by now. 19:33
I will have to keep it disabled until I figure this out.
laben makes a note for himself: always remember to reinstall modules after updating moarvm/nqp/rakudo 19:36
vendethiel oh, I think I noticed a typo in S03
19:36 Hor|zon joined
lizmat vendethiel: ?? 19:36
vendethiel lizmat: I'm trying to pull out my reference :-)
noted stuff on my phone
laben Missing or wrong version of dependency 'src/gen/m-BOOTSTRAP.nqp' 19:37
what could be causing this during a panda-build?
tony-o did you just rebuild perl6+moar ? 19:38
[Coke] have you rebuilt anything else recently?
laben i did, but i thought i already rebuilt everything just not this module 19:39
oh well, let's re-rebuild everything 19:40
19:41 Hor|zon left
[Coke] did you panda rebootstrap after the build? 19:42
laben i'm trying to package everything up, so i try to avoid that 19:44
but we will know soon enough
gosh dammit, i forgot Inline::Perl5 requires LibraryMake too, and forgot to rebuild that 19:49
all is well now
PerlJam laben: rakudobrew is your friend 19:51
dalek kudo/nom: 5870906 | (Elizabeth Mattijsen)++ | src/core/ (13 files):
Second part of making IO up to spec

with S16 | S32/IO synopsis updates.
This was mostly about making IO::Path smarter: keeping the $*SPEC/$*CWD settings at creation time for later usage. And making sure all IO::Path methods map to the correct $!SPEC.samemethod (or composite).
19:52
ast: d9596f7 | (Elizabeth Mattijsen)++ | S32-io/io-path (4 files):
Test adaptations for new S16|S32/IO changes
19:53
lizmat *phew* that's finally off my plate (for now) 19:54
I hope the ecosystem fallout will be minimal
19:57 jack_rabbit joined 20:03 Mso150 joined 20:04 ecocode joined 20:05 Mso150_a_u_v left, erkan left, sqirrel left 20:07 lizmat left, [Sno] joined 20:10 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 20:11 laben left, fhelmberger joined 20:12 lizmat joined 20:16 fhelmberger left, chipotle left 20:20 ivanshmakov left 20:22 spider-mario left, laben joined 20:24 Mso150 left
grondilu weird error I can't reproduce: 20:25
Type check failed in binding $x; expected 'Real' but got 'Rat'
isn't Rat acceptable as a return value for Real?
m: sub f(--> Real) { 1/3 }; say f()
camelia rakudo-moar 9814e8: OUTPUT«0.333333␤» 20:26
grondilu also, no line indication whatsoever and I didn't even have a $x variable in my code.
20:27 ivanshmakov joined
jnthn m: say Rat ~~ Real 20:29
camelia rakudo-moar 9814e8: OUTPUT«True␤»
jnthn m: my Real $x; $x := 1/3;
camelia ( no output )
jnthn grondilu: It'd be a binding failing I'd imagine...but yeah, odd... 20:30
grondilu no quite related to perl6, but I suffered performance issues today. I suspected too much use of the swap space. Tried to close applications, switched to console mode (killed X). Looked up memory usage with htop and it quite more meomory used than I would expect. When I sort processes by memory usage I don't find anything that uses that much. Maybe it is unfreed memory. Any idea how I could clean it? 20:35
lizmat makes it an early night 20:36
grondilu I guess I should ask that to #debian
geekosaur sadly figuring out memory usage is really difficult on modern operating systems 20:39
top etc. don't tell the whole story, because the whole story is extremely complex 20:40
and can't really be represented in a 2D interface
it's a complex tree with loops and shared nodes all over the place
grondilu geekosaur: is it true as well for CPU use? 20:41
because I've just checked and there's no way swap usage is the issue. 20:42
geekosaur not as much, on most general purpose computers. NUMA architectures can cause CPU scheduling to be vaguely similar though 20:43
as for CPU use, one thing that won't generally show (or at least not with any granularity) is interrupt processing
show in top, that is 20:44
20:44 brrt left
raydiak grondilu: have you already accounted for buffers/cache? 20:48
grondilu raydiak: not sure what you mean. 20:49
raydiak grondilu: run free -h
and look at the difference in the used/free columns between the first and second line
geekosaur note that that is perhaps the most unreliable aspect of memory management; file buffers can and will be evicted at need, but other buffers actually represent program code and evicting them will generally cause thrashing 20:50
grondilu -/+ buffers/cache: 317M 679M
317M is used, 679M is free 20:51
I have no idea what this is, though.
raydiak basically linux automatically "uses" pretty much all available ram for buffering and caching, until a process needs it, so you need to know when you're looking at "used" or "free" mem, if it is counting those or not
the second line in the free output shows how much is actually available if all the buffers and caches were out of the way 20:52
grondilu 679M seems large enough to run the small [+] rand xx 100_000 benchmark I often use. 20:53
geekosaur you migth do better using something like vmstat, or iostat if something is I/O bound (that is, the system is waiting on disk activity... but in that case if it's affecting general performance then you are thrashing and it hsould be pretty visible in vmstat) 20:54
20:55 xfix is now known as notfix
jnthn FROGGS: If you're happy it's tested enough, then rt.perl.org/Ticket/Display.html?id=63896 is closable now. It's the third oldest ticket in the queue. :) 20:58
20:58 kaare_ left 20:59 ggherdov left
FROGGS jnthn: thanks for the pointer :o) 20:59
20:59 Ven left 21:00 chipotle joined
vendethiel Isn't `foo $bar: 1` kinda ambiguous with `foo $bar.baz: 1`? 21:01
At least -- incosistent.
FROGGS vendethiel: what is `foo $bar: 1`?
vendethiel FROGGS $bar.foo(1)
FROGGS really? 21:02
damn
21:02 ggherdov joined
vendethiel think 'so. 21:02
std: foo $bar: 1; 21:03
std: foo $bar.baz: 1;
camelia std fc92e1e: OUTPUT«===SORRY!===␤Variable $bar is not predeclared at /tmp/9QpHyFh9RG line 1:␤------> foo ⏏$bar: 1;␤Check failed␤FAILED 00:01 142m␤»
std fc92e1e: OUTPUT«===SORRY!===␤Variable $bar is not predeclared at /tmp/sCTokJeX3R line 1:␤------> foo ⏏$bar.baz: 1;␤Undeclared routine:␤ 'foo' used at line 1␤Check failed␤FAILED 00:01 140m␤»
vendethiel std: my $bar; foo $bar: 1;
camelia std fc92e1e: OUTPUT«ok 00:01 143m␤»
vendethiel std: my $bar; foo $bar.baz: 1;
camelia std fc92e1e: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'foo' used at line 1␤Check failed␤FAILED 00:01 141m␤»
vendethiel std: my $bar; sub foo {}; foo $bar.baz: 1;
camelia std fc92e1e: OUTPUT«ok 00:01 142m␤»
vendethiel FROGGS: ^ this proves my point even further
github.com/perl6/specs/pull/69 :o) some eyeballs please 21:04
21:05 japhb joined 21:11 bartolin left
gtodd m: say 1,1,{ $^a + 1, $^b * 2 }...* 21:15
camelia rakudo-moar 587090: OUTPUT«1 1 2 2 3 4 4 8 5 16 6 32 7 64 8 128 9 256 10 512 11 1024 12 2048 13 4096 14 8192 15 16384 16 32768 17 65536 18 131072 19 262144 20 524288 21 1048576 22 2097152 23 4194304 24 8388608 25 16777216 26 33554432 27 67108864 28 134217728 29 268435456 30 53687091…»
gtodd vendethiel: ?
dalek ast: 08ef117 | jnthn++ | S02-types/declare.t:
Correct a bogus Complex constraint test.

Didn't actually try it on Niecza, but pretty certain it will pass now too, so unfudged it for both Rakudo and Niecza.
21:16
21:23 grondilu left
b2gills m: '.'.IO.dir 21:25
camelia rakudo-moar 587090: OUTPUT«No such method 'curupdir' for invocant of type 'IO::Spec::Unix'␤ in method dir at src/gen/m-CORE.setting:15543␤ in block <unit> at /tmp/JSXK0QUUH0:1␤␤»
21:28 Hor|zon joined
jnthn lizmat: ^^ looks like IO refactor fallout, at a guess... 21:28
timotimo oh, the end limit test will be applied to the whole parcel itself, huh? 21:31
21:31 Alula joined 21:33 Hor|zon left, grondilu joined
dalek kudo/nom: 0242728 | jnthn++ | src/vm/moar/Perl6/Ops.nqp:
Remove outdated comment.
21:35
21:36 rindolf left, virtualsue left 21:39 _slade_ joined 21:40 virtualsue joined
b2gills CompUnitRepo::Local::File.candidates probably shouldn't be using $*SPEC.rootdir as a separator. ( on Win32 .rootdir should be "\\\\.\\" or "C:\\" or Mu 21:42
21:44 ecocode left 21:45 ecocode joined, kjs_ joined 21:49 ecocode left 21:52 ghostlines left 21:57 pmurias joined
pmurias vendethiel: how is something like that implemented in ruby? 21:57
yoleaux 17:59Z <vendethiel> pmurias: stuff in ruby does that too :-). It's really amazing
21:59 virtualsue left 22:01 treehug88 left 22:03 Guest27730 left 22:04 bowtie joined 22:05 bowtie is now known as Guest80734 22:06 Hor|zon joined 22:12 Hor|zon left 22:13 kjs_ left 22:27 kjs_ joined 22:34 davido__ left 22:35 davido__ joined 22:39 beastd left 22:42 laben left 22:53 davido__ left
b2gills m: my @a; @a[0][0] = False; @a[0;0] = True; say so @a[0;0] 22:53
camelia rakudo-moar 024272: OUTPUT«True␤»
b2gills m: my @a; @a[0;0] = True; say so @a[0;0]
camelia rakudo-moar 024272: OUTPUT«False␤»
22:54 davido__ joined 22:57 raiph joined
grondilu got it again: 22:58
===SORRY!===
Type check failed in binding $x; expected 'Real' but got 'Rat'
22:58 kjs_ left 23:00 davido__ left
grondilu seems reliable this time 23:01
23:01 davido__ joined
grondilu tries to strip the problematic code to bare minimal 23:02
so weird. 23:06
this work:
use Clifford; sub random { [+] e(*)[^8] Z* (rand.round(.1) xx *) }; .say for random() xx 2;
but this does not: 23:07
use Clifford; sub random { [+] e(*)[^8] Z* (rand.round(.1) xx *) }; .say for random() xx 3
;
though I guess I should get rid of the randomness before making any conclusion
yes that depends of the value so it's module-specific. 23:09
23:20 wk left
grondilu ok, got it. I was breaching a constraint: 23:21
subset TReal of Real where * != 0; class A { has TReal %.h{Int} }; my A $a .= new: :h(3 => pi); say A.new: :h(map {; .key => .value * 0 }, $a.h.pairs);
shorter: 23:22
23:22 PZt joined
grondilu m: subset TReal of Real where * != 0; class A { has TReal %.h }; say A.new: :h(foo => 0);' 23:22
camelia rakudo-moar 024272: OUTPUT«===SORRY!=== Error while compiling /tmp/FddQ8MfY_B␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/FddQ8MfY_B:1␤------> s TReal %.h }; say A.new: :h(foo => 0);'⏏<EOL>␤ expectin…»
grondilu ahh sorry
m: subset TReal of Real where * != 0; class A { has TReal %.h }; say A.new: :h(foo => 0);
camelia rakudo-moar 024272: OUTPUT«Type check failed in binding $x; expected 'Real' but got 'Int'␤ in method STORE_AT_KEY at src/gen/m-CORE.setting:10304␤ in method STORE at src/gen/m-CORE.setting:10111␤ in block at src/gen/m-CORE.setting:958␤ in method BUILDALL at src/gen/m-CO…»
grondilu correct error message should mention the subset 'TReal' and not 'Real' 23:23
23:29 raiph left 23:34 cosimo left, cosimo joined
grondilu got a segmentation fault trying to rebootstrap pand 23:35
*panda
23:40 pmurias left 23:46 b2gills is now known as info 23:48 info is now known as b2gills 23:54 avuserow left