Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-10-02

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:16 timotimo gtodd: it's not terribly much content, so you will likely not feel so bad after an archive binge :)
00:16 _slade_ joined #perl6
00:17 gtodd timotimo: I felt a bit peckish so a read S99 :-)
00:18 gtodd a read of S99 was my dessert
00:24 nbrown_ joined #perl6
00:29 timotimo :)
00:31 dalek ecosystem: bbf2d36 | tony-o++ | META.list:
00:32 dalek ecosystem: DB::ORM::Quicky
00:32 dalek ecosystem:
00:32 dalek ecosystem: Quick prototyping ORM, nothing cool or special to see here.  (Def not for production or to replace DBIx)
00:32 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/bbf2d3631a
00:32 xenoterracide joined #perl6
00:52 xenoterracide joined #perl6
01:02 slavik joined #perl6
01:03 xenoterracide joined #perl6
01:07 cosimo joined #perl6
01:09 kurahaupo joined #perl6
01:09 kbaker joined #perl6
01:12 fhelmberger joined #perl6
01:13 Mso150 joined #perl6
01:14 dalek perl6-roast-data: a81ba73 | coke++ | bin/rakudo.moar (2 files):
01:14 dalek perl6-roast-data: Track today's change that made JIT the default
01:14 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/a81ba73c1d
01:14 kurahaupo joined #perl6
01:16 kurahaupo joined #perl6
01:23 xenoterracide joined #perl6
01:24 skarn joined #perl6
01:25 nbrown_ joined #perl6
01:28 avuserow joined #perl6
01:29 kbaker joined #perl6
01:32 BenGoldberg tony-o, I initially read DB::ORM::Quicky as DB::ORM::Quircky :)
01:32 kurahaupo joined #perl6
01:33 tony-o :-)
01:33 tony-o I'm not real inventive with names
01:35 nbrown_ joined #perl6
01:37 Mso150 joined #perl6
01:45 Mso150_a joined #perl6
01:54 FROGGS_ joined #perl6
01:59 Hor|zon joined #perl6
02:05 noganex joined #perl6
02:10 Sqirrel joined #perl6
02:57 kurahaupo joined #perl6
03:21 kurahaupo joined #perl6
03:21 robinsmidsrod joined #perl6
03:38 robinsmidsrod joined #perl6
03:48 masak morning, #perl6!
03:55 masak m: say (<jet plane> (^) <network lag>) (^) <plane network>
03:55 tony-o sup masak
03:55 camelia rakudo-moar d60a8f: OUTPUT«set(jet, lag)␤»
03:55 masak m: say <jet plane> (^) <network lag> (^) <plane network>
03:55 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␤␤»
03:56 masak surely I should be able to do the latter too?
03:56 masak (a) because if nothing else, infix:<(^)> should left-associate
03:56 masak (b) because maybe it even chains? I dunno.
03:56 * masak submits rakudobug
03:58 tony-o what is that even doing
03:58 tony-o m: <jet plane> (^) <network lag>
03:58 camelia rakudo-moar d60a8f: ( no output )
03:58 tony-o m: say <jet plane> (^) <network lag>
03:58 camelia rakudo-moar d60a8f: OUTPUT«set(jet, plane, network, lag)␤»
03:59 tony-o is that a union?
04:00 masak tony-o: symmetric difference.
04:00 masak tony-o: "in one set or the other, but not in both"
04:00 masak tony-o: think XOR for sets.
04:00 Hor|zon joined #perl6
04:03 tony-o interesting
04:14 masak tony-o: https://commons.wikimedia.​org/wiki/File:Venn0110.svg
04:16 tony-o i got it from the xor :-)
04:16 tony-o that is a cool image tho
04:16 tony-o well, the ones further down the page
04:18 pmichaud see my response to RT #12282  :)
04:18 pmichaud er, #122882
04:18 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122882
04:19 pmichaud mainly, infix:<(^)> should list associate
04:19 pmichaud imo,  <jet plane> (^) <network lag> (^) <plane network>   should result in  <jet lag>
04:21 pmichaud 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:22 masak pmichaud: I agree. that rhymes with infix:<^^> semantics, too.
04:22 pmichaud exactly.
04:22 masak pmichaud++
04:22 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]
04:23 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=85750
04:23 camelia niecza: OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
04:23 camelia ..rakudo-jvm d60a8f: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
04:23 camelia ..rakudo-{parrot,moar} d60a8f: OUTPUT«1␤»
04:23 masak the RT ticket says there are tests expecting this to be 1, but it's NaN on some systems.
04:24 masak I was curious to find out what IEEE 754 stands on the matter.
04:24 masak haven't found out yet.
04:25 masak 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 masak it's easy to argue for either:
04:26 masak (it should be 1) -- because 1 ** $anything is 1
04:27 masak (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 masak this could be more formally argued using limits, but my hand-wavy argument shows the way, approximately.
04:28 tony-o lol
04:30 * TimToady now in Mountain View, CA :)
04:31 sorear joined #perl6
04:36 pmichaud TimToady:  o/
04:37 * pmichaud is looking forward to hackathoning again after a long absence
04:46 xenoterracide joined #perl6
05:12 fhelmberger joined #perl6
05:35 ecocode joined #perl6
05:36 masak fwiw, Python (both 2 and 3) has 1 ** Inf as 1. https://gist.github.com/masak/675fbe68a6474a94b722
05:37 masak it doesn't have a reified symbol for Inf, hence the workaround with 1e3000.
05:37 anaeem1_ joined #perl6
05:38 masak http://steve.hollasch.net/cg​index/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 masak ditto http://users.tkk.fi/jhi/infnan.html
05:51 chipotle joined #perl6
05:57 kurahaupo_ joined #perl6
06:00 ClarusCogitatio joined #perl6
06:01 Hor|zon joined #perl6
06:02 masak lichtkind: thank you for hypothetical sofa and sandwich! http://blogs.perl.org/users/lichtkind/2​014/09/what-is-the-perl-community.html
06:03 masak lichtkind: the feeling is reciprocated. :) though I don't have a sofa -- should really get one.
06:04 bartolin joined #perl6
06:04 masak I think lichtkind++'s post can be summarized as "community is a special type of acquaintance akin to friendship"
06:05 masak 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 http://mathworld.wolfram.com/Indeterminate.html, as I understand it this argues in favour of 1 ** Inf == NaN
06:07 gfldex joined #perl6
06:09 masak bartolin: sure, I'm already concinced that *math* makes the argument for 1 ** Inf == NaN.
06:10 masak but IEEE 754 deviates from math in some places where it finds doing so convenient in a computing environment.
06:11 masak for example, 0 ** 0
06:11 masak m: say 0 ** 0
06:11 camelia rakudo-moar d60a8f: OUTPUT«1␤»
06:11 masak m: Inf ** 0
06:11 camelia rakudo-moar d60a8f: ( no output )
06:11 masak m: say Inf ** 0
06:11 camelia rakudo-moar d60a8f: OUTPUT«1␤»
06:11 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 bartolin ok, just wanted to note the link
06:11 masak bartolin: yes -- thank you.
06:11 masak bartolin: adding to ticket.
06:16 SamuraiJack_ joined #perl6
06:17 sorear joined #perl6
06:18 vike joined #perl6
06:19 darutoko joined #perl6
06:21 Akagi201 joined #perl6
06:22 ghostlines joined #perl6
06:35 Akagi201 joined #perl6
06:39 vike joined #perl6
06:42 jnthn morning, #perl6
06:43 Mso150_a joined #perl6
06:44 nwc10 good UGT, jnthn
06:44 nwc10 (+0100)++ ?
06:46 jnthn Well, +0200 from UTC given it's still daylight savings, I think :)
06:46 nwc10 oh gosh, fail
06:46 nwc10 agree, "this week" (and next week)
06:47 dalek roast: c9f80da | usev6++ | S02-literals/radix.t:
06:47 dalek roast: Change test for RT #107756
06:47 dalek roast: it now throws X::Numeric::Confused (after commit https://github.com/rakudo/​rakudo/commit/298e81101c)
06:47 dalek roast: review: https://github.com/perl6/roast/commit/c9f80da709
06:47 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=107756
06:53 zakharyas joined #perl6
06:53 dalek ufo: 1b5efbe | raydiak++ | bin/ufo:
06:53 dalek ufo: Leave .pm(6) in compiled module names, like panda
06:53 dalek ufo: review: https://github.com/masak/ufo/commit/1b5efbe69f
06:53 dalek ufo: ac25072 | moritz++ | bin/ufo:
06:53 dalek ufo: Merge pull request #19 from raydiak/master
06:53 dalek ufo:
06:53 dalek ufo: Leave .pm(6) in compiled module names, like panda
06:53 dalek ufo: review: https://github.com/masak/ufo/commit/ac250729fb
07:00 JimmyZ joined #perl6
07:08 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:10 FROGGS joined #perl6
07:12 FROGGS bartolin: you'd check for typed arrays using throws_like
07:12 FROGGS joined #perl6
07:13 kjs_ joined #perl6
07:13 FROGGS bartolin: where you create the very same exception object, and compare its properties
07:13 ghostlines joined #perl6
07:13 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:14 bartolin 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?
07:15 bartolin FROGGS: oh, I misread your answer, sorry
07:15 bartolin FROGGS: basically, you said "Yes, check for typed exceptions _and_ error messages"?
07:16 FROGGS no
07:17 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
07:18 bartolin FROGGS: but what if someone changes the message pattern (but keeps the ex type)?
07:19 FROGGS bartolin: the he/she either improved the message or he/she needs to get slapped :o)
07:20 MilkmanDan joined #perl6
07:20 bartolin FROGGS: ;-)
07:21 FROGGS the reason we have exception types other X::AdHoc was to be able to not check the message directly, which is messy
07:22 JimmyZ nerver mind, I find it in https://www.fpcomplete.com/school/starting-with​-haskell/introduction-to-haskell/5-type-classes
07:23 bartolin FROGGS: I tend to agree that it should be enough to test for the correct exception type.
07:27 bartolin 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:29 FROGGS bartolin: yes, exactly :o)
07:29 bartolin FROGGS: fine, thanks for explaining!
07:29 FROGGS pleasure :o)
07:31 masak JimmyZ: see also https://en.wikipedia.org/wiki/Hindley​%E2%80%93Milner_type_system#Polytype which I think comes down to the same concept.
07:32 masak 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 masak kind of like a "type family", I guess.
07:33 virtualsue joined #perl6
07:33 masak (a concept I don't think is established, but it sounds nice)
07:34 JimmyZ Does it solve type match problems?
07:35 * JimmyZ doesn't know what problems is jnthn++ said
07:35 kjs_ joined #perl6
07:40 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 masak JimmyZ: it's great because it works no matter what you decide `a` and `b` need to be.
07:42 masak JimmyZ: I don't see where jnthn spoke of parametricity-related problems, sorry.
07:42 * jnthn doesn't either... :)
07:43 jnthn Not sure I drank enough coffee to be smart enough to talk about parametricity yet today... :)
07:45 JimmyZ masak: http://irclog.perlgeek.de/​perl6/2014-10-01#i_9441560 :P
07:46 JimmyZ masak: thanks, much easy to understand now
07:49 * jnthn gets latest builds of everything
07:49 jnthn 30s NQP build, 60s Rakudo build. :)
07:51 JimmyZ_ joined #perl6
07:53 leont joined #perl6
07:53 chipotle joined #perl6
07:55 bjz joined #perl6
08:00 odc joined #perl6
08:01 masak JimmyZ: glad my ramblings were of some help.
08:02 Hor|zon joined #perl6
08:04 zakharyas joined #perl6
08:09 jack_rabbit joined #perl6
08:09 dalek rakudo/nom: 178eec7 | usev6++ | src/core/Exception.pm:
08:09 dalek rakudo/nom: Extend error message of X::Numeric::Confused
08:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/178eec7a48
08:09 dalek rakudo/nom: f6d011d | lizmat++ | src/core/Exception.pm:
08:09 dalek rakudo/nom: Merge pull request #315 from usev6/nom
08:09 dalek rakudo/nom:
08:09 dalek rakudo/nom: Extend error message of X::Numeric::Confused
08:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f6d011d36e
08:11 dalek rakudo/nom: 3f59306 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm:
08:11 dalek rakudo/nom: Fix for #122882
08:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3f59306fe3
08:11 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122882
08:12 lizmat $ 6 'say <a network> (^) <b network> (^) <a network>'
08:12 lizmat set(b)
08:12 Hor|zon joined #perl6
08:13 lizmat #122882 can be marked as TEST NEEDED :-)
08:13 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122882
08:17 zakharyas joined #perl6
08:19 kurahaupo_ joined #perl6
08:24 ecocode joined #perl6
08:25 jack_rabbit joined #perl6
08:26 jack_rabbit joined #perl6
08:29 lizmat timotimo++ timotimo++ timo++   for 2.5 week of Perl6 weekly :-)
08:30 dakkar joined #perl6
08:39 kjs_ joined #perl6
08:40 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:41 FROGGS nine: true, but still, checking error message texts that that interpolate variable and/or type names and other stuff is error prone
08:42 FROGGS 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
08:43 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:44 FROGGS yes
08:48 [Sno] joined #perl6
08:50 * jnthn reads the p6weekly to see what he might have missed in the last weeks :)
08:52 jnthn timotimo++ for writing it :)
08:57 zakharyas joined #perl6
08:57 zakharyas1 joined #perl6
09:09 pecastro_ joined #perl6
09:13 fhelmberger joined #perl6
09:22 ibo2perl6 joined #perl6
09:23 ibo2perl6 hi #perl6
09:23 ibo2perl6 m: say bag (^12).roll(49_000)
09:24 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)
09:24 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))␤»
09:24 ibo2perl6 m: say bag (^12).roll(60_000)
09:25 camelia rakudo-moar d60a8f: OUTPUT«(timeout)»
09:25 ibo2perl6 locally I get an error: arg flag is empty in slurpy positional
09:25 ibo2perl6 m: say bag (^12).roll(50_000)
09:26 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 Hor|zon joined #perl6
09:27 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 #perl6
09:28 ibo2perl6 jnthn: oh great you must have fixes it jbthn++
09:30 masak yes, one week old rakudo is way too old ;)
09:30 ibo2perl6 jnthn: Can I unite 2 bags?
09:33 jnthn https://rt.perl.org/Ticket/Display.html?id=122810 was the ticket...
09:34 jnthn ibo2perl6: Unite as in union?
09:36 ibo2perl6 Jnthn: Yes. somehing like $bigBag = $b1 + $b2
09:37 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:38 jnthn ibo2perl6: Try the union operator; think you can write the Unicode union char, or the ASCII version (|)
09:40 ibo2perl6 m: bag (^12).roll(50) ∪  bag (^12).roll(50)
09:40 camelia rakudo-moar 3f5930: ( no output )
09:40 ibo2perl6 m: say bag (^12).roll(50) ∪  bag (^12).roll(50)
09:40 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)))␤»
09:41 jnthn .u ∪
09:41 yoleaux U+222A UNION [Sm] (∪)
09:41 jnthn Hm, why's my font make it look odd :)
09:44 yeahnoob joined #perl6
09:45 yeahnoob joined #perl6
09:50 jnthn hah, with TEST_JOBS=10 on this box and the startup time improvements, I often get "make test" reporting 1s now :)
09:51 yeahnoob Yesterday I try to compile perl6-bench on my 1G RAM Ubuntu server, and it make the server down. Hehe:)
09:51 yeahnoob github.com/japhb/perl6-bench
09:51 FROGGS jnthn: we still have the deal to get stage parse down to 20s on my box this year :o)
09:51 jnthn FROGGS: Well, how far off are we?
09:52 jnthn On my box we're in the 26s-27s range... :)
09:52 FROGGS jnthn: 34s
09:52 jnthn darn
09:52 FROGGS err, 14s away
09:52 FROGGS or off*
09:52 jnthn OK, so twice as much as we need to win on mine.
09:53 jnthn I'm 8s or so on my box off entire CORE.setting build (all stages) being within 30s. :)
09:55 FROGGS wow :o)
09:56 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 timotimo since tcc is so tiny that it mostly fits into the cpu cache, it's still surprisingly fast to come up
09:56 timotimo or so i'm told
09:57 Akagi201 joined #perl6
10:08 elimik joined #perl6
10:09 kurahaupo_ joined #perl6
10:11 dalek nqp: 5107793 | jnthn++ | tools/build/MOAR_REVISION:
10:11 dalek nqp: Get MoarVM with a couple of SEGV fixes.
10:11 dalek nqp: review: https://github.com/perl6/nqp/commit/51077930b9
10:13 dalek rakudo/nom: 230233b | jnthn++ | tools/build/NQP_REVISION:
10:13 dalek rakudo/nom: Bump to get latest MoarVM, with SEGV fixes.
10:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/230233b394
10:13 dalek roast: 54b2715 | jnthn++ | S12-attributes/clone.t:
10:13 dalek roast: Add a test for type object clone not crashing.
10:13 dalek roast: review: https://github.com/perl6/roast/commit/54b2715cf5
10:16 ibo2perl6 m: <1 2 3>.Bag   ∪ <1 2 2>.Bag
10:16 camelia rakudo-moar 3f5930: ( no output )
10:16 ibo2perl6 m: say <1 2 3>.Bag   ∪ <1 2 2>.Bag
10:16 camelia rakudo-moar 3f5930: OUTPUT«bag(1, 2(2), 3)␤»
10:16 ibo2perl6 i was expecting bag(1(2), 2(3), 3)
10:16 jnthn Uh...I think I would do...
10:17 * jnthn hasn't been paying a lot of attention to the set/bag bits, alas...
10:18 jnthn s/would do/would too/
10:18 denis_boyun_ joined #perl6
10:18 jnthn lizmat: If you're about, you might have an opinion on the bag thing above... :)
10:19 masak jnthn, ibo2perl6: nope.
10:19 masak you're using the *set* union operator ;)
10:19 masak m: <1 2 3>.Bag ⊎ <1 2 2>.Bag
10:19 camelia rakudo-moar 3f5930: ( no output )
10:19 masak m: say <1 2 3>.Bag ⊎ <1 2 2>.Bag
10:19 camelia rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(3), 3)␤»
10:20 jnthn masak: Ohhh...
10:20 jnthn masak: What's the ASCII form of that one? :)
10:20 masak in Perl 6, the *operator* determines the coercion, not the operands.
10:20 ibo2perl6 masak: oh cool! where is that documented?
10:20 jnthn masak: Well, that kinda makes sense except...if it's set union, why do we get a bag result, not a set result?
10:21 jnthn ibo2perl6: Turns out it's listed on http://doc.perl6.org/language/Sets_Bags_and_Mixes
10:22 masak jnthn: infix:<(+)>, it seems.
10:23 masak jnthn: because returning a set would be lossy compared to returning two set-union'd bags?
10:23 masak jnthn: ...I honestly don't know.
10:23 nine ibo2perl6: that operators determine types instead of operands has been fundamental in Perl pretty much forever.
10:23 jnthn masak: OK. It's just that things that paradigm-coerce also tend to return a type matching the paradigm used :)
10:25 FROGGS joined #perl6
10:25 masak jnthn: yes, agreed.
10:26 masak m: say (<1 2 3>.Bag ∪ <1 2 2>.Bag).Set
10:26 camelia rakudo-moar 3f5930: OUTPUT«set(1, 2, 3)␤»
10:26 masak the more I think about it, the more I *would* expect Set-union to return a Set.
10:27 masak what's the use case for "no, I want a Bag, but I want to perform Set-union of the two Bag operands"?
10:28 masak 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 :)
10:28 * masak joins "Occupy ∪"
10:29 jnthn :P
10:33 Hor|zon joined #perl6
10:39 lizmat well, if that's the way you want it, we can make it that way...
10:39 psch joined #perl6
10:39 lizmat fwiw, I mostly just ported colomon's set work on niecza to rakudo
10:40 psch hi #perl6
10:40 psch Callables and binding of $/ has me stumped: https://gist.github.com/pe​schwa/ca9e9451d9da19f29c73
10:40 psch 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?
10:41 psch er, scope surrounding the declaration is probably a clearer formulation
10:41 psch i notice i forgot adding output...
10:41 jnthn $0 is $/[$0]
10:42 jnthn Which compiles into something like getlex('$/')[0]
10:42 jnthn $/ may be dynamically *visible*, but it is lexically resolved.
10:42 masak lizmat: I don't know if that's the way I want it, though.
10:42 masak lizmat: maybe there is something incredibly clever or useful about the way it's currently set up.
10:43 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
10:43 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 ;)
10:45 jnthn masak: It is possible there isn't such a use-case and the way it is now is an accident. :)
10:45 jnthn But yeah, I'm quite open to being shown such a case too :)
10:47 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)})
10:47 psch https://github.com/peschwa/rakudo/blo​b/implement_tr/src/core/Str.pm#L1111 (and around there) is what i have
10:48 psch might well be that i *still* don't quite understand how exactly LSM works... :)
10:49 colomon Hmmm?  The way union on Bags works now is no accident.
10:49 colomon and I've recently used it in a conceptual sense
10:49 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"
10:50 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 $/
10:50 lizmat m: say <1 2 3>.Bag   ∪ <1 2 2>.Bag  # wrong
10:50 camelia rakudo-moar 3f5930: OUTPUT«bag(1, 2(2), 3)␤»
10:50 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)␤»
10:51 jnthn m: say <1 2 3>.Bag (|) <1 2 2>.Bag
10:51 camelia rakudo-moar 3f5930: OUTPUT«bag(1, 2(2), 3)␤»
10:51 psch jnthn: ok, thanks.
10:51 lizmat ah, ok... jnthn thanks
10:51 jnthn lizmat: Just to make sure we're understanding it the same, it's ∪ that has (|) as it's ASCII version...
10:52 lizmat yup
10:52 jnthn lizmat: And (+) is the bag union
10:52 lizmat see that now  :-)
10:52 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?
10:52 lizmat yeah, that feels weird
10:53 colomon It's the names for the operators which are strange, not what they do.
10:53 colomon "set union" returns the maximum quantity of each key in its input.
10:53 colomon "bag union" returns the sum of the quantities of each key in its input
10:54 bjz joined #perl6
10:54 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
10:54 camelia rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(4), 3)␤»
10:54 jnthn Aha
10:54 jnthn OK, now I understand what's going on
10:54 lizmat colomon: shouldn't that be 2(5) ?
10:55 colomon It would probably make more sense to call "bag union" "bag sum"
10:55 colomon lizmat: no, because it's taking the max quantity, not the sum of the quantities
10:55 lizmat aha.. ok
10:55 jnthn m: say <1 2 3>.Bag (|) <1 2 2 1 2 2>.Bag
10:55 camelia rakudo-moar 3f5930: OUTPUT«bag(1(2), 2(4), 3)␤»
10:55 jnthn m: say <1 2 3>.Bag (+) <1 2 2 1 2 2>.Bag
10:55 camelia rakudo-moar 3f5930: OUTPUT«bag(1(3), 2(5), 3)␤»
10:55 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 #perl6
10:55 jnthn colomon: OK, I can see how you might usefully want both of those.
10:57 jnthn And yeah, the names I/we used for them were confusing matters.
10:57 jnthn colomon++
10:57 colomon note that the texas names accurately convey what is going on: (&) is minimum quantity, (|) is maximum quantity, (+) is sum of quantities
10:57 colomon TimToady++ # I'm just remembering.  ;)
10:58 * jnthn tries to remember this for next time he's looking at such a problem.
10:58 jnthn 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...
10:59 colomon jnthn that's probably not a bad instinct, I think using Hashes directly is still significantly more efficient.
11:00 jnthn colomon: At the moment perhaps.
11:00 * colomon wrote if "datakit" ∈ @translators in some $work code yesterday, and it made him very happy
11:00 masak \o/
11:00 jnthn colomon: That's more a consequence of Hash having had a lot more optimization time
11:00 masak colomon: though if that's in a hot path... :)
11:00 colomon jnthn: sure.
11:00 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
11:01 masak colomon: ah :)
11:01 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.  :)
11:01 lizmat I couldn't use typed hashes, as they don't currently work in the core  :-(
11:02 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:03 colomon jnthn++
11:03 lizmat S02:3622 states that "$a = Parcel.new('a');" is the same as $a = (< a >,)
11:03 synopsebot Link: http://perlcabal.org/syn/S02.html#line_3622
11:03 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"
11:04 lizmat yeah, I got that... and that also goes for sets / bags / mixes  :-)
11:04 lizmat m: say Parcel.new("a")
11:04 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␤␤»
11:04 lizmat I've been bitten by Parcel.new not working before
11:04 lizmat is that a NYI, or is there a deeper reason this doesn't work ?
11:05 jnthn m: say Array.new(1,2,3)
11:05 camelia rakudo-moar 3f5930: OUTPUT«1 2 3␤»
11:05 jnthn It's certainly surprising to me that Parcel doesn't behave like that.
11:05 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.)
11:05 jnthn Needs writing very carefully, mind.
11:05 lizmat Parcel just doesn't have its own method 'new'
11:05 jnthn Since it should not enforce any context
11:06 jnthn So must be done with vmargarray or whatever it's called
11:06 lizmat yeah, I thought so...  :-)
11:06 lizmat let me try that and see what breaks
11:06 jnthn And remember to shift off the invocant before wrapping it in a Parcel ;)
11:13 lizmat .oO( grumble, nqp::p6argvmarray and nqp::p6parcel are not documented :-)
11:29 dalek rakudo/nom: 9814e86 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
11:29 dalek rakudo/nom: Make Parcel.new('a') work as specced
11:29 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9814e864a9
11:31 ghostlines joined #perl6
11:36 darutoko- joined #perl6
11:38 dalek roast: 8f1def5 | (Elizabeth Mattijsen)++ | S02-literals/radix.t:
11:38 dalek roast: Fix test wrt to type of exception
11:38 dalek roast: review: https://github.com/perl6/roast/commit/8f1def5fde
11:38 dalek roast: c7afefb | (Elizabeth Mattijsen)++ | S12-attributes/clone.t:
11:38 dalek roast: Merge branch 'master' of https://github.com/perl6/roast
11:38 dalek roast: review: https://github.com/perl6/roast/commit/c7afefb382
11:38 dalek roast: 4bc5f70 | (Elizabeth Mattijsen)++ | S02-types/parcel.t:
11:38 dalek roast: Add some Parcel.new tests
11:38 dalek roast: review: https://github.com/perl6/roast/commit/4bc5f70f9e
11:40 darutoko joined #perl6
11:52 masak timotimo: typo spotting: s/lazyness/laziness/ in http://p6weekly.wordpress.com/2014/09/08/20​14-36-finalization-lazyness-optimizations/
11:52 masak timotimo++ for p6weekly
11:56 masak 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.
12:02 ghostlines joined #perl6
12:03 bartolin joined #perl6
12:05 JimmyZ joined #perl6
12:07 grondilu Stage parse      : 566.323
12:07 grondilu ^usually around 200
12:09 jnthn grondilu: Helpful if you can specify backend...
12:10 grondilu MoarVM, today's update
12:10 grondilu it may be due to an excess of swap, though. I'm closing browser windows right now.
12:11 jnthn Yeah, I suspect so...my builds of Moar today have all had very normal times
12:11 jnthn 60s for the full build, a bit under 40s of it on setting, and 26s or so parse....
12:11 lizmat mine as well
12:11 jnthn uh, builds of Rakudo on Moar
12:11 dakkar joined #perl6
12:12 grondilu not related:  any hope of supporting 32bit JIT soon?
12:19 FROGGS hmmm, my guess is that it won't be soon, since it might make more sense to improve it on x64 first
12:20 FROGGS and port it at the "end"
12:23 pepl joined #perl6
12:31 moritz my guess is that it won't be seen, because nobody's working on it (afaict)
12:34 FROGGS maybe brrt pops in and replies :o)
12:36 jnthn s/seen/soon/? :)
12:37 jnthn But yeah, it's some work, I imagine
12:38 jnthn 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:41 FROGGS hmmm, so it might not be a goal at all?
12:48 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?
12:49 * grondilu would find NonZeroReal quite lame
12:50 jnthn Real-yNotZero
12:50 moritz grondilu: Real-but-not-Naught
12:50 grondilu I can't use "Real!" as subset name, can I?
12:50 moritz nope
12:51 dalek rakudo-star-daily: ec06b0d | coke++ | log/MoarVM-version.log:
12:51 dalek rakudo-star-daily: today (automated commit)
12:51 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/ec06b0d6ad
12:51 lizmat .oO( UnNaughty )
12:51 [Coke] looks like java was updated on host08 (moritz++) will try a java run again later today.
12:52 * grondilu considers Rea1
12:52 [Coke] f
12:54 ruoso RealButTrue
12:54 FROGGS [Coke]: can you ping me with your results afterwards?
12:55 [Coke] ooh, I'm in time, I'll re-enable jvm for today.
12:55 grondilu m: say so -1
12:55 camelia rakudo-moar 9814e8: OUTPUT«True␤»
12:56 grondilu ruoso: ^
12:56 * grondilu considers DReal  (for "Divisible Real")
12:57 ruoso well, 0 is divisible
12:57 grondilu ?
12:57 ruoso you can't divide by it
12:57 ruoso but you can divide it
12:57 grondilu oh yeah
12:58 grondilu IReal or InvReal, then I guess
12:59 grondilu 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?
12:59 grondilu because negative Real are still true
12:59 grondilu oh wait
12:59 ruoso Right, but you said != 0
12:59 grondilu right, my bad
13:00 grondilu "But" looks too much like role composition, though.
13:00 grondilu But I can go for TReal for "True Real"
13:01 ruoso I'm not sure the reference to role composition is wrong
13:01 ruoso it is a value that is a Real and is True
13:02 ruoso I always thought of the mathematical number sets as roles
13:03 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 :)
13:03 tadzik :D
13:03 tadzik that's awesome
13:03 Hor|zon joined #perl6
13:04 * grondilu considers just "Roman"
13:04 * grondilu remembers Romans did not have real numbers
13:05 grondilu I think I'll go with TReal
13:05 grondilu (or maybe TrueReal)
13:06 JimmyZ NonZeroReal
13:06 JimmyZ or NoZeroReal ...
13:07 JimmyZ NotZeroReal?
13:08 grondilu it's just too long for my taste
13:08 masak RealNZ
13:08 JimmyZ NZReal
13:09 masak ReNZal
13:09 grondilu on the other hand I'm not supposed to write it often, so maybe NonZeroReal is fine.
13:09 ruoso new zealand has a different number system?
13:09 * ruoso stops trolling now...
13:09 masak ruoso: they use a maoreal number system.
13:09 JimmyZ I think NonZeroReal is easy to understand for others too
13:09 grondilu JimmyZ: yeah, that's also a point.
13:10 masak NonZeroReals form a group under multiplication.
13:10 moritz grondilu: some physicists use "finite" for "non-zero" (because the inverse is finite)
13:23 guru joined #perl6
13:24 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 #perl6
13:25 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␤»
13:25 woolfy oO(looking forward to Austrian Perl Workshop, nice people, hackathon with lots of Perl6-people)
13:25 lizmat maybe the binding case should be disallowed?  What does it mean to bind the variable only once ?
13:27 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
13:27 jnthn lizmat: So yeah, if you go re-binding the container...well...surprise...
13:28 lizmat but it is silent right now, so maybe it should blow up ?
13:28 jnthn I dunno. Maybe it's useful for something... :)
13:28 pmichaud FROGGS:  Perl6 people are nice people at another level :)
13:28 pmichaud good morning, #perl6
13:28 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.
13:29 woolfy \o/ pmichaud
13:29 FROGGS hi pmichaud :o)
13:29 FROGGS woolfy: *g*
13:29 woolfy FROGGS:  I will give you a hug to make you remember how nice you are!
13:30 FROGGS woolfy: I was about offering that, hehe
13:31 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
13:31 pmichaud jnthn: o/
13:31 psch \o/
13:31 lizmat m: my $y = 42; sub a { once my $x := $y; ++$x }; say a; say $y   # make state visible outside ???
13:31 camelia rakudo-moar 9814e8: OUTPUT«43␤43␤»
13:31 jnthn pmichaud: Glad you'll be making it to the hackathon. \o/
13:31 FROGGS psch++ # was that you?
13:31 psch ...except that i had to adjust #46 for that
13:31 pmichaud jnthn: me too!
13:31 psch FROGGS: i'm fiddling with it, yeah
13:31 FROGGS psch++ # again :o)
13:31 pmichaud unless others have better suggestions, I'm thinking I'll focus on S07 at the hackathon
13:32 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 ?
13:32 camelia rakudo-moar 9814e8: OUTPUT«43␤43␤42␤42␤»
13:33 pmichaud FROGGS: yes, which means the hackathon might be a good place for us to _finally_ resolve a lot of stuff there :)
13:33 pmichaud S07 has been hurting for.... well, since well before Rakudo Star  :)
13:33 FROGGS pmichaud: yes, exactly :o)
13:33 jnthn pmichaud: I think a lot of us will focus on that at the hackathon. ;)
13:33 dalek roast: a9bfb14 | (Pepe Schwarz)++ | S05-transliteration/trans.t:
13:33 dalek roast: Correct a test.
13:33 dalek roast: review: https://github.com/perl6/roast/commit/a9bfb14599
13:33 psch ^^^ that's the test that didn't make sense before, in my understanding
13:35 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
13:35 FROGGS ohh yes
13:36 FROGGS and write it down and assign (concrete) tasks
13:36 lizmat FROGGS: indeed
13:36 lizmat maybe not assign but at least identify
13:36 masak pmichaud! \o/
13:37 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
13:37 jnthn woolfy: It was a secret? :)
13:38 masak lizmat: +1
13:38 FROGGS[mobile] joined #perl6
13:38 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:39 masak er, I mean, I plan to pay a lot of attention to IRC while it happens.
13:39 lizmat .oO( don't knock it! )
13:39 colomon \o/
13:39 lizmat .oO( we should stay clear of the light )
13:40 woolfy jnthn: not to me...
13:41 * colomon will be following masak's example.
13:42 masak poltertwins!
13:43 geekosaur polterguests
13:44 lizmat and we may want to call it the 'Salzburg Consensus'  :-)
13:46 FROGGS joined #perl6
13:47 lizmat jnthn (or anybody else): ideas of allowing "state $a := $b" as a way of sharing state between scopes ?
13:48 jnthn lizmat: I...hmmm..
13:48 lizmat I guess the thing to be sharing with could be a parameter
13:48 jnthn lizmat: Trouble is, it creates variables at first-entry-of-a-closure-clone.
13:48 masak clearly Salzburg itself must at some point have been the consensus between two previous cities, Säureburg und Baseburg.
13:49 jnthn lizmat: And stashes them away.
13:49 jnthn lizmat: And then re-instates them for each follow-up entry to the scope
13:49 lizmat ah, a subtle difference between 'once my $a' and 'state $a', right ?
13:50 lizmat once would only execute once ever, whereas state would be done for each new closure ?
13:50 dalek roast: afdcba5 | pmichaud++ | S03-operators/set.t:
13:50 dalek roast: Add test for RT #122882 - symmetric difference with 3+ args.
13:50 dalek roast: review: https://github.com/perl6/roast/commit/afdcba56b1
13:50 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122882
13:52 pmichaud feels good to close an RT ticket :)
13:52 jnthn lizmat: once also has state semantics.
13:52 jnthn lizmat: 'cus it's done using a state var, iirc?
13:52 jnthn And was once called START...and I know I impl'd that with a state var...
13:53 lizmat ah, ok  :-)
13:53 jnthn But "once my $a" doesn't say anything about $a staying around...
13:53 [Coke] [A
13:53 lizmat ah, yes, good point  :-)
13:53 lizmat .oO( duh! )
13:54 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 ajr joined #perl6
13:55 lizmat well, all of this was because of a question of Father Chrysostomos (a very productive p5p contributor) on p6l
13:55 molaf joined #perl6
13:56 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:57 jnthn (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 ?
13:58 jnthn lizmat: Depends how you define the semantics of state.
13:59 jnthn 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
13:59 jnthn 'cus those are certainly about value, not container
13:59 lizmat moritz +1
13:59 jnthn I took state to be wanting the same semantics
13:59 jnthn Yeah, I could go with a conservative approach of "just disallow it"
14:00 lizmat I'll answer FC
14:04 pmichaud I'm afk for a while again
14:06 kaare_ joined #perl6
14:11 psch t/spec/S17-procasync/print.rakudo.moar                      (Wstat: 0 Tests: 16 Failed: 0) TODO passed:   12-14
14:12 psch that surprised me? is trans somehow involved or are those 3 all flapping?
14:12 psch wait, the test file says the one after those flaps...?
14:12 dalek roast: 8cfc793 | (Elizabeth Mattijsen)++ | S03-operators/set.t:
14:12 dalek roast: Fix test count
14:12 dalek roast: review: https://github.com/perl6/roast/commit/8cfc793c29
14:12 jnthn psch: Flappin,g I think...
14:12 lizmat yeah, flipflapping  :-)
14:13 moritz once I even got a test failure from that file
14:13 psch https://github.com/rakudo/rakudo/pull/317
14:13 Possum joined #perl6
14:14 psch i still feel i haven't treated LSM quite as i should, but the tests say it's ok
14:14 psch that might mean there's not enough tests :)
14:30 FROGGS joined #perl6
14:42 kurahaupo_ joined #perl6
14:59 chipotle joined #perl6
15:03 lizmat cycling&
15:09 mls joined #perl6
15:23 molaf joined #perl6
15:24 guru joined #perl6
15:31 masak lol!
15:31 masak I blogged! o.O
15:31 masak http://strangelyconsistent.org/blog/mac​ros-progress-report-after-a-long-break
15:31 FROGGS O.o
15:32 masak I just want to add that I feel really good about this.
15:33 masak 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:37 pmichaud masak++
15:41 PerlJam pmichaud!
15:41 PerlJam o/
15:45 * PerlJam rereads 2012 advent day 23 to refresh his p6-macros model
15:46 Hor|zon joined #perl6
15:48 [Coke] ok, jvm run today (on oracle jvm) -seems- faster.
15:49 [Coke] moritz++
15:52 PerlJam [Coke]: Improvement perceived is improvement achieved?  :)
15:52 jnthn masak: Nice post
15:53 masak thx
15:55 * jnthn didn't blog in aaaages either :)
16:01 PerlJam masak++ a very nice post indeed.
16:02 darutoko- joined #perl6
16:03 JimmyZ masak++
16:08 JimmyZ_ joined #perl6
16:11 beastd joined #perl6
16:11 fhelmberger joined #perl6
16:11 grondilu m: (my %).pairs == 0;  # should this really warn??
16:11 camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
16:12 erkan joined #perl6
16:12 erkan joined #perl6
16:13 * grondilu got "use of uninitialized value of type Nil in numeric context"
16:14 timotimo well, (my %) is the hashes type object, no?
16:16 FROGGS m: (my %).pairs.elems == 0; # this should not warn
16:16 camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
16:17 moritz masak++ # macro post
16:17 darutoko joined #perl6
16:18 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 Hor|zon joined #perl6
16:19 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 moritz masak: hence, I'm excited about your upcoming posts :-)
16:25 sivoais joined #perl6
16:27 darutoko- joined #perl6
16:31 darutoko joined #perl6
16:41 timotimo are we too late to get projects idea in for perl's participation in gnome's outreach program for women?
16:42 timotimo it seems like at the moment the project ideas are 1) working on dancer, 2) working on metacpan
16:44 laben joined #perl6
16:44 laben hi perl6 :)
16:44 [Coke] We could abolutely come up with some perl 6 stuff
16:44 timotimo hi laben
16:44 [Coke] laben: hio
16:45 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:46 laben i bring good news! after rebuilding from latest git, i cannot reproduce the segfault anymore
16:46 timotimo hooray
16:46 timotimo is this related to the inlining segfault jnthn has fixed today?
16:46 laben i honestly hope it's that and not a heisenbug
16:47 * 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
16:48 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?
16:48 jnthn uh, MVM_SPESH_INLINE_DISABLE...
16:48 jnthn If it did, there's a very good chance my fix did it. :)
16:49 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
16:49 timotimo oh, then it might be something else
16:49 laben i only saw that error when i went to see the code
16:49 pepl joined #perl6
16:49 laben MVM_INLINE_DISABLE desn't exist
16:50 laben doesn't*
16:50 timotimo that's right
16:50 laben it would be better to document those environment vars...
16:51 jnthn Somebody did...
16:51 jnthn Recently, though
16:51 laben where?
16:51 timotimo in the man page draft
16:51 timotimo it'd be called moar.pod i believe
16:51 moritz it's in docs/moar.pod
16:51 jnthn moritz++
16:51 japhb .oO( Autosuggest for typoed MVM_* envvars )
16:52 jnthn we should maybe make moar --help include 'em...
16:52 japhb That's definitely a good idea
16:52 grondilu m: say so (my %).keys.map({rand}).all == 1;
16:53 japhb masak++ # Excellent macro blog post
16:53 camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
16:53 grondilu m: say ().all == 1;
16:53 camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
16:53 timotimo i believe in micro evolution, but i think macro evolution is just a hoax
16:54 timotimo m: say "hi"
16:54 camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
16:54 laben oh, indeed they are there, maybe render it into a simple format and install it with a make target
16:55 laben 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:57 laben ofc, it's there in the core lib, let me try it
16:58 pmurias joined #perl6
17:00 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 #perl6
17:09 vendethiel joined #perl6
17:09 vendethiel thanks masak++ :). Also always up for a chat!
17:10 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)
17:10 camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
17:10 vendethiel timotimo: there are no use cases for a timeout, it seems.
17:11 pecastro joined #perl6
17:11 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
17:12 flussence whee, that bash thing hasn't been fixed properly...
17:12 moritz though maybe only when the parrot backend is used
17:12 flussence «foo='() { echo not patched; }' bash -c foo» is today's test...
17:13 vendethiel Re-reading the syn another time, I realize I'm starting to "know" Perl 6.
17:13 vendethiel boi, is it a long list of things to learn
17:13 pmurias what I mean is do we have exxamples of stuff we would like macros to be used for
17:13 vendethiel pmurias: I can give you aplenty
17:13 * colomon just found doc.perl6.org invaluable.  <whoever did that>++
17:13 vendethiel or plenty. Can't english, sorry
17:14 laben sorry, need to afk for some time, see you later
17:14 pmurias vendethiel: I would love to see some
17:15 vendethiel pmurias: So, an obvious one is generating methods for some class, with more-or-less specific checks. Think an ORM
17:16 _slade_ joined #perl6
17:16 pmurias isn't that something that can be done with the metamodel?
17:16 vendethiel You *can* hack the metamodel to do that, yes
17:16 vendethiel that's a pretty slow solution though
17:16 vendethiel and you *can't* count on static optimizations, for obvious reasons
17:17 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 pmurias we can use the metamodel at compile time (BEGIN)
17:18 jnthn japhb: envvars are now also in the usage :)
17:18 gfldex joined #perl6
17:19 vendethiel pmurias: hardly so if you want dynamic method bodies
17:19 vendethiel especially considering the lexpads
17:20 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.
17:20 vendethiel even the EVAL'd ones?
17:20 guru joined #perl6
17:20 jnthn vendethiel: We can inline across compilation units
17:20 jnthn The inliner doesn't care much. It only cares if they're blocks from different programming languages.
17:21 vendethiel good thing :)
17:21 jnthn But if it's all Perl 6 code, no problem.
17:22 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 vendethiel basically what the ruby guys are doing. Looks a lot like macros, only it's slow
17:22 vendethiel (and failprone because of the complexity)
17:22 * vendethiel eat&
17:22 jnthn Macros could be more efficient and certainly more elegant here
17:23 jnthn My point was just that you can build up classes at BEGIN time and not have to miss out on optimizations.
17:24 ruoso can the jit see through different meta-classes?
17:25 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 guru joined #perl6
17:27 jnthn ruoso: In terms of its specializations, it mostly cares about types rather than the particular meta-class implementing that type.
17:27 jnthn ruoso: Since meta-objects are just, well, objects, I've seen cases where it inlined bits of meta-objects.
17:28 ruoso right, at which point you get the same benefit than doing with a macro would add
17:30 pmurias I'm not sure just generating a much of accessors with macros will be more elegant than with the metamodel
17:31 jnthn pmurias: For simple accessors, likely not. For more elaborate things, macros could come off better.
17:32 pmurias and optimizing something like my $flag = 0; $class.add_method($class, $accessor, sub {...; if $flag {...}; ... }) seems in the realm of possibility
17:33 ssutch joined #perl6
17:33 slavik joined #perl6
17:34 pmurias generating tight numeric crunching code seems one marco use case
17:34 pmurias s/numeric/number
17:35 jnthn *nod*
17:35 jnthn yay, my big pan of chili is ready...
17:35 jnthn nom &
17:36 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 b2gills joined #perl6
17:40 pmurias ruoso: are we in risk of that?
17:41 ruoso I think if people start using macros as a way to write generic code instead of using the meta-model, yes
17:42 erkan joined #perl6
17:43 vendethiel ruoso: you shouldn't even need to resort to the meta-model, really :)
17:43 vendethiel the "main" feature of templates lies in our [::T]
17:44 vendethiel (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:45 leont vendethiel: having gone far too far, I can see your point ;-)
17:46 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:47 vendethiel leont: to be honest, that's the only C++ I'm writing: abusing templates and stuff :P
17:48 vendethiel 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…
17:48 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.
17:49 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!
17:49 leont Yeah, concepts would help a lot
17:50 ruoso I believe most of the c++ template usage is solved with Roles in Perl 6
17:50 ruoso (the sane ones)
17:50 pmurias vendethiel: are the ruby equivalents inelegant?
17:50 ruoso and the crazier ones are solved with MOP
17:50 vendethiel pmurias: kind of. Easy to be abused, that's for sure
17:51 vendethiel 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 vendethiel Dependently typed Perl6 ?
17:51 camelia rakudo-moar 9814e8: OUTPUT«(timeout)»
17:51 vendethiel Dependently timed Perl6.
17:51 Ven joined #perl6
17:51 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
17:52 ruoso for instance, the feed operator is kind of a macro
17:53 vendethiel can I not expose the subset inside the class? The our fails :(
17:53 vendethiel pmurias: c2?SufficientlySmartCompiler
17:54 vendethiel 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 vendethiel (and in general, not have to quote everything)
17:54 pmurias vendethiel: just inlining closures with known outer values doesn't seem like something outside the realm of possiblity
17:55 vendethiel pmurias: this one doesn't :-)
17:55 vendethiel pmurias: https://github.com/rails/rails/blob/08754f12​e65a9ec79633a605e986d0f1ffa4b251/activesuppo​rt/lib/active_support/option_merger.rb#L14
17:55 lizmat jnthn++ for an excellent reply to FC
17:55 vendethiel rails has just everything like that :-)
17:55 vendethiel lizmat: link maybe :)?
17:55 lizmat not sure where p6l is being archived
17:56 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 vendethiel pmurias: a great example of that is squeel: https://github.com/activerecord-hackery/squeel/ A nice and cute DSL!
17:57 pmurias I have to leave now, but I'll look into that soon (and brush on my ruby)
17:58 lizmat vendethiel: I guess it will wind up here at one point: http://www.nntp.perl.org/g​roup/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 #perl6
17:58 pmurias got to leave&
17:59 lizmat vendethiel: http://www.nntp.perl.org/group/perl.​perl6.language/2014/10/msg36016.html
17:59 vendethiel .tell pmurias stuff in ruby does that too :-). It's really amazing
17:59 yoleaux vendethiel: I'll pass your message to pmurias.
18:00 vendethiel lizmat: thanks. That's the p5pumpking, right?
18:00 lizmat no, rjbs is the pumpking
18:00 lizmat FC is a very prolific committer
18:01 vendethiel fair enough -- my bad
18:01 tony-o lol
18:01 lizmat oddly enough, jnthn's reply is not there yet
18:02 SamuraiJack_ joined #perl6
18:04 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: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=111046
18:04 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 #perl6
18:07 darutoko joined #perl6
18:07 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:08 treehug88 joined #perl6
18:11 laben joined #perl6
18:11 [Coke] bartolin: yes, it's worth fixing.
18:11 [Coke] but it's a PITA, so no one has bothered yet.
18:11 [Coke] basically: every command we exec should "" its args.
18:12 [Coke] one of the rakudo.jvm tests hung, had to kill it.
18:13 bartolin I'm afraid the biggest problem is "make".
18:13 [Coke] easy to wrap args in make. :)
18:14 laben sorry, i'm back
18:14 [Coke] we're sorry too? ;)
18:15 laben left #perl6
18:15 jnthn o.O
18:15 laben joined #perl6
18:15 bartolin hmm, I think I have to do some reading wrt make ;-)
18:16 laben welp, seems like i have some net problems
18:17 laben 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...
18:18 masak pmurias: not a centralized list, no.
18:18 masak pmurias: that sounds like a nice goal, though.
18:18 * ruoso didn't want to imply it was not worth fixing the file acces, fwiw
18:18 masak ruoso! \o/
18:19 vendethiel \o/
18:19 Hor|zon joined #perl6
18:19 ruoso i am trying to come out of the cave I've been in the past three years :)
18:20 masak ruoso: long time, no see!
18:21 vendethiel come check us out, we're doing pretty great :-)
18:21 vendethiel we're nearly webscale now.
18:21 vendethiel (we just need some more sharding, I guess)
18:22 ruoso I've also been mostly working in build automation, not really writing apps
18:24 vendethiel bartolin: just punish people with spaces in their folder names :P
18:25 laben mmh, where was the page with the test results of perl6 modules? cannot find it on perl6.org
18:30 bartolin thanks for the feedback! I'll have a look for some LHF first (like quoting file names for system calls)
18:37 FROGGS laben: I think it should be here: http://host08.perl6.com:8080/report
18:38 chipotle joined #perl6
18:41 laben FROGGS: many thanks
18:42 laben mmh weird, TestML does not build here, what's going on?
18:43 tony-o xxwhat is that?
18:47 laben Too late for semicolon form of class definition
18:47 laben at lib/TestML/Document.pm:13
18:48 laben from github.com/ingydotnet/testml-pm6
18:48 FROGGS that's the correct version: https://github.com/perl6-community-modul​es/testml-pm6/blob/master/lib/TestML.pm
18:48 Hor|zon joined #perl6
18:50 laben bleh github search function sucks cobols
18:50 laben didn't find that one
18:52 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: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122842
18:55 jnthn bartolin: That doesn't surprise me.
18:55 brrt joined #perl6
18:56 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:57 Ven joined #perl6
18:58 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:59 laben FROGGS: thanks again, you saved me several headaches
18:59 FROGGS :o)
18:59 guru joined #perl6
19:03 Hor|zon joined #perl6
19:03 Mso150_a_u joined #perl6
19:03 raydiak has anyone started/seen/heard of a p6 module for parsing and manipulating math equations/expressions?
19:04 laben for latex?
19:05 raydiak no, just for math in general
19:05 laben i see nothing of that in modules.perl6.org
19:06 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
19:07 moritz 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
19:08 moritz raydiak: Math::Expression::Evaluator
19:09 raydiak nice, thanks moritz++; reading
19:10 laben moritz: interesting, what was the use case you had for writing it?
19:11 moritz laben: none, really :-)
19:11 moritz laben: I was actually writing a turing complete interpreter
19:11 moritz laben: with a bit of nice syntax, function calls, lexical scopes and all that
19:12 moritz laben: just because I always wanted to do that
19:12 moritz laben: and the math part was the only thing that I though might be worth polishing and publishing
19:13 laben moritz: then the only thing that remains to be done is making a ACME::Turing::Machine package :P
19:14 rindolf joined #perl6
19:14 sqirrel joined #perl6
19:19 * moritz wonders if the code still lives on that old desktop machine, or in a backup
19:24 timotimo what'd i miss?
19:26 tony-o mortiz is turing complete
19:26 timotimo mhm, that'll be a good step towards our rise to absolute power
19:27 ghostlines joined #perl6
19:29 Mso150_a_u_v joined #perl6
19:29 * moritz is also bullshit complete
19:31 spider-mario joined #perl6
19:32 [Coke] nope. rakudo.jvm is still very slow.
19:33 [Coke] testing box only made it to S04 so far; it's nearly done by now.
19:33 [Coke] I will have to keep it disabled until I figure this out.
19:36 * 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 #perl6
19:36 lizmat vendethiel:  ??
19:36 vendethiel lizmat: I'm trying to pull out my reference :-)
19:36 vendethiel noted stuff on my phone
19:37 laben Missing or wrong version of dependency 'src/gen/m-BOOTSTRAP.nqp'
19:37 laben what could be causing this during a panda-build?
19:38 tony-o did you just rebuild perl6+moar ?
19:38 [Coke] have you rebuilt anything else recently?
19:39 laben i did, but i thought i already rebuilt everything just not this module
19:40 laben oh well, let's re-rebuild everything
19:42 [Coke] did you panda rebootstrap after the build?
19:44 laben i'm trying to package everything up, so i try to avoid that
19:44 laben but we will know soon enough
19:49 laben gosh dammit, i forgot Inline::Perl5 requires LibraryMake too, and forgot to rebuild that
19:49 laben all is well now
19:51 PerlJam laben: rakudobrew is your friend
19:52 dalek rakudo/nom: 5870906 | (Elizabeth Mattijsen)++ | src/core/ (13 files):
19:52 dalek rakudo/nom: Second part of making IO up to spec
19:52 dalek rakudo/nom:
19:52 dalek rakudo/nom: with S16 | S32/IO synopsis updates.
19:52 dalek rakudo/nom:
19:52 dalek rakudo/nom: This was mostly about making IO::Path smarter: keeping the $*SPEC/$*CWD
19:52 dalek rakudo/nom: settings at creation time for later usage.  And making sure all IO::Path
19:52 dalek rakudo/nom: methods map to the correct $!SPEC.samemethod (or composite).
19:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/58709063fe
19:53 dalek roast: d9596f7 | (Elizabeth Mattijsen)++ | S32-io/io-path (4 files):
19:53 dalek roast: Test adaptations for new S16|S32/IO changes
19:53 dalek roast: review: https://github.com/perl6/roast/commit/d9596f7fe5
19:54 lizmat *phew*  that's finally off my plate (for now)
19:54 lizmat I hope the ecosystem fallout will be minimal
19:57 jack_rabbit joined #perl6
20:03 Mso150 joined #perl6
20:04 ecocode joined #perl6
20:07 [Sno] joined #perl6
20:10 rmgk_ joined #perl6
20:11 fhelmberger joined #perl6
20:12 lizmat joined #perl6
20:22 laben joined #perl6
20:25 grondilu weird error I can't reproduce:
20:25 grondilu Type check failed in binding $x; expected 'Real' but got 'Rat'
20:25 grondilu isn't Rat acceptable as a return value for Real?
20:25 grondilu m: sub f(--> Real) { 1/3 }; say f()
20:26 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 #perl6
20:29 jnthn m: say Rat ~~ Real
20:29 camelia rakudo-moar 9814e8: OUTPUT«True␤»
20:29 jnthn m: my Real $x; $x := 1/3;
20:29 camelia rakudo-moar 9814e8: ( no output )
20:30 jnthn grondilu: It'd be a binding failing I'd imagine...but yeah, odd...
20:35 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:36 * lizmat makes it an early night
20:36 grondilu I guess I should ask that to #debian
20:39 geekosaur sadly figuring out memory usage is really difficult on modern operating systems
20:40 geekosaur top etc. don't tell the whole story, because the whole story is extremely complex
20:40 geekosaur and can't really be represented in a 2D interface
20:40 geekosaur it's a complex tree with loops and shared nodes all over the place
20:41 grondilu geekosaur: is it true as well for CPU use?
20:42 grondilu because I've just checked and there's no way swap usage is the issue.
20:43 geekosaur not as much, on most general purpose computers. NUMA architectures can cause CPU scheduling to be vaguely similar though
20:43 geekosaur as for CPU use, one thing that won't generally show (or at least not with any granularity) is interrupt processing
20:44 geekosaur show in top, that is
20:44 brrt left #perl6
20:48 raydiak grondilu: have you already accounted for buffers/cache?
20:49 grondilu raydiak: not sure what you mean.
20:49 raydiak grondilu: run free -h
20:49 raydiak and look at the difference in the used/free columns between the first and second line
20:50 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
20:51 grondilu 317M is used, 679M is free
20:51 grondilu I have no idea what this is, though.
20:51 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
20:52 raydiak 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:53 grondilu 679M seems large enough to run the small [+] rand xx 100_000 benchmark I often use.
20:54 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:58 jnthn FROGGS: If you're happy it's tested enough, then https://rt.perl.org/Ticket/Display.html?id=63896 is closable now. It's the third oldest ticket in the queue. :)
20:59 FROGGS jnthn: thanks for the pointer :o)
21:00 chipotle joined #perl6
21:01 vendethiel Isn't `foo $bar: 1` kinda ambiguous with `foo $bar.baz: 1`?
21:01 vendethiel At least -- incosistent.
21:01 FROGGS vendethiel: what is `foo $bar: 1`?
21:01 vendethiel FROGGS $bar.foo(1)
21:02 FROGGS really?
21:02 FROGGS damn
21:02 ggherdov joined #perl6
21:02 vendethiel think 'so.
21:03 vendethiel std: foo $bar: 1;
21:03 vendethiel std: foo $bar.baz: 1;
21:03 camelia std fc92e1e: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable $bar is not predeclared at /tmp/9QpHyFh9RG line 1:�------> [32mfoo [33m�[31m$bar: 1;[0m�Check failed�FAILED 00:01 142m�»
21:03 camelia std fc92e1e: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Variable $bar is not predeclared at /tmp/sCTokJeX3R line 1:â�¤------> [32mfoo [33mâ��[31m$bar.baz: 1;[0mâ�¤Undeclared routine:â�¤        'foo' used at line 1â�¤Check failedâ�¤FAILED 00:01 140mâ�¤Â»
21:03 vendethiel std: my $bar; foo $bar: 1;
21:03 camelia std fc92e1e: OUTPUT«ok 00:01 143m␤»
21:03 vendethiel std: my $bar; foo $bar.baz: 1;
21:03 camelia std fc92e1e: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'foo' used at line 1�Check failed�FAILED 00:01 141m�»
21:03 vendethiel std: my $bar; sub foo {}; foo $bar.baz: 1;
21:03 camelia std fc92e1e: OUTPUT«ok 00:01 142m␤»
21:03 vendethiel FROGGS: ^ this proves my point even further
21:04 vendethiel https://github.com/perl6/specs/pull/69 :o) some eyeballs please
21:05 japhb joined #perl6
21:15 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…»
21:15 gtodd vendethiel: ?
21:16 dalek roast: 08ef117 | jnthn++ | S02-types/declare.t:
21:16 dalek roast: Correct a bogus Complex constraint test.
21:16 dalek roast:
21:16 dalek roast: Didn't actually try it on Niecza, but pretty certain it will pass now
21:16 dalek roast: too, so unfudged it for both Rakudo and Niecza.
21:16 dalek roast: review: https://github.com/perl6/roast/commit/08ef117611
21:25 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 #perl6
21:28 jnthn lizmat: ^^ looks like IO refactor fallout, at a guess...
21:31 timotimo oh, the end limit test will be applied to the whole parcel itself, huh?
21:31 Alula joined #perl6
21:33 grondilu joined #perl6
21:35 dalek rakudo/nom: 0242728 | jnthn++ | src/vm/moar/Perl6/Ops.nqp:
21:35 dalek rakudo/nom: Remove outdated comment.
21:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/02427286ca
21:39 _slade_ joined #perl6
21:40 virtualsue joined #perl6
21:42 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:45 ecocode joined #perl6
21:45 kjs_ joined #perl6
21:57 pmurias joined #perl6
21:57 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
22:04 bowtie joined #perl6
22:06 Hor|zon joined #perl6
22:27 kjs_ joined #perl6
22:35 davido__ joined #perl6
22:53 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␤»
22:53 b2gills m: my @a; @a[0;0] = True; say so @a[0;0]
22:53 camelia rakudo-moar 024272: OUTPUT«False␤»
22:54 davido__ joined #perl6
22:57 raiph joined #perl6
22:58 grondilu got it again:
22:58 grondilu ===SORRY!===
22:58 grondilu Type check failed in binding $x; expected 'Real' but got 'Rat'
23:01 grondilu seems reliable this time
23:01 davido__ joined #perl6
23:02 * grondilu tries to strip the problematic code to bare minimal
23:06 grondilu so weird.
23:06 grondilu this work:
23:06 grondilu use Clifford; sub random { [+] e(*)[^8] Z* (rand.round(.1) xx *) }; .say for random() xx 2;
23:07 grondilu but this does not:
23:07 grondilu use Clifford; sub random { [+] e(*)[^8] Z* (rand.round(.1) xx *) }; .say for random() xx 3
23:07 grondilu ;
23:07 grondilu though I guess I should get rid of the randomness before making any conclusion
23:09 grondilu yes that depends of the value so it's module-specific.
23:21 grondilu ok, got it.  I was breaching a constraint:
23:21 grondilu 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);
23:22 grondilu shorter:
23:22 PZt joined #perl6
23:22 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«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/FddQ8MfY_Bâ�¤Unable to parse expression in single quotes; couldn't find final "'" â�¤at /tmp/FddQ8MfY_B:1â�¤------> [32ms TReal %.h }; say A.new: :h(foo => 0);'[33mâ��[31m<EOL>[0mâ�¤    expectin…»
23:22 grondilu ahh sorry
23:22 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«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…»
23:23 grondilu correct error message should mention the subset 'TReal' and not 'Real'
23:34 cosimo joined #perl6
23:35 * grondilu got a segmentation fault trying to rebootstrap pand
23:35 grondilu *panda

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

Perl 6 | Reference Documentation | Rakudo