»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:10 flussence left 00:12 adhoc_ joined 00:16 flussence joined 00:28 yqt left 00:38 Peter_R left 00:43 aborazmeh joined, aborazmeh left, aborazmeh joined, laouji joined 00:44 leont left 00:45 colomon left 00:47 TEttinger left, tadzik left, colomon joined, aborazmeh left 00:48 tokuhiro_ joined, tadzik joined
[Coke] moritz: you in? 00:48
00:49 TEttinger joined 00:52 tokuhiro_ left, aborazmeh joined, aborazmeh left, aborazmeh joined
dalek kudo/nom: f192cd0 | TimToady++ | src/core/Junction.pm:
Junction ops are pure
00:58
kudo/nom: 5e4c4c2 | TimToady++ | src/core/Pair.pm:
Pair ops are pure
kudo/nom: e0b56aa | TimToady++ | src/core/set_operators.pm:
Unicode set ops are also pure
01:02 kid51 left 01:06 helloworldlang joined 01:08 helloworldlang left, helloworldlang1 joined 01:29 zed_ left 01:34 BenGoldberg joined 01:37 pierrot_ is now known as pierrot
dalek c: e7eae10 | coke++ | htmlify.p6:
fix typo
01:41
01:45 z8 left
[Coke] is anyone successfully using --profile these days? 01:46
01:48 atta joined, tokuhiro_ joined 01:52 tokuhiro_ left
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.
individual times aren't necessarily 0, but when you divide everything by 0...
ShimmerFairy Mainly just to see the callgraph, and it happens to have a nice "took Xms" on the summary page :) 01:55
[Coke] here it's unusably slow, and the numbers are all off. 01:57
02:00 atta left, prevost joined
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:03
02:04 tokuhiro_ joined
[Coke] the routines for me are showing "inf %" and "Nan%" 02:04
02:10 adu joined 02:11 atta joined 02:16 schobes joined
[Coke] tries to cut down the code to something manageable to show the issue in the profiler. 02:19
02:22 _thou left
adu [Coke]: what's wrong with the profiler? 02:26
[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:
perl6 --profile --profile-filename=nan.html -e 'exit'
^^ there's a golf. :P
it reports that sink-all takes up this much exclusive time: 18446744073709ms 02:33
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
02:37 noganex joined
[Coke] opens RT #126216 with that. 02:37
02:37 ilbot6 joined 02:38 ilbot6 left
ShimmerFairy I don't recall seeing Infinity and NaN before in the profiler output, so it must be recent-ish 02:38
02:38 ilbot6 joined
[Coke] yup, that one runs fast and screws up quick. should be perfect for debugging. 02:38
02:39 helloworldlang joined, helloworldlang left, ilbot6 left
ShimmerFairy [Coke]: yeah, took me a minute to realize that your original case was probably more time consuming :) 02:40
02:40 noganex_ left, electricface-ilb joined
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 02:47 adu left
timotimo oh, yeah, using exit makes the profiler super confused 02:54
oh lord, why am i still up
02:56 n_i_c_k joined 02:58 kaare_ joined 03:09 vendethiel left 03:16 electricface-ilb left, electricface-ilb joined 03:17 electricface-ilb left, electricface-ilb joined 03:20 [Tux] left 03:29 atta left 03:32 [Tux] joined 03:41 adu joined 03:46 prevost left
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 BenGoldberg left
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:49
03:51 atta joined
ShimmerFairy Oh, I can see an hllize in the qast output, that'd explain it :) 03:52
03:54 TEttinger left 03:55 laouji left 03:56 laouji joined, skids left 03:58 mr_ron left, atta left 04:00 laouji left 04:04 atta joined 04:11 atta left 04:18 _thou joined 04:20 AlexDaniel left 04:22 _thou left 04:23 atta joined 04:34 laouji joined 04:40 adu left 05:09 xfix joined 05:16 khw left 05:30 atta left 05:41 atta joined 05:45 salv0 left 06:00 domidumont joined, aborazmeh left 06:04 salva joined 06:06 _thou joined 06:10 _thou left
[Tux] test 50000 35.796 35.692 06:10
test-t 50000 36.602 36.499
06:12 diana_olhovik_ joined 06:23 darutoko joined 06:25 FROGGS joined 06:26 Ven joined, abraxxa joined 06:27 araujo_ joined 06:31 araujo left, abraxxa left
moritz \o 06:34
06:45 abraxxa joined
TimToady moritz: camelia not recompiling for some reason... 06:46
moritz TimToady: it's currently rebuilding... 06:49
currently in the process of compiling the setting w(JVM) 06:50
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:53
so, JVM build busted 06:54
06:55 telex left 06:56 telex joined 07:00 Woodi left 07:01 Woodi joined 07:02 rindolf joined 07:07 [TuxCM] joined
masak good morning, #perl6 07:10
moritz good masak, morning
or... something :-)
masak good "or somthing", moritz :) 07:16
FROGGS if we'd implement readcharsfh for jvm we could get rid of two fudge blocks btw
yoleaux 28 Sep 2015 21:41Z <lizmat> FROGGS: added tie-breaking logic to gist.github.com/lizmat/f3807956c35.../revisions
28 Sep 2015 21:41Z <lizmat> FROGGS: is that something you can agree to?
moritz FROGGS: if we'd implement readcharsfh for jvm, the build would likely unbust :-) 07:17
FROGGS moritz: that's the bonus :P
moritz pointersgonewild.com/2015/09/24/bas...esult-yet/ # a blog post about JIT! 07:18
FROGGS .tell lizmat what about different authors and same api? (I'm just curious)
yoleaux FROGGS: I'll pass your message to lizmat.
07:22 larion left
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:23 rindolf left
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:24
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.
(and the :api addition came about from me talking about portage's SLOTs mechanism, to offer another comparison :P) 07:27
FROGGS :o)
07:31 Ven left 07:33 electricface-ilb left, electricface-ilb joined 07:34 CIAvash joined
lizmat good *, #perl6! 07:35
yoleaux 07:18Z <FROGGS> lizmat: what about different authors and same api? (I'm just curious)
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
lizmat FROGGS: what ShimmerFairy said 07:35
and yes, it empowers distribution authors :-) 07:36
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:37
FROGGS ShimmerFairy: there should not be any same name/auth/ver 07:38
lizmat ShimmerFairy: the long name is still just name / auth / ver
FROGGS aye
ShimmerFairy ah, ok :)
lizmat api is just a tie breake
r
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
lizmat indeed :-)
indeed :-)
FROGGS indeed:-) # <-- tuxish
lizmat I haven't heard whether [Tux] is happy enough with infix:<.> to drop use of TuxIsh 07:40
ShimmerFairy in :-) deed
lizmat *Tuxic
[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
lizmat ah, that
07:41 RabidGravy joined
[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 left, electricface-ilb joined
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 :-)
[TuxCM] tux.nl/style.html 07:43
[TuxCM] does not expect ShimmerFairy to agree
and that site may be off-line for 5 minutes soon because of security updates 07:44
07:47 electricface-ilb left
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:47
07:48 electricface-ilb joined
[TuxCM] superiority is within the eye of the coder 07:48
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"
and I *am* that convinced I am right :P 07:50
07:50 xfix left
mrf Its rather interesting how people can have a similar reasoning but reach a different conclusion. 07:50
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
07:51 [Tux] left
[TuxCM] sounds about right. I understand how you perceive this 07:51
x = 2 x sin (y) 07:52
x = 2 * sin (y)
07:52 abraxxa left
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;
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
[TuxCM] which causes a default MySQL install to fail, as it rejects that space, which is permitted in ANSI
07:54 _thou joined
[TuxCM] ShimmerFairy, I already appreciate that you had a serious look at them instead of just rejecting 07:54
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
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
[TuxCM] site should be up again
07:58 leont joined
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 gist.github.com/lizmat/d38a48beded67ab971ff causes an infiniloop in the optimizer
yoleaux lizmat: I'll pass your message to timotimo.
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 _thou left
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.
[TuxCM] that style also has a name
lizmat tries to solve JVM breakage in a different way 07:59
07:59 [Tux] joined
FROGGS lizmat: note that on the jvm chars != bytes 08:01
lizmat: chars == 2*bytes
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) ?
FROGGS lizmat: it is about this line: gist.github.com/lizmat/d38a48beded...e1-txt-L12 08:04
08:04 [TuxCM] left
FROGGS lizmat: nqp::readfh reads N bytes, which is N half chars on jvm 08:04
lizmat ok, will fix 08:09
08:11 leont left 08:20 dakkar joined
dalek kudo/nom: d4c3e8a | lizmat++ | src/core/IO/Handle.pm:
Fix JVM breakage

