»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
BenGoldberg m: say Numeric.^methods; 00:00
camelia rakudo-moar b54294: OUTPUT«(log log10 exp roots succ pred)␤»
BenGoldberg m: say Numeric.new.succ; 00:01
camelia rakudo-moar b54294: OUTPUT«Memory allocation failed; could not allocate 58208 bytes␤»
BenGoldberg m: say Numeric.succ;
camelia rakudo-moar b54294: OUTPUT«Use of uninitialized value of type Numeric in numeric context in any at gen/moar/m-Metamodel.nqp line 1718␤1␤»
AlexDaniel BenGoldberg: LTA 00:02
00:02 patrickz left
BenGoldberg I wonder if there's a missing :D somewhere. 00:02
00:02 Yary left, FreezerburnV left 00:04 NZKindest joined 00:05 firstdayonthejob left 00:09 vendethiel left 00:12 BenGoldberg left, arlenik joined 00:13 BenGoldberg joined, BenGoldberg left 00:15 BenGoldberg joined 00:16 arlenik left, espadrine left 00:19 Guest46973 left, mohae left 00:21 mohae joined
sortiz BenGoldberg, In Numeric. github.com/rakudo/rakudo/blob/nom/...ic.pm#L28, Indeed missing! 00:25
BenGoldberg :) 00:31
00:34 raiph joined 00:37 SCHAAP137 left 00:39 pukku joined, pukku left
BenGoldberg m: say Mu.new; 00:41
camelia rakudo-moar b54294: OUTPUT«Mu.new␤»
BenGoldberg m: say so Mu.new;
camelia rakudo-moar b54294: OUTPUT«True␤»
BenGoldberg m: class Foo is Mu { }; say Foo.new; 00:42
camelia rakudo-moar b54294: OUTPUT«Foo.new␤»
BenGoldberg m: class Foo is Mu { }; say so Foo.new;
camelia rakudo-moar b54294: OUTPUT«True␤»
BenGoldberg m: say Numeric.^find_method('Bool') 00:44
camelia rakudo-moar b54294: OUTPUT«Bool␤»
00:52 Ben_Goldberg joined 00:53 BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
timotimo goes to(wards) bed 00:56
01:00 sufrostico joined
skids Who's Ward? :-) 01:03
01:03 wamba left 01:04 wamba joined
BenGoldberg is confused by something. 01:13
I *think* that these should produce the same output:
m: say map *.perl, Numeric.^find_method('Bool').candidates;
camelia rakudo-moar b54294: OUTPUT«(method Bool (Mu $: *%_) { #`(Method|40928744) ... })␤»
BenGoldberg m: say map *.perl, .^find_method('Bool').candidates for Numeric; 01:14
camelia rakudo-moar b54294: OUTPUT«(method Bool (Mu $: *%_) { #`(Method|39740968) ... } method Bool (Numeric:D $: *%_) { #`(Method|50390536) ... })␤»
flussence m: say map *.perl, (.^find_method('Bool').candidates for Numeric); 01:24
camelia rakudo-moar b54294: OUTPUT«((method Bool (Mu $: *%_) { #`(Method|44369480) ... }, method Bool (Numeric:D $: *%_) { #`(Method|55019352) ... }))␤»
flussence hm, now I'm confused too 01:25
BenGoldberg m: my $m = Numeric.^find_method('Bool'); $m( Numeric.new ).say; 01:26
camelia rakudo-moar b54294: OUTPUT«True␤»
Hotkeys m: say Numeric.^find_method('Bool').candidates.elems; say (.^find_method('Bool').candidates for Numeric).elems 01:29
camelia rakudo-moar b54294: OUTPUT«1␤1␤»
Hotkeys m: say Numeric.^find_method('Bool').candidates.elems; say (.^find_method('Bool').candidates for Numeric)[0].elems
camelia rakudo-moar b54294: OUTPUT«1␤2␤»
BenGoldberg Ooh, it's producing a one element list with a two element list in it. 01:30
Hotkeys m: say Numeric.^find_method('Bool').candidates; say (.^find_method('Bool').candidates for Numeric)
camelia rakudo-moar b54294: OUTPUT«(Bool)␤((Bool Bool))␤»
Hotkeys seems like
BenGoldberg m: my @c = !(.^find_method('Bool').candidates for Numeric); say +@c 01:31
camelia rakudo-moar b54294: OUTPUT«1␤»
BenGoldberg m: my @c = !(.^find_method('Bool').candidates for Numeric); say @c
camelia rakudo-moar b54294: OUTPUT«[False]␤»
BenGoldberg m: my @c = !(.^find_method('Bool').candidates for Numeric); say @c[0]
camelia rakudo-moar b54294: OUTPUT«False␤»
BenGoldberg m: my @c = !(.^find_method('Bool').candidates for Numeric); say @c[0].WHAT
camelia rakudo-moar b54294: OUTPUT«(Bool)␤»
BenGoldberg m: my @c := !(.^find_method('Bool').candidates for Numeric); say @c[0].WHAT
camelia rakudo-moar b54294: OUTPUT«Type check failed in binding; expected Positional but got Bool␤ in block <unit> at /tmp/ja_AnGGOkn line 1␤␤» 01:32
BenGoldberg m: my @c := (.^find_method('Bool').candidates for Numeric); say @c[0].WHAT
camelia rakudo-moar b54294: OUTPUT«(List)␤»
BenGoldberg m: my @c := (.^find_method('Bool').candidates for Numeric); say @c[0].elems;
camelia rakudo-moar b54294: OUTPUT«2␤»
BenGoldberg m: my @c0 := (.^find_method('Bool').candidates for Numeric); my @c := @c0[0]; say +@c; 01:33
camelia rakudo-moar b54294: OUTPUT«2␤»
BenGoldberg m: my @c0 := (.^find_method('Bool').candidates for Numeric); my @c := @c0[0]; say .perl for 2c;
camelia rakudo-moar b54294: OUTPUT«5===SORRY!5=== Error while compiling /tmp/OB4HS1fIDP␤Missing semicolon␤at /tmp/OB4HS1fIDP:1␤------> 3meric); my @c := @c0[0]; say .perl for 27⏏5c;␤»
BenGoldberg m: my @c0 := (.^find_method('Bool').candidates for Numeric); my @c := @c0[0]; say .perl for @c;
camelia rakudo-moar b54294: OUTPUT«method Bool (Mu $: *%_) { #`(Method|38913848) ... }␤method Bool (Numeric:D $: *%_) { #`(Method|49563264) ... }␤»
Hotkeys m: Numeric.^find_method('Bool').say
camelia rakudo-moar b54294: OUTPUT«Bool␤»
Hotkeys m: Numeric.^find_method('Bool').perl.say
camelia rakudo-moar b54294: OUTPUT«method Bool (Mu $: | is raw) { #`(Method|48415024) ... }␤»
Hotkeys m: Numeric.^find_method('Bool').candidates.perl.say
camelia rakudo-moar b54294: OUTPUT«(method Bool (Mu $: *%_) { #`(Method|53024216) ... },)␤»
skids m: say map *.perl, .^find_method("Bool").candidates for Numeric, Bool 01:34
camelia rakudo-moar b54294: OUTPUT«(method Bool (Mu $: *%_) { #`(Method|67184200) ... })␤(method Bool (Bool:D $: *%_) { #`(Method|67725320) ... } method Bool (Bool:U $: *%_) { #`(Method|67725472) ... })␤»
skids m: say map *.perl, .^find_method("Bool").candidates for IterationEnd
camelia rakudo-moar b54294: OUTPUT«Method 'map' not found for invocant of class 'Mu'␤ in block <unit> at /tmp/CryDmE5hf8 line 1␤␤»
BenGoldberg m: my @c0 := (.^find_method('Bool').candidates for Numeric); my @c := @c0[0]; my $n = Numeric.new; for @c -> \cand { say cand($n) }
camelia rakudo-moar b54294: OUTPUT«5===SORRY!5=== Error while compiling /tmp/u2AMVIuL6l␤Variable '&cand' is not declared␤at /tmp/u2AMVIuL6l:1␤------> 3$n = Numeric.new; for @c -> \cand { say 7⏏5cand($n) }␤»
BenGoldberg m: my @c0 := (.^find_method('Bool').candidates for Numeric); my @c := @c0[0]; my $n = Numeric.new; for @c -> $cand { say $cand($n) }
camelia rakudo-moar b54294: OUTPUT«True␤Memory allocation failed; could not allocate 82944 bytes␤»
Hotkeys m: say map*.perl, (.^find_method('Bool').candidates with Numeric) 01:35
camelia rakudo-moar b54294: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0eGNb8HzJm␤Calling map() will never work with any of these multi signatures:␤ (&code, + is raw)␤at /tmp/0eGNb8HzJm:1␤------> 3say 7⏏5map*.perl, (.^find_method('Bool').candid␤»
BenGoldberg m: my @c0 := (.^find_method('Bool').candidates for Numeric); my @c := @c0[0]; my $n = Numeric.new; $c[0]($n);
camelia rakudo-moar b54294: OUTPUT«5===SORRY!5=== Error while compiling /tmp/73EY4XvyS0␤Variable '$c' is not declared. Did you mean '@c'?␤at /tmp/73EY4XvyS0:1␤------> 3; my @c := @c0[0]; my $n = Numeric.new; 7⏏5$c[0]($n);␤»
Hotkeys m: say map *.perl, (.^find_method('Bool').candidates with Numeric)
camelia rakudo-moar b54294: OUTPUT«()␤»
BenGoldberg m: my @c0 := (.^find_method('Bool').candidates for Numeric); my @c := @c0[0]; my $n = Numeric.new; @c[0]($n);
camelia ( no output )
BenGoldberg m: my @c0 := (.^find_method('Bool').candidates for Numeric); my @c := @c0[0]; my $n = Numeric.new; @c[1]($n);
camelia rakudo-moar b54294: OUTPUT«Memory allocation failed; could not allocate 82944 bytes␤»
01:36 addison left
BenGoldberg m: my @c0 := (.^find_method('Bool').candidates for Numeric); my @c := @c0[0]; say .perl for @c; 01:36
camelia rakudo-moar b54294: OUTPUT«method Bool (Mu $: *%_) { #`(Method|50939704) ... }␤method Bool (Numeric:D $: *%_) { #`(Method|61589120) ... }␤»
BenGoldberg m: my @c0 := (.^find_method('Bool').candidates for Numeric); my @c := @c0[0]; say @c[1].file;
camelia rakudo-moar b54294: OUTPUT«gen/moar/m-CORE.setting␤»
BenGoldberg Drat... that's annoying.
skids m: say map *.perl, .^find_method("Bool").candidates for Numeric, IterationEnd
camelia rakudo-moar b54294: OUTPUT«(method Bool (Mu $: *%_) { #`(Method|49890952) ... })␤»
BenGoldberg ponder submittting a bug report, to the effect that the genenerated setting ought to have the equivilant of '#file' in it, indicating the file from which it was generated. 01:39
m: Numeric.new != 0; 01:40
camelia rakudo-moar b54294: OUTPUT«WARNINGS for /tmp/J5pUO24vUB:␤Useless use of "!=" in expression ".new != 0" in sink context (line 1)␤Memory allocation failed; could not allocate 61472 bytes␤»
BenGoldberg m: Numeric.new == 0; 01:41
camelia rakudo-moar b54294: OUTPUT«WARNINGS for /tmp/3oYjw3Btyy:␤Useless use of "==" in expression ".new == 0" in sink context (line 1)␤Memory allocation failed; could not allocate 61456 bytes␤»
skids m: say map {$_.WHAT}, .^find_method("Bool").candidates for Numeric 01:44
camelia rakudo-moar b54294: OUTPUT«((Method) (Method))␤»
skids Hotkeys: yep, as you saw ^^ 01:45
BenGoldberg I think I might possibly have found it: 01:48
m: role Foo { method Foo { self } }; proto sub infix:<eq-like>(Mu $?, Mu $?) is pure { * }; multi sub infix:<eq-like>($?) { Bool::True }; multi sub infix:<eq-like>(\a, \b) { a.Foo eq-like b.Foo }; say Foo.new eq-like Foo.new;
camelia rakudo-moar b54294: OUTPUT«Memory allocation failed; could not allocate 118816 bytes␤»
BenGoldberg Compare this with: github.com/rakudo/rakudo/blob/nom/...ic.pm#L248
skids $? ... ? 01:52
BenGoldberg No idea, just copy-pasting ;)
skids Oh, optional discarded $ 01:53
gfldex optional anonymous positional argument
skids Wouldn't that recurse infinitely without annother multi? 01:54
BenGoldberg Precisely.
It's recursing infinitely, and thus runs out of memory. 01:55
That's my guess, anyway. 01:56
skids m: &infix:<==>.candidates.say
camelia rakudo-moar b54294: OUTPUT«(sub infix:<==> ($?) { #`(Sub|60059064) ... } sub infix:<==> (\a, \b) { #`(Sub|60061344) ... } sub infix:<==> (Real \a, Real \b) { #`(Sub|60061192) ... } sub infix:<==> (Int:D \a, Int:D \b) { #`(Sub|60059520) ... } sub infix:<==> (int $a, int $b) { #`(Sub|…»
skids There are other multis, unless they are not defined in some internal scope
BenGoldberg Sure, but which of them match on a value which is defined, and Numeric, and not a subtype of Numeric? 01:58
skids m: multi sub infix:<==> (Numeric:D $?, Numeric:D $?) { "OHAI".say }; say so Numeric.new; 02:02
camelia rakudo-moar b54294: OUTPUT«Memory allocation failed; could not allocate 82944 bytes␤»
02:05 cdg left 02:07 raiph left 02:16 Ben_Goldberg joined 02:17 BenGoldberg left 02:21 NZKindest left, leont left, kid51 left 02:23 kid51 joined 02:25 kid51 left 02:26 kid51 joined 02:27 wamba left
awwaiid is someone named "raiph" around here? they left a comment adding some more colons to my collection. I thank them! thelackthereof.org/Perl6_Colons 02:29
02:29 molaf_ joined
masak yes, raiph frequents this channel. 02:29
awwaiid .tell raigh Thanks for the comments, I've updated thelackthereof.org/Perl6_Colons 02:30
yoleaux awwaiid: I'll pass your message to raigh.
awwaiid thanks masak
TEttinger that was to raigh not raiph? 02:32
02:33 molaf left
awwaiid .tell raiph Thanks for the comments, I've updated thelackthereof.org/Perl6_Colons 02:33
yoleaux awwaiid: I'll pass your message to raiph.
awwaiid :)
02:34 jameslenz joined, yqt left, apiw joined 02:35 partly__ joined 02:38 partly_ left
revhippie awwaiid: don't forget the number-first colon-pair :5foo 02:42
awwaiid got that one 02:43
it was in there as :1day, I changed it to :73day to make it easier to see 02:44
revhippie ohh sorry. 02:46
02:47 hippie1 joined, apiw left
awwaiid hmm. Almost all colon-pair is some sugar for Pair.new($key, $val). Is there a longhand for number conversion :16<d00d>? 02:48
02:48 hippie left 02:49 apiw joined
skids m: :16[0xd, 0, 0, 0xd] # ?? 02:51
camelia ( no output )
sortiz m: "d00".UNBASE(16) 02:52
camelia rakudo-moar b54294: OUTPUT«Method 'UNBASE' not found for invocant of class 'Str'␤ in block <unit> at /tmp/zF50ACZbW2 line 1␤␤»
sortiz m: "d00".UNBASE(16,"d000")
camelia rakudo-moar b54294: OUTPUT«Method 'UNBASE' not found for invocant of class 'Str'␤ in block <unit> at /tmp/1_vOB8tLXL line 1␤␤»
sortiz m: UNBASE(16,"d000")
camelia ( no output )
sortiz m: UNBASE(16,"d000").say
camelia rakudo-moar b54294: OUTPUT«53248␤»
awwaiid UNBASE. Interesting. Why so loud? 02:53
skids That's more a rakudo internal thing, not a Perl 6 thing
awwaiid ah
sortiz For promote the sugared form, I suppose 02:54
awwaiid m: say 255.base(16)
camelia rakudo-moar b54294: OUTPUT«FF␤»
02:55 sufrostico left
awwaiid pretty weird syntax, since all the other similar colon-pairs end up as a Pair 02:55
dalek kudo-star-daily: 20bb739 | coke++ | log/ (9 files):
today (automated commit)
02:56
sortiz m: say :16[1, 3]; say UNBASE_BRACKET(16, 1, 3):
camelia rakudo-moar b54294: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VNGLw1Lncx␤Calling UNBASE_BRACKET(Int, Int, Int) will never work with declared signature ($base, @a)␤at /tmp/VNGLw1Lncx:1␤------> 3say :16[1, 3]; say 7⏏5UNBASE_BRACKET(16, 1, 3):␤»
sortiz m: say :16[1, 3]; say UNBASE_BRACKET(16, [1, 3]):
camelia rakudo-moar b54294: OUTPUT«19␤19␤»
02:57 mr-foobar joined
awwaiid my $x = 24; say :$x<2034> 02:58
m: my $x = 24; say :$x<2034>
camelia rakudo-moar b54294: OUTPUT«(Mu)␤»
awwaiid equivalent to (:$x)<2034>, uselessly looking up the 2034 key in x => 24. 03:00
03:12 noganex joined 03:13 kid51 left 03:15 noganex_ left 03:17 hacst left, apiw left 03:20 hacst joined, chace joined, Herby_ joined
Herby_ Evening, everyone! 03:20
\o
03:21 mohae left 03:22 mohae joined 03:24 adu joined 03:27 Actualeyes joined 03:46 kurahaupo_ joined
Herby_ \o 03:49
o\
\o/
03:50 kurahaupo left
MadcapJake i have a derived class that has an overridden method but it's one that is used only internally to the base class and it seemingly won't use my derived version, how can make it do that? 03:50
gfldex how do you call that methdod? 03:52
MadcapJake it's called inside a method in the base class
gfldex code pls tyvm
MadcapJake here's one of the calls (there are a bunch in this class), the method in question is `died` github.com/MadcapJake/Test-Lab/blo...t.pm6#L113 03:54
Here's my derived class's overridden version github.com/MadcapJake/Test-Lab/blo...ment.t#L11 03:55
gfldex i don't thinks self.self is going to work. It's very late here and I will need to sleep over it. 03:57
MadcapJake alright :D
any quick thoughts that could lead me in the right direction?
gfldex no, but you may want to check what self.self. actually points to 03:59
MadcapJake self.self?
oh wow
that's bug
sadly, not the root cause here :P 04:01
04:05 dolmen joined 04:10 jolts left
masak m: class C { method self { "OH HAI" }; method foo { self.self } }; say C.new.foo 04:13
camelia rakudo-moar b54294: OUTPUT«OH HAI␤»
MadcapJake figured it out, any derived class needs to implement a `new` method or a call to new will just create a Cls::Default object 04:21
Is there a way to detect what class name is calling a method? I could put a guard in there that only defaults to Cls::Default is the calling class is the base. 04:22
figured that out too! :D 04:23
self.WHICH
04:31 mohae left 04:33 squach joined, skids left, mohae joined 04:35 squach1 left 04:42 Herby_ left 04:43 molaf_ left 04:48 kurahaupo_ left
ugexe you could also use multis like: multi bar(Cls::Base:D $foo) { set-defaults(); nextsame; }; multi bar($foo) { work($foo) } 04:54
05:00 revhippie left 05:02 rindolf joined 05:15 adu left 05:16 chace left 05:18 vendethiel joined 05:20 Ben_Goldberg left 05:25 adu joined 05:29 adu left 05:30 adu joined, adu left 05:32 mr-foobar left 05:33 mr-foobar joined 05:41 vendethiel left, dolmen left 05:42 mr-foobar left 05:47 Cabanossi left, vendethiel joined, mr-foobar joined 05:49 Cabanossi joined
MadcapJake is it mentioned anywhere that CATCH blocks will interfere with returning? Just figured this out x_x 06:00
jdv79 in what way is this manifesting? 06:02
MadcapJake ugexe, thanks for the tip, my current logic for new is «if self.WHICH.Str ~~ 'Test::Lab::Experiment' { Test::Lab::Experiment::Default.bless(:$name) } else { !!! }»
jdv79, I had a few methods with the body entirely wrapped in try/catch block 06:03
and the CATCH blocks were the last line
the only way I could get any values returned was either explicitly returning or by moving the CATCH block prior the implicit return statement
jdv79 iirc its not CATCH related at all. its just last line or explicit return. 06:05
MadcapJake oh! i assumed the CATCH would just be considered not a part of the sub's body 06:06
or rather the try's body 06:07
jdv79 well, its in there. again i believe that's the deal but i could be wrong.
MadcapJake m: sub foo { try { 'foo'; CATCH { default { die 'a horrible death' } } } }
camelia rakudo-moar b54294: OUTPUT«WARNINGS for /tmp/JpEbUrKd5x:␤Useless use of constant string "foo" in sink context (line 1)␤»
MadcapJake m: sub foo { try { CATCH { default { die 'a horrible death' } }; 'foo'; } }
camelia ( no output )
MadcapJake yep definitely is a thing :P
06:08 vendethiel left
MadcapJake the example in language/exceptions shows a CATCH at the beginning of the block, but it never really delves into the question as all of the logic is just printing to stdout 06:09
i guess my problem is I was thinking of a CATCH block as a kind of branch of a conditional 06:10
06:10 CIAvash joined 06:14 geraud left 06:15 mathw joined
jdv79 maybe that deserves a doc issue about returning less simply than doc.perl6.org/type/Block descibes 06:18
*describes
06:38 solarbunny left 06:40 solarbunny joined
jdv79 MadcapJake: i created github.com/perl6/doc/issues/388 06:47
nite
sortiz jdv79++ # For the issue opened, I'm in the same camp. 06:50
o/ jdv79
06:54 khw left 07:03 domidumont joined 07:06 mr-foobar left 07:08 mr-foobar joined, domidumont left 07:09 domidumont joined
rindolf jdv79: hi, sup? 07:12
07:17 vendethiel joined 07:32 sno left 07:39 vendethiel left
[Tux] test 21.943 07:39
test-t 11.839
csv-parser 51.701
07:39 firstdayonthejob joined
El_Che same as yesterday's 07:40
so it's not getting slower :)
07:46 RabidGravy joined 07:48 FROGGS joined 07:54 fireartist joined
MadcapJake jdv79, thanks! i'm off to bed too 07:55
07:55 nakiro joined
rindolf MadcapJake: good night. 07:56
08:03 vendethiel joined 08:05 Ven joined 08:06 nige1 left 08:11 darutoko joined 08:12 zakharyas joined 08:15 ely-se joined
RabidGravy morning 08:18
ely-se hi
RabidGravy need more coffee, just did "git init", "git add ." in the parent of the one I intended and wondered why it was taking so long 08:19
sortiz ups! 08:21
my \p = :what<foo>; .say for p<what>.WHAT, p<what> # All expected 08:22
08:22 mr-foobar left
sortiz m: my \p = :what<foo>; .say for p<what>.WHAT, p<what> # All expected 08:22
camelia rakudo-moar b54294: OUTPUT«(Str)␤foo␤»
sortiz m: my \p = :what<foo bar>; .say for p<what>.WHAT, p<what> # Beware, I was expecting also Str! 08:23
camelia rakudo-moar b54294: OUTPUT«(List)␤(foo bar)␤»
08:25 vendethiel left 08:29 Yary joined, Yary left 08:30 pdcawley joined 08:35 squach1 joined 08:36 [Tux] left 08:37 squach left 08:41 abraxxa joined 08:45 Ven left 08:46 Ven joined 08:48 [Tux] joined 08:51 pmurias joined
pmurias jnthn: +1 to everything in you versioning blog post, good that we use git tags instead of per version subdirectories 08:57
09:02 zakharyas left
pmurias jnthn: re MoarVM and it's opset, (as rakudo/nqp is as far as I know are the only clients, do we really need to lock the opset down for years?) 09:03
09:03 kurahaupo joined, vendethiel joined 09:04 sno joined
RabidGravy is there a thing which can turn something like "0d 00h 09m 38s" or some parsed set of numbers into a Duration? 09:05
moritz not in core 09:06
RabidGravy obviously not that difficult to do in a dumb way 09:07
09:08 nige1 joined 09:11 Actualeyes left 09:14 ocbtec joined 09:16 kurahaupo left 09:24 ely-se left, ely-se joined 09:26 vendethiel left
stmuk_ replies to versioning blog post 09:27
dalek c: c08878c | (Salvador Ortiz)++ | doc/Type/Pair.pod:
Update Pair.pod

Add some more examples of the adverbial form
09:31
09:35 dakkar_ joined
lizmat m: Real.new.Num # this is the loop: it calls Real.Bridge.Num., and Real.Bridge calls Real.Num again 09:36
camelia rakudo-moar b54294: OUTPUT«Memory allocation failed; could not allocate 81920 bytes␤»
lizmat this code has been in there for at least 4 years :-( 09:38
09:41 Hor|zon left, leont joined 09:43 fireartist left 09:55 espadrine joined
RabidGravy boo! 09:57
AlexDaniel Bool 09:58
lizmat eek!
dalek c: 1601312 | (Salvador Ortiz)++ | doc/Language/nativecall.pod:
Update nativecall.pod

Describe how to pass allocated pointers to native types in native calls
09:59
lizmat added RT #127503 about Real.new.num infinilooping, Yary++ BenGoldberg++ 10:03
10:03 fireartist joined
AlexDaniel m: my $foo = ‘hello’; say :$foo 10:04
camelia rakudo-moar b54294: OUTPUT«Unexpected named parameter 'foo' passed␤ in block <unit> at /tmp/wzMnCeL9yd line 1␤␤»
AlexDaniel m: my $foo = ‘hello’; say (:$foo)
camelia rakudo-moar b54294: OUTPUT«foo => hello␤»
10:06 rdmsno joined
AlexDaniel m: say (::a) 10:06
camelia rakudo-moar b54294: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol a␤»
AlexDaniel :/
10:07 vendethiel joined
rdmsno When I re-run "make && make install" on nqp & rakudo-star (eg. after libc update and subsequent jvm rebuild and consequently nqp -> rakudo-star rebuild), I get 10:07
~# perl6 -V
Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'gen/jvm/stage2/QRegex.nqp'
in
in load_module
in
in load_module
in
in load_module
in
lizmat m: ::a # seems correct to me, AlexDaniel
camelia rakudo-moar b54294: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol a␤»
rdmsno where do I have to force a rebuild to get rid of that?
lizmat rdmsno: rm -rf install usually does the trick 10:08
rdmsno lizmat: that's a complete rebuild - what isn't sane
the intention of my question is to avoid the "rm -rf" hack 10:09
AlexDaniel lizmat: okay, so let's say I have a source file with 1000 lines… --ll-exception does not help too
lizmat AlexDaniel: I see your point
rdmsno: I'm afraid I have no other suggestion to offer at this point: I always went the rm -rf way :-( 10:10
rdmsno lizmat: than we should take half an hour on 18th and we find a better way - when you like
10:11 nige1 left
lizmat rdmsno: sure :-) 10:11
rdmsno lizmat: "rm -rf install" on nqp or rakudo-star?
lizmat you could try nqp first :-)
rdmsno nods 10:12
10:12 nige1 joined 10:13 molaf joined 10:17 wamba joined
lizmat AlexDaniel: looking at the ::a issue, fwiw 10:25
10:28 vendethiel left
FROGGS what should ::a mean btw? 10:28
10:31 pmurias left
lizmat probably nothing, but a typo of that kind in a large source file, would be hard to track 10:33
afk for a bit& 10:35
sortiz ::a means "Search for the package or symbol a"
m: my \a = 8; say ::a: 10:36
camelia rakudo-moar b54294: OUTPUT«8␤»
sortiz m: module a {}: say ::a:
camelia rakudo-moar b54294: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1ktnIHfnGz␤Confused␤at /tmp/1ktnIHfnGz:1␤------> 3module a {}:7⏏5 say ::a:␤ expecting any of:␤ colon pair␤»
sortiz m: module a {}; say ::a:
camelia rakudo-moar b54294: OUTPUT«(a)␤»
10:37 leont left, zakharyas joined
sortiz m: class Foo {}; my $b = 'Foo'; say ::($b) 10:37
camelia rakudo-moar b54294: OUTPUT«(Foo)␤»
10:43 Ven left
sortiz As far as I understand... 10:44
10:45 apiw joined 10:47 FROGGS left 10:50 apiw left 10:56 nige1 left 10:57 virtualsue joined 10:58 pmurias joined
pmurias rdmsno: I encounter that sort of problems when there is a bug in the Makefile 11:01
rdmsno: I use "make clean" as a workaround for those sort of things 11:02
sortiz m: try { EVAL 'my $x = ::P' }; say ~$! 11:04
camelia rakudo-moar b54294: OUTPUT«Could not locate compile-time value for symbol P␤»
11:05 apiw joined
El_Che I love the flexibilitiy of Datetime.earlier(days => $negative_int) and later 11:08
but sometimes my head blows :)
11:11 apiw left 11:12 mscha joined
mscha m: say '[hello]' ~~ / <[ [ ]> /; # This one works fine ... 11:13
camelia rakudo-moar b54294: OUTPUT«「[」␤»
mscha m: say '[hello]' ~~ / <[ ] ]> /; # but this one does not. Isn't tha a bug?
camelia rakudo-moar b54294: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nHFWkjQgsw␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/nHFWkjQgsw:1␤------> 3say '[hello]' ~~ / <[ ] 7⏏5]> /; # but this one does not. Isn't␤»
11:14 FROGGS joined
jnthn mscha: I don't think we can make the second one work 11:15
mscha: And so we'd only be forbidding the first because you can't do the second, which may be consistent-er, but not sure it's worth the breaking change. 11:16
mscha jnthn: so, we're back to LTS? :(
m: say '[hello]' ~~ / <[ \] ]> /; 11:17
camelia rakudo-moar b54294: OUTPUT«「]」␤»
jnthn mscha: It just semes too small a reason to go breaking things. 11:18
11:18 kaare_ joined 11:19 RabidGravy left
jnthn It's well within the realm of things we could change and manage with version guarding. 11:20
But for me it's below the threshold of being worth bothering with. But I'm not the language designer... :)
lizmat jnthn: the ::a issue is a naked nqp::die in World.find_symbol
11:20 gcole_ joined
jnthn lizmat: How rude! 11:21
lizmat jnthn: it is being called at Actions:8928
jnthn I don't actually know what the ::a issue is :)
jnthn didn't really backlog... :)
lizmat m: ::a # note lack of where this happend
camelia rakudo-moar b54294: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol a␤»
jnthn Aha
Yeah...
That could do with a fix :) 11:22
lizmat and I'm looking at that
this happend at Actions:8928: trying to wrap that in a try
jnthn Cool. I guess $/ is available where we die?
lizmat it is there
11:23 gcole left
lizmat my assumption was that $type would be null if the find_symbol died 11:23
jnthn OK, shouldn't be too bad...
moritz while you're at it, "could not locate" is one of those weird error messages
lizmat but a nqp::isnull after the try doesn't fire
moritz why couldn't you locate it?
"No compile-time value for symbol a" would be better 11:24
perhaps adding a verb too, "No compile-time value available for symbol a"
lizmat moritz: that message will be replaced by a proper exception, e.g. X::NoSuchSymbol 11:25
jnthn lizmat: In NQP, scalars start out holding NQPMu
lizmat which means that nqp::isnull on them would be true, no?
jnthn No
lizmat ah?
jnthn NQPMu is not a null
null means a real null
lizmat so how do I check for that then?
unless $type ? 11:26
jnthn I'd probably do something in CATCH.... 11:27
lizmat ok, I'll try that
jnthn But you could explicitly initialize $type to nqp::null() before the try block too
Then your null check would work
lizmat no, it didn't :-( 11:28
tried that already :-(
hmmm... CATCH seems to fix it 11:30
running spectest now
11:33 apiw joined 11:37 nige1 joined
lizmat jnthn: there is one test in roast that tests for the specific error message we got before 11:43
should I just correct that one in roast/master 11:45
11:45 Guest63689 left
jnthn lizmat: Yes, that will have to be 6.c-errata at some point too :) 11:45
lizmat so fix in errata as a todo, and fix properly in master, is what you're saying ? 11:46
rdmsno pmurias: I asked because I expected one knows about that 11:47
dalek kudo/nom: b9f90bc | lizmat++ | src/Perl6/Actions.nqp:
Fix for RT #127504
rdmsno seems not, so I make an appointment with lizmat to dig into the Makefiles (I'm not familiar with nqp/rakudo* sources)
jnthn lizmat: I'd commit in master, then create the errata branch and cherry-pick. If you're not quite comfortable with doing that, then feel free to file this as a roast ticket and I can take care of it. 11:49
lizmat I'd prefer the latter :-) 11:50
jnthn OK. Maybe won't get to it today.
lizmat I'll commit to master
dalek ast: 5dcda3c | lizmat++ | integration/weird-errors.t:
Minimal change to make test pass after b9f90bc592f

Should be cherry picked and todo'd in errata branch
11:54
ast: 5a079b2 | lizmat++ | integration/weird-errors.t:
Add test for RT #127504
11:57
12:00 ribasushi left 12:01 ely-se left, Ven joined 12:02 apiw left 12:03 ely-se joined 12:07 ribasushi joined 12:08 apiw joined
AlexDaniel that was really quick 12:09
lizmat++
lizmat sometimes it can be quick :-)
12:14 M-Illandan left 12:15 kid51 joined 12:19 nekrodesk joined
dalek kudo/nom: b2e57f6 | lizmat++ | src/core/Hash.pm:
Improve Int %h by 20% by removing code

Why? Because the candidates that handle the type constrained values Hash, were less optimised. But the only difference really was how they tried to get at the Hash descriptor (which is the only thing that really separates a type constrained Hash from a
  "normal" Hash). So removing the code, will revert back to the
better optimised un-constrained candidates, and thus get better performance.
12:32
kudo/nom: a68d91c | lizmat++ | src/core/Hash.pm:
Cosmetics: use same order of method definitions
12:40
12:40 sufrostico joined 12:43 domidumont left 12:44 nanis joined, kid51 left, nanis left
dalek kudo/nom: 0b3beb6 | lizmat++ | src/core/Hash.pm:
Add comment why we didn't optimize Hash.BIND-KEY
12:55
12:57 nanis joined
nanis Is someone looking at RT #127473? <rt.perl.org/Public/Bug/Display.htm...127473> 12:58