Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-09-29

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:12 adhoc_ joined #perl6
00:16 flussence joined #perl6
00:43 aborazmeh joined #perl6
00:43 aborazmeh joined #perl6
00:43 laouji joined #perl6
00:47 colomon joined #perl6
00:48 tokuhiro_ joined #perl6
00:48 tadzik joined #perl6
00:48 [Coke] moritz: you in?
00:49 TEttinger joined #perl6
00:52 aborazmeh joined #perl6
00:52 aborazmeh joined #perl6
00:58 dalek rakudo/nom: f192cd0 | TimToady++ | src/core/Junction.pm:
00:58 dalek rakudo/nom: Junction ops are pure
00:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f192cd0503
00:58 dalek rakudo/nom: 5e4c4c2 | TimToady++ | src/core/Pair.pm:
00:58 dalek rakudo/nom: Pair ops are pure
00:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5e4c4c2339
00:58 dalek rakudo/nom: e0b56aa | TimToady++ | src/core/set_operators.pm:
00:58 dalek rakudo/nom: Unicode set ops are also pure
00:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e0b56aa5c9
01:06 helloworldlang joined #perl6
01:08 helloworldlang1 joined #perl6
01:34 BenGoldberg joined #perl6
01:41 dalek doc: e7eae10 | coke++ | htmlify.p6:
01:41 dalek doc: fix typo
01:41 dalek doc: review: https://github.com/perl6/doc/commit/e7eae10e4c
01:46 [Coke] is anyone successfully using --profile these days?
01:48 atta joined #perl6
01:48 tokuhiro_ joined #perl6
01:54 ShimmerFairy [Coke]: you mean  perl6 --profile  ? I've used that a couple times.
01:54 [Coke] the generate inclusive & exclusive time seems to be 0, so all the percentages are off.
01:54 [Coke] individual times aren't necessarily 0, but when you divide everything by 0...
01:55 ShimmerFairy Mainly just to see the callgraph, and it happens to have a nice "took Xms" on the summary page :)
01:57 [Coke] here it's unusably slow, and the numbers are all off.
02:00 prevost joined #perl6
02:03 ShimmerFairy I do recall it being slow sometimes, but not to an unusable extent. I never looked at the numbers enough to know if they're accurate.
02:04 tokuhiro_ joined #perl6
02:04 [Coke] the routines for me are showing "inf %" and "Nan%"
02:10 adu joined #perl6
02:11 atta joined #perl6
02:16 schobes joined #perl6
02:19 * [Coke] tries to cut down the code to something manageable to show the issue in the profiler.
02:26 adu [Coke]: what's wrong with the profiler?
02:32 [Coke] 1) it's very slow for anything bigger than a breadbasket. 2) it's claiming a bunch of exclusive time is spent in a routine where no time is being spent. 3) it's reporting total inclusive time as 0, which screws up all the percentages.
02:32 * [Coke] finds one problem, anyway:
02:32 [Coke] perl6 --profile --profile-filename=nan.html -e 'exit'
02:32 [Coke] ^^ there's a golf. :P
02:33 [Coke] it reports that sink-all takes up this much exclusive time: 18446744073709ms
02:37 ShimmerFairy [Coke]: that ran almost instantly for me (while doing an all-CPU system update, to boot), but I do see Infinity and NaN under Inclusive Time (Routines tab), and sink, sink_all, THE_END, and exit have the ridiculous time
02:37 noganex joined #perl6
02:37 * [Coke] opens RT #126216 with that.
02:37 ilbot6 joined #perl6
02:38 ShimmerFairy I don't recall seeing Infinity and NaN before in the profiler output, so it must be recent-ish
02:38 ilbot6 joined #perl6
02:38 [Coke] yup, that one runs fast and screws up quick. should be perfect for debugging.
02:39 helloworldlang joined #perl6
02:39 ShimmerFairy [Coke]: yeah, took me a minute to realize that your original case was probably more time consuming :)
02:40 electricface-ilb joined #perl6
02:41 pink_mist 0_o yeah 584 years might be a bit out of range for a profiler run
02:41 * [Coke] zzz
02:45 vendethiel joined #perl6
02:54 timotimo oh, yeah, using exit makes the profiler super confused
02:54 timotimo oh lord, why am i still up
02:56 n_i_c_k joined #perl6
02:58 kaare_ joined #perl6
03:16 electricface-ilb joined #perl6
03:17 electricface-ilb joined #perl6
03:32 [Tux] joined #perl6
03:41 adu joined #perl6
03:48 ShimmerFairy m: use nqp; sub foo(\a) { say a.^name }; say nqp::hash().^name; foo(nqp::hash())
03:48 camelia rakudo-moar 9e8b7b: OUTPUT«BOOTHash␤Hash␤»
03:49 ShimmerFairy Is there a reason passing an NQP-level object to \a automatically hllizes it? (I'm working on code that's meant to be in NQP someday, and  'make'  makes planning for that a bit harder atm)
03:51 atta joined #perl6
03:52 ShimmerFairy Oh, I can see an hllize in the qast output, that'd explain it :)
03:56 laouji joined #perl6
03:58 mr_ron left #perl6
04:03 atta joined #perl6
04:18 _thou joined #perl6
04:23 atta joined #perl6
04:34 laouji joined #perl6
05:09 xfix joined #perl6
05:41 atta joined #perl6
06:00 domidumont joined #perl6
06:04 salva joined #perl6
06:06 _thou joined #perl6
06:10 [Tux] test             50000    35.796    35.692
06:10 [Tux] test-t           50000    36.602    36.499
06:12 diana_olhovik_ joined #perl6
06:23 darutoko joined #perl6
06:25 FROGGS joined #perl6
06:26 Ven joined #perl6
06:26 abraxxa joined #perl6
06:27 araujo_ joined #perl6
06:34 moritz \o
06:45 abraxxa joined #perl6
06:46 TimToady moritz: camelia not recompiling for some reason...
06:49 moritz TimToady: it's currently rebuilding...
06:50 moritz currently in the process of compiling the setting w(JVM)
06:53 moritz Stage jast       : Error while compiling op readcharsfh (source text: "nqp::readcharsfh($!PIO,$chars)"), no registered operation handler in compile_op (gen/jvm/stage2/QAST.nqp:240)
06:54 moritz so, JVM build busted
06:56 telex joined #perl6
07:01 Woodi joined #perl6
07:02 rindolf joined #perl6
07:07 [TuxCM] joined #perl6
07:10 masak good morning, #perl6
07:10 moritz good masak, morning
07:10 moritz or... something :-)
07:16 masak good "or somthing", moritz :)
07:16 FROGGS if we'd implement readcharsfh for jvm we could get rid of two fudge blocks btw
07:16 yoleaux 28 Sep 2015 21:41Z <lizmat> FROGGS: added tie-breaking logic to https://gist.github.com/lizmat/f3807956c354c14902a3/revisions
07:16 yoleaux 28 Sep 2015 21:41Z <lizmat> FROGGS: is that something you can agree to?
07:17 moritz FROGGS: if we'd implement readcharsfh for jvm, the build would likely unbust :-)
07:17 FROGGS moritz: that's the bonus :P
07:18 moritz http://pointersgonewild.com/2015/09/24/basic-block-versioning-my-best-result-yet/ # a blog post about JIT!
07:18 FROGGS .tell lizmat what about different authors and same api? (I'm just curious)
07:18 yoleaux FROGGS: I'll pass your message to lizmat.
07:22 FROGGS .tell lizmat I think I can live with the api tag... it feels like engaging responsibility to dist authors
07:22 yoleaux FROGGS: I'll pass your message to lizmat.
07:24 ShimmerFairy FROGGS: AIUI different auths counts as a failure, because you can't be sure any two auths will use the same versioning/API enumeration scheme
07:25 FROGGS ShimmerFairy: yeah, I guess one should provide a set of auths if the case is a different one for a namesapce
07:25 ShimmerFairy FROGGS: to analogize with portage, I see :auth as like the category of a package, where you can leave it off _until_ two packages in different categories have the same name.
07:27 ShimmerFairy (and the :api addition came about from me talking about portage's SLOTs mechanism, to offer another comparison :P)
07:27 FROGGS :o)
07:33 electricface-ilb joined #perl6
07:34 CIAvash joined #perl6
07:35 lizmat good *, #perl6!
07:35 yoleaux 07:18Z <FROGGS> lizmat: what about different authors and same api? (I'm just curious)
07:35 yoleaux 07:22Z <FROGGS> lizmat: I think I can live with the api tag... it feels like engaging responsibility to dist authors
07:35 Ven joined #perl6
07:35 lizmat FROGGS: what ShimmerFairy said
07:36 lizmat and yes, it empowers distribution authors  :-)
07:37 ShimmerFairy lizmat: the only thing that might be left unconsidered is same name/auth/ver, but differing api. I think would count as a tie-break failure, in case your gist doesn't mention it already.
07:38 FROGGS ShimmerFairy: there should not be any same name/auth/ver
07:38 lizmat ShimmerFairy: the long name is still just name / auth / ver
07:38 FROGGS aye
07:38 ShimmerFairy ah, ok :)
07:38 lizmat api is just a tie breake
07:38 lizmat r
07:39 ShimmerFairy lizmat: fair enough, since same version number is considered poor practice by more than just Semantic Versioning :)
07:39 FROGGS dist(:$name, :$auth, :$ver;; :$api) # or so
07:39 lizmat indeed  :-)
07:39 lizmat indeed :-)
07:39 FROGGS indeed:-) # <-- tuxish
07:40 lizmat I haven't heard whether [Tux]  is happy enough with infix:<.> to drop use of TuxIsh
07:40 ShimmerFairy in :-) deed
07:40 lizmat *Tuxic
07:41 [TuxCM] Tuxic is not just because of the . on newline
07:41 FROGGS lizmat: I think the whitespace before the opening parenthesis was also very important
07:41 lizmat ah, that
07:41 RabidGravy joined #perl6
07:41 [TuxCM] the *main* reason is that I *require* a space between the function name and the opening (
07:41 lizmat BTW, can Slang::Tuxic now maybe be simplified ?
07:42 electricface-ilb joined #perl6
07:42 ShimmerFairy Why do you require it, ooc? Is it just style, or do you have some sort of editing setup that relies on it?
07:42 lizmat style, afaik  :-)
07:43 [TuxCM] http://tux.nl/style.html
07:43 * [TuxCM] does not expect ShimmerFairy to agree
07:44 [TuxCM] and that site may be off-line for 5 minutes soon because of security updates
07:47 ShimmerFairy [TuxCM]: I in fact don't agree with your style :) . An indented closing brace for me means the indentation engine went wonky, cuddled else/elsif is far superior visually, and putting a space between the function name and open paren is just *weird* :)
07:48 electricface-ilb joined #perl6
07:48 [TuxCM] superiority is within the eye of the coder
07:49 ShimmerFairy [TuxCM]: sure, but your page reads just as sure of itself as I was right there :P
07:49 [TuxCM] at least you see it is thought well over. not just "because"
07:50 [TuxCM] and I *am* that convinced I am right :P
07:50 mrf Its rather interesting how people can have a similar reasoning but reach a different conclusion.
07:51 ShimmerFairy [TuxCM]: It seems you view functions in that mathy (aka Haskell) sort of way, where arguments are separated from the name by spaces. (By 'mathy' I mean like    x = 2 * (sin y)    instead of  x = 2 * sin(y)  )
07:51 [TuxCM] sounds about right. I understand how you perceive this
07:52 [TuxCM] x = 2 x sin (y)
07:52 [TuxCM] x = 2 * sin (y)
07:52 ShimmerFairy not quite how math and Haskell make you do it, but somewhat similar.
07:52 [TuxCM] and I go beyond that: select count (*) from foo;
07:53 lizmat moritz: am fixing the JVM breakage
07:53 ShimmerFairy I agree that your style choices are well thought out, I only don't agree with those style choices :P
07:53 [TuxCM] which causes a default MySQL install to fail, as it rejects that space, which is permitted in ANSI
07:54 _thou joined #perl6
07:54 [TuxCM] ShimmerFairy, I already appreciate that you had a serious look at them instead of just rejecting
07:55 ShimmerFairy [TuxCM]: I will say that GNU's "must be formatted like we want" always struck me as disengaging. My favorite style guide was LLVM's which said "here are some guidelines, but the only big thing is to stay consistent within the file"
07:55 [TuxCM] consistency++ for ^100
07:56 ShimmerFairy [TuxCM]: I only skimmed it (since my browser is closed to let system update happen smoother, so went with `links`), but I did see your reasoning about blocks as a compound statement, and *why* you space away the arguments.
07:56 lizmat hmmm... intriguing, my change seems to cause an infiniloop in the optimizer
07:56 [TuxCM] site should be up again
07:57 leont joined #perl6
07:58 ShimmerFairy Interestingly, "braces are part of the block" is why I put the opening brace on the same line, but I line up my closing brackets with the opening brackets, where I consider the bit before a curly brace part of the opening :)
07:58 lizmat .tell timotimo https://gist.github.com/lizmat/d38a48beded67ab971ff causes an infiniloop in the optimizer
07:58 yoleaux lizmat: I'll pass your message to timotimo.
07:58 ShimmerFairy In other words, I line up the opening and closing lines of a block (or paren'd group, or whatever), and indent the contents.
07:58 lizmat .tell timotimo may have something to do with calling a private method of class A from within class B (which lives inside class A)
07:58 yoleaux lizmat: I'll pass your message to timotimo.
07:58 [TuxCM] that style also has a name
07:59 * lizmat tries to solve JVM breakage in a different way
07:59 [Tux] joined #perl6
08:01 FROGGS lizmat: note that on the jvm chars != bytes
08:01 FROGGS lizmat: chars == 2*bytes
08:02 ShimmerFairy I should probably write up a style guide of my own sometime, particularly since I had to invent one for regexes :P
08:02 lizmat FROGGS: is this about IO::Handle.supply(:bin) ?
08:04 FROGGS lizmat: it is about this line: https://gist.github.com/lizmat/d38a48beded67ab971ff#file-gistfile1-txt-L12
08:04 FROGGS lizmat: nqp::readfh reads N bytes, which is N half chars on jvm
08:09 lizmat ok, will fix
08:20 dakkar joined #perl6
08:21 dalek rakudo/nom: d4c3e8a | lizmat++ | src/core/IO/Handle.pm:
08:21 dalek rakudo/nom: Fix JVM breakage
08:21 dalek rakudo/nom:
08:21 dalek rakudo/nom: nqp::readcharsfh is not implemented on JVM, duh!
08:21 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d4c3e8a21f
08:21 lizmat moritz: ^^^
08:23 moritz nine: you have a webserver running on niner.name, right? What do you think about exposing the camelia build logs in subdirectory (or subdomain) there somewhere?
08:23 moritz lizmat: I hope it fixes the build :-)
08:24 lizmat pretty sure it does, testing now myself (takes a little while though)
08:25 [Sno] joined #perl6
08:26 xfix joined #perl6
08:28 lizmat hmmm..  fails in t/spec/S32-io/move.t seems to be caused by different exception throwing semantics
08:29 lizmat will be afk for a few hours soon, so I can't look at it now
08:31 bjz joined #perl6
08:33 Ven joined #perl6
08:34 lizmat moritz: confirmed JVM builds again
08:34 lizmat afk&
08:45 pmurias joined #perl6
08:46 moritz m: say 'version?'
08:46 camelia rakudo-moar 9e8b7b: OUTPUT«version?␤»
08:47 moritz rakudo-jvm rebuild still running
08:49 ShimmerFairy btw, has anyone looked at S19 lately? I find the ++FOO ... ++/FOO syntax really weird, particularly since things like imagemagick seem to manage with just \( ... \)
08:50 araujo joined #perl6
08:51 araujo joined #perl6
08:53 moritz ShimmerFairy: guess why this part isn't implemented :-)
08:53 moritz m: say 'version?'
08:53 camelia rakudo-moar d4c3e8: OUTPUT«version?␤»
08:54 moritz lizmat, TimToady: camelia is at an up-to-date rakudo version again
08:54 Ven ShimmerFairy: yeah, I've always found that *really* weird
08:54 ShimmerFairy moritz: as a kicker, the _one_ spot where it seems interesting and maybe useful, the BUG "subsystem", is completely unspecified. Not even so much as a hypothetical example
08:57 ShimmerFairy At first glance, I'd rather something like    perl6 --bug \( --trace-methods --output-file="debug_stuff" \) myfoo.p6
08:57 ShimmerFairy But just a first idea, though :)
08:58 * [Tux] builds and installs git-2.6.0
08:58 masak ShimmerFairy: agree. I've been kind of secretly hoping the ++FOO ... ++/FOO syntax wouldn't survive contact with reality.
09:00 ShimmerFairy masak: the fact that it compared itself to XML was probably a good sign it wasn't a nice syntax :P
09:02 bjz joined #perl6
09:03 larion joined #perl6
09:05 laouji joined #perl6
09:07 Ven m: say &infix:<*>()
09:07 camelia rakudo-moar d4c3e8: OUTPUT«1␤»
09:09 masak m: say &infix:<^^>()
09:09 camelia rakudo-moar d4c3e8: OUTPUT«False␤»
09:10 masak m: say &infix:<min>()
09:10 camelia rakudo-moar d4c3e8: OUTPUT«Inf␤»
09:11 masak oh, that's another reason Inf should be allomorphic: because it's the "unit"/"zero" for infix:<min>
09:17 ShimmerFairy masak: what makes it weird is that it's a kind of "dynamic" allomorph. Unless you want to write 'class Inf is Int is Rat is Num is ...'    :P
09:21 masak yes
09:21 masak which hints at it maybe needing to be "special" and somewhat outside the regular type system
09:22 ShimmerFairy masak: perhaps    mimic Inf of Numeric { }    ?  :P
09:23 masak except it's supposed to be an Inf for Str as well
09:23 ShimmerFairy masak: I have never heard of Inf being for strings, and that doesn't really make sense to me.
09:24 masak m: say ("g"..Inf)[^5]
09:24 camelia rakudo-moar d4c3e8: OUTPUT«(g h i j k)␤»
09:24 masak ShimmerFairy: it's already in ranges.
09:25 ShimmerFairy masak: except that plays with the vaguely number-ish .succ, so I'm still not sure how Inf is a stringy thing in general.
09:25 espadrine joined #perl6
09:25 masak but -- and *worse*, and this is the part I still haven't solved in my mind -- if we naïvely make Inf inherit from All The Things, then you *couldn't* and *shouldn't* be able to just `my Int $n = Inf;`
09:25 masak we kind of want to eat the cake and keep it, it seems.
09:27 ShimmerFairy masak: I think of Inf as a term that just "turns on" a class-internal infinity thing, so perhaps something like   Int.new(:infinity)
09:27 ShimmerFairy .oO( Mu.asInf )
09:29 ShimmerFairy masak: Another way to possibly think about it is that maybe it could be the third type smiley: Foo:U, Foo:D, and Foo:I.
09:31 ][Sno][ joined #perl6
09:31 pmurias joined #perl6
09:32 ShimmerFairy In that way of thinking, you could think of 'Inf' as a shortcut for Any:I or something, perhaps.
09:42 _thou joined #perl6
09:45 cognominal joined #perl6
09:48 abraxxa joined #perl6
09:57 zakharyas joined #perl6
10:04 salva joined #perl6
10:04 rindolf joined #perl6
10:04 Hor|zon joined #perl6
10:09 baest joined #perl6
10:11 ponbiki joined #perl6
10:17 nine moritz: sounds like a good idea
10:24 dalek doc: 03752d2 | (Steve Mynott)++ | bin/p6doc:
10:24 dalek doc: GLR fix more than one .push for p6doc -f push
10:24 dalek doc: review: https://github.com/perl6/doc/commit/03752d2e33
10:32 moritz nine: oh, but it's in a separate virtual machine; what's the best approach? shared file system? scp?
10:32 xinming joined #perl6
10:35 nine Or a proxy?
10:35 nine Where are those log files exactly?
10:36 andreoss joined #perl6
10:37 andreoss > loop { last }
10:37 andreoss sub last (|) { #`(Sub|43839928) ... }
10:37 andreoss
10:37 andreoss why does repl behaves like I just defined a sub called last here?
10:38 andreoss *behave
10:40 andreoss m: sub last(|) { ... } ; loop { last if True };
10:40 camelia rakudo-moar d4c3e8: OUTPUT«Stub code executed␤  in sub last at /tmp/jgV3oHE53g:1␤  in block <unit> at /tmp/jgV3oHE53g:1␤␤Actually thrown at:␤  in block <unit> at /tmp/jgV3oHE53g:1␤␤»
10:41 andreoss why i even can redefine keywords such as last?
10:50 lizmat andreoss: because it would only be active in that lexical scope anyway
10:51 grondilu m: sub say { say "wow" }; say;
10:51 camelia rakudo-moar d4c3e8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uPl8NaW93H␤Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument, or use &say to refer to the function as a noun␤at /tmp/uPl8NaW93H:1␤------> 3…»
10:51 * grondilu guesses that was asking too much.
10:53 masak ShimmerFairy: no, I'm pretty sure Inf is not a type smiley :)
10:54 masak ShimmerFairy: Inf seems to have more in common with Whatever, actually. in that it waits until it's in a context, and then it gets used/compared in the right way.
10:54 lizmat m: sub say { say "wow" }; say();
10:54 camelia rakudo-moar d4c3e8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ejjr9Nbg0K␤Calling say(str) will never work with declared signature ()␤at /tmp/Ejjr9Nbg0K:1␤------> 3sub say { 7⏏5say "wow" }; say();␤»
10:54 TimToady joined #perl6
10:54 lizmat m: sub say() { say "wow" }; say();
10:54 camelia rakudo-moar d4c3e8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2kbF8R9b_o␤Calling say(str) will never work with declared signature ()␤at /tmp/2kbF8R9b_o:1␤------> 3sub say() { 7⏏5say "wow" }; say();␤»
10:54 masak ShimmerFairy: thinking of it that way helps in some sense, but it doesn't solve that we also want to be able to `my Int $n = Inf` sometimes.
10:55 * grondilu looks at http://rosettacode.org/wiki/Evaluate_binomial_coefficients#Perl_6 and wonders if it would be acceptable to make &infix:</> narrow its result by default.
10:56 * masak .oO( decay type: Inf decays to Int when you're trying to assign it to an Int-typed variable )
10:57 masak grondilu: I don't think it would be acceptable.
10:57 masak m: my Rat $n = 4 / 2; say "alive"
10:57 camelia rakudo-moar d4c3e8: OUTPUT«alive␤»
10:57 masak grondilu: ^ would fail
10:58 grondilu m: my Rat $ = 1
10:58 camelia rakudo-moar d4c3e8: OUTPUT«Type check failed in assignment to $; expected Rat but got Int␤  in block <unit> at /tmp/kWWctZ4Xqo:1␤␤»
10:58 lizmat m: say (loop { last })   # curious
10:58 camelia rakudo-moar d4c3e8: OUTPUT«sub last (| is raw) { #`(Sub|55550992) ... }␤»
10:58 masak ewww
10:58 grondilu masak: ok, fair enough
10:59 ilmari m: my Num $ = 1.0
10:59 camelia rakudo-moar d4c3e8: OUTPUT«Type check failed in assignment to $; expected Num but got Rat␤  in block <unit> at /tmp/SaTm3Qx_u2:1␤␤»
11:00 moritz my Num $ = 1e0
11:00 moritz m: my Num $ = 1e0
11:00 camelia rakudo-moar d4c3e8: ( no output )
11:01 colomon joined #perl6
11:07 crux joined #perl6
11:09 masak m: my class Rat {}; sub foo(Rat $) {}; foo(1/3)
11:09 camelia rakudo-moar d4c3e8: OUTPUT«Type check failed in binding <anon>; expected Rat but got <1/3>␤  in sub foo at /tmp/uEN2i12_kz:1␤  in block <unit> at /tmp/uEN2i12_kz:1␤␤»
11:10 masak m: my class Rat {}; sub foo(Rat $) {}; my $x = 1 / 3; foo($x)
11:10 camelia rakudo-moar d4c3e8: OUTPUT«Type check failed in binding <anon>; expected Rat but got <1/3>␤  in sub foo at /tmp/PRxJJ6266b:1␤  in block <unit> at /tmp/PRxJJ6266b:1␤␤»
11:11 colomon joined #perl6
11:18 laouji joined #perl6
11:21 Ven joined #perl6
11:25 AlexDaniel joined #perl6
11:30 lizmat m: dd $*EXECUTABLE.resolve.parent.parent.abspath
11:30 camelia rakudo-moar d4c3e8: OUTPUT«"/rakudo-inst"␤»
11:30 _thou joined #perl6
11:31 lizmat FROGGS moritz : would you agree that would be the place to put the installation's .precomp directory ?
11:31 moritz lizmat: if it's writable, yes
11:31 moritz lizmat: but the result is wrong
11:32 lizmat m: dd $*EXECUTABLE.resolve
11:32 camelia rakudo-moar d4c3e8: OUTPUT«q|/rakudo-inst/bin/perl6-m|.IO(:SPEC(IO::Spec::Unix))␤»
11:32 lizmat moritz: why ?
11:32 moritz lizmat: it's not installed in /rakudo-inst, it's installed in /home/camelia/rakudo-inst/
11:32 lizmat m: dd $*EXECUTABLE
11:32 camelia rakudo-moar d4c3e8: OUTPUT«q|./rakudo-inst/bin/perl6-m|.IO(:SPEC(IO::Spec::Unix))␤»
11:32 lizmat aha... bugs
11:33 moritz m: dd $*EXECUTABLE.absolute
11:33 camelia rakudo-moar d4c3e8: OUTPUT«Str $path = "./rakudo-inst/bin/perl6-m"␤»
11:33 moritz this is not an absolute path
11:33 FROGGS why do we implement bugs?
11:33 lizmat I don't know?
11:33 * FROGGS shakes his fist heavily
11:33 FROGGS :o)
11:34 lizmat because we don't test?
11:34 lizmat m: dd $*EXECUTABLE.resolve.abspath.IO.parent.parent.abspath
11:34 camelia rakudo-moar d4c3e8: OUTPUT«"/rakudo-inst"␤»
11:34 lizmat wow
11:34 lizmat m: dd $*EXECUTABLE.resolve
11:34 camelia rakudo-moar d4c3e8: OUTPUT«q|/rakudo-inst/bin/perl6-m|.IO(:SPEC(IO::Spec::Unix))␤»
11:34 lizmat resolve is broken?
11:35 lizmat m: dd $*EXECUTABLE
11:35 camelia rakudo-moar d4c3e8: OUTPUT«q|./rakudo-inst/bin/perl6-m|.IO(:SPEC(IO::Spec::Unix))␤»
11:35 _itz_ is anyone seeing an error "===SORRY!===
11:35 _itz_ Cannot invoke this object (REPR: Uninstantiable)"
11:35 FROGGS lizmat: I wan not quite honest btw...
11:35 _itz_ note this is not from the REPR
11:35 lizmat m: SupplyOperations.new
11:35 camelia rakudo-moar d4c3e8: OUTPUT«You cannot create an instance of this type␤  in block <unit> at /tmp/nwPMwZoaKd:1␤␤»
11:35 lizmat that's not it
11:41 kid51 joined #perl6
11:47 RabidGravy joined #perl6
11:47 jnthn _itz_: Try --ll-exception to try and get a better idea of where it's coming from
11:49 FROGGS hi jnthn
11:49 FROGGS jnthn: you are teaching for a few days now, right?
11:49 jnthn o/ from a plane
11:49 lizmat m: dd "./zippoflap".IO.resolve
11:49 camelia rakudo-moar d4c3e8: OUTPUT«q|/home/camelia/zippoflap|.IO(:SPEC(IO::Spec::Unix))␤»
11:49 jnthn Yes, will be
11:49 lizmat m: dd $*EXECTUABLE.IO.resolve
11:49 camelia rakudo-moar d4c3e8: OUTPUT«Dynamic variable $*EXECTUABLE not found␤  in block <unit> at /tmp/vFFGqhKYGm:1␤␤Actually thrown at:␤  in any  at gen/moar/m-Metamodel.nqp:2869␤  in block <unit> at /tmp/vFFGqhKYGm:1␤␤»
11:49 lizmat m: dd $*EXECUTABLE.IO.resolve
11:49 camelia rakudo-moar d4c3e8: OUTPUT«q|/rakudo-inst/bin/perl6-m|.IO(:SPEC(IO::Spec::Unix))␤»
11:50 _itz_ jnthn: ok
11:50 FROGGS jnthn: k, will paste you something afterwards then, the status about capturing to lexical variables in regexes...
11:50 jnthn yeah, probably easier for me to look once at hotel
11:50 jnthn Got another flight before that, though :S
11:50 _itz_ Cannot invoke this object (REPR: Uninstantiable) at gen/moar/m-CORE.setting:10861  (/Users/steve/.rakudobrew/moar-nom/install/share/perl6/runtime/CORE.setting.moarvm:pull-one:97)
11:50 FROGGS jnthn: okay, then I'll .tell you later
11:51 _itz_ ...
11:51 lizmat _itz_: seems gather related
11:52 lizmat nqp::continuationreset(PROMPT, &!resumption);
11:53 lizmat _itz_: feels like a rakudobug with a full stacktrace would be in order :-)
11:53 jnthn Thta could maybe happen if you pull-one again after it already gave back IterationEnd
11:53 jnthn So if we're lucky the problem may be downstream of gather
11:54 _itz_ there is no gather in the code
11:54 _itz_ I'll try and golf and put details in a RT
11:54 lizmat _itz_++
12:06 lizmat m: dd $*VM.prefix
12:06 camelia rakudo-moar d4c3e8: OUTPUT«"/home/camelia/rakudo-inst-2"␤»
12:07 moritz fwiw rakudo-inst is a symlink to rakudo-inst-2 (or sometimes -1)
12:07 lizmat ok, so it is resolved already
12:09 lizmat m: dd $*VM.config<version>
12:09 camelia rakudo-moar d4c3e8: OUTPUT«"2015.09-39-g1434283"␤»
12:09 lizmat hmmm.. this is different from what git describe tells me ?
12:09 lizmat ah, that's the Moar version, right?
12:09 FROGGS $*VM, aye
12:10 lizmat yup
12:10 FROGGS m: say $*PERL.compiler
12:10 camelia rakudo-moar d4c3e8: OUTPUT«rakudo (2015.9.179.gd.4.c.3.e.8.a)␤»
12:11 lizmat is that the same sha that precomp is using ?
12:12 FROGGS precomp is using? what do you mean?
12:14 lizmat what is the value its checks for version mismatch ?
12:14 lizmat when you try to run a precomped file
12:15 lizmat it's *that* value I want to use for a directory name in install/.precomp
12:15 CQ joined #perl6
12:17 moritz nqp/src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SerializationReader.java throws that exception, for example
12:17 moritz maybe work backwards from there?
12:18 moritz iirc it checksums a serialization context?
12:19 lizmat not sure
12:20 masak I keep seeing "Unhandled exception: No exception handler located for unknown"
12:20 lizmat my plan was to use this sha (which depends on a rakudo / nqp / Moar compilation combination) as the directory name in install/.precomp
12:20 masak (after the actual error has been thrown)
12:21 lizmat maybe need to wait for jnthn to land :-)
12:21 moritz sounds like a fancy rakudo branch :-)
12:22 moritz though of course the bigger the branch, the shorter the name
12:22 moritz 'nom', 'bs', 'glr'
12:36 lizmat m: dd $*VM.config<osvers>
12:36 camelia rakudo-moar d4c3e8: OUTPUT«"3.7.10-1.16-default"␤»
12:50 timbunce_ joined #perl6
12:50 Psyche^_ joined #perl6
12:57 carlin star-m: use NativeCall; sub foo(int $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo($a[0]);
12:57 camelia star-m 2015.03: OUTPUT«Cannot auto-decontainerize argument␤  in sub foo at /tmp/if9VyIHmr6:1␤  in block <unit> at /tmp/if9VyIHmr6:1␤␤»
12:57 carlin should that work?
12:58 rindolf joined #perl6
13:00 lizmat carlin: FROGGS or moritz might know
13:03 FROGGS m: use NativeCall; sub foo(int $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo($a[0]);
13:03 camelia rakudo-moar d4c3e8: OUTPUT«Cannot auto-decontainerize argument␤  in sub foo at /tmp/_tsu4McWzD:1␤  in block <unit> at /tmp/_tsu4McWzD:1␤␤»
13:03 FROGGS m: use NativeCall; sub foo(uint8 $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo($a[0]);
13:03 camelia rakudo-moar d4c3e8: OUTPUT«Cannot auto-decontainerize argument␤  in sub foo at /tmp/4xxrvkQ7qE:1␤  in block <unit> at /tmp/4xxrvkQ7qE:1␤␤»
13:04 FROGGS m: use NativeCall; sub foo(uint8 $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo($ = $a[0]);
13:04 camelia rakudo-moar d4c3e8: ( no output )
13:04 FROGGS m: use NativeCall; sub foo(int $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo($ = $a[0]);
13:04 camelia rakudo-moar d4c3e8: ( no output )
13:04 FROGGS carlin: well, there is a workaround at least
13:08 moritz use NativeCall; sub foo(int $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo(my int $ = $a[0])
13:08 moritz m: use NativeCall; sub foo(int $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo(my int $ = $a[0])
13:08 camelia rakudo-moar d4c3e8: ( no output )
13:08 moritz ^^ my favorite fix
13:08 _itz_ m: my $m = (1,2 X~ ('' X~ '')).first: *.IO.f;
13:08 camelia rakudo-moar d4c3e8: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Uninstantiable)␤»
13:08 moritz m: say uint8 ~~ int
13:08 camelia rakudo-moar d4c3e8: OUTPUT«False␤»
13:08 _itz_ 126218
13:08 timotimo i hope i'm not too late for this
13:08 yoleaux 07:58Z <lizmat> timotimo: https://gist.github.com/lizmat/d38a48beded67ab971ff causes an infiniloop in the optimizer
13:08 yoleaux 07:58Z <lizmat> timotimo: may have something to do with calling a private method of class A from within class B (which lives inside class A)
13:08 moritz _itz_++ # some serious golfing here
13:09 timotimo i *think* the version of a compunit is just the thing it invents at the beginning of compilation
13:09 timotimo and since building a new nqp and/or rakudo will give you a new compunit identifier, you'll get a version mismatch from that
13:09 timotimo and changing moarvm doesn't invalidate compunits
13:09 moritz timotimo: my mental model is that after a compunit is fully serialized, a hash is calculated
13:09 lizmat but where does the compunit identifier live ?
13:09 timotimo oh, ah.
13:10 moritz and everything depending on that comp unit uses that hash to declare its dependency (or hash + name, dunno)
13:10 timotimo hm, moar --dump shows at least the dependencies' compunit identifiers
13:10 moritz so, CORE.setting also has a serialization table hash
13:11 moritz and when you precompile a module with a version CORE, and then change a line in CORE and recompile, and you try to load the same precompiled module, it'll complain about a version mismatch
13:11 moritz not sure how close this model is to reality, but it explained all the error messages I was getting in the last ~year or so
13:12 timotimo the question is, if you revert the change to that one line, do you get the same version as before and the mismatch error goes away? i think not, because there's an nqp::time_n in there somewhere for making up names
13:12 andreoss joined #perl6
13:13 moritz ah right, that's for symbol generation
13:13 andreoss m: sub die { die }; die;
13:13 camelia rakudo-moar d4c3e8: OUTPUT«Memory allocation failed; could not allocate 37888 bytes␤»
13:13 lizmat yeah, it really *is* a compilation ID
13:13 lizmat not a SHA like thing on state of things
13:13 moritz mostly so that stage-2 nqp doesn't get the serialization table from stage-1
13:14 timotimo andreoss: that's just an infinite recursion
13:15 moritz but an entertaining one :-)
13:15 andreoss m: (loop { last }).gist.say
13:15 camelia rakudo-moar d4c3e8: OUTPUT«sub last (| is raw) { #`(Sub|48276368) ... }␤»
13:15 timotimo ^- that one's the really weird one, yeah
13:15 lizmat m: sub foo { foo }; foo  # same
13:15 andreoss timotimo: why i can redefine last, die, etc?
13:15 camelia rakudo-moar d4c3e8: OUTPUT«Memory allocation failed; could not allocate 37888 bytes␤»
13:15 moritz andreoss: they are just normal lexicals
13:15 timotimo andreoss: because they are just lexical ... yeah
13:15 moritz andreoss: it makes the language quite flexible
13:16 moritz something that's very important to us, because we don't know how programming in 20+ years will look like
13:16 moritz s/how/what/
13:16 timotimo perl6 is meant for the next 100 years, after all :)
13:16 andreoss why does .gist on loop returns sub ... ?
13:16 timotimo aaaargh %)
13:17 timotimo timo@schmand ~> perl6 -e 'loop { last }'
13:17 timotimo (StrDistance)
13:18 lizmat timotimo: what about StrDIstance ?
13:18 timotimo oh!
13:18 timotimo that's just a dirty CORE.setting!
13:18 lizmat what is ?  *confused*
13:18 _thou joined #perl6
13:18 takadonet joined #perl6
13:19 takadonet morning all
13:19 timotimo i put a line to print what StrDistance evaluates to into my core setting
13:19 moritz lizmat: just ignore timotimo for the past 3 minutes :-)
13:19 timotimo when i wanted to figure out why StrDistance.new broke
13:19 moritz good morning takadonet
13:19 takadonet moritz: long time no see
13:19 andreoss looks like loop { ... } returns a reference to last
13:20 andreoss m: sub foo { last }; (loop { foo }).WHAT.say
13:20 camelia rakudo-moar d4c3e8: OUTPUT«(Sub)␤»
13:20 timotimo tokuhiro_ made a good point on twitter; he suggested to remove (or hide) modules from the ecosystem that aren't relevant or maintained any more
13:20 andreoss is it correct?
13:20 xfix perl6: ({.comb/!/^google$/})('google')
13:20 camelia rakudo-{moar,jvm} d4c3e8: OUTPUT«Method 'match' not found for invocant of class 'Any'␤  in block <unit> at /tmp/tmpfile:1␤␤»
13:20 lizmat m: say (while 1 { last })   # not limited to loop
13:20 timotimo m: say &last().WHAT
13:20 camelia rakudo-moar d4c3e8: OUTPUT«sub last (| is raw) { #`(Sub|68514992) ... }␤»
13:20 camelia rakudo-moar d4c3e8: OUTPUT«last without loop construct␤  in block <unit> at /tmp/D6yVg2Oo1G:1␤␤»
13:20 timotimo m: say &last()
13:20 camelia rakudo-moar d4c3e8: OUTPUT«last without loop construct␤  in block <unit> at /tmp/sMtxDBFT4x:1␤␤»
13:21 timotimo lizmat: loop { } actually compiles directly into the same thing that while 1 { } compiles to
13:21 lizmat well, that explains  :-)
13:21 moritz xfix: you're trying to divide .comb by a negated regex match?
13:21 lizmat m: say (for ^10 { last })  # not the same
13:21 camelia rakudo-moar d4c3e8: OUTPUT«()␤»
13:21 xfix Yes, for https://codegolf.stackexchange.com/questions/58891/dont-google-google
13:22 xfix I was hoping that there was still that implicit behaviour of $_.
13:22 moritz we seem to have some issues for implicit $_ matching together with negations
13:22 xfix m: $_ = 'Hello, world!'; say so /Hello/
13:22 camelia rakudo-moar d4c3e8: OUTPUT«Method 'match' not found for invocant of class 'Any'␤  in block <unit> at /tmp/9vOtk4Va2Z:1␤␤»
13:22 moritz m: $_ = 'Hello, world!'; say !/Hello/
13:22 camelia rakudo-moar d4c3e8: OUTPUT«Method 'match' not found for invocant of class 'Any'␤  in block <unit> at /tmp/Nd5OC2dwX2:1␤␤»
13:22 moritz same thing here
13:23 moritz rakudobug
13:23 xfix But otherwise correct?
13:23 pmurias_ joined #perl6
13:24 lizmat m: multi a("google") {die}; multi a(\a) {a.chars}; say a("foo"); say a("google")
13:24 camelia rakudo-moar d4c3e8: OUTPUT«3␤Died␤  in sub a at /tmp/5bWaiDuYOt:1␤  in block <unit> at /tmp/5bWaiDuYOt:1␤␤»
13:24 timotimo don't forget the task asks for a function explicitly
13:25 lizmat a is a function ?
13:25 xfix Obviously I do remember.
13:25 xfix I put braces.
13:25 timotimo oh
13:25 lizmat they share a proto
13:25 timotimo it says "create a function", not "declare a function" %)
13:25 lizmat yup
13:25 timotimo golf'd the task description
13:26 eiro hello peolpe
13:26 eiro people, even ...
13:26 lizmat eiro o/
13:27 eiro how was the end ot the trip ?
13:27 lizmat nice: glad to be home  :-)
13:28 eiro hehe ... get ready for p4/Strasbourg
13:28 eiro ;)
13:28 lizmat :-)
13:28 timotimo that's the patch hackathon?
13:28 eiro timotimo, yep
13:29 timotimo hmm. strasbourg isn't terribly far away from me
13:29 eiro i'm writting some slides for perl6 promoti^winformation and i'm confused: did .WHAT.name disapeared ?
13:29 xfix I like how /!/ looks in {.comb/!/^google$/}
13:29 andreoss m: my &x={ die if m:i/google/; .comb.elems };x "bing" ;x "google"
13:29 camelia rakudo-moar d4c3e8: OUTPUT«Died␤  in block <unit> at /tmp/o3oECxRXDh:1␤␤»
13:29 timotimo patch.pm/p4 doesn't exist :|
13:29 xfix Also, using .comb instead of .chars. I like this trick myself.
13:30 eiro timotimo, i'll go public with that as soon as i'm sure about the venue
13:30 timotimo ah OK
13:30 timotimo what date is it going to be?
13:30 [Coke] m: say 3.WHAT.^name
13:30 camelia rakudo-moar d4c3e8: OUTPUT«Int␤»
13:30 lizmat eiro: no, but .WHAT always returned a type object
13:30 eiro well... april or may...
13:30 lizmat m: 3.^name
13:30 camelia rakudo-moar d4c3e8: ( no output )
13:30 lizmat m: say 3.^name  # shorter
13:30 camelia rakudo-moar d4c3e8: OUTPUT«Int␤»
13:30 [Coke] you need the ^ - otherwise you're calling name on an undefined Int, not the Int's meta-object.
13:30 eiro lizmat, so ^ isn't a shortcut anymore ?
13:31 lizmat eiro: read what [Coke]  said  :-)
13:31 skids joined #perl6
13:31 eiro oops meeting
13:31 eiro cuya
13:31 moritz $obj.^meth is a shortcut to $obj.HOW.^method($obj)
13:31 timotimo cujo
13:31 xfix Well, $obj.^meth is a shortcut to $obj.HOW.meth
13:32 timotimo not only that
13:32 timotimo since methods on the metaobject usually take the object itself as their first parameter
13:32 xfix Oh, right
13:32 timotimo it ends up being a shortcut for $obj.HOW.meth($obj, any additional args)
13:33 andreoss m: my &g={ /google{die}/;+.comb }; say g "bing"
13:33 camelia rakudo-moar d4c3e8: OUTPUT«4␤»
13:33 timotimo lizmat: did i already tell that removing the "access out of bounds on purpose, then // Inf to fix it" "hack" from my script improved the behavior of the gc tremendously?
13:33 timotimo andreoss: oh, that's not bad!
13:33 lizmat no, you didn't, but did now  :-)
13:33 xfix m: my &g={ /google{die}/;+.comb }; say g "google now"
13:33 camelia rakudo-moar d4c3e8: OUTPUT«Died␤  in block  at /tmp/z19oD7WuQ9:1␤  in block <unit> at /tmp/z19oD7WuQ9:1␤␤»
13:34 xfix Should probably be /^google${die}/
13:34 timotimo hmm, right
13:34 xfix Although that fails.
13:35 xfix Because ${die} should be $die. Fair enough, who would write code like that anyway?
13:38 timotimo oh
13:38 timotimo hehehe
13:39 * lizmat wonders what creats perl6.moarvm
13:39 lizmat is it the BOOTSTRAP ?
13:39 moritz the file?
13:39 timotimo no, i don't think it's bootstrap
13:40 moritz it's generated from src/main.nqp
13:40 timotimo /home/timo/perl6/install/bin/nqp-m --target=mbc --output=perl6.moarvm \
13:40 timotimo --vmlibs=dynext/libperl6_ops_moar.so=Rakudo_ops_init gen/moar/m-main.nqp
13:41 Ven joined #perl6
13:41 nine m: my&g={/^google$ {.d}/;.chars}; say g "dgoogle"
13:41 camelia rakudo-moar d4c3e8: OUTPUT«7␤»
13:41 nine m: my&g={/^google$ {.d}/;.chars}; say g "google"
13:41 camelia rakudo-moar d4c3e8: OUTPUT«Method 'd' not found for invocant of class 'Str'␤  in block  at /tmp/4krxouU0eS:1␤  in block <unit> at /tmp/4krxouU0eS:1␤␤»
13:41 sufrostico joined #perl6
13:43 lizmat ah, main!
13:46 andreoss m: my &g={/^goo{die}gle$/;+.comb};say g "duckduckgo"
13:46 camelia rakudo-moar d4c3e8: OUTPUT«10␤»
13:47 nine m: my &g={/^goo{die}gle$/;+.comb};say g "googoo"
13:47 camelia rakudo-moar d4c3e8: OUTPUT«Died␤  in block  at /tmp/FNd7_JnSSU:1␤  in block <unit> at /tmp/FNd7_JnSSU:1␤␤»
13:57 andreoss m: &eq.WHAT.say
13:57 camelia rakudo-moar d4c3e8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/NiDwDPXYlU␤Undeclared routine:␤    &eq used at line 1␤␤»
13:57 timotimo you want &[eq]
13:57 timotimo alternatively, &infix:<eq>
13:57 andreoss m: &[eq].WHAT.say
13:57 camelia rakudo-moar d4c3e8: OUTPUT«(Sub+{<anon>}+{Precedence})␤»
13:58 timotimo m: &[eq].say
13:58 camelia rakudo-moar d4c3e8: OUTPUT«sub infix:<eq> (Mu $?, Mu $?) { #`(Sub+{<anon>}+{Precedence}|49681360) ... }␤»
13:59 khw joined #perl6
14:01 nine m: my&g={/^google$/&&.d;.chars}; say g "fine"; say g "google"
14:01 camelia rakudo-moar d4c3e8: OUTPUT«4␤Method 'd' not found for invocant of class 'Str'␤  in block <unit> at /tmp/1t7jVLX7Mp:1␤␤»
14:03 pmurias patch hackathon?
14:03 timotimo a hackathon called "patch"
14:06 lizmat m: END say "foo"; exit
14:06 camelia rakudo-moar d4c3e8: OUTPUT«foo␤»
14:06 lizmat timotimo: ^^^ END blocks are run with an exit(), so why would that mess up the profiler ??
14:07 pmurias timotimo: when does it happen? any Perl (6) stuff planned for that?
14:07 lizmat pmurias: you should ask eiro
14:07 lizmat (when he's back from his meeting :-)
14:07 timotimo lizmat: the profiler relies on a "we stop profiling now" instruction to be called
14:07 lizmat so perhaps that instruction should be pushed to an END block ?
14:08 lizmat when we do --profile ?
14:08 timotimo yeah, i seem to recall having done something similar, but i don't know if i've done it successfully
14:08 lizmat or hard code it somehow in src/main.nqp ?
14:09 lizmat ah, I now realize
14:10 lizmat there's two places where END blocks get run
14:10 lizmat one inside exit()
14:10 lizmat and one in main.nqp (for normal end of code)
14:14 dalek rakudo/nom: 6c64584 | lizmat++ | src/Perl6/World.nqp:
14:14 dalek rakudo/nom: Add some more RAKUDO_MODULE_DEBUGging
14:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6c64584c19
14:24 _thou joined #perl6
14:24 Ven joined #perl6
14:37 [Sno] joined #perl6
14:40 eiro back and reverse backlog
14:42 moritz forelog
14:42 dalek perl6-roast-data: e9edb45 | coke++ | / (9 files):
14:42 dalek perl6-roast-data: today (automated commit)
14:42 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/e9edb45ba7
14:42 eiro pmurias, timotimo : i'm setting up a patch instance with the help of french perl mongers ... technical and historical details are hold by BooK
14:43 eiro i was at lyon for patch -p3 and it was awesome
14:44 DrForr Headed to Lyon at the end of October, assuming my leg says it's ready :)
14:44 eiro so i want those kind of events to happen in Strasbourg also
14:45 DrForr I'm sure Cluj will have a hackathon as well...
14:45 eiro and i really want it to be an internationnal event as we're very close to germany, switzerland and not so far from benelux
14:46 moritz DrForr: I'm sure we'll organize a hackathon for GPW (Mar 2016), http://act.yapc.eu/gpw2016/
14:46 lizmat 4.5 hour drive vs 7.5 hour drive  :-)
14:46 eiro DrForr, i don't want those hackathon to interfer so it would be nice to have a calendar of european perl events
14:47 eiro it becomes very busy
14:47 eiro moritz, ok ... so now i have to talk with french perl mongers: too many events at the begin of the year
14:48 DrForr There's also FOSDEM at the end of January.
14:48 eiro maybe we should have our 2nd semester
14:48 eiro yep ... but fosdem isn't about hack
14:48 eiro ... well it could be :)
14:49 eiro i mean: no coding session there. just enjoying conferences and huging beloved peolpe
14:49 eiro people
14:49 eiro damn ... what's wrong with people ?
14:50 lizmat .oO( Hanging out with the wrong peolpe :-)
14:50 eiro .HOW.meth('ur mother') for @ever
14:50 eiro :)
14:51 eiro thanks for explainations about ^
14:52 andreoss m: .HOW.^can("meth").say
14:52 camelia rakudo-moar d4c3e8: OUTPUT«0␤»
14:53 dalek nqp: 591cadf | (Pawel Murias)++ | src/vm/js/nqp-runtime/bootstrap.js:
14:53 dalek nqp: [js] add add_attribute method to KnowHowHOW
14:53 dalek nqp: review: https://github.com/perl6/nqp/commit/591cadf499
14:53 dalek nqp: 3bf0df3 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
14:53 dalek nqp: [js] export classes so that varint serialization/deserialization can be unit tested.
14:53 dalek nqp: review: https://github.com/perl6/nqp/commit/3bf0df3b10
14:53 dalek nqp: c7b64d1 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
14:53 dalek nqp: [js] progress on deserializing P6opaque objects
14:53 dalek nqp: review: https://github.com/perl6/nqp/commit/c7b64d1e6f
14:53 dalek nqp: cbffa9a | (Pawel Murias)++ | src/vm/js/nqp-runtime/package.json:
14:53 dalek nqp: [js] use fs-ext from a branch on github as the released version doesn't build on the current node.js
14:53 dalek nqp: review: https://github.com/perl6/nqp/commit/cbffa9a5fa
14:53 pmurias depending on a node.js module from a github branch feels really hacky
15:02 hoelzro good morning #perl6!
15:03 tadzik morning hoelzro!
15:03 tadzik world is funny, I just ate my breakfast and now US is waking up :D
15:03 hoelzro morning tadzik!
15:03 hoelzro the two events must be related =)
15:03 tadzik clearly :)
15:08 pmurias hoelzro: hi
15:08 hoelzro o/ pmurias
15:09 pmurias tadzik: travelling?
15:09 tadzik pmurias: no, staying up late :P
15:12 dalek nqp: eaa6e11 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
15:12 dalek nqp: [js] use child_process instead of fallback-exec-sync (which is sometimes broken)
15:12 dalek nqp:
15:12 dalek nqp: This requires node 0.12
15:12 dalek nqp: review: https://github.com/perl6/nqp/commit/eaa6e113a4
15:17 mr-foobar joined #perl6
15:18 tokuhiro_ joined #perl6
15:21 sufrostico joined #perl6
15:23 TEttinger joined #perl6
15:25 TimToady m: say (1..^10) * 10
15:25 camelia rakudo-moar 6c6458: OUTPUT«10..^100␤»
15:25 lizmat whheee!  :-)
15:29 TimToady I'd like to write (1..^10), * * 10 ... * but I can't because ... autoflattens; maybe it shouldn't, since we now have |() when we need to slip multiple values into the list
15:33 TimToady m: say (1..^10), * * 10 ... *
15:33 camelia rakudo-moar 6c6458: OUTPUT«(...)␤»
15:34 TimToady m: say ((1..^10), * * 10 ... *)
15:34 camelia rakudo-moar 6c6458: OUTPUT«(...)␤»
15:34 TimToady m: say ((1..^10), * * 10 ... *)[^10]
15:34 camelia rakudo-moar 6c6458: OUTPUT«(1 2 3 4 5 6 7 8 9 90)␤»
15:34 TimToady m: say ($(1..^10), * * 10 ... *)[^10]
15:34 camelia rakudo-moar 6c6458: OUTPUT«(1..^10 10 11 12 13 14 15 16 17 18)␤»
15:34 TimToady yeah, I think we need to GLRify ...
15:37 TimToady m: 42 => 43
15:37 camelia rakudo-moar 6c6458: OUTPUT«WARNINGS:␤Useless use of "=>" in expression "42 => 43" in sink context (line 1)␤»
15:38 TimToady got that working, but failed on a => 42
15:38 TEttinger ...what does ", * * 10" do?
15:38 TimToady m: say (* * 10)(42)
15:38 camelia rakudo-moar 6c6458: OUTPUT«420␤»
15:39 TimToady m: say { $_ * 10 }(42)
15:39 camelia rakudo-moar 6c6458: OUTPUT«420␤»
15:39 TEttinger is it a partial function argument placeholder?
15:39 pink_mist so the first * is a whatever, and the second is multiplication? =)
15:39 TimToady yes
15:39 TEttinger is it for multiple args?
15:39 TimToady get a little confusing with multiplication or exponentiation
15:40 TimToady yes
15:40 TEttinger in regex terms, I would thing * would be 0 or more
15:40 TimToady but only in operators
15:40 TEttinger *think
15:40 TimToady not that way
15:40 TEttinger that's just my association with the char
15:40 TimToady ** is supposed to do multiple
15:40 TEttinger kleene star
15:41 TEttinger kleene star
15:41 TEttinger is _ an identifier?
15:41 TimToady yes
15:42 TimToady m: constant _ = *; say (_ * 10)(42) # curious
15:42 camelia rakudo-moar 6c6458: OUTPUT«420␤»
15:42 TimToady \o/
15:43 TimToady m: say (** * 10)(1..10)
15:43 camelia rakudo-moar 6c6458: OUTPUT«(10 20 30 40 50 60 70 80 90 100)␤»
15:45 stux|away left #perl6
15:48 AlexDaniel joined #perl6
15:48 rindolf joined #perl6
15:49 AlexDaniel m: dd dd
15:49 camelia rakudo-moar 6c6458: OUTPUT«block <unit>␤Nil␤»
15:50 lizmat m: dd dd dd # just curious
15:50 camelia rakudo-moar 6c6458: OUTPUT«block <unit>␤Nil␤Nil␤»
15:50 lizmat m: dd dd dd "last" # just curious
15:50 camelia rakudo-moar 6c6458: OUTPUT«"last"␤Nil␤Nil␤»
15:51 AlexDaniel m: dd .                     dd
15:51 camelia rakudo-moar 6c6458: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DtD09F7jzc␤Preceding context expects a term, but found infix .                      instead␤at /tmp/DtD09F7jzc:1␤------> 3dd .7⏏5                     dd␤»
15:51 AlexDaniel hm
15:51 AlexDaniel I'm getting this error
15:51 AlexDaniel “Preceding context expects a term, but found infix .          instead”
15:52 AlexDaniel bah, I don't think that you can see it
15:52 AlexDaniel but it seems like the whitespace is part of the infix
15:52 TEttinger m: dd . dd
15:52 camelia rakudo-moar 6c6458: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4LlFZtxhBI␤Preceding context expects a term, but found infix .  instead␤at /tmp/4LlFZtxhBI:1␤------> 3dd .7⏏5 dd␤»
15:52 TEttinger m: dd .dd
15:52 camelia rakudo-moar 6c6458: OUTPUT«Method 'dd' not found for invocant of class 'Any'␤  in block <unit> at /tmp/ddWsYYHdzz:1␤␤»
15:53 TEttinger odd
15:53 TimToady dd wants an argument, so you can't use an infix there
15:53 TimToady m: dd + dd  # same thing
15:53 camelia rakudo-moar 6c6458: OUTPUT«block <unit>␤Use of Nil in numeric context  in block <unit> at /tmp/2N_Vtjg4gT:1␤0␤»
15:54 AlexDaniel sure, but why can I see whitespace in the error message?
15:54 AlexDaniel m: dd .   ␤  ␤  ␤  ␤ ␤ dd
15:54 camelia rakudo-moar 6c6458: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gqsMJD0jbB␤Preceding context expects a term, but found infix .   ␤  ␤  ␤  ␤ ␤  instead␤at /tmp/gqsMJD0jbB:6␤------> 3dd .7⏏5   ␤»
15:55 TimToady ah, I know why, but I don't know how to fix it offhand :)
15:55 AlexDaniel TimToady: which means that I'll just report it, right?
15:55 DrForr m: class Y{method foo(){say "hi"}} my $x=Y.new;my $f="foo";$x.$f();
15:55 camelia rakudo-moar 6c6458: OUTPUT«5===SORRY!5=== Error while compiling /tmp/NO0GN3Hz0S␤Strange text after block (missing semicolon or comma?)␤at /tmp/NO0GN3Hz0S:1␤------> 3class Y{method foo(){say "hi"}}7⏏5 my $x=Y.new;my $f="foo";$x.$f();␤    expecting any of:␤        …»
15:56 TimToady it's an LTA, yeah
15:56 DrForr m: class Y{method foo(){say "hi"}}; my $x=Y.new;my $f="foo";$x.$f();
15:56 camelia rakudo-moar 6c6458: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤  in block <unit> at /tmp/8WMrkm24HS:1␤␤»
15:58 TimToady m: class Y{method foo(){say "hi"}}; my $x=Y.new;my $f="foo";$x."$f"();
15:58 camelia rakudo-moar 6c6458: OUTPUT«hi␤»
15:58 TimToady DrForr: you can't do symbolic refs with .$f()
15:59 Hor|zon_ joined #perl6
15:59 TimToady though the message could be improved
15:59 DrForr Yeah, was just checking an example from another channel.
15:59 TimToady 'kay
16:00 pmurias hoelzro: what node.js version does travis use for running nqp-js?
16:00 hoelzro pmurias: 0.12, iirc
16:01 AlexDaniel Wow, #126218! What a nice finding
16:03 AlexDaniel I mean, it is just an interesting error to stumble upon…
16:03 lizmat _itz_++  :-)
16:03 dalek rakudo/nom: 6cfeda6 | lizmat++ | src/ (5 files):
16:03 dalek rakudo/nom: $?RAKUDO_MODULE_DEBUG -> $*RAKUDO_MODULE_DEBUG
16:03 dalek rakudo/nom:
16:03 dalek rakudo/nom: There is little point in having a constant frozen in the settings,
16:03 dalek rakudo/nom: when you want to be able to change that between runs.
16:03 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6cfeda69fb
16:04 Hor|zon joined #perl6
16:04 [Coke] RT: 1,032; xmas: 98; WEIRD: 12; LTA: 83; GLR: 4; testneeded: 9
16:05 [Coke] also: NOM regression: 8
16:06 [Coke] we should really close out those nom regressions, yikes.
16:06 AlexDaniel [Coke]: by the way, what is "WEIRD"?
16:06 [Coke] NYI: 86'
16:06 [Coke] AlexDaniel: any ticket with weird in the title.
16:06 AlexDaniel Is there any special criteria for weird reports? :$
16:07 AlexDaniel [Coke]: which means? The title is wrong or the bug itself is just funny?
16:07 [Coke] the bug is weird.
16:08 [Coke] it's not an exact science. Just trying to keep RT info flowing. :)
16:19 tokuhiro_ joined #perl6
16:20 andreoss m: sub infix:«\$»(Callable $x, Callable $y) { $x($y()) }; { [+] @_ } $ {({ .grep(*.is-prime) } $ { 1..10 })}
16:20 camelia rakudo-moar 6c6458: ( no output )
16:20 andreoss how can i avoid extra parenthesis here?
16:23 andreoss if i want this infix function applied from right to left
16:25 TimToady m: sub infix:«\$»(&x, &y) { x y }; { [+] @_ } $ {({ .grep(*.is-prime) } $ { 1..10 })}
16:25 camelia rakudo-moar 6cfeda: ( no output )
16:25 TimToady is that what you're asing?
16:25 TimToady *k
16:28 andreoss m: sub infix:«\$»(&x, &y) { x y }; { [+] @_ } $ { .grep(*.is-prime) } $ { 1..10 }
16:28 camelia rakudo-moar 6cfeda: OUTPUT«Method 'is-prime' not found for invocant of class 'Any'␤  in block <unit> at /tmp/PmMKhAl1pM:1␤␤»
16:28 aborazmeh joined #perl6
16:28 aborazmeh joined #perl6
16:29 andreoss can it be parsed like that?
16:31 TimToady it's parsing fine; that's a run-time error
16:32 andreoss i mean can it evaluate the last block first some how?
16:33 andreoss m: sub infix:«\$»(&x, &y) { x y }; { warn "1st"; [+] @_ } $ { ({ warn "2nd"; .grep(*.is-prime) } $ { warn "3rd"; 1..10 } ) }
16:33 camelia rakudo-moar 6cfeda: OUTPUT«3rd  in block  at /tmp/nLTS6ip7UA:1␤2nd  in block  at /tmp/nLTS6ip7UA:1␤1st  in block  at /tmp/nLTS6ip7UA:1␤»
16:35 TimToady associativity
16:36 TimToady m: sub infix:«\$»(&x, &y) is assoc('right') { x y }; say { [+] @_ } $ { .grep(*.is-prime) } $ { 1..10 }
16:36 camelia rakudo-moar 6cfeda: OUTPUT«Type check failed in binding &y; expected Callable but got Seq␤  in sub infix:<$> at /tmp/aZQGIfwVRg:1␤  in block <unit> at /tmp/aZQGIfwVRg:1␤␤»
16:38 TimToady now it's just a type problem, cause you can't both compose and eval with the same syntax
16:41 andreoss m: sub infix:«\$»(Callable $x, $y) is assoc('right') { if $y ~~ Callable { $x($y()) } else { $x($y) } }; { { [+] @_ } $ { .grep(*.is-prime) } } $ { 1..10 }
16:42 camelia rakudo-moar 6cfeda: ( no output )
16:42 TimToady m: sub infix:«\$»(&x, &y) is assoc('right') { -> |args { x y |args } }; my &comp = { [+] @_ } $ { .grep(*.is-prime) } $ { 1..10 }; say comp
16:42 camelia rakudo-moar 6cfeda: OUTPUT«17␤»
16:43 TimToady m: sub infix:«\$»(&x, &y) { -> |args { x y |args } }; my &comp = { [+] @_ } $ { .grep(*.is-prime) } $ { 1..10 }; say comp
16:43 camelia rakudo-moar 6cfeda: OUTPUT«17␤»
16:45 TimToady I guess it doesn't matter which direction you compose the functions
16:46 diana_olhovik joined #perl6
16:47 AlexDaniel [Coke]: you migh also want to search for segfaults
16:47 AlexDaniel t
16:50 TimToady y'know, it'd make a lot of people happier to just have a function composition operator built in
16:52 Ven joined #perl6
17:10 sufrostico joined #perl6
17:15 rindolf joined #perl6
17:16 MadcapJake joined #perl6
17:17 diana_olhovik__ joined #perl6
17:30 FROGGS joined #perl6
17:32 domidumont joined #perl6
17:33 * colomon whispers function composition operator, ooooo
17:37 diana_olhovik_ joined #perl6
17:44 dalek rakudo/nom: 25f8469 | TimToady++ | src/ (2 files):
17:44 dalek rakudo/nom: add function composition operator
17:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/25f8469411
17:44 TimToady feel free to write tests
17:44 [Coke] .u ∘
17:44 yoleaux U+2218 RING OPERATOR [Sm] (∘)
17:45 [Coke] .u o
17:45 yoleaux U+006F LATIN SMALL LETTER O [Ll] (o)
17:45 TimToady or to bikeshed :)
17:45 colomon TimToady++
17:46 [Coke] or docs.
17:50 Peter_R joined #perl6
17:53 vendethiel joined #perl6
17:56 moritz my &composed = *.join('|') o &infix:<xx>
17:57 moritz Too many positionals passed; expected 1 argument but got 2
17:57 moritz what did I do wrong?
17:57 TimToady it doesn't really handle anything except one argument functions yet
17:58 diana_olhovik joined #perl6
17:58 moritz f | g |args ?
17:58 TimToady tried that, didn't work on the 0-ary case anyway
17:59 moritz :(
17:59 colomon m: say (sin o cos)(.5)
17:59 camelia rakudo-moar 6cfeda: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EQjqqGoK1o␤Unsupported use of bare "cos"; in Perl 6 please use .cos if you meant $_, or use an explicit invocant or argument, or use &cos to refer to the function as a noun␤at /tmp/EQjqqGoK1o:1␤------> 3…»
17:59 TimToady needs & there
17:59 colomon m: say (&sin o &cos)(.5)
17:59 camelia rakudo-moar 6cfeda: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jE8hgqAsAD␤Two terms in a row␤at /tmp/jE8hgqAsAD:1␤------> 3say (&sin7⏏5 o &cos)(.5)␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modif…»
17:59 TimToady not compiled yet
17:59 colomon doesn’t actually have the patch yet
18:00 dalek roast: c8dec0b | moritz++ | S03-operators/composition.t:
18:00 dalek roast: Initial tests for function composition
18:00 dalek roast: review: https://github.com/perl6/roast/commit/c8dec0b88e
18:00 moritz have to run now; somebody please add it to t/spectest.data?
18:01 colomon moritz++
18:02 telex joined #perl6
18:02 dalek rakudo/nom: 3fb8178 | colomon++ | t/spectest.data:
18:02 dalek rakudo/nom: Test new composition operator
18:02 dalek rakudo/nom:
18:02 dalek rakudo/nom: TimToady++ moritz++
18:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3fb81786cd
18:03 diana_olhovik__ joined #perl6
18:05 vendethiel TimToady++ moritz++ :D
18:06 masak geez, I decommute, and you people add a function composition op... :P
18:06 timotimo next up is the function commutation op
18:07 masak m: sub f1($x) { $x ~ " one" }; sub f2($x) { $x ~ " two " }; say (&f2 o &f1)("OH HAI")
18:07 camelia rakudo-moar 6cfeda: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8wwBHIQO3a␤Two terms in a row␤at /tmp/8wwBHIQO3a:1␤------> 3}; sub f2($x) { $x ~ " two " }; say (&f27⏏5 o &f1)("OH HAI")␤    expecting any of:␤        infix␤        infix stopper␤        sta…»
18:07 timotimo still not yet compiled, i guess
18:07 colomon >  sub f1($x) { $x ~ " one" }; sub f2($x) { $x ~ " two " }; say (&f2 o &f1)("OH HAI")
18:07 colomon OH HAI one two
18:08 masak \o/
18:08 masak mainly wanted to test if you'd gotten the order wrong and I could rakudobug it :P
18:11 vendethiel \o/
18:15 masak m: say (1..100).grep(&is-prime)
18:15 camelia rakudo-moar 6cfeda: OUTPUT«((3 4) (5 6) (7 8) (11 12) (13 14) (17 18) (19 20) (23 24) (29 30) (31 32) (37 38) (41 42) (43 44) (47 48) (53 54) (59 60) (61 62) (67 68) (71 72) (73 74) (79 80) (83 84) (89 90) (97 98))␤»
18:16 masak :(
18:16 timotimo ugh
18:16 timotimo what even is this
18:17 masak &is-prime takes a second optional positional
18:17 TimToady maybe should be named
18:17 masak so you need to write it as *.&is-prime or { is-prime($_) }
18:17 timotimo oh
18:17 masak TimToady: yes, I think so
18:17 timotimo that's the probability with which you want the prime to be perfect?
18:17 masak timotimo: no, it's the number of tries
18:17 masak I completely agree with TimToady++, it should be named
18:17 timotimo ah
18:18 Ven joined #perl6
18:18 colomon +1 to named
18:18 timotimo aye
18:21 tokuhiro_ joined #perl6
18:21 diana_olhovik_ joined #perl6
18:21 spider-mario joined #perl6
18:24 * moritz think it warrants its own sub/method
18:24 masak we don't seem to be testing the second parameter at all.
18:24 masak moritz: I was just about to change it to a named when you said that ;)
18:24 masak moritz: why do you think it warrants its own sub/method?
18:25 moritz masak: because checking for a prime and checking for a mersenne prime aren't the same operation
18:25 moritz masak: if there's a named argument to is-prime, I'd expect it to modify its heuristic, or such details
18:26 moritz masak: not that it suddenly starts to do a totally different test
18:26 TimToady that's an argument for a using a named to my mind
18:26 TimToady and what do mersennes have to do with it?
18:27 moritz isn't perfect prime = mersenne prime?
18:27 moritz oh, probably not
18:27 TimToady what do perfect primes have to do with it, then?
18:28 moritz wasn't the the question?
18:28 moritz 20:17 < timotimo> that's the probability with which you want the prime to be  perfect?
18:28 moritz or is this about perfect *testing* of the prime?
18:28 TimToady it's just # of tries to falsify
18:28 * moritz probably misunderstood the whole discussion, sorry
18:30 TimToady and it's a pretty meaningless argument anyway, given libtommath is just gonna do it's own trial divisions first, iirc
18:31 yqt joined #perl6
18:32 [Coke] nuke the option, then?
18:32 masak yes, please
18:32 masak I didn't realize it was meaningless
18:33 TimToady it does *some* trial divisions, so it's still probabalistic, so not entirely meaningless
18:34 TimToady I think it only goes up to the first 200 or so primes
18:34 TimToady again, iirc
18:34 timotimo "more likely to be hit by a meteor than to get a false positive" is quite a good default
18:35 Ven this reminds me of the .map(parseInt) in JS :)
18:35 masak indeed
18:35 timotimo oh, JS has map?
18:35 timotimo fantastic!
18:35 timotimo i shall improve so much code now! ;)
18:35 masak haha *sob*
18:35 masak timotimo: wait until you hear about .map(parseInt) :)
18:35 timotimo how spectacular does that break?
18:36 masak worse than you think
18:36 * TimToady is glad there are circles of hell he has not yet visited
18:36 timotimo please enlighten me, masak :)
18:36 masak timotimo: JS also has .every .some .forEach .filter
18:36 masak timotimo: http://stackoverflow.com/questions/262427/javascript-arraymap-and-parseint
18:37 Ven parseInt takes *more* than an argument (the base). so, since .map also passes the index, well...
18:37 timotimo ooooh
18:37 timotimo so that's how
18:37 timotimo it passes the value, then the index?
18:37 jdv79 hacking metacpan isn't the most fun thing to do
18:37 Ven yeah. then the array, but that 3rd arg is ignored
18:38 timotimo how is argument passing to functions handled with arity in jS?
18:38 Ven just pass it. no arity.
18:39 Ven use `arguments` if needed. there's no such thing as an arity error. not enough params passed => fill them with "undefined"
18:39 timotimo ah, ok
18:39 _itz joined #perl6
18:39 masak which is a great feature for a language that people mostly write one-liners in anyway.
18:39 masak not huge web apps or anything.
18:39 timotimo yeah, why would you use javascript for anything except for one-liners on the shell?
18:40 timotimo javascript is the perl-killer, isn't it?
18:40 Ven javascript is probably the only scripting language I wouldn't ever write a "one-liner" or a CLI script in.
18:40 masak timotimo: I meant one-liners inside HTML onclick attributes, but yeah.
18:40 timotimo fair enough :)
18:40 Ven just because you need to include 1212312 modules to do ANYTHING. even simple stuff like glob...
18:40 Ven It's the only argument I have in favor of perl-style "distributions": I love small packages, but they're a nightmare to write simple(small) stuff in..
18:40 TimToady good thing we have glob built in...oh wait...
18:41 masak JS is only "the perl-killer" in the sense that it (and cockroaches) will survive *every* language...
18:42 lizmat FROGGS: if I'm not mistaken, CURLI is not used at all at the moment by panda, right ?
18:43 timotimo i've heard people say that, but it confused me
18:43 Fleurety joined #perl6
18:44 FROGGS lizmat: correct
18:44 FROGGS lizmat: only by zef
18:44 lizmat so if I take out all inst# out of @*INC, I shouldn't break anything
18:44 TimToady m: say (&log o &abs)(-e * e)
18:44 camelia rakudo-moar 3fb817: OUTPUT«2␤»
18:44 lizmat ah
18:44 lizmat hmmm...
18:44 diana_olhovik_ joined #perl6
18:45 FROGGS lizmat: what are you up to?
18:45 lizmat FROGGS: how do you feel about me ripping out all inst# entries from @*INC ?
18:45 lizmat temporarily
18:46 FROGGS but why?
18:46 lizmat to make things faster in the interim?
18:46 FROGGS O.o
18:46 FROGGS and this would make things faster?
18:46 lizmat fewer CUR's to check ?
18:47 timotimo but we have Zef, which would break in that case
18:47 lizmat indeed
18:47 FROGGS I don't think that this is a sane approach
18:47 FROGGS ripping things out that are meant to work
18:47 timotimo i wonder how big of a performance penalty we get as soon as parallelism kicks in
18:47 FROGGS just to gain a few millis
18:47 lizmat ok, I'll leave them in
18:47 timotimo if it's negligible, we could be checking CURs in parallel perhaps?
18:48 lizmat it was just a thought
18:48 jdv79 panda can support cpan, right?
18:48 jdv79 wonder how that would work
18:48 lizmat FROGGS: starting to implement what I described in https://gist.github.com/lizmat/f3807956c354c14902a3
18:49 dalek roast: 43146d9 | usev6++ | S04- (14 files):
18:49 dalek roast: Replace more eval-dies-ok with throws-like (S04)
18:49 dalek roast: review: https://github.com/perl6/roast/commit/43146d93fd
18:49 FROGGS lizmat: what are you starting with? :api or the USE/REQUIRE subs?
18:50 lizmat first thing is I want CompUnit.load to actually work
18:50 FROGGS I wonder if these subs works out...
18:50 FROGGS lizmat: it does already
18:50 FROGGS since the SPW
18:50 timotimo how terrible is the performance impact of having many things installed nowadays?
18:50 FROGGS timotimo: I did not check
18:50 lizmat $ 6 'BEGIN CompUnit.new("lib/Test.pm").load; ok 1'
18:50 lizmat ===SORRY!=== Error while compiling -e
18:50 lizmat Undeclared routine:
18:50 lizmat ok used at line 1. Did you mean 'on'?
18:50 lizmat FROGGS: it loads, but doesn't export
18:51 FROGGS wait
18:51 lizmat and a "import Test" doesn't work either
18:51 timotimo FROGGS: but we're already & still using the serialization based database back-end, right?
18:51 lizmat timotimo: only if you're using CURLI
18:51 dalek rakudo/nom: 59cb611 | (Carl Masak)++ | src/core/Int.pm:
18:51 dalek rakudo/nom: [src/core/Int.pm] remove $tries param from is-prime
18:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/59cb611af9
18:51 diana_olhovik__ joined #perl6
18:52 jdv79 i guess i'll look into it then
18:52 jnthn Ooh, the on sub...
18:52 PerlJam masak: but what if we needed to try 101 times?
18:52 FROGGS m: BEGIN CompUnit.new("lib/Test.pm").load(GLOBALish); pass "test?"
18:52 camelia rakudo-moar 3fb817: OUTPUT«5===SORRY!5=== Error while compiling /tmp/asPfnLfbTp␤Undeclared routine:␤    pass used at line 1␤␤»
18:52 jnthn That was an early draft of what became the supply/react/whenever
18:52 FROGGS m: BEGIN CompUnit.new("lib/Test.pm").load(GLOBALish); say Test
18:52 camelia rakudo-moar 3fb817: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7UjCxLnY5T␤Undeclared name:␤    Test used at line 1␤␤»
18:53 FROGGS lizmat: this was working earlier this month
18:53 lizmat ok, then I'll look at what broke
18:53 FROGGS lizmat: http://irclog.perlgeek.de/perl6/2015-09-01#i_11152230
18:54 lizmat cool!  ok, will look at it deeper
18:55 FROGGS lizmat: btw, use is already using it, so it is only kinda broken
18:55 lizmat eh, no, -use- is still using the loader in World.nqp
18:55 lizmat as far as I can determine from the RAKUDO_MODULE_DEBUG output
18:56 FROGGS which does the codegen for CompUnitRepo.load_module
18:56 lizmat hmmm....
18:56 diana_olhovik_ joined #perl6
18:57 japhb Anyone likely to be near Stockholm first weekend in December?
18:57 jnthn japhb: I may be in Umeaa
18:57 FROGGS japhb: does Berlin count as "near"?
18:57 jnthn Heh, if so then Prague would too :P
18:58 japhb (I am setting up a business trip, and it's looking like I'll be in Stockholm for Dec 7-8, but since I'm flying in from Dublin, might be able to arrange to have the weekend "free" there.
18:58 japhb )
18:59 lizmat FROGGS: afaics, it's World.load_module -> CUR.load_module -> CompUnit.load
18:59 lizmat then back at World, it does the imports
18:59 jnthn japhb: I may be teaching 2nd-4th in the north of Sweden, and I can't actually get home on the 4th afterwards, but I could potentially get to Stockholm...
18:59 japhb Well, given I likely won't have a vehicle of my own, I suppose that depends on travel difficulties from there.
18:59 FROGGS lizmat: aye
19:00 jnthn japhb: So being on Stockholm on Sat 5th or so would be "en route" for me
19:00 japhb (Err, that wasn't clear: I meant, either for someone else to get to Stockholm, or for me to get somewhere else.)
19:00 jnthn japhb: Though didn't get this thing quite confirmed yet
19:00 japhb jnthn: Oh cool!
19:00 japhb Yeah, I haven't ticketed, I'm still in planning stages.  It's ~slushy-frozen ATM.
19:02 japhb On a tangentially related note, how is DBIish to MySQL doing these days?  Working post-GLR?
19:02 moritz japhb: I've had no reports otherwise
19:02 japhb Ah, cool.  Thanks, moritz.  :-)
19:03 moritz japhb: in fact, everything in Star works fine to the best of my knowledge (and their unit tests)
19:04 japhb Hmmm, perhaps I need to start basing my $day-job Perl 6 code on Star, instead of picking builds myself ....
19:04 jnthn japhb: Yeah, mine is around the same stage. Pretty much confirmed I'll be teaching, and 2nd-4th Dec were one of the dates offered to me for it
19:04 Hor|zon joined #perl6
19:05 japhb nodnod
19:06 japhb moritz: Does Star still have a bespoke installer, or is it now using panda or zef or somesuch?
19:06 moritz japhb: it uses its own thing
19:07 moritz what was the trick for native-calling into the stdlib?
19:07 moritz is native(Str) ?
19:08 colomon yup
19:08 AlexDaniel m: .........
19:08 camelia rakudo-moar 3fb817: ( no output )
19:08 FROGGS $ perl6 -e 'BEGIN CompUnit.new("lib/Test.pm").load(GLOBALish); say Test'
19:08 FROGGS (Test)
19:08 FROGGS lizmat: ^^
19:08 colomon (at least, that’s how Math::Odd-Functions is doing it)
19:08 jnthn I thought just "is native" would do it?
19:08 FROGGS m: say $*EXECUTABLE
19:08 camelia rakudo-moar 3fb817: OUTPUT«"./rakudo-inst/bin/perl6-m".IO␤»
19:08 vendethiel m: say .........
19:08 camelia rakudo-moar 3fb817: ( no output )
19:09 vendethiel m: say (.........).perl
19:09 camelia rakudo-moar 3fb817: ( no output )
19:09 vendethiel m: say (... ... ...).perl
19:09 camelia rakudo-moar 3fb817: ( no output )
19:09 vendethiel uh.
19:09 AlexDaniel :))
19:09 AlexDaniel m: .....................
19:09 camelia rakudo-moar 3fb817: ( no output )
19:09 lizmat FROGGS: yes, that works, but it doesn't export things like "ok"
19:10 FROGGS lizmat: yes, because we did not import
19:10 AlexDaniel m: ....++
19:10 camelia rakudo-moar 3fb817: ( no output )
19:10 lizmat $ 6 'BEGIN CompUnit.new("lib/Test.pm").load(GLOBALish); import Test; ok 1'
19:10 lizmat ok 1 -
19:10 lizmat :-)
19:12 FROGGS lizmat: yeah... and it does not work here because Test.pm is elsewhere
19:14 rindolf joined #perl6
19:15 AlexDaniel m: ++.++
19:15 camelia rakudo-moar 3fb817: OUTPUT«Parameter '$a' expected a writable container, but got Int value␤  in block <unit> at /tmp/q6W3FNXLiU:1␤␤»
19:15 dalek roast: 93b33fd | usev6++ | S03- (6 files):
19:15 dalek roast: Replace more eval-dies-ok with throws-like (S03)
19:15 dalek roast: review: https://github.com/perl6/roast/commit/93b33fd0dc
19:15 AlexDaniel what is "$a"?
19:16 FROGGS AlexDaniel: most likely the param of the signature of the ++ postfix op
19:16 FROGGS m: say &[++]
19:16 camelia rakudo-moar 3fb817: OUTPUT«5===SORRY!5=== Error while compiling /tmp/h5GBH2uvU_␤Unable to parse expression in infix noun; couldn't find final ']' ␤at /tmp/h5GBH2uvU_:1␤------> 3say &[+7⏏5+]␤»
19:16 FROGGS m: say err
19:16 camelia rakudo-moar 3fb817: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9SCd3yhHsk␤Undeclared routine:␤    err used at line 1␤␤»
19:16 FROGGS gah!
19:16 FROGGS m: say &postfix:<++>
19:16 camelia rakudo-moar 3fb817: OUTPUT«sub postfix:<++> (| is raw) { #`(Sub+{Precedence}|50849008) ... }␤»
19:17 FROGGS m: say &postfix:<++>.candidates
19:17 camelia rakudo-moar 3fb817: OUTPUT«(sub postfix:<++> (Mu:D $a is rw) { #`(Sub|53516656) ... } sub postfix:<++> (Mu:U $a is rw) { #`(Sub|53516808) ... } sub postfix:<++> (Bool:U $a is rw) { #`(Sub|53516048) ... } sub postfix:<++> (Int:D $a is rw) { #`(Sub|53516200) ... } sub postfix:<++> (in…»
19:17 FROGGS AlexDaniel: see?
19:17 AlexDaniel yeah!
19:17 dalek rakudo/nom: ab7d963 | lizmat++ | src/ (3 files):
19:17 dalek rakudo/nom: More info, less boilerplate
19:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ab7d9632e3
19:18 AlexDaniel FROGGS: still, isn't it less than awesome? I'm not sure if this thing will ever appear in real code, but still
19:19 FROGGS AlexDaniel: it is LTA in so far it mentions $a, when there is no $a in user code
19:19 AlexDaniel kk
19:19 jnthn It's somewhat innevitable when a language's built-ins are implemented in the language itself, not just magical things that happen to exist
19:19 masak PerlJam: if we need to try 101 times, that person can show the code they wrote that fails, and we can talk about providing a simple way to change the default 100 to something higher. 101 likely won't be enough ;)
19:19 FROGGS AlexDaniel: imagine you have a $a near that bit of code and waste hours :o)
19:20 jnthn What is a bit bothersome is that we don't report that we're *in* CORE.setting
19:20 jnthn So the backtrace makes it look like it could be in your own code
19:20 AlexDaniel FROGGS: yeah, that'd be unfortunate
19:20 FROGGS jnthn: don't we hide that information on purpose?
19:20 jnthn FROGGS: Yeah, 'cus in other times it's annoying to do otherwise :P
19:20 jnthn Can't win! :)
19:20 FROGGS hehe
19:21 FROGGS so it is a loose-loose situation?
19:21 moritz FROGGS: http://perlpunks.de/paste/show/560ae4a4.20ae.392 any idea what I'm doing wrong here?
19:21 AlexDaniel FROGGS: we can always pretend that the problem is not there!
19:21 AlexDaniel just like in any other language!
19:22 FROGGS moritz: try 'is native' without the Str
19:22 FROGGS AlexDaniel: that's what I see in Perl 5 for example...
19:22 moritz FROGGS: No appropriate parametric role variant available for 'Native'
19:23 diana_olhovik joined #perl6
19:23 AlexDaniel FROGGS: or change the error message to something more appropriate, like “syntax error.”
19:23 FROGGS m: use NativeCall; sub getpwuid(int $uid) returns Pointer is native() {}; say getpwuid(1000)
19:23 AlexDaniel oh no, it's “run-time error”
19:23 camelia rakudo-moar 3fb817: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9ZDQl2A7AT␤No appropriate parametric role variant available for 'Native'␤at /tmp/9ZDQl2A7AT:1␤»
19:23 FROGGS m: use NativeCall; sub getpwuid(int $uid) returns Pointer is native("") {}; say getpwuid(1000)
19:23 camelia rakudo-moar 3fb817: OUTPUT«Cannot locate native library '.so': .so: cannot open shared object file: No such file or directory␤  in method CALL-ME at lib/NativeCall.pm:226␤  in block <unit> at /tmp/_CXay4KQ8h:1␤␤»
19:23 FROGGS m: use NativeCall; sub getpwuid(int $uid) returns Pointer is native(Str) {}; say getpwuid(1000)
19:23 camelia rakudo-moar 3fb817: OUTPUT«Pointer<0x7f3ae33c1e40>␤»
19:23 FROGGS huh
19:24 FROGGS ohh
19:24 FROGGS moritz: don't use str attributes, use Str
19:24 moritz m: say $*HOME
19:24 camelia rakudo-moar 59cb61: OUTPUT«"/home/camelia".IO␤»
19:27 TimToady I'm starting to think we made a mistake with changing push to one-arg, and we should split it into .push with ** semantics vs .push-list with + semantics, for several reasons
19:28 moritz FROGGS++ # works with Str
19:28 TimToady first, it's been a WAT over and over
19:29 * vendethiel likes it -- because he has no prior perl experience
19:29 TimToady second, $[] is not actually adequate
19:29 vendethiel (and thus doesn't really like flattening/think it's needed, seeing as most languages get away without out + the fact that | is really not that intrusive..)
19:29 larion joined #perl6
19:30 TimToady you have to use .push((value,)) to allow value to be a slip, because $ hides a slip
19:30 jdv79 moritz: can i run a vagrant vm type thingee on hack?
19:31 moritz jdv79: what do you need for that?
19:31 TimToady and third, push @array, [foo] isn't really a single arg function anyway
19:32 jdv79 a few gigs of disk and mem i guess
19:33 jdv79 https://github.com/CPAN-API/metacpan-developer#requirements too i guess
19:33 PerlJam TimToady++ that third thing has been bothering me a little since you introduced +args
19:34 jdv79 and i had to set some hypervisoryish bios bit on my box here
19:35 lizmat jnthn: is there a reason why things like prefix:<++> don't use \a rather than $a is rw ?
19:36 TimToady and fifth, I want to be able to implement ... in terms of .push(value), not .push((value,))
19:37 FROGGS m: sub foo(\a) { a++ }; my $a = 42; say foo $a
19:37 camelia rakudo-moar 59cb61: OUTPUT«42␤»
19:37 FROGGS m: sub foo(\a) { a++ }; my $a = 42; say foo $a; say $a
19:37 camelia rakudo-moar 59cb61: OUTPUT«42␤43␤»
19:37 lizmat and what happens to .push, should also be done for .unshift, I assume, TimToady ?
19:37 jdv79 moritz: no rush.  but if its possible it'd be nice.
19:37 TimToady lizmat: yes
19:37 lizmat fwiw, feels good to me
19:39 AlexDaniel m: ~ ␤  ␤ 'test'
19:39 AlexDaniel m
19:39 camelia rakudo-moar 59cb61: OUTPUT«WARNINGS:␤Useless use of "~ \n  \n " in expression "~ \n  \n 'test'" in sink context (line 1)␤»
19:40 AlexDaniel ␤ is escaped, wow!
19:40 AlexDaniel that being said, I don't think that the first part of the message should include whitespace…
19:41 FROGGS TimToady: please don't judge my unresponsiveness as ignorance... I just have trouble understanding the consequences...
19:45 AlexDaniel m: $*PERL = 25
19:45 camelia rakudo-moar 59cb61: OUTPUT«Cannot modify an immutable Perl␤  in block <unit> at /tmp/kBRzngGN2O:1␤␤»
19:45 AlexDaniel immutable Perl :)
19:46 lizmat .oO( at least it's stable :-)
19:47 moritz jdv79: I've installed vagrant
19:48 moritz jdv79: installing virtualbox fails with "E: Package 'virtualbox' has no installation candidate"
19:48 moritz jdv79: if you tell me which packages to install, I'll gladly do that for you
19:48 Ven joined #perl6
19:50 AlexDaniel m: my $a = 25; $a .= ++;
19:50 camelia rakudo-moar 59cb61: OUTPUT«Method '&postfix:<++>' not found for invocant of class 'Int'␤  in block <unit> at /tmp/mhLceBtL54:1␤␤»
19:51 TimToady FROGGS: eh?  were you being unresponsive?
19:52 dalek doc: e727bfd | moritz++ | lib/Language/nativecall.pod:
19:52 dalek doc: nativecall: mention "is native(Str)" trick
19:52 dalek doc:
19:52 dalek doc: ... complete with an example for getpwuid and getuid
19:52 dalek doc: review: https://github.com/perl6/doc/commit/e727bfd2ea
19:52 FROGGS TimToady: well, you said things and almost nobody replied... I just wanna say that I did read and try to understand :o)
19:53 AlexDaniel I don't really understand this error message. It sounds like there is no postfix ++ for Int, but eh?
19:54 FROGGS m: use NativeCall; my class PwStruct is repr('CStruct') { has Str $.a }; sub getpwuid(int $uid) returns PwStruct is native {}; say getpwuid(1000) # moritz: that also works
19:54 camelia rakudo-moar 59cb61: OUTPUT«PwStruct.new(a => "nine")␤»
19:54 lizmat AlexDaniel: the message is correct, there is no *METHOD* postfix:<++>
19:54 FROGGS AlexDaniel: it is just a sub
19:54 lizmat m: my $a = 42; $a .= Foobar
19:54 camelia rakudo-moar ab7d96: OUTPUT«Method 'Foobar' not found for invocant of class 'Int'␤  in block <unit> at /tmp/G4GbQNpgJY:1␤␤»
19:55 AlexDaniel indeed!
19:55 AlexDaniel thanks :)
19:56 AlexDaniel hmmm, there are so many things that you can learn just by shoving some random stuff in…
19:56 moritz AlexDaniel: especially if somebody explains the errors :-)
19:57 AlexDaniel moritz: well, I report really bad ones, so why not :)
20:00 AlexDaniel .oO( although some of my reports are probably a bit annoying )
20:02 dalek roast: a7b77c2 | usev6++ | S (34 files):
20:02 dalek roast: Test for X::AdHoc (with throws-like) instead of using eval-dies-ok
20:02 dalek roast:
20:02 dalek roast: Even when there is no typed exception (yet), it's better
20:02 dalek roast: to use throws-like instead of eval-dies-ok. With eval-dies-ok
20:02 dalek roast: there is a greater chance that the code dies for the wrong
20:02 dalek roast: reason. Testing for X::AdHoc makes it easier to adjust tests
20:02 dalek roast: after upgrading to typed exceptions.
20:02 dalek roast:
20:02 dalek roast: Optionally, all X::AdHoc could be changed to 'Exception'
20:02 dalek roast: shortly before releasing 6.Christmas (to become more stable
20:02 dalek roast: wrt throws-like).
20:02 dalek roast:
20:02 dalek roast: See http://irclog.perlgeek.de/perl6/2015-09-22#i_11258578
20:02 dalek roast: review: https://github.com/perl6/roast/commit/a7b77c2306
20:04 bartolin I hope that commit ^^ (and my other recent changes to roast) make sense.
20:05 bartolin there are about 50 tests with 'eval-dies-ok' left. most of them need some review, me thinks
20:06 lizmat bartolin++
20:06 FROGGS now we just need to type the exceptions :o)
20:07 FROGGS but yeah, I like it
20:07 bartolin great *g*
20:12 AlexDaniel A Christmas tree! https://gist.github.com/AlexDaniel/69ff636ffe4053792120
20:13 vendethiel AlexDaniel++ # it's art!
20:13 jdv79 moritz: ok.  i foget exactly how i installed it on my fedora box.
20:13 jdv79 *forget
20:14 FROGGS .tell jnthn if you get the chance, can you run its test and give me a hint what went wrong? we need this for CURLI https://github.com/FROGGS/p6-Ser
20:14 yoleaux FROGGS: I'll pass your message to jnthn.
20:20 pmurias masak: anytime people hate on javascript it's interesting to imagine an universe where vbscript won the war
20:20 Ven joined #perl6
20:21 moritz pmurias: that's a great line to quote!
20:21 moritz Option Explicit
20:22 moritz Dim x
20:22 moritz Set x = ...
20:22 pink_mist I seem to recall that Internet Explorer 3.something supported Javascript and Perl as scripting languages at one time
20:22 pink_mist I am probably mistaken though
20:22 tokuhiro_ joined #perl6
20:22 geekosaur there was a plugin iirc
20:22 moritz ah, the fun, needing a "Set" for object assignment whereas a normal = is enough for non-objects. Or something
20:22 FROGGS I just know that Perl 5 was either on the Windows 95 or Windows NT CD already
20:22 geekosaur was supposed to allow any scripting language as a web language, perl being a supplied example
20:22 FROGGS moritz: aye
20:23 pink_mist geekosaur: neat
20:23 moritz pink_mist: there was the "windows scripting host", and you could load all kinds of languages
20:23 FROGGS moritz: there is also some fun about required vs forbidden parenthesis for function calls
20:23 moritz pink_mist: and if you loaded the Perl backend for the Scripting Host, your IE (up to 5 or so) would understand Perl
20:23 AlexDaniel m: reduce ass
20:23 camelia rakudo-moar ab7d96: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Pp9w51fxT2␤Undeclared routine:␤    ass used at line 1. Did you mean 'abs'?␤␤»
20:24 FROGGS hehe
20:24 moritz or Lua, or TCL, or whatever you loaded
20:24 z8 joined #perl6
20:24 geekosaur (aaaand I just flashed back to IE5 for Solaris)
20:24 _dolmen_ joined #perl6
20:25 moritz geekosaur: it still surprises me that such a thing ever existed
20:25 moritz just like MS Word for the Mac
20:26 geekosaur pretty sure it was for some government contract
20:26 FROGGS .tell jnthn and that is about capturing to a lexical var (we talked about), what thinko do I do?: https://gist.github.com/FROGGS/55945f79a9fefb004a61
20:26 yoleaux FROGGS: I'll pass your message to jnthn.
20:27 iv joined #perl6
20:28 FROGGS moritz: isnt Word and Excel for Mac like one of the first thing Apple Inc did? like, more than thirty years ago?
20:28 masak pmurias: there are people who still hate on JavaScript. the situation has been growing increasingly more untenable since 2004 and Gmail, though. JavaScript can do cool things, if you just know how.
20:28 FROGGS err, s/Apple Inc/MicroSoft/
20:28 espadrine joined #perl6
20:29 arnsholt joined #perl6
20:29 cosimo joined #perl6
20:30 Alina-malina joined #perl6
20:30 masak s/situation/position/ :)
20:31 Ven joined #perl6
20:31 FROGGS s/o.o/zzz/
20:31 FROGGS gnight #perl6
20:32 moritz 'night FRO<tab>
20:34 dalek roast: 62e8214 | usev6++ | S04-statements/for.t:
20:34 dalek roast: Fix test which passed for a wrong reason
20:34 dalek roast:
20:34 dalek roast: The declaration for @a was accidentially removed with
20:34 dalek roast: commit 6228b9fa -- restored now
20:34 dalek roast: review: https://github.com/perl6/roast/commit/62e8214913
20:35 lizmat FROGGS: gnight
20:40 dalek rakudo/nom: ab6238e | lizmat++ | src/core/Process.pm:
20:40 dalek rakudo/nom: Introduce $?COMPILATION-ID
20:40 dalek rakudo/nom:
20:40 dalek rakudo/nom: This is a SHA for the current compilation rakudo.  jnthn++ for guidance.
20:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ab6238e8db
20:40 ilmari m: $*W.handle
20:40 camelia rakudo-moar ab7d96: OUTPUT«Dynamic variable $*W not found␤  in block <unit> at /tmp/hgG1kW52nx:1␤␤Actually thrown at:␤  in any  at gen/moar/m-Metamodel.nqp:2869␤  in block <unit> at /tmp/hgG1kW52nx:1␤␤»
20:41 ilmari m: say $*W.handle
20:41 camelia rakudo-moar ab7d96: OUTPUT«Dynamic variable $*W not found␤  in block <unit> at /tmp/EYzqJUnILa:1␤␤Actually thrown at:␤  in any  at gen/moar/m-Metamodel.nqp:2869␤  in block <unit> at /tmp/EYzqJUnILa:1␤␤»
20:41 lizmat m: say BEGIN $*W.handle
20:41 camelia rakudo-moar ab7d96: OUTPUT«4C870AD506898C21851842D48D112FA1BBA5EFB0␤»
20:43 ilmari m: say BEGIN $*W
20:43 camelia rakudo-moar ab7d96: OUTPUT«Method 'gist' not found for invocant of class 'Perl6::World'␤  in block <unit> at /tmp/J6Yhut1oDY:1␤␤»
20:44 lizmat it's an NQP object available at compile time  :-)
20:47 jnthn lizmat: Yes, $a = ... gets way better code-gen than a = ...
20:47 yoleaux 20:14Z <FROGGS> jnthn: if you get the chance, can you run its test and give me a hint what went wrong? we need this for CURLI https://github.com/FROGGS/p6-Ser
20:47 yoleaux 20:26Z <FROGGS> jnthn: and that is about capturing to a lexical var (we talked about), what thinko do I do?: https://gist.github.com/FROGGS/55945f79a9fefb004a61
20:51 jnthn .tell FROGGS I'm really tired and about to sleep, so I'll look at those two tomorrow
20:51 yoleaux jnthn: I'll pass your message to FROGGS.
20:51 hoelzro joined #perl6
20:58 masak the "signatures, multi and named arguments" email on p6u, is that a case of the querent forgetting to ! their nameds?
20:59 * TimToady found several places where core assumes "@array.push: val" will not flatten val
20:59 * [Coke] wonders how hard it would be to make NativeCall do Objective-C
20:59 jnthn masak: link?
20:59 TimToady so I think reverting push to ** semantics is the right thing
21:00 hoelzro [Coke]: That's an interesting idea; I don't think Objective-C's name mangling is as complex as C++'s
21:00 jnthn TimToady: I'm a little sad to lose the consistency...
21:00 hoelzro also, Objective-C supports (Ruby|Smalltalk) style send
21:00 jnthn TimToady: Well, I guess, I worry how far "1-arg rule exceptions" will end up spreading
21:01 masak jnthn: http://www.nntp.perl.org/group/perl.perl6.users/2015/09/msg2287.html
21:01 dalek roast: 5ec65b1 | usev6++ | S05-m (2 files):
21:01 dalek roast: Replace more eval-dies-ok with throws-like (S05)
21:01 dalek roast: review: https://github.com/perl6/roast/commit/5ec65b1903
21:01 dalek roast: e3ff8ce | usev6++ | S12-class/inheritance.t:
21:01 dalek roast: Do not overwrite namespace used for exceptions
21:01 dalek roast:
21:01 dalek roast: ... so that we can test for typed exception
21:01 dalek roast: review: https://github.com/perl6/roast/commit/e3ff8ce111
21:01 jnthn TimToady: That's been the classic problem with listy stuff. You could always come up with a suggestive example to break the rule. And then we ended up with no rules.
21:03 jnthn masak: Sounds like; named args serve as a tie-break but you actually have to demand them be present in methods for that to help, given methods accept all named args.
21:04 TimToady we already have lots of exceptions to +args, so it's always gonna be case-by-case
21:04 TimToady but in this case, people expect push to push one thing, cuz pop pops one thing
21:05 * masak sends that as a reply to p6u
21:06 TimToady jnthn: and if it's any comfort, I'm trying to move infix:<...> the other direction :)
21:09 dalek rakudo/nom: 5b3872c | lizmat++ | src/ (2 files):
21:09 dalek rakudo/nom: A better $?COMPILATION-ID
21:09 dalek rakudo/nom:
21:09 dalek rakudo/nom: Again, jnthn++ for pointing the way (and writing the nqp code).
21:09 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5b3872c03c
21:09 * masak replied on p6u
21:09 * lizmat gets some sleep
21:09 masak answer will probably show up sometime next week :P
21:09 masak 'night, lizmat++
21:12 jnthn TimToady: I'm kinda sad we already have lots of exceptions. That really wasn't where I wanted us to end up :(
21:12 * jnthn heads for sleep...early start tomorrow
21:12 jnthn o/
21:15 masak 'night, jnthn
21:15 masak 'night, #perl6
21:20 timotimo gnite masak, gnite jnthn
21:22 carlin hmm, I was getting a fairly consistent moar crash for a bit but it's stopped now
21:22 carlin this script: https://gist.github.com/carbin/4f108547a7c6b5339d18
21:22 carlin was causing "moar(30670) in free(): error: chunk is already free"
21:22 carlin gdb bt: https://gist.github.com/carbin/78ee4e0981748b05df70
21:24 timotimo that's a rather short backtrace
21:26 carlin that's all there is. that's from running "gdb `which moar` moar.core" not running it inside gdb if that makes a difference
21:26 pmurias joined #perl6
21:27 kid51 joined #perl6
21:30 cognome joined #perl6
21:31 co-gnome joined #perl6
21:31 dalek rakudo/nom: 058e713 | timotimo++ | lib/NativeCall.pm:
21:31 dalek rakudo/nom: NativeCall: make no-setup-needed case less expensive
21:31 dalek rakudo/nom:
21:31 dalek rakudo/nom: by moving the setup code into a private method.
21:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/058e713dc9
21:31 timotimo carlin: it kind of looks like something's corrupted, or maybe there's multiple threads, which isn't likely
21:32 timotimo anyway, we've got a bunch of stability fixes in recently; i thought they would only help if there's parallelism involved
21:44 ilmari m: my %foo = foo => 42; say %foo<foo> //= die "hopefully not";
21:44 camelia rakudo-moar ab6238: OUTPUT«42␤»
21:45 ilmari m: my $foo; my %foo = foo => 42; $foo = %foo<foo> //= die "hopefully not"; say $foo
21:45 camelia rakudo-moar ab6238: OUTPUT«42␤»
21:45 ilmari timotimo: why not $!cpp-name-mangler = %lib{$guessed_libname} //= guess-name-mangler($r, $guessed_libname)); ?
21:45 tokuhiro_ joined #perl6
21:46 timotimo i didn't invent this :)
21:46 timotimo let me have a look
21:55 travis-ci joined #perl6
21:55 travis-ci Rakudo build errored. Timo Paulssen 'NativeCall: make no-setup-needed case less expensive
21:55 travis-ci https://travis-ci.org/rakudo/rakudo/builds/82824331 https://github.com/rakudo/rakudo/compare/5b3872c03c11...058e713dc937
21:55 travis-ci left #perl6
21:58 lizmat joined #perl6
22:12 zzzzzzzzz joined #perl6
22:25 zzzzzzzzz left #perl6
22:31 skids joined #perl6
22:45 ShimmerFairy .tell jnthn I agree with you on the exceptions, I wonder if the introduction of +args would let us roll back some of the exceptions. Needing  for @$foo { ... }  (or zen slice) for Scalar containers is particularly unfortunate to me :(
22:45 yoleaux ShimmerFairy: I'll pass your message to jnthn.
22:52 BenGoldberg joined #perl6
22:57 araujo_ joined #perl6
23:16 timotimo can has help figuring out if that test file hangs for anybody else? :\
23:16 timotimo the one travis reports?
23:21 hoelzro timotimo: I'll have a look
23:22 cognominal joined #perl6
23:29 hoelzro timotimo: seems legit
23:29 jasanj joined #perl6
23:30 cognominal_ joined #perl6
23:30 maddingu1 joined #perl6
23:32 ab5tract_ joined #perl6
23:32 eiro joined #perl6
23:33 orbus joined #perl6
23:33 kid51 joined #perl6
23:33 cosimo joined #perl6
23:33 BooK joined #perl6
23:33 bcode joined #perl6
23:34 larion joined #perl6
23:34 DarthGandalf joined #perl6
23:34 jordman joined #perl6
23:35 bjz joined #perl6
23:36 timotimo legit?
23:36 timotimo as in, it doesn't only b0rk on travis?
23:36 timotimo hoelzro: is it flappy or constantly broken?
23:37 hoelzro timotimo: it's fine on my machine
23:37 timotimo ah
23:37 hoelzro I kicked the travis build; we'll see how it does
23:37 timotimo ok
23:37 travis-ci joined #perl6
23:37 travis-ci Rakudo build canceled. Timo Paulssen 'NativeCall: make no-setup-needed case less expensive
23:37 travis-ci https://travis-ci.org/rakudo/rakudo/builds/82824331 https://github.com/rakudo/rakudo/compare/5b3872c03c11...058e713dc937
23:37 travis-ci left #perl6
23:37 hoelzro https://travis-ci.org/rakudo/rakudo/jobs/82824335
23:37 hoelzro \o/
23:39 dalek rakudo-star-daily: 412cd90 | coke++ | log/ (9 files):
23:39 dalek rakudo-star-daily: today (automated commit)
23:39 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/412cd908a8
23:49 tokuhiro_ joined #perl6
23:52 aborazmeh joined #perl6
23:52 aborazmeh joined #perl6

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

Perl 6 | Reference Documentation | Rakudo