nqp::readcharsfh is not implemented on JVM, duh!
08:21
lizmat moritz: ^^^
08:22 Ven left
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
lizmat: I hope it fixes the build :-)
lizmat pretty sure it does, testing now myself (takes a little while though) 08:24
08:25 [Sno] left 08:26 [Sno] joined, xfix joined, xfix left, xfix joined
lizmat hmmm.. fails in t/spec/S32-io/move.t seems to be caused by different exception throwing semantics 08:29
will be afk for a few hours soon, so I can't look at it now
08:31 bjz joined 08:33 Ven joined
lizmat moritz: confirmed JVM builds again 08:34
afk&
08:44 bjz left 08:46 pmurias joined
moritz m: say 'version?' 08:46
camelia rakudo-moar 9e8b7b: OUTPUT«version?␤»
moritz rakudo-jvm rebuild still running 08:47
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:49
08:50 araujo_ left, araujo joined 08:51 araujo left, araujo joined
moritz ShimmerFairy: guess why this part isn't implemented :-) 08:53
m: say 'version?'
camelia rakudo-moar d4c3e8: OUTPUT«version?␤»
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
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
At first glance, I'd rather something like perl6 --bug \( --trace-methods --output-file="debug_stuff" \) myfoo.p6 08:57
But just a first idea, though :)
[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.
ShimmerFairy masak: the fact that it compared itself to XML was probably a good sign it wasn't a nice syntax :P 09:00
09:02 laouji left, bjz joined 09:03 larion joined 09:05 laouji joined
Ven m: say &infix:<*>() 09:07
camelia rakudo-moar d4c3e8: OUTPUT«1␤»
masak m: say &infix:<^^>() 09:09
camelia rakudo-moar d4c3e8: OUTPUT«False␤»
masak m: say &infix:<min>() 09:10
camelia rakudo-moar d4c3e8: OUTPUT«Inf␤»
masak oh, that's another reason Inf should be allomorphic: because it's the "unit"/"zero" for infix:<min> 09:11
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:17
masak yes 09:21
which hints at it maybe needing to be "special" and somewhat outside the regular type system
ShimmerFairy masak: perhaps mimic Inf of Numeric { } ? :P 09:22
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.
masak m: say ("g"..Inf)[^5] 09:24
camelia rakudo-moar d4c3e8: OUTPUT«(g h i j k)␤»
masak ShimmerFairy: it's already in ranges.
09:25 pmurias left
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
09:25 espadrine joined
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
we kind of want to eat the cake and keep it, it seems.
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
.oO( Mu.asInf )
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:29
09:31 [Sno] left, ][Sno][ joined, pmurias joined
ShimmerFairy In that way of thinking, you could think of 'Inf' as a shortcut for Any:I or something, perhaps. 09:32
09:42 _thou joined 09:45 cognominal joined 09:46 _thou left 09:48 abraxxa joined 09:55 Ven left 09:56 helloworldlang1 left 09:57 zakharyas joined 10:00 salva left 10:02 electricface-ilb left 10:04 salva joined, rindolf joined, Hor|zon joined 10:09 baest left, baest joined 10:10 ponbiki left 10:11 ponbiki joined, ponbiki is now known as Guest37654
nine moritz: sounds like a good idea 10:17
dalek c: 03752d2 | (Steve Mynott)++ | bin/p6doc:
GLR fix more than one .push for p6doc -f push
10:24
10:24 RabidGravy left 10:31 xinming left
moritz nine: oh, but it's in a separate virtual machine; what's the best approach? shared file system? scp? 10:32
10:32 xinming joined
nine Or a proxy? 10:35
Where are those log files exactly?
10:36 andreoss joined
andreoss > loop { last } 10:37
sub last (|) { #`(Sub|43839928) ... }
why does repl behaves like I just defined a sub called last here?
*behave 10:38
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␤␤»
andreoss why i even can redefine keywords such as last? 10:41
10:43 rindolf left 10:49 andreoss left
lizmat andreoss: because it would only be active in that lexical scope anyway 10:50
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…»
grondilu guesses that was asking too much.
10:52 TimToady left
masak ShimmerFairy: no, I'm pretty sure Inf is not a type smiley :) 10:53
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();
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
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();␤»
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.
grondilu looks at rosettacode.org/wiki/Evaluate_binom...nts#Perl_6 and wonders if it would be acceptable to make &infix:</> narrow its result by default. 10:55
masak .oO( decay type: Inf decays to Int when you're trying to assign it to an Int-typed variable ) 10:56
grondilu: I don't think it would be acceptable. 10:57
m: my Rat $n = 4 / 2; say "alive"
camelia rakudo-moar d4c3e8: OUTPUT«alive␤»
masak grondilu: ^ would fail
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␤␤»
lizmat m: say (loop { last }) # curious
camelia rakudo-moar d4c3e8: OUTPUT«sub last (| is raw) { #`(Sub|55550992) ... }␤»
masak ewww
grondilu masak: ok, fair enough
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 colomon left
moritz my Num $ = 1e0 11:00
m: my Num $ = 1e0
camelia ( no output )
11:01 colomon joined 11:04 laouji left 11:07 crux joined
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:09 colomon left
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 11:18 laouji joined 11:21 Ven joined 11:24 ][Sno][ is now known as [Sno] 11:25 AlexDaniel joined
lizmat m: dd $*EXECUTABLE.resolve.parent.parent.abspath 11:30
camelia rakudo-moar d4c3e8: OUTPUT«"/rakudo-inst"␤»
11:30 _thou joined
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
lizmat: but the result is wrong
lizmat m: dd $*EXECUTABLE.resolve 11:32
camelia rakudo-moar d4c3e8: OUTPUT«q|/rakudo-inst/bin/perl6-m|.IO(:SPEC(IO::Spec::Unix))␤»
lizmat moritz: why ?
moritz lizmat: it's not installed in /rakudo-inst, it's installed in /home/camelia/rakudo-inst/
lizmat m: dd $*EXECUTABLE
camelia rakudo-moar d4c3e8: OUTPUT«q|./rakudo-inst/bin/perl6-m|.IO(:SPEC(IO::Spec::Unix))␤»
lizmat aha... bugs
moritz m: dd $*EXECUTABLE.absolute 11:33
camelia rakudo-moar d4c3e8: OUTPUT«Str $path = "./rakudo-inst/bin/perl6-m"␤»
moritz this is not an absolute path
FROGGS why do we implement bugs?
lizmat I don't know?
FROGGS shakes his fist heavily
:o)
lizmat because we don't test? 11:34
m: dd $*EXECUTABLE.resolve.abspath.IO.parent.parent.abspath
camelia rakudo-moar d4c3e8: OUTPUT«"/rakudo-inst"␤»
lizmat wow
m: dd $*EXECUTABLE.resolve
camelia rakudo-moar d4c3e8: OUTPUT«q|/rakudo-inst/bin/perl6-m|.IO(:SPEC(IO::Spec::Unix))␤»
lizmat resolve is broken?
m: dd $*EXECUTABLE 11:35
camelia rakudo-moar d4c3e8: OUTPUT«q|./rakudo-inst/bin/perl6-m|.IO(:SPEC(IO::Spec::Unix))␤»
_itz_ is anyone seeing an error "===SORRY!===
Cannot invoke this object (REPR: Uninstantiable)"
FROGGS lizmat: I wan not quite honest btw...
11:35 _thou left
_itz_ note this is not from the REPR 11:35
lizmat m: SupplyOperations.new
camelia rakudo-moar d4c3e8: OUTPUT«You cannot create an instance of this type␤ in block <unit> at /tmp/nwPMwZoaKd:1␤␤»
lizmat that's not it
11:41 kid51 joined 11:47 RabidGravy joined
jnthn _itz_: Try --ll-exception to try and get a better idea of where it's coming from 11:47
FROGGS hi jnthn 11:49
jnthn: you are teaching for a few days now, right?
jnthn o/ from a plane
lizmat m: dd "./zippoflap".IO.resolve
camelia rakudo-moar d4c3e8: OUTPUT«q|/home/camelia/zippoflap|.IO(:SPEC(IO::Spec::Unix))␤»
jnthn Yes, will be
lizmat m: dd $*EXECTUABLE.IO.resolve
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␤␤»
lizmat m: dd $*EXECUTABLE.IO.resolve
camelia rakudo-moar d4c3e8: OUTPUT«q|/rakudo-inst/bin/perl6-m|.IO(:SPEC(IO::Spec::Unix))␤»
_itz_ jnthn: ok 11:50
FROGGS jnthn: k, will paste you something afterwards then, the status about capturing to lexical variables in regexes...
jnthn yeah, probably easier for me to look once at hotel
Got another flight before that, though :S
_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 kid51 left
FROGGS jnthn: okay, then I'll .tell you later 11:51
_itz_ ...
lizmat _itz_: seems gather related
nqp::continuationreset(PROMPT, &!resumption); 11:52
_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
So if we're lucky the problem may be downstream of gather
11:53 jasanj` left
_itz_ there is no gather in the code 11:54
I'll try and golf and put details in a RT
lizmat _itz_++
m: dd $*VM.prefix 12:06
camelia rakudo-moar d4c3e8: OUTPUT«"/home/camelia/rakudo-inst-2"␤»
moritz fwiw rakudo-inst is a symlink to rakudo-inst-2 (or sometimes -1) 12:07
lizmat ok, so it is resolved already
m: dd $*VM.config<version> 12:09
camelia rakudo-moar d4c3e8: OUTPUT«"2015.09-39-g1434283"␤»
lizmat hmmm.. this is different from what git describe tells me ?
ah, that's the Moar version, right?
FROGGS $*VM, aye
lizmat yup 12:10
FROGGS m: say $*PERL.compiler
camelia rakudo-moar d4c3e8: OUTPUT«rakudo (2015.9.179.gd.4.c.3.e.8.a)␤»
lizmat is that the same sha that precomp is using ? 12:11
FROGGS precomp is using? what do you mean? 12:12
lizmat what is the value its checks for version mismatch ? 12:14
when you try to run a precomped file
it's *that* value I want to use for a directory name in install/.precomp 12:15
12:15 CQ joined
moritz nqp/src/vm/jvm/runtime/org/perl6/nqp/sixmodel/SerializationReader.java throws that exception, for example 12:17
maybe work backwards from there?
iirc it checksums a serialization context? 12:18
lizmat not sure 12:19
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
masak (after the actual error has been thrown) 12:21
lizmat maybe need to wait for jnthn to land :-)
moritz sounds like a fancy rakudo branch :-)
though of course the bigger the branch, the shorter the name 12:22
'nom', 'bs', 'glr'
12:35 Ven left
lizmat m: dd $*VM.config<osvers> 12:36
camelia rakudo-moar d4c3e8: OUTPUT«"3.7.10-1.16-default"␤»
12:50 timbunce_ joined 12:51 Psyche^_ joined, CIAvash left 12:52 AlexDaniel left 12:55 Psyche^ left
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␤␤»
carlin should that work?
12:58 rindolf joined
lizmat carlin: FROGGS or moritz might know 13:00
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␤␤»
FROGGS m: use NativeCall; sub foo(uint8 $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo($a[0]);
camelia rakudo-moar d4c3e8: OUTPUT«Cannot auto-decontainerize argument␤ in sub foo at /tmp/4xxrvkQ7qE:1␤ in block <unit> at /tmp/4xxrvkQ7qE:1␤␤»
FROGGS m: use NativeCall; sub foo(uint8 $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo($ = $a[0]); 13:04
camelia ( no output )
FROGGS m: use NativeCall; sub foo(int $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo($ = $a[0]);
camelia ( no output )
FROGGS carlin: well, there is a workaround at least
moritz use NativeCall; sub foo(int $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo(my int $ = $a[0]) 13:08
m: use NativeCall; sub foo(int $i) { }; my $a = CArray[uint8].new; $a[0] = 42; foo(my int $ = $a[0])
camelia ( no output )
moritz ^^ my favorite fix
_itz_ m: my $m = (1,2 X~ ('' X~ '')).first: *.IO.f;
camelia rakudo-moar d4c3e8: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Uninstantiable)␤»
moritz m: say uint8 ~~ int
camelia rakudo-moar d4c3e8: OUTPUT«False␤»
_itz_ 126218
timotimo i hope i'm not too late for this
yoleaux 07:58Z <lizmat> timotimo: gist.github.com/lizmat/d38a48beded67ab971ff causes an infiniloop in the optimizer
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)
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
and since building a new nqp and/or rakudo will give you a new compunit identifier, you'll get a version mismatch from that
and changing moarvm doesn't invalidate compunits
moritz timotimo: my mental model is that after a compunit is fully serialized, a hash is calculated
lizmat but where does the compunit identifier live ?
timotimo oh, ah.
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
moritz so, CORE.setting also has a serialization table hash
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
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
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
13:12 andreoss joined
moritz ah right, that's for symbol generation 13:13
andreoss m: sub die { die }; die;
camelia rakudo-moar d4c3e8: OUTPUT«Memory allocation failed; could not allocate 37888 bytes␤»
lizmat yeah, it really *is* a compilation ID
not a SHA like thing on state of things
moritz mostly so that stage-2 nqp doesn't get the serialization table from stage-1
timotimo andreoss: that's just an infinite recursion 13:14
moritz but an entertaining one :-) 13:15
andreoss m: (loop { last }).gist.say
camelia rakudo-moar d4c3e8: OUTPUT«sub last (| is raw) { #`(Sub|48276368) ... }␤»
timotimo ^- that one's the really weird one, yeah
lizmat m: sub foo { foo }; foo # same
andreoss timotimo: why i can redefine last, die, etc?
camelia rakudo-moar d4c3e8: OUTPUT«Memory allocation failed; could not allocate 37888 bytes␤»
moritz andreoss: they are just normal lexicals
timotimo andreoss: because they are just lexical ... yeah
moritz andreoss: it makes the language quite flexible
something that's very important to us, because we don't know how programming in 20+ years will look like 13:16
s/how/what/
timotimo perl6 is meant for the next 100 years, after all :)
andreoss why does .gist on loop returns sub ... ?
timotimo aaaargh %)
timo@schmand ~> perl6 -e 'loop { last }' 13:17
(StrDistance)
13:17 abraxxa left
lizmat timotimo: what about StrDIstance ? 13:18
timotimo oh!
that's just a dirty CORE.setting!
lizmat what is ? *confused*
13:18 _thou joined 13:19 takadonet joined
takadonet morning all 13:19
timotimo i put a line to print what StrDistance evaluates to into my core setting
moritz lizmat: just ignore timotimo for the past 3 minutes :-)
timotimo when i wanted to figure out why StrDistance.new broke
moritz good morning takadonet
takadonet moritz: long time no see
andreoss looks like loop { ... } returns a reference to last
m: sub foo { last }; (loop { foo }).WHAT.say 13:20
camelia rakudo-moar d4c3e8: OUTPUT«(Sub)␤»
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
andreoss is it correct?
xfix perl6: ({.comb/!/^google$/})('google')
camelia rakudo-{moar,jvm} d4c3e8: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/tmpfile:1␤␤»
lizmat m: say (while 1 { last }) # not limited to loop
timotimo m: say &last().WHAT
camelia rakudo-moar d4c3e8: OUTPUT«sub last (| is raw) { #`(Sub|68514992) ... }␤»
rakudo-moar d4c3e8: OUTPUT«last without loop construct␤ in block <unit> at /tmp/D6yVg2Oo1G:1␤␤»
timotimo m: say &last()
camelia rakudo-moar d4c3e8: OUTPUT«last without loop construct␤ in block <unit> at /tmp/sMtxDBFT4x:1␤␤»
timotimo lizmat: loop { } actually compiles directly into the same thing that while 1 { } compiles to 13:21
lizmat well, that explains :-)
moritz xfix: you're trying to divide .comb by a negated regex match?
lizmat m: say (for ^10 { last }) # not the same
camelia rakudo-moar d4c3e8: OUTPUT«()␤»
xfix Yes, for codegolf.stackexchange.com/questio...gle-google
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
xfix m: $_ = 'Hello, world!'; say so /Hello/
camelia rakudo-moar d4c3e8: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/9vOtk4Va2Z:1␤␤»
moritz m: $_ = 'Hello, world!'; say !/Hello/
camelia rakudo-moar d4c3e8: OUTPUT«Method 'match' not found for invocant of class 'Any'␤ in block <unit> at /tmp/Nd5OC2dwX2:1␤␤»
moritz same thing here
rakudobug 13:23
13:23 _thou left
xfix But otherwise correct? 13:23
13:23 pmurias_ joined, pmurias left, pmurias_ is now known as pmurias
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␤␤»
timotimo don't forget the task asks for a function explicitly
lizmat a is a function ? 13:25
xfix Obviously I do remember.
I put braces.
timotimo oh
lizmat they share a proto
timotimo it says "create a function", not "declare a function" %)
lizmat yup
timotimo golf'd the task description
13:26 laouji left
eiro hello peolpe 13:26
people, even ...
lizmat eiro o/
eiro how was the end ot the trip ? 13:27
lizmat nice: glad to be home :-)
eiro hehe ... get ready for p4/Strasbourg 13:28
;)
lizmat :-)
timotimo that's the patch hackathon?
eiro timotimo, yep
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 ?
xfix I like how /!/ looks in {.comb/!/^google$/}
andreoss m: my &x={ die if m:i/google/; .comb.elems };x "bing" ;x "google"
camelia rakudo-moar d4c3e8: OUTPUT«Died␤ in block <unit> at /tmp/o3oECxRXDh:1␤␤»
timotimo patch.pm/p4 doesn't exist :|
xfix Also, using .comb instead of .chars. I like this trick myself.
eiro timotimo, i'll go public with that as soon as i'm sure about the venue 13:30
timotimo ah OK
what date is it going to be?
[Coke] m: say 3.WHAT.^name
camelia rakudo-moar d4c3e8: OUTPUT«Int␤»
lizmat eiro: no, but .WHAT always returned a type object
eiro well... april or may...
lizmat m: 3.^name
camelia ( no output )
lizmat m: say 3.^name # shorter
camelia rakudo-moar d4c3e8: OUTPUT«Int␤»
[Coke] you need the ^ - otherwise you're calling name on an undefined Int, not the Int's meta-object.
eiro lizmat, so ^ isn't a shortcut anymore ?
lizmat eiro: read what [Coke] said :-) 13:31
13:31 skids joined
eiro oops meeting 13:31
cuya
moritz $obj.^meth is a shortcut to $obj.HOW.^method($obj)
timotimo cujo
xfix Well, $obj.^meth is a shortcut to $obj.HOW.meth
timotimo not only that 13:32
since methods on the metaobject usually take the object itself as their first parameter
xfix Oh, right
timotimo it ends up being a shortcut for $obj.HOW.meth($obj, any additional args)
andreoss m: my &g={ /google{die}/;+.comb }; say g "bing" 13:33
camelia rakudo-moar d4c3e8: OUTPUT«4␤»
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?
andreoss: oh, that's not bad!
lizmat no, you didn't, but did now :-)
xfix m: my &g={ /google{die}/;+.comb }; say g "google now"
camelia rakudo-moar d4c3e8: OUTPUT«Died␤ in block at /tmp/z19oD7WuQ9:1␤ in block <unit> at /tmp/z19oD7WuQ9:1␤␤»
xfix Should probably be /^google${die}/ 13:34
timotimo hmm, right
xfix Although that fails.
Because ${die} should be $die. Fair enough, who would write code like that anyway? 13:35
timotimo oh 13:38
hehehe
13:38 schobes left
lizmat wonders what creats perl6.moarvm 13:39
is it the BOOTSTRAP ?
moritz the file?
timotimo no, i don't think it's bootstrap
moritz it's generated from src/main.nqp 13:40
timotimo /home/timo/perl6/install/bin/nqp-m --target=mbc --output=perl6.moarvm \
--vmlibs=dynext/libperl6_ops_moar.so=Rakudo_ops_init gen/moar/m-main.nqp
13:41 Ven joined
nine m: my&g={/^google$ {.d}/;.chars}; say g "dgoogle" 13:41
camelia rakudo-moar d4c3e8: OUTPUT«7␤»
nine m: my&g={/^google$ {.d}/;.chars}; say g "google"
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
lizmat ah, main! 13:43
andreoss m: my &g={/^goo{die}gle$/;+.comb};say g "duckduckgo" 13:46
camelia rakudo-moar d4c3e8: OUTPUT«10␤»
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:55 Guest37654 is now known as ponbiki
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␤␤»
timotimo you want &[eq]
alternatively, &infix:<eq>
andreoss m: &[eq].WHAT.say
camelia rakudo-moar d4c3e8: OUTPUT«(Sub+{<anon>}+{Precedence})␤»
timotimo m: &[eq].say 13:58
camelia rakudo-moar d4c3e8: OUTPUT«sub infix:<eq> (Mu $?, Mu $?) { #`(Sub+{<anon>}+{Precedence}|49681360) ... }␤»
13:59 khw joined
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␤␤»
pmurias patch hackathon? 14:03
timotimo a hackathon called "patch"
lizmat m: END say "foo"; exit 14:06
camelia rakudo-moar d4c3e8: OUTPUT«foo␤»
lizmat timotimo: ^^^ END blocks are run with an exit(), so why would that mess up the profiler ??
pmurias timotimo: when does it happen? any Perl (6) stuff planned for that? 14:07
lizmat pmurias: you should ask eiro
(when he's back from his meeting :-)
timotimo lizmat: the profiler relies on a "we stop profiling now" instruction to be called
lizmat so perhaps that instruction should be pushed to an END block ?
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
lizmat or hard code it somehow in src/main.nqp ?
ah, I now realize 14:09
there's two places where END blocks get run 14:10
one inside exit()
and one in main.nqp (for normal end of code)
dalek kudo/nom: 6c64584 | lizmat++ | src/Perl6/World.nqp:
Add some more RAKUDO_MODULE_DEBUGging
14:14
14:17 tokuhiro_ left 14:21 Ven left 14:24 _thou joined, Ven joined 14:35 [Sno] left 14:37 [Sno] joined
eiro back and reverse backlog 14:40
moritz forelog 14:42
dalek rl6-roast-data: e9edb45 | coke++ | / (9 files):
today (automated commit)
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
i was at lyon for patch -p3 and it was awesome
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
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
moritz DrForr: I'm sure we'll organize a hackathon for GPW (Mar 2016), act.yapc.eu/gpw2016/ 14:46
lizmat 4.5 hour drive vs 7.5 hour drive :-)
eiro DrForr, i don't want those hackathon to interfer so it would be nice to have a calendar of european perl events
it becomes very busy 14:47
moritz, ok ... so now i have to talk with french perl mongers: too many events at the begin of the year
DrForr There's also FOSDEM at the end of January. 14:48
eiro maybe we should have our 2nd semester
yep ... but fosdem isn't about hack
... well it could be :)
i mean: no coding session there. just enjoying conferences and huging beloved peolpe 14:49
people
damn ... what's wrong with people ?
14:49 sufrostico left
lizmat
.oO( Hanging out with the wrong peolpe :-)
14:50
eiro .HOW.meth('ur mother') for @ever
:)
thanks for explainations about ^ 14:51
andreoss m: .HOW.^can("meth").say 14:52
camelia rakudo-moar d4c3e8: OUTPUT«0␤»
dalek p: 591cadf | (Pawel Murias)++ | src/vm/js/nqp-runtime/bootstrap.js:
[js] add add_attribute method to KnowHowHOW
14:53
p: 3bf0df3 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
[js] export classes so that varint serialization/deserialization can be unit tested.
p: c7b64d1 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
[js] progress on deserializing P6opaque objects
p: cbffa9a | (Pawel Murias)++ | src/vm/js/nqp-runtime/package.json:
[js] use fs-ext from a branch on github as the released version doesn't build on the current node.js
pmurias depending on a node.js module from a github branch feels really hacky
14:56 zakharyas left
hoelzro good morning #perl6! 15:02
tadzik morning hoelzro! 15:03
world is funny, I just ate my breakfast and now US is waking up :D
hoelzro morning tadzik!
the two events must be related =)
tadzik clearly :)
15:07 rindolf left
pmurias hoelzro: hi 15:08
hoelzro o/ pmurias
pmurias tadzik: travelling? 15:09
tadzik pmurias: no, staying up late :P
15:10 diana_olhovik_ left
dalek p: eaa6e11 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
[js] use child_process instead of fallback-exec-sync (which is sometimes broken)

This requires node 0.12
15:12
15:17 mr-foobar joined 15:18 domidumont left, tokuhiro_ joined 15:21 sufrostico joined 15:22 tokuhiro_ left 15:23 TEttinger joined
TimToady m: say (1..^10) * 10 15:25
camelia rakudo-moar 6c6458: OUTPUT«10..^100␤»
lizmat whheee! :-)
15:27 FROGGS left
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:29
m: say (1..^10), * * 10 ... * 15:33
camelia rakudo-moar 6c6458: OUTPUT«(...)␤»
TimToady m: say ((1..^10), * * 10 ... *) 15:34
camelia rakudo-moar 6c6458: OUTPUT«(...)␤»
TimToady m: say ((1..^10), * * 10 ... *)[^10]
camelia rakudo-moar 6c6458: OUTPUT«(1 2 3 4 5 6 7 8 9 90)␤»
TimToady m: say ($(1..^10), * * 10 ... *)[^10]
camelia rakudo-moar 6c6458: OUTPUT«(1..^10 10 11 12 13 14 15 16 17 18)␤»
TimToady yeah, I think we need to GLRify ...
m: 42 => 43 15:37
camelia rakudo-moar 6c6458: OUTPUT«WARNINGS:␤Useless use of "=>" in expression "42 => 43" in sink context (line 1)␤»
TimToady got that working, but failed on a => 42 15:38
TEttinger ...what does ", * * 10" do?
TimToady m: say (* * 10)(42)
camelia rakudo-moar 6c6458: OUTPUT«420␤»
15:38 sufrostico left
TimToady m: say { $_ * 10 }(42) 15:39
camelia rakudo-moar 6c6458: OUTPUT«420␤»
TEttinger is it a partial function argument placeholder?
pink_mist so the first * is a whatever, and the second is multiplication? =)
TimToady yes
TEttinger is it for multiple args?
TimToady get a little confusing with multiplication or exponentiation
yes 15:40
TEttinger in regex terms, I would thing * would be 0 or more
TimToady but only in operators
TEttinger *think
TimToady not that way
TEttinger that's just my association with the char
TimToady ** is supposed to do multiple
TEttinger kleene star
kleene star 15:41
is _ an identifier?
TimToady yes
m: constant _ = *; say (_ * 10)(42) # curious 15:42
camelia rakudo-moar 6c6458: OUTPUT«420␤»
TimToady \o/
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 15:48 AlexDaniel joined, rindolf joined 15:49 rindolf left
AlexDaniel m: dd dd 15:49
camelia rakudo-moar 6c6458: OUTPUT«block <unit>␤Nil␤»
lizmat m: dd dd dd # just curious 15:50
camelia rakudo-moar 6c6458: OUTPUT«block <unit>␤Nil␤Nil␤»
lizmat m: dd dd dd "last" # just curious
camelia rakudo-moar 6c6458: OUTPUT«"last"␤Nil␤Nil␤»
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␤»
AlexDaniel hm
I'm getting this error
“Preceding context expects a term, but found infix . instead”
bah, I don't think that you can see it 15:52
but it seems like the whitespace is part of the infix
TEttinger m: dd . dd
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␤»
TEttinger m: dd .dd
camelia rakudo-moar 6c6458: OUTPUT«Method 'dd' not found for invocant of class 'Any'␤ in block <unit> at /tmp/ddWsYYHdzz:1␤␤»
TEttinger odd 15:53
TimToady dd wants an argument, so you can't use an infix there
m: dd + dd # same thing
camelia rakudo-moar 6c6458: OUTPUT«block <unit>␤Use of Nil in numeric context in block <unit> at /tmp/2N_Vtjg4gT:1␤0␤»
AlexDaniel sure, but why can I see whitespace in the error message? 15:54
m: dd . ␤ ␤ ␤ ␤ ␤ dd
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 ␤»
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?
DrForr m: class Y{method foo(){say "hi"}} my $x=Y.new;my $f="foo";$x.$f();
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:␤ …»
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();
camelia rakudo-moar 6c6458: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/8WMrkm24HS:1␤␤»
15:58 CQ left
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␤»
TimToady DrForr: you can't do symbolic refs with .$f()
15:59 Hor|zon_ joined
TimToady though the message could be improved 15:59
DrForr Yeah, was just checking an example from another channel.
TimToady 'kay
15:59 larion left
pmurias hoelzro: what node.js version does travis use for running nqp-js? 16:00
16:00 Hor|zon left
hoelzro pmurias: 0.12, iirc 16:00
AlexDaniel Wow, #126218! What a nice finding 16:01
I mean, it is just an interesting error to stumble upon… 16:03
lizmat _itz_++ :-)
16:03 Hor|zon_ left
dalek kudo/nom: 6cfeda6 | lizmat++ | src/ (5 files):
$?RAKUDO_MODULE_DEBUG -> $*RAKUDO_MODULE_DEBUG

There is little point in having a constant frozen in the settings, when you want to be able to change that between runs.
16:03
16:04 Hor|zon joined
[Coke] RT: 1,032; xmas: 98; WEIRD: 12; LTA: 83; GLR: 4; testneeded: 9 16:04
also: NOM regression: 8 16:05
we should really close out those nom regressions, yikes. 16:06
AlexDaniel [Coke]: by the way, what is "WEIRD"?
[Coke] NYI: 86'
AlexDaniel: any ticket with weird in the title.
AlexDaniel Is there any special criteria for weird reports? :$
[Coke]: which means? The title is wrong or the bug itself is just funny? 16:07
[Coke] the bug is weird.
it's not an exact science. Just trying to keep RT info flowing. :) 16:08
16:19 tokuhiro_ joined
andreoss m: sub infix:«\$»(Callable $x, Callable $y) { $x($y()) }; { [+] @_ } $ {({ .grep(*.is-prime) } $ { 1..10 })} 16:20
camelia ( no output )
andreoss how can i avoid extra parenthesis here?
if i want this infix function applied from right to left 16:23
16:24 tokuhiro_ left
TimToady m: sub infix:«\$»(&x, &y) { x y }; { [+] @_ } $ {({ .grep(*.is-prime) } $ { 1..10 })} 16:25
camelia ( no output )
TimToady is that what you're asing?
*k
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, aborazmeh left, aborazmeh joined
andreoss can it be parsed like that? 16:29
TimToady it's parsing fine; that's a run-time error 16:31
andreoss i mean can it evaluate the last block first some how? 16:32
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␤»
TimToady associativity 16:35
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␤␤»
TimToady now it's just a type problem, cause you can't both compose and eval with the same syntax 16:38
16:38 aborazmeh left
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 ( no output )
TimToady m: sub infix:«\$»(&x, &y) is assoc('right') { -> |args { x y |args } }; my &comp = { [+] @_ } $ { .grep(*.is-prime) } $ { 1..10 }; say comp
camelia rakudo-moar 6cfeda: OUTPUT«17␤»
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:44 Ven left
TimToady I guess it doesn't matter which direction you compose the functions 16:45
16:46 diana_olhovik joined
AlexDaniel [Coke]: you migh also want to search for segfaults 16:47
t
16:48 andreoss left
TimToady y'know, it'd make a lot of people happier to just have a function composition operator built in 16:50
16:51 _thou left 16:52 Ven joined 17:03 dakkar left 17:04 Ven left 17:10 sufrostico joined 17:15 rindolf joined 17:16 MadcapJake joined 17:17 diana_olhovik__ joined 17:18 diana_olhovik left 17:29 MadcapJake left 17:30 FROGGS joined 17:32 domidumont joined
colomon whispers function composition operator, ooooo 17:33
17:36 diana_olhovik__ left 17:37 diana_olhovik_ joined 17:43 espadrine left
dalek kudo/nom: 25f8469 | TimToady++ | src/ (2 files):
add function composition operator
17:44
TimToady feel free to write tests
[Coke] .u ∘
yoleaux U+2218 RING OPERATOR [Sm] (∘)
[Coke] .u o 17:45
yoleaux U+006F LATIN SMALL LETTER O [Ll] (o)
17:45 diana_olhovik_ left
TimToady or to bikeshed :) 17:45
colomon TimToady++
[Coke] or docs. 17:46
17:50 Peter_R joined 17:53 vendethiel joined
moritz my &composed = *.join('|') o &infix:<xx> 17:56
Too many positionals passed; expected 1 argument but got 2 17:57
what did I do wrong?
TimToady it doesn't really handle anything except one argument functions yet
17:58 diana_olhovik joined
moritz f | g |args ? 17:58
TimToady tried that, didn't work on the 0-ary case anyway
moritz :( 17:59
colomon m: say (sin o cos)(.5)
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…»
TimToady needs & there
colomon m: say (&sin o &cos)(.5)
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…»
TimToady not compiled yet
colomon doesn’t actually have the patch yet
18:00 telex left
dalek ast: c8dec0b | moritz++ | S03-operators/composition.t:
Initial tests for function composition
18:00
moritz have to run now; somebody please add it to t/spectest.data?
colomon moritz++ 18:01
18:02 telex joined
dalek kudo/nom: 3fb8178 | colomon++ | t/spectest.data:
Test new composition operator

  TimToady++ moritz++
18:02
18:03 diana_olhovik__ joined 18:04 diana_olhovik left
vendethiel TimToady++ moritz++ :D 18:05
masak geez, I decommute, and you people add a function composition op... :P 18:06
timotimo next up is the function commutation op
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…»
timotimo still not yet compiled, i guess
colomon > sub f1($x) { $x ~ " one" }; sub f2($x) { $x ~ " two " }; say (&f2 o &f1)("OH HAI")
OH HAI one two
masak \o/ 18:08
mainly wanted to test if you'd gotten the order wrong and I could rakudobug it :P
18:09 diana_olhovik__ left
vendethiel \o/ 18:11
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))␤»
masak :( 18:16
timotimo ugh
what even is this
masak &is-prime takes a second optional positional 18:17
TimToady maybe should be named
masak so you need to write it as *.&is-prime or { is-prime($_) }
timotimo oh
masak TimToady: yes, I think so
timotimo that's the probability with which you want the prime to be perfect?
masak timotimo: no, it's the number of tries
I completely agree with TimToady++, it should be named
timotimo ah
18:18 Ven joined
colomon +1 to named 18:18
timotimo aye
18:21 tokuhiro_ joined, diana_olhovik_ joined, spider-mario joined
moritz think it warrants its own sub/method 18:24
masak we don't seem to be testing the second parameter at all.
moritz: I was just about to change it to a named when you said that ;)
moritz: why do you think it warrants its own sub/method?
moritz masak: because checking for a prime and checking for a mersenne prime aren't the same operation 18:25
masak: if there's a named argument to is-prime, I'd expect it to modify its heuristic, or such details
18:25 tokuhiro_ left
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
and what do mersennes have to do with it? 18:27
moritz isn't perfect prime = mersenne prime?
oh, probably not
TimToady what do perfect primes have to do with it, then?
18:27 diana_olhovik_ left
moritz wasn't the the question? 18:28
20:17 < timotimo> that's the probability with which you want the prime to be perfect?
or is this about perfect *testing* of the prime?
TimToady it's just # of tries to falsify
moritz probably misunderstood the whole discussion, sorry
18:28 Hor|zon left
TimToady and it's a pretty meaningless argument anyway, given libtommath is just gonna do it's own trial divisions first, iirc 18:30
18:31 yqt joined
[Coke] nuke the option, then? 18:32
masak yes, please
I didn't realize it was meaningless
TimToady it does *some* trial divisions, so it's still probabalistic, so not entirely meaningless 18:33
I think it only goes up to the first 200 or so primes 18:34
again, iirc
timotimo "more likely to be hit by a meteor than to get a false positive" is quite a good default
Ven this reminds me of the .map(parseInt) in JS :) 18:35
masak indeed
timotimo oh, JS has map?
fantastic!
i shall improve so much code now! ;)
masak haha *sob*
timotimo: wait until you hear about .map(parseInt) :)
timotimo how spectacular does that break?
masak worse than you think 18:36
TimToady is glad there are circles of hell he has not yet visited
timotimo please enlighten me, masak :)
masak timotimo: JS also has .every .some .forEach .filter
timotimo: stackoverflow.com/questions/262427/...d-parseint
Ven parseInt takes *more* than an argument (the base). so, since .map also passes the index, well... 18:37
timotimo ooooh
so that's how
it passes the value, then the index?
jdv79 hacking metacpan isn't the most fun thing to do
Ven yeah. then the array, but that 3rd arg is ignored
timotimo how is argument passing to functions handled with arity in jS? 18:38
Ven just pass it. no arity.
use `arguments` if needed. there's no such thing as an arity error. not enough params passed => fill them with "undefined" 18:39
18:39 _itz_ left
timotimo ah, ok 18:39
18:39 _itz joined
masak which is a great feature for a language that people mostly write one-liners in anyway. 18:39
not huge web apps or anything.
timotimo yeah, why would you use javascript for anything except for one-liners on the shell?
javascript is the perl-killer, isn't it? 18:40
18:40 Fleurety left
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.
timotimo fair enough :)
Ven just because you need to include 1212312 modules to do ANYTHING. even simple stuff like glob...
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..
TimToady good thing we have glob built in...oh wait...
masak JS is only "the perl-killer" in the sense that it (and cockroaches) will survive *every* language... 18:41
lizmat FROGGS: if I'm not mistaken, CURLI is not used at all at the moment by panda, right ? 18:42
timotimo i've heard people say that, but it confused me 18:43
18:43 Fleurety joined
FROGGS lizmat: correct 18:44
lizmat: only by zef
lizmat so if I take out all inst# out of @*INC, I shouldn't break anything
TimToady m: say (&log o &abs)(-e * e)
camelia rakudo-moar 3fb817: OUTPUT«2␤»
lizmat ah
hmmm...
18:44 diana_olhovik_ joined
FROGGS lizmat: what are you up to? 18:45
lizmat FROGGS: how do you feel about me ripping out all inst# entries from @*INC ?
temporarily
FROGGS but why? 18:46
lizmat to make things faster in the interim?
FROGGS O.o
and this would make things faster?
lizmat fewer CUR's to check ?
timotimo but we have Zef, which would break in that case 18:47
lizmat indeed
FROGGS I don't think that this is a sane approach
ripping things out that are meant to work
timotimo i wonder how big of a performance penalty we get as soon as parallelism kicks in
FROGGS just to gain a few millis
lizmat ok, I'll leave them in
timotimo if it's negligible, we could be checking CURs in parallel perhaps?
lizmat it was just a thought 18:48
jdv79 panda can support cpan, right?
wonder how that would work
lizmat FROGGS: starting to implement what I described in gist.github.com/lizmat/f3807956c354c14902a3
dalek ast: 43146d9 | usev6++ | S04- (14 files):
Replace more eval-dies-ok with throws-like (S04)
18:49
FROGGS lizmat: what are you starting with? :api or the USE/REQUIRE subs?
lizmat first thing is I want CompUnit.load to actually work 18:50
FROGGS I wonder if these subs works out...
lizmat: it does already
since the SPW
timotimo how terrible is the performance impact of having many things installed nowadays?
FROGGS timotimo: I did not check
lizmat $ 6 'BEGIN CompUnit.new("lib/Test.pm").load; ok 1'
===SORRY!=== Error while compiling -e
Undeclared routine:
ok used at line 1. Did you mean 'on'?
FROGGS: it loads, but doesn't export
FROGGS wait 18:51
lizmat and a "import Test" doesn't work either
timotimo FROGGS: but we're already & still using the serialization based database back-end, right?
lizmat timotimo: only if you're using CURLI
dalek kudo/nom: 59cb611 | (Carl Masak)++ | src/core/Int.pm:
[src/core/Int.pm] remove $tries param from is-prime
18:51 diana_olhovik__ joined
jdv79 i guess i'll look into it then 18:52
18:52 diana_olhovik_ left
jnthn Ooh, the on sub... 18:52
PerlJam masak: but what if we needed to try 101 times?
FROGGS m: BEGIN CompUnit.new("lib/Test.pm").load(GLOBALish); pass "test?"
camelia rakudo-moar 3fb817: OUTPUT«5===SORRY!5=== Error while compiling /tmp/asPfnLfbTp␤Undeclared routine:␤ pass used at line 1␤␤»
jnthn That was an early draft of what became the supply/react/whenever
FROGGS m: BEGIN CompUnit.new("lib/Test.pm").load(GLOBALish); say Test
camelia rakudo-moar 3fb817: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7UjCxLnY5T␤Undeclared name:␤ Test used at line 1␤␤»
FROGGS lizmat: this was working earlier this month 18:53
lizmat ok, then I'll look at what broke
FROGGS lizmat: irclog.perlgeek.de/perl6/2015-09-01#i_11152230
lizmat cool! ok, will look at it deeper 18:54
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
as far as I can determine from the RAKUDO_MODULE_DEBUG output
FROGGS which does the codegen for CompUnitRepo.load_module 18:56
lizmat hmmm....
18:56 diana_olhovik_ joined, diana_olhovik__ left
japhb Anyone likely to be near Stockholm first weekend in December? 18:57
jnthn japhb: I may be in Umeaa
FROGGS japhb: does Berlin count as "near"?
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.
)
lizmat FROGGS: afaics, it's World.load_module -> CUR.load_module -> CompUnit.load 18:59
then back at World, it does the imports
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...
japhb Well, given I likely won't have a vehicle of my own, I suppose that depends on travel difficulties from there.
FROGGS lizmat: aye
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.)
jnthn japhb: Though didn't get this thing quite confirmed yet
japhb jnthn: Oh cool!
Yeah, I haven't ticketed, I'm still in planning stages. It's ~slushy-frozen ATM.
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
japhb Ah, cool. Thanks, moritz. :-)
moritz japhb: in fact, everything in Star works fine to the best of my knowledge (and their unit tests) 19:03
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
japhb nodnod 19:05
19:05 TEttinger left
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
what was the trick for native-calling into the stdlib? 19:07
is native(Str) ?
19:08 rindolf left
colomon yup 19:08
AlexDaniel m: .........
camelia ( no output )
FROGGS $ perl6 -e 'BEGIN CompUnit.new("lib/Test.pm").load(GLOBALish); say Test'
(Test)
lizmat: ^^
colomon (at least, that’s how Math::Odd-Functions is doing it)
jnthn I thought just "is native" would do it?
FROGGS m: say $*EXECUTABLE
camelia rakudo-moar 3fb817: OUTPUT«"./rakudo-inst/bin/perl6-m".IO␤»
vendethiel m: say .........
camelia ( no output )
vendethiel m: say (.........).perl 19:09
camelia ( no output )
vendethiel m: say (... ... ...).perl
camelia ( no output )
vendethiel uh.
AlexDaniel :))
m: .....................
camelia ( no output )
lizmat FROGGS: yes, that works, but it doesn't export things like "ok"
FROGGS lizmat: yes, because we did not import 19:10
AlexDaniel m: ....++
camelia ( no output )
lizmat $ 6 'BEGIN CompUnit.new("lib/Test.pm").load(GLOBALish); import Test; ok 1'
ok 1 -
:-)
FROGGS lizmat: yeah... and it does not work here because Test.pm is elsewhere 19:12
19:14 rindolf joined
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␤␤»
dalek ast: 93b33fd | usev6++ | S03- (6 files):
Replace more eval-dies-ok with throws-like (S03)
AlexDaniel what is "$a"?
FROGGS AlexDaniel: most likely the param of the signature of the ++ postfix op 19:16
m: say &[++]
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+]␤»
FROGGS m: say err
camelia rakudo-moar 3fb817: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9SCd3yhHsk␤Undeclared routine:␤ err used at line 1␤␤»
FROGGS gah!
m: say &postfix:<++>
camelia rakudo-moar 3fb817: OUTPUT«sub postfix:<++> (| is raw) { #`(Sub+{Precedence}|50849008) ... }␤»
19:16 diana_olhovik_ left
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…»
FROGGS AlexDaniel: see?
AlexDaniel yeah!
dalek kudo/nom: ab7d963 | lizmat++ | src/ (3 files):
More info, less boilerplate
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:18
19:18 domidumont left
FROGGS AlexDaniel: it is LTA in so far it mentions $a, when there is no $a in user code 19:19
AlexDaniel kk
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
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 xfix left
FROGGS AlexDaniel: imagine you have a $a near that bit of code and waste hours :o) 19:19
jnthn What is a bit bothersome is that we don't report that we're *in* CORE.setting 19:20
So the backtrace makes it look like it could be in your own code
AlexDaniel FROGGS: yeah, that'd be unfortunate
FROGGS jnthn: don't we hide that information on purpose?
jnthn FROGGS: Yeah, 'cus in other times it's annoying to do otherwise :P
Can't win! :)
FROGGS hehe
so it is a loose-loose situation? 19:21
moritz FROGGS: perlpunks.de/paste/show/560ae4a4.20ae.392 any idea what I'm doing wrong here?
AlexDaniel FROGGS: we can always pretend that the problem is not there!
just like in any other language!
FROGGS moritz: try 'is native' without the Str 19:22
AlexDaniel: that's what I see in Perl 5 for example...
moritz FROGGS: No appropriate parametric role variant available for 'Native'
19:23 diana_olhovik joined
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)
AlexDaniel oh no, it's “run-time error”
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␤»
FROGGS m: use NativeCall; sub getpwuid(int $uid) returns Pointer is native("") {}; say getpwuid(1000)
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␤␤»
FROGGS m: use NativeCall; sub getpwuid(int $uid) returns Pointer is native(Str) {}; say getpwuid(1000)
camelia rakudo-moar 3fb817: OUTPUT«Pointer<0x7f3ae33c1e40>␤»
FROGGS huh
ohh 19:24
moritz: don't use str attributes, use Str
moritz m: say $*HOME
camelia rakudo-moar 59cb61: OUTPUT«"/home/camelia".IO␤»
19:27 diana_olhovik left
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:27
moritz FROGGS++ # works with Str 19:28
TimToady first, it's been a WAT over and over
vendethiel likes it -- because he has no prior perl experience 19:29
TimToady second, $[] is not actually adequate
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
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?
moritz jdv79: what do you need for that? 19:31
TimToady and third, push @array, [foo] isn't really a single arg function anyway
jdv79 a few gigs of disk and mem i guess 19:32
github.com/CPAN-API/metacpan-devel...quirements too i guess 19:33
PerlJam TimToady++ that third thing has been bothering me a little since you introduced +args
19:34 zoosha left
jdv79 and i had to set some hypervisoryish bios bit on my box here 19:34
lizmat jnthn: is there a reason why things like prefix:<++> don't use \a rather than $a is rw ? 19:35
TimToady and fifth, I want to be able to implement ... in terms of .push(value), not .push((value,)) 19:36
FROGGS m: sub foo(\a) { a++ }; my $a = 42; say foo $a 19:37
camelia rakudo-moar 59cb61: OUTPUT«42␤»
FROGGS m: sub foo(\a) { a++ }; my $a = 42; say foo $a; say $a
camelia rakudo-moar 59cb61: OUTPUT«42␤43␤»
lizmat and what happens to .push, should also be done for .unshift, I assume, TimToady ?
jdv79 moritz: no rush. but if its possible it'd be nice.
TimToady lizmat: yes
lizmat fwiw, feels good to me
AlexDaniel m: ~ ␤ ␤ 'test' 19:39
m
camelia rakudo-moar 59cb61: OUTPUT«WARNINGS:␤Useless use of "~ \n \n " in expression "~ \n \n 'test'" in sink context (line 1)␤»
AlexDaniel ␤ is escaped, wow! 19:40
that being said, I don't think that the first part of the message should include whitespace…
FROGGS TimToady: please don't judge my unresponsiveness as ignorance... I just have trouble understanding the consequences... 19:41
AlexDaniel m: $*PERL = 25 19:45
camelia rakudo-moar 59cb61: OUTPUT«Cannot modify an immutable Perl␤ in block <unit> at /tmp/kBRzngGN2O:1␤␤»
AlexDaniel immutable Perl :)
lizmat
.oO( at least it's stable :-)
19:46
19:46 Ven left
moritz jdv79: I've installed vagrant 19:47
jdv79: installing virtualbox fails with "E: Package 'virtualbox' has no installation candidate" 19:48
jdv79: if you tell me which packages to install, I'll gladly do that for you
19:48 Ven joined
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␤␤»
TimToady FROGGS: eh? were you being unresponsive? 19:51
dalek c: e727bfd | moritz++ | lib/Language/nativecall.pod:
nativecall: mention "is native(Str)" trick

  ... complete with an example for getpwuid and getuid
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)
AlexDaniel I don't really understand this error message. It sounds like there is no postfix ++ for Int, but eh? 19:53
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")␤»
lizmat AlexDaniel: the message is correct, there is no *METHOD* postfix:<++>
FROGGS AlexDaniel: it is just a sub
lizmat m: my $a = 42; $a .= Foobar
camelia rakudo-moar ab7d96: OUTPUT«Method 'Foobar' not found for invocant of class 'Int'␤ in block <unit> at /tmp/G4GbQNpgJY:1␤␤»
AlexDaniel indeed! 19:55
thanks :)
19:55 darutoko left
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 :-)
AlexDaniel moritz: well, I report really bad ones, so why not :) 19:57
.oO( although some of my reports are probably a bit annoying )
20:00
dalek ast: a7b77c2 | usev6++ | S (34 files):
Test for X::AdHoc (with throws-like) instead of using eval-dies-ok

Even when there is no typed exception (yet), it's better to use throws-like instead of eval-dies-ok. With eval-dies-ok there is a greater chance that the code dies for the wrong reason. Testing for X::AdHoc makes it easier to adjust tests after upgrading to typed exceptions.
Optionally, all X::AdHoc could be changed to 'Exception' shortly before releasing 6.Christmas (to become more stable wrt throws-like).
See irclog.perlgeek.de/perl6/2015-09-22#i_11258578
20:02
20:03 rindolf left
bartolin I hope that commit ^^ (and my other recent changes to roast) make sense. 20:04
there are about 50 tests with 'eval-dies-ok' left. most of them need some review, me thinks 20:05
lizmat bartolin++ 20:06
FROGGS now we just need to type the exceptions :o)
but yeah, I like it 20:07
bartolin great *g*
AlexDaniel A Christmas tree! gist.github.com/AlexDaniel/69ff636ffe4053792120 20:12
vendethiel AlexDaniel++ # it's art! 20:13
jdv79 moritz: ok. i foget exactly how i installed it on my fedora box.
*forget
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 github.com/FROGGS/p6-Ser 20:14
yoleaux FROGGS: I'll pass your message to jnthn.
20:19 Ven left
pmurias masak: anytime people hate on javascript it's interesting to imagine an universe where vbscript won the war 20:20
20:20 Ven joined
moritz pmurias: that's a great line to quote! 20:21
Option Explicit
Dim x 20:22
Set x = ...
pink_mist I seem to recall that Internet Explorer 3.something supported Javascript and Perl as scripting languages at one time
I am probably mistaken though
20:22 tokuhiro_ joined
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
FROGGS I just know that Perl 5 was either on the Windows 95 or Windows NT CD already
geekosaur was supposed to allow any scripting language as a web language, perl being a supplied example
FROGGS moritz: aye
pink_mist geekosaur: neat 20:23
moritz pink_mist: there was the "windows scripting host", and you could load all kinds of languages
FROGGS moritz: there is also some fun about required vs forbidden parenthesis for function calls
moritz pink_mist: and if you loaded the Perl backend for the Scripting Host, your IE (up to 5 or so) would understand Perl
AlexDaniel m: reduce ass
camelia rakudo-moar ab7d96: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Pp9w51fxT2␤Undeclared routine:␤ ass used at line 1. Did you mean 'abs'?␤␤»
FROGGS hehe 20:24
moritz or Lua, or TCL, or whatever you loaded
20:24 z8 joined
geekosaur (aaaand I just flashed back to IE5 for Solaris) 20:24
20:24 _dolmen_ joined
moritz geekosaur: it still surprises me that such a thing ever existed 20:25
just like MS Word for the Mac
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?: gist.github.com/FROGGS/55945f79a9fefb004a61
yoleaux FROGGS: I'll pass your message to jnthn.
20:27 tokuhiro_ left, iv joined 20:28 Alina-malina left
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 cosimo left
FROGGS err, s/Apple Inc/MicroSoft/ 20:28
20:28 espadrine joined 20:29 arnsholt joined, cosimo joined 20:30 Alina-malina joined
masak s/situation/position/ :) 20:30
20:30 Ven left 20:31 Ven joined
FROGGS s/o.o/zzz/ 20:31
gnight #perl6
20:31 FROGGS left
moritz 'night FRO<tab> 20:32
dalek ast: 62e8214 | usev6++ | S04-statements/for.t:
Fix test which passed for a wrong reason

The declaration for @a was accidentially removed with commit 6228b9fa -- restored now
20:34
lizmat FROGGS: gnight 20:35
dalek kudo/nom: ab6238e | lizmat++ | src/core/Process.pm:
Introduce $?COMPILATION-ID

This is a SHA for the current compilation rakudo. jnthn++ for guidance.
20:40
ilmari m: $*W.handle
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␤␤»
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␤␤»
lizmat m: say BEGIN $*W.handle
camelia rakudo-moar ab7d96: OUTPUT«4C870AD506898C21851842D48D112FA1BBA5EFB0␤»
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␤␤»
lizmat it's an NQP object available at compile time :-) 20:44
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 github.com/FROGGS/p6-Ser
20:26Z <FROGGS> jnthn: and that is about capturing to a lexical var (we talked about), what thinko do I do?: gist.github.com/FROGGS/55945f79a9fefb004a61
20:50 Ven left 20:51 kaare_ left, hoelzro left
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 20:56 _dolmen_ left
masak the "signatures, multi and named arguments" email on p6u, is that a case of the querent forgetting to ! their nameds? 20:58
TimToady found several places where core assumes [email@hidden.address] val" will not flatten val 20:59
[Coke] wonders how hard it would be to make NativeCall do Objective-C
jnthn masak: link?
TimToady so I think reverting push to ** semantics is the right thing
hoelzro [Coke]: That's an interesting idea; I don't think Objective-C's name mangling is as complex as C++'s 21:00
21:00 [Sno] left
jnthn TimToady: I'm a little sad to lose the consistency... 21:00
hoelzro also, Objective-C supports (Ruby|Smalltalk) style send
jnthn TimToady: Well, I guess, I worry how far "1-arg rule exceptions" will end up spreading
masak jnthn: www.nntp.perl.org/group/perl.perl6....g2287.html 21:01
dalek ast: 5ec65b1 | usev6++ | S05-m (2 files):
Replace more eval-dies-ok with throws-like (S05)
ast: e3ff8ce | usev6++ | S12-class/inheritance.t:
Do not overwrite namespace used for exceptions

  ... so that we can test for typed exception
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:02
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:03
TimToady we already have lots of exceptions to +args, so it's always gonna be case-by-case 21:04
but in this case, people expect push to push one thing, cuz pop pops one thing
masak sends that as a reply to p6u 21:05
TimToady jnthn: and if it's any comfort, I'm trying to move infix:<...> the other direction :) 21:06
dalek kudo/nom: 5b3872c | lizmat++ | src/ (2 files):
A better $?COMPILATION-ID

Again, jnthn++ for pointing the way (and writing the nqp code).
21:09
masak replied on p6u
lizmat gets some sleep
masak answer will probably show up sometime next week :P
'night, lizmat++
21:10 skids left
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
o/
masak 'night, jnthn 21:15
'night, #perl6
21:19 pmurias left
timotimo gnite masak, gnite jnthn 21:20
carlin hmm, I was getting a fairly consistent moar crash for a bit but it's stopped now 21:22
this script: gist.github.com/carbin/4f108547a7c6b5339d18
was causing "moar(30670) in free(): error: chunk is already free"
gdb bt: gist.github.com/carbin/78ee4e0981748b05df70 21:23
timotimo that's a rather short backtrace 21:24
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
21:26 pmurias joined 21:27 kid51 joined, lizmat left 21:30 cognome joined 21:31 cognome left, co-gnome joined
dalek kudo/nom: 058e713 | timotimo++ | lib/NativeCall.pm:
NativeCall: make no-setup-needed case less expensive

by moving the setup code into a private method.
21:31
timotimo carlin: it kind of looks like something's corrupted, or maybe there's multiple threads, which isn't likely
anyway, we've got a bunch of stability fixes in recently; i thought they would only help if there's parallelism involved 21:32
21:36 co-gnome left
ilmari m: my %foo = foo => 42; say %foo<foo> //= die "hopefully not"; 21:44
camelia rakudo-moar ab6238: OUTPUT«42␤»
ilmari m: my $foo; my %foo = foo => 42; $foo = %foo<foo> //= die "hopefully not"; say $foo 21:45
camelia rakudo-moar ab6238: OUTPUT«42␤»
ilmari timotimo: why not $!cpp-name-mangler = %lib{$guessed_libname} //= guess-name-mangler($r, $guessed_libname)); ?
21:45 tokuhiro_ joined
timotimo i didn't invent this :) 21:46
let me have a look
21:47 vendethiel left 21:52 tokuhiro_ left 21:55 travis-ci joined
travis-ci Rakudo build errored. Timo Paulssen 'NativeCall: make no-setup-needed case less expensive 21:55
travis-ci.org/rakudo/rakudo/builds/82824331 github.com/rakudo/rakudo/compare/5...8e713dc937
21:55 travis-ci left 21:58 lizmat joined 21:59 pmurias left 22:08 timbunce_ left 22:12 zzzzzzzzz joined 22:25 zzzzzzzzz left 22:29 spider-mario left 22:31 skids joined
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 22:57 araujo left, araujo_ joined 23:06 RabidGravy left 23:13 bjz left
timotimo can has help figuring out if that test file hangs for anybody else? :\ 23:16
the one travis reports?
hoelzro timotimo: I'll have a look 23:21
23:21 khw left, cognominal left 23:22 cognominal joined
hoelzro timotimo: seems legit 23:29
23:29 jasanj joined 23:30 cognominal_ joined, maddingu1 joined 23:32 ab5tract_ joined, eiro left, cognominal left, kid51 left, jordman_ left, DarthGandalf left, maddingue left, eiro joined 23:33 cosimo left, larion left, orbus joined, kid51 joined, cosimo joined, bcode left, BooK joined, bcode joined 23:34 larion joined, DarthGandalf joined, jordman joined, Peter_R left, japhb left, jasanj left 23:35 bjz joined
timotimo legit? 23:36
as in, it doesn't only b0rk on travis?
hoelzro: is it flappy or constantly broken?
hoelzro timotimo: it's fine on my machine 23:37
timotimo ah
hoelzro I kicked the travis build; we'll see how it does
timotimo ok
23:37 travis-ci joined
travis-ci Rakudo build canceled. Timo Paulssen 'NativeCall: make no-setup-needed case less expensive 23:37
travis-ci.org/rakudo/rakudo/builds/82824331 github.com/rakudo/rakudo/compare/5...8e713dc937
23:37 travis-ci left
hoelzro travis-ci.org/rakudo/rakudo/jobs/82824335 23:37
\o/
dalek kudo-star-daily: 412cd90 | coke++ | log/ (9 files):
today (automated commit)
23:39
23:40 bjz left 23:49 tokuhiro_ joined 23:50 yqt left 23:52 aborazmeh joined, aborazmeh left, aborazmeh joined 23:54 tokuhiro_ left