Zoffix "* ugexe uses sublime 3" 01:03
ugexe: does it work fine with Perl 6?
Last I tried sublime 2, the highlighting was totally broken
samcv: "but i didn't want to mess up zoffix's automated thingy"... I think my automated thingy is pretty unmessable, so go ahead and do whatever you want :) 01:04
samcv: the code for it is in the repo BTW: github.com/perl6/ecosystem/blob/ma...ls/meta.p6 01:06
ugexe I use the ModernPerl highlighter and yeah its still broken, but not for anything i ever reach for so it hasnt bothered me yet 01:25
Zoffix will probably reach the broken parts often considering I occasionally reach those with Atom's highlighter too 01:26
MasterDuke_ another question about bind_one_param, can i tell if it's being called for a sub vs method? 03:43
[Tux] This is Rakudo version 2017.04.3-71-gaa23a91fb built on MoarVM version 2017.04-44-gf0db8822 06:01
csv-ip5xs 3.101
test 13.365
test-t 5.121 - 5.425
csv-parser 14.323
nine timotimo: I'm probably biased, but to me the "Distro packages" link makes it look like nxadm's scripts are the only way to get at distro packages, when there are up to date packages for at least Debian and openSUSE. 09:45
Geth rakudo/nom: 8928fb0fe1 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Fix incorrect comment
09:46
timotimo nine: good point, i threw it out 09:55
Zoffix buggable: speed 10 09:56
buggable Zoffix, ā–„ā–ƒā–„ā–ƒā–ā–ā–‚ā–ƒā–ƒā–‡ data for 2017-04-24ā€“2017-04-28; range: 4.996sā€“5.425s; 5% slower
Zoffix buggable: speed 30
buggable Zoffix, ā–‚ā–ā–ƒā–ƒā–ƒā–ƒā–ƒā–ƒā–„ā–ƒā–ƒā–ˆā–„ā–†ā–„ā–„ā–„ā–„ā–†ā–…ā–„ā–ƒā–„ā–„ā–ā–ā–‚ā–ƒā–ƒā–‡ data for 2017-04-15ā€“2017-04-28; range: 4.994sā€“5.479s; 8% slower
Zoffix wonders what's going on with test-t bench :/
buggable: speed 50
buggable Zoffix, ā–‚ā–‚ā–‡ā–ā–‡ā–ƒā–‡ā–ā–‚ā–ā–ā–‚ā–„ā–„ā–‚ā–„ā–‚ā–ƒā–ˆā–…ā–‚ā–‚ā–„ā–ƒā–„ā–„ā–ƒā–ƒā–„ā–ƒā–ƒā–ˆā–„ā–†ā–…ā–…ā–…ā–„ā–†ā–…ā–„ā–ƒā–…ā–„ā–‚ā–‚ā–ƒā–„ā–„ā–‡ data for 2017-04-07ā€“2017-04-28; range: 4.921sā€“5.479s; 9% slower
Zoffix buggable: speed 199
buggable Zoffix, Refusing to do more than 100 last entries
Zoffix buggable: speed 100
buggable Zoffix, ā–ā–ā–ˆā–‚ā–‚ā–ƒā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–ā–‚ā–ā–ā–ā–‚ā–‚ā–ā–ā–ā–ā–ā–ā–…ā–‚ā–ā–ā–ā–ā–ā–ā–ā–‚ā–ā–ƒā–ā–‚ā–ā–ā–ā–ā–ā–ā–ā–‚ā–ā–‚ā–‚ā–‚ā–ā–ā–ā–ā–ā–‚ā–‚ā–ā–‚ā–ā–‚ā–ƒā–‚ā–‚ā–ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–ƒā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–ā–ā–‚ā–‚ā–‚ā–‚ data for 2017-03-14ā€“2017-04-28; range: 4.829sā€“7.664s; 10% slower
Zoffix buggable: speed 80 09:57
buggable Zoffix, ā–‚ā–‚ā–‚ā–‚ā–‚ā–ā–ā–‚ā–‚ā–ā–ā–ˆā–‚ā–ā–ā–ā–ā–ā–ā–ā–‚ā–ā–„ā–ā–‚ā–‚ā–ā–ā–ā–ā–‚ā–‚ā–ƒā–ā–ƒā–‚ā–ƒā–ā–‚ā–ā–ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–ƒā–ƒā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–„ā–‚ā–ƒā–ƒā–ƒā–ƒā–‚ā–ƒā–ƒā–‚ā–‚ā–ƒā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–ƒ data for 2017-03-22ā€“2017-04-28; range: 4.829sā€“6.637s; 9% slower
Zoffix Maybe the bugfixes.... 09:59
.ask MasterDuke_ do you still have your improved messages for "Invocant requires instance" exceptions? Can you start REPL and then exit it via CTRL+D. What method call triggers the "expected instance of IO::Handle" error? 10:25
yoleaux Zoffix: I'll pass your message to MasterDuke_.
Zoffix grrr 10:34
Wasted 40 minutes on a stupid error
Still didn't track it down
And .backtrace.Str is empty apparently
And --ll-exception does nothing 10:35
lizmat :-( 10:38
Zoffix gah, found it! 10:40
The get() call
.tell MasterDuke_ nevermind; located the culprit
yoleaux Zoffix: I'll pass your message to MasterDuke_.
Geth rakudo/nom: 44893e6a56 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Make (+) a multi

Start of optimization work on (+)
11:07
rakudo/nom: 7c53183516 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
Add R:I.ADD-SET-TO-BAG worker method

To be used for Setty (+) Setty in various places.
Zoffix .ask AlexDaniel how to bisect without RESTRICTED mode? I need to bisect $ = run($*EXECUTABLE, "-e", "get", :in).in.close 11:09
yoleaux Zoffix: I'll pass your message to AlexDaniel.
Zoffix Looking at code, this bug has been there for like 2 years :| wonder how it went unnoticed for so long 11:10
.ask AlexDaniel and this one too: $ = run($*EXECUTABLE, :in).in.close 11:11
yoleaux Zoffix: I'll pass your message to AlexDaniel.
timotimo Zoffix: i'm working on a hack to let you do that :) 11:12
Zoffix Ah, I was looking at the wrong thing. The bug is 2 months old. 11:13
Or (now - Mar 7) old
timotimo are you in the whateverable channel, zoffix? 11:15
Zoffix Then another mistery is: how has no one (not even tests?) notice REPL complaining about IO::Handle instance when exiting :/
timotimo: nope
Ah, OK. Tests at least I see why: they use regex match, not full output check 11:16
timotimo please come over for a little bit
Zoffix .tell AlexDaniel Never mind; timotimo++ sorted me out 11:19
yoleaux Zoffix: I'll pass your message to AlexDaniel.
timotimo i've shut it down again, but iirc you also have access to the server it runs on? 11:20
Zoffix timotimo: yeah. Is it a separate bot? trisectable?
timotimo Bisectable-but-not-restricted.p6
Zoffix Cool. Thanks
timotimo YW 11:21
Geth rakudo/nom: 4b8fd4a4f9 | (Zoffix Znet)++ | src/core/IO/ArgFiles.pm
Fix crash on ^D to $*IN when reading with IO::ArgFiles

IO::Handle.close wants a :D but in some conditions we set
  $!io to a type object so that call fails.
Fix by checking $!io is True.
Fixes whine about IO::Handle incocants in Fallback REPL exit.
11:27
rakudo/nom: 1456849675 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Make Setty (+) Setty about 45x faster

  - with a 100 element Set with itself
  - give Setty (^) Setty its own candidate written using nqp ops
11:29
lizmat argh, copypasto in last line :-( 11:30
timotimo lizmat^^
lizmat timotimo??
timotimo Zoffix~~ 11:31
lizmat sometimes I wish we could create a commit to fix a commit message
timotimo well, you can forcepush :) 11:34
we should make something like gmail's "unsend" feature
i.e. it'll pretend you have already sent
but it only actually sends a minute later
so you get the sensation of "oh shit! i just sent something wrong!" with the pleasure of "phew, i could fix it before things went to hell" 11:35
jnthn lizmat: Maybe try to get used to doing "git show" before "git push" :) 12:12
Geth rakudo/nom: ccedd6b1e3 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
Add R:I.ADD-MIX-TO-MIX worker method

To be used for Mixy (+) Mixy in various places.
12:22
rakudo/nom: 92df7d5c9a | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Make Mixy (+) Mixy about 45x faster

  - with a 100 element Mix with itself
  - give Mixy (+) Mixy its own candidate written using nqp ops
Zoffix TIL about git show :) 12:26
In fact, the only difference is that I'm wearing pants and my cat isn't staring at me from her cat tree... Though my door locks, so I can rectify at least one of those :P 12:35
nine No, please don't look the cat in! 12:38
Zoffix heh
Geth rakudo/nom: 9e9449e3e8 | (Zoffix Znet)++ | t/02-rakudo/repl.t
Test for extraneous output in a REPL session
12:48
timotimo that phone looks positively ancient :D
Zoffix (I know that test file is currently disabled; gonna try to remember to fix it up and enable it on the weekend) 12:49
Yeah it is :) 12:50
timotimo i'm just trying out plasma, and it's giving me a very wtf thing where i can use alt-1/2/3/4/5/6/7/9/0 to switch to weechat windows 12:51
but alt-8 does nothing at all
alt-8 would get me to this channel... this is a very important channel :|
Geth roast: 81170f3a63 | (Zoffix Znet)++ | S16-filehandles/argfiles.t
Test ^D with get(IO::ArgFiles) does not crash

Rakudo fix: github.com/rakudo/rakudo/commit/4b8fd4a4f9
12:57
rakudo/nom: 3dc08553d0 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
Add R:I.ADD-BAG-TO-BAG worker method

To be used for Baggy (+) Baggy in various places.
13:02
rakudo/nom: ab5cd11b3f | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Make Baggy (+) Baggy about 50x faster

  - with a 100 element Bag with itself
  - give Baggy (+) Baggy its own candidate written using nqp ops
13:05
[Coke] yawns. 13:10
lizmat looks at an interesting set of molars 13:13
MasterDuke_ Zoffix: fwiw, i get `Method 'close' must be called on an object instance of type 'IO::Handle', not a 'IO::Handle' type object. Did you forget a '.new'?` 13:17
yoleaux 10:25Z <Zoffix> MasterDuke_: do you still have your improved messages for "Invocant requires instance" exceptions? Can you start REPL and then exit it via CTRL+D. What method call triggers the "expected instance of IO::Handle" error? 13:18
10:40Z <Zoffix> MasterDuke_: nevermind; located the culprit
Zoffix MasterDuke_: thanks. Indeed it was the close :)
MasterDuke_ going to PR this soon, but it does break some tests in t/spec/S32-exceptions/misc.t and t/spec/S06-signature/types.t that are looking for specific words in a specific sequence 13:20
it might be possible to add the info i did without breaking the tests, but i reworded the message to something i think is a little better 13:21
but i wouldn't say the reworded message is nobel-literature-prize worthy, so don't mind changing if people don't like what i've done 13:24
[Coke] any exception code that's looking for a specific message and not a type should be changable in 6.c-errata 13:27
Geth rakudo/nom: 1b0e41f972 | (Zoffix Znet)++ | 2 files
Fix REPL crash when $*HOME is not set

The .history-file that Linenoise/Readline use uses $*HOME, but it can be unset and defaulted to Nil.
Fix by falling back to using $*TMPDIR in those cases.
Addresses RT#130456: rt.perl.org/Ticket/Display.html?id=130456
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130456
lizmat m: my %h = a => "b"; dd %h.Bag # a bit of a WAT to me 13:47
camelia Type check failed in assignment; expected Int but got Str ("b")
in block <unit> at <tmp> line 1
lizmat m: my %h = a => 42; dd %h.Bag # a bit of a WAT to me
camelia ("a"=>42).Bag
jnthn Hm, how so? 13:51
Possibly the error in the first case could be improved 13:52
lizmat jnthn: I sorta expected Set semantics when coercing to a Bag
so ignoring the value, as it does with the other set operators, set to 1 13:53
jnthn m: my %b is BagHash; %b<a> = 42; dd %b 13:54
camelia ("a"=>42).BagHash
jnthn That's why I'm not surprised by (and would expect) the current behavior, fwiw 13:55
Can always say %h.keys.Bag to get the other thing
lizmat yeah, it was just a bit of a WAT to me 14:16
Geth rakudo/nom: a85b654d5a | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Make Map (+) Map about 2.5x faster

  - with a 26 element Hash with itself
14:22
b2gills Zoffix: I noticed the REPL complaining about IO::Handle instance, it has apparently never bothered me enough to remember to report it 14:33
Zoffix heh 14:36
Geth rakudo/nom: 514124e3a9 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
Add R:I.ADD-ITERATOR-TO-BAG worker method

To be used for Iterable (+) Iterable in various places.
14:52
rakudo/nom: 6de089334c | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Make Iterable (+) Iterable about 18x faster

  - with a 100 element Array with itself
  - give Iterable (+) Iterable its own candidate written using nqp ops
lizmat this concludes the (+) optimizations for now
Geth rakudo: MasterDuke17++ created pull request #1073:
Add method name and received type to type vs instance error
jnthn lizmat: Nice set of speedups on those :) 15:07
lizmat yeah, there's room for more improvement, especially for immutables, but this will do for now :-) 15:08
ugexe m: say v1.1 ~~ v1.*.2; # expected? 15:27
camelia True
ugexe not sure what to expect when the Whatever is not the last item
MasterDuke_ re my PR and tests for messages, i think there are a couple options: 15:28
1) change the texts and/or order of words the current tests check for
2) change the current tests to just check that they throw and add some message tests in rakudo's t/05-messages/01-errors.t
3) try to convert to typed Exceptions and change the current tests to check for those and add some message tests in rakudo's t/05-messages/01-errors.t
ugexe seems like currently a Whatever automatically adds a `+` to the end, so 1.*.2 -> 1.0.2+ which ACCEPTS v1.1 15:31
MasterDuke_ these are the failing tests: github.com/perl6/roast/blob/master....t#L40-L48 and github.com/perl6/roast/blob/master...#L795-L798 15:33
Geth rakudo/nom: ba3cf4e5b4 | (Timo Paulssen)++ | lib/Test.pm6
"like" shall not crash the script when a non-Str is passed

for example, when you were like `@things[2]` and there weren't enough items. also, the "hack to deal with failures" was never going to work, as Failure can't get passed to a Str parameter
15:39
rakudo/nom: 9cb26c0927 | (Elizabeth Mattijsen)++ | 11 files
Remove unnecessary saving of nqp::iterator values

You can use the iterator value itself after an nqp::shift.
15:50
Zoffix votes options 3 16:09
m: try Str.contains: 42; say $!.^name 16:10
camelia X::Multi::NoMatch
Zoffix m: try IO::Handle.close; say $!.^name
camelia X::AdHoc
Zoffix yeah, adhocs are ewwy
m: ((1, 2).Seq, (3, 4).Seq).sort({$^b[0] <=> $^a[0]}).say 16:56
camelia ((3 4) (1 2))
Zoffix m: ((1, 2).Seq, (3, 4).Seq).sort({$^b[0] <=> $^a[0]}).perl.say
camelia (Seq.new-consumed(), Seq.new-consumed()).Seq
Zoffix doesn't get how it's unconsumed in one case but is consumed in another
m: ((1, 2).Seq, (3, 4).Seq).sort({$^b[0] <=> $^a[0]}).cache.perl.say 16:58
camelia (Seq.new-consumed(), Seq.new-consumed())
Zoffix m: use nqp; my $s := ((1, 2).Seq, (3, 4).Seq).sort({$^b[0] <=> $^a[0]})[0]; dd nqp::getattr($s, Seq, '$!iter').DEFINITE 17:06
camelia Bool::False
Zoffix c' 17:07
c'mon, bug... I'm gonna find you. No point in hiding! 17:08
Zoffix tries a thing 17:11
Ohh yes 17:20
A juicy 1-year old bugglet. 17:21
ZofBot: yummy, yummy!
ZofBot Zoffix, more like, what are those 383 about?
Zoffix ZofBot: that's my stash for the rainy day! Stay out of it!
ZofBot Zoffix, ) The default "BUILD" semantics are inherited from "Mu", so you need to write initialization routines only if you wish to modify the default behavior
Zoffix ZOFFLAP: t/spec/S11-modules/require.t 17:22
I mean 17:23
ZOFFLOP: t/spec/S11-modules/require.t
ZOFFLOP: t/spec/S11-modules/nested.t
Also:
ZOFFLOP: t/spec/S32-io/indir.t # reported yesterday; still to see what's up with it 17:24
Geth rakudo/nom: 54f50956ad | (Zoffix Znet)++ | src/core/Seq.pm
Fix Seq.perl for cached Seqs

The conditional checking whether Seq is consumed is phrased incorrectly and erroneously declares as consumed Seqs that no longer have $!iter, but do have a cache in $!list.
Fixes RT#131222: rt.perl.org/Ticket/Display.html?id=131222
17:34
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131222
japhb Zoffix: Idea for the 'buggable: speed' sparkline: 1. Calc mean and standard deviation 2. Replace every entry that is more than e.g. 2 deviations from the mean with an arrow such as ā†‘/ā†“ (U+2191 and U+2193). 3. Recalculate the displayed range to only include the values that are <= 2 deviations from the mean, and scale the unicode bars appropriately. # This should keep outliers from flattening all the other values, while still highlighting them in a useful 17:35
Geth roast: 7d4092d940 | (Zoffix Znet)++ | S32-list/seq.t
Test Seq.perl works on cached Seqs

RT#131222: rt.perl.org/Ticket/Display.html?id=131222 Rakudo fix: github.com/rakudo/rakudo/commit/54f50956ad
17:36
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131222
Zoffix japhb: awesome! Can't wait to merge the PR :P
buggable: speed
buggable Zoffix, ā–‚ā–‚ā–‡ā–ā–‡ā–ƒā–‡ā–ā–‚ā–ā–ā–‚ā–„ā–„ā–‚ā–„ā–‚ā–ƒā–ˆā–…ā–‚ā–‚ā–„ā–ƒā–„ā–„ā–ƒā–ƒā–„ā–ƒā–ƒā–ˆā–„ā–†ā–…ā–…ā–…ā–„ā–†ā–…ā–„ā–ƒā–…ā–„ā–‚ā–‚ā–ƒā–„ā–„ā–‡ data for 2017-04-07ā€“2017-04-28; range: 4.921sā€“5.479s; 9% slower
Zoffix +/-2SD is like ~97% of data innit? Will it really help much? 17:37
japhb Zoffix: Happy to. Buggable doesn't appear to be in whateverable ... where is it?
Zoffix buggable: source 17:38
buggable Zoffix, See: github.com/zoffixznet/perl6-buggable
Zoffix japhb: specifically this: github.com/zoffixznet/perl6-buggab.../Speed.pm6
japhb Zoffix: Yes, if the data was normally distributed. But it's not. We're just (ab)using the calculation to find outliers.
Zoffix japhb: you can probably just run that module by itself on command line and feed it Strs to methods
japhb: ah right! 17:39
japhb Zoffix: Ah, good thinking
Zoffix & 17:43
timotimo that is not where i expected that bug to be there 17:46
lizmat m: class A { ... }; method A::foo() { "foo" }; class A { }; dd A.foo # bug or case of DIHWIDT ? 18:06
camelia Potential difficulties:
Useless declaration of a has-scoped method in mainline (did you mean 'my method A::foo'?)
at <tmp>:1
------> 3class A { ... }; method7ā5 A::foo() { "foo" }; class A { }; dd A.f
No such method 'foo' for inā€¦
lizmat m: class A { ... }; my method A::foo() { "foo" }; class A { }; dd A.foo # no warning
camelia No such method 'foo' for invocant of type 'A'
in block <unit> at <tmp> line 1
lizmat m: class A { ... }; my method A::foo() { "foo" }; class A { }; dd A.foo # no warning
camelia No such method 'foo' for invocant of type 'A'
in block <unit> at <tmp> line 1
lizmat m: class A { ... }; our method A::foo() { "foo" }; class A { }; dd A.foo # our doesn't help either 18:07
camelia No such method 'foo' for invocant of type 'A'
in block <unit> at <tmp> line 1
Zoffix thinks it'd be weird if you could augment a class just by declaring a method elsewhere... 18:54
There is a ticket that also references a discussion on this topic vis-a-vis doing this sort of stuff but looks like for a package var/sub; not a class's method: rt.perl.org/Ticket/Display.html?id...et-history 18:55
geekosaur votes for DIHWIDT; if someone is trying to emulate perl 5 behavior, that's because perl 5 "OO" was a hack using package scoped subs as methods 18:59
and yes, it'd be weird and bad if defining a package-scope sub did an "augment", especially without a MONKEY 19:00
jnthn Indeed. In Perl 6, method dispatch doesn't look at the contents of packages or lexpads, only in the meta-object 19:05
my blah A::foo means the A is lexically visible 19:06
The foo will be our-scoped within A because there's nothing else it could be :)
lizmat jnthn: note this was a method 19:08
jnthn That's irrelevant.
lizmat anyways, DIHWIDT it is :-)
maybe it shouldn't be silent, though :-)
jnthn Once you stick a my or our on the thing, it's just a Method code object that's getting put into the lexpad or package
Which is OK if you wanted to do it, but isn't a way to get something into the method dispatch table that the .foo calling syntax will care about. 19:09
I'd count it as "unusual to want to do, but an unusual thing to do by accident" :) 19:10
Well, I guess depending where you're coming from :)
Geth rakudo/nom: 39ede87d1c | (Elizabeth Mattijsen)++ | 2 files
Move %*ENV initialization logic to R:I
geekosaur again, it makes sense as a p5-ism 19:15
Geth rakudo/nom: d3e8c82dc2 | (Elizabeth Mattijsen)++ | src/core/Env.pm
Implement %?ENV for the core setting

This may need some more thought. I thought this was specced, but apparently it isn't. Anyways, this will probably need to be done to any package being precomped. Hence the move of the initialization logic to R:I.
Please revert if this is deemed a bad idea.
19:16
timotimo oh, so this gives you the env at precompilation time?
lizmat well, currently at core setting build time
timotimo oh, "for the core setting" 19:26
i didn't read that
lizmat timotimo: yeah, we would need to stick it in the package of a precomped module before writing to disk :-) 19:30
timotimo fortunately we can easily serialize hashes now 19:32
lizmat yes, exactly :-)
Geth star: 5a5c84d432 | (Steve Mynott)++ | tools/star/Makefile
bump moar to 2017.04-53-g66c6dda to fix old GCC systems like Centos 6 and OpenBSD
19:42
stmuk_ pl6anet.org/drop/rakudo-star-2017.04-RC1.tar.gz 19:45
MasterDuke_ anybody have a suggestion for what typed Exception(s) to use for my PR? 19:55
timotimo X::No 19:56
MasterDuke_ heh. i'll do the easy part of adding them, but am hoping to shift the blame for naming them 19:58
timotimo good idea
Zoffix X::NotInstance 20:03
X::NeedInstance
or I guess X::Parameter::NotInstance 20:06
we have ::InvalidType, so maybe ::InvalidDefinetness or something more pronounceable 20:07
lizmat do we have a quick way of resetting an nqp::hash (aka deleting all the keys) ? 20:09
Zoffix m: class { has Str:D $.foo }.new
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable definition of type Str:D requires an initializer
at <tmp>:1
------> 3class { has Str:D $.foo 7ā5}.new
MasterDuke_ ::InvalidConcreteness ? 20:18
Zoffix Do we use concreteness as term? 20:19
MasterDuke_ nqp::isconcrete is in the if there
"concrete" is in the rakudo source some 20:20
timotimo "instantiatedness" is not better :) 20:21
MasterDuke_ also, aside from typed exceptions, what about my modifications to the language in the message? any comments/suggestions? 20:22
Geth rakudo/nom: 48ce87011f | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Make (.) a multi

Start of optimization work on (.)
20:47
rakudo/nom: afd24a881d | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
Add R:I.MULTIPLY-SET-TO-BAG worker method

To be used for Setty (.) Setty in various places.
rakudo/nom: 1562da070d | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Make Setty (.) Setty about 35x faster

  - with a 100 element Set with itself
  - give Setty (.) Setty its own candidate written using nqp ops
Zoffix m: (try require JSON::Fast <&to-json>) === Nil and &to-json = sub { Rakudo::Internals::JSON.to-json($^a); }; dd to-json 42 21:01
camelia "42"
Zoffix wishes Rakudo::Interanls.*json were unavailable to users so people would not abusedly use it :\ 21:02
[Coke] (in general, when adding exceptions, use more generic exception types and add the deets in the message) 21:03
MasterDuke_ [Coke]: there's a continuum though, since what i'm replacing is in fact the most generic exception with all the details in the message 21:07
[Coke] Sure, of course. 21:13
unfortunately, the list of exceptions was grown organically, I suspect we'll have to be more rigorous in .d, and .e
MasterDuke_ yep. i'm currently working on X::InvalidConcreteness, but am still open to suggestions 21:16
Zoffix Is it just for params tho?
We have a bunch of X::Param::* exceptions
MasterDuke_ and invocant
Zoffix invocant is a param
I'm eating the weirdest ice-cream: chocolate, in a jello-like banana flavoured coating :S 21:18
MasterDuke_ sure, technically, but do most people think of it as one?
Zoffix does
MasterDuke_ or are you suggesting X::Param::InvalidConcreteness?
Zoffix Yeah
X::Param::SomethingOrOther
MasterDuke_ that's an easy change
Zoffix Should Seq.Capture .cache the stuff? 21:19
Zoffix leans towards "no" and tries it out 21:20
ugh 21:31
Note to self: CTRL+V into GitHub editor when an image in your copy-paste buffer automatically uploads it :S
timotimo yes, indeed :| 21:32
wonder if it gets deleted when you throw out the reference from the text box
Zoffix Sounds nifty.... Unless you find it out by accident and your screenshot contains data you rather not share with the world :/
timotimo yeah 21:33
a userscript could be made
Geth roast: 15806c4d46 | (Zoffix Znet)++ | S32-list/seq.t
Remove trailing whitespace
21:37
Zoffix now notices the taking-forever fudger TimToady mentioned before 21:42
japhb Zoffix: Finally popped enough $work off my stack to send you a Buggable PR 21:44
timotimo what, autounfudge? 21:45
Zoffix timotimo: no, the fudger that runs when you run `make stresstest` 21:46
timotimo oh
Zoffix takes like... 7-10 s
timotimo i'm not sure i know about that
Zoffix Used to be faster
ZOFVM: Files=1242, Tests=133834, 124 wallclock secs (24.72 usr 3.45 sys + 2592.86 cusr 144.62 csys = 2765.65 CPU) 21:49
Geth rakudo/nom: 98e137b1fe | (Zoffix Znet)++ | src/core/Seq.pm
Implement Seq.Capture

So users could unpack Seqs into stuff.
Fixes issue mentioned in comments in RT#131222:
  rt.perl.org/Ticket/Display.html?id...xn-1458022
21:51
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131222
roast: b218a1ac01 | (Zoffix Znet)++ | S32-list/seq.t
Test Seq.Capture

Rakudo fix: github.com/rakudo/rakudo/commit/98e137b1fe
21:52
lizmat good night, #perl6-dev! 22:02
samcv night lizmat 22:04
MasterDuke_ o/
japhb Night, lizmat!
samcv also guys. should `author` be an allowed key in META6.json. it's not in the spec
`authors` is which is a list. but many commonly use `author` instead. should we change the spec or bring modules into compliance with the spec
Zoffix night
samcv: IMO yes 22:05
samcv which one
Zoffix oh
samcv ask an OR question and get yes as the response :P
Zoffix thinks more and withdraws the yes
jnthn I had and maybe still have modules with "author" instead of "authors" 22:06
samcv imo i think we shouldn't have redundant fields
you have many jnthn :)
jnthn And tbh I really can't be bothered with fixing that. :P
Zoffix samcv: I'm gonna go with "Having aut
ugexe author is required for backcompat
Zoffix gah
samcv is it?
Zoffix samcv: I'm gonna go with "having `authors` and bring to back compat" 22:07
ugexe: is this stuff even tested? I thought META wasn't tested at all
samcv with older rakudo?
most modules only have "authors"
ugexe its not, but we still made sure we didn't break any existing modules that are installed when we did the s22/distribution PRs
jnthn What is used to determine the auth? 22:08
ugexe the old Distribution defined `auth` as $!auth // $!author // $!authority
samcv ok. but the question is. should 'author' be in the spec? or be not specced
and the people be told to use 'authors' instead
that's the question. i'm not saying to remove support for it from anything that allows it to exist
that's a different issue from what the standard should be imo
ugexe right 22:09
Zoffix samcv: my reasoning is: `author` is nice, but a string value goes with it, not an array. So then we just add more confusion: which value is right with which key. And if we just alias the keys and accept weird stuff like `"authors": "Zoffix" / "author" : ["Zoffix"]` then all the tools need to be taught to handle all those combinations, so natural outcome is to just have `authors` that takes an array
samcv yeah
that's much easier
ugexe i use 'owner' in my stuff... originally i considered auth to be `$owner + $content_storage` (which aren't specced in s22 but mentioend) 22:10
but really auth should just be its own thing, so no real need for owner/author i suppose
samcv owner is kind of vague. own what? copyright? the repo? idk.
Zoffix still isn't sure what ends up being the `auth`
samcv but 'creator' would be ok for me instead of 'author'
errr i mean
ugexe you owned the urn
jnthn I'd presumed the author I was filling out in META6.json was the auth :)
samcv creator instead of owner
ugexe owner:service 22:11
Zoffix jnthn: but what about multiple authors?
ugexe ugexe:github
Zoffix Like 20-40 authors. Some Perl 5 modules have that many listed
Fun to make that an `auth` :P
jnthn Right, which is why there's probably two separate things needed here 22:12
samcv heh
Zoffix Yeah, agreed
jnthn authors which is just a list of people who contributed for...whatever purpose :)
samcv auth = authorization right?
ugexe authority
jnthn samcv: It's deliberately ambiguous between author and authority
Zoffix { "authors" : [ "Zoffix Znet", "NeuralAnomaly" ], "auth": "github:perl6" }
lizmat agree, "auth" is immutable for a distribution, "authors" isn't
samcv yeah that
lizmat really sleep&
samcv authority and authorization are the same uh. thingy
authority authorizes etc. 22:13
ugexe authorization does not take place
it could i guess
but thats something for the recommendation managers / content storages to handle
samcv well in the future..
yeah
check the auth is the same as where it got it from
ugexe no 22:14
samcv no?
ugexe auth has no relation to where it comes from
coincidently it almost always is, but thats not its purpose
samcv so it's not meant to have any verification?
ugexe no, a recommendation manager / content storage could build in verification for uploads though 22:15
samcv yes
for sure
ugexe but if i have Foo::Bar:ver<1>:auth<XXX> and upload that to the ecosystem, cpan, and SomeOtherService it should retain its identity across them 22:16
samcv i agree
ugexe fwiw I don't think authors even got saved pre 2017.07 or so (before s22 PR) 22:22
(when being installed)
er 2016.07 22:23
Geth rakudo/nom: 5e74017d60 | (Zoffix Znet)++ | src/core/QuantHash.pm
Implement QuantHash.Capture

So users could unpack all the QuantHashes into stuff
roast: da28f4dc6f | (Zoffix Znet)++ | S02-types/keyhash.t
Test QuantHash.Capture

Rakudo impl: github.com/rakudo/rakudo/commit/5e74017d60
22:24
Zoffix 2015.07 maybe? 22:25
I don't recall any S22 PRs, but I do remember there being S22 badge on ecosystem site for complying with latest S22 spec when I came to Perl 6
ugexe that was complying with panda spec 22:31
github.com/rakudo/rakudo/pull/729 22:32
Zoffix Ah. cool 22:37
buggable: speed 22:57
buggable Zoffix, ā–‚ā–‚ā–ˆā–ā–‡ā–„ā–‡ā–ā–ƒā–ā–ā–‚ā–„ā–„ā–‚ā–„ā–‚ā–ƒā†‘ā–†ā–ƒā–‚ā–„ā–„ā–„ā–„ā–„ā–„ā–…ā–„ā–„ā†‘ā–…ā–‡ā–…ā–…ā–…ā–…ā–‡ā–†ā–…ā–„ā–…ā–…ā–‚ā–‚ā–ƒā–„ā–„ā–ˆ data for 2017-04-07ā€“2017-04-28; range: 4.921sā€“5.479s; 9% slower
Zoffix neat
buggable: speed 80
buggable Zoffix, ā–ƒā–ƒā–‚ā–„ā–„ā–‚ā–‚ā–ƒā–ƒā–‚ā–‚ā†‘ā–„ā–‚ā–ā–ā–ā–‚ā–‚ā–‚ā–…ā–ā†‘ā–‚ā–„ā–ƒā–‚ā–ā–‚ā–‚ā–ƒā–ƒā–‡ā–‚ā–‡ā–„ā–‡ā–‚ā–ƒā–‚ā–‚ā–ƒā–…ā–…ā–ƒā–„ā–ƒā–„ā–ˆā–†ā–ƒā–ƒā–„ā–„ā–„ā–„ā–„ā–„ā–…ā–„ā–„ā–ˆā–…ā–‡ā–…ā–…ā–…ā–…ā–†ā–†ā–…ā–„ā–…ā–…ā–ƒā–ƒā–„ā–„ā–„ā–‡ data for 2017-03-22ā€“2017-04-28; range: 4.829sā€“6.637s; 9% slower
Zoffix Zoffix, ā–‚ā–‚ā–‚ā–‚ā–‚ā–ā–ā–‚ā–‚ā–ā–ā–ˆā–‚ā–ā–ā–ā–ā–ā–ā–ā–‚ā–ā–„ā–ā–‚ā–‚ā–ā–ā–ā–ā–‚ā–‚ā–ƒā–ā–ƒā–‚ā–ƒā–ā–‚ā–ā–ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–ƒā–ƒā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–„ā–‚ā–ƒā–ƒā–ƒā–ƒā–‚ā–ƒā–ƒā–‚ā–‚ā–ƒā–‚ā–‚ā–‚ā–‚ā–‚ā–‚ā–ƒ data for 2017-03-22ā€“2017-04-28; range: 4.829sā€“6.637s; 9% slower
japhb++ nice one 22:58
japhb Zoffix: Thought you might like that. :-)
timotimo like what? what did i miss? :( 23:11
japhb timotimo: Note the difference between the last buggable that Zoffix requested, and the old output from the same query he pasted just below. 23:12
timotimo oh, it has little arrows now? 23:13
japhb timotimo: The new code handles outliers better, so one large value doesn't cause the rest of the range to get all compressed.
timotimo cool!
japhb The arrows indicate outlying values in the arrow direction. :-)
timotimo fant4stic 23:15
MasterDuke_ this has been a very broken-up coding session, how bad is this code? gist.github.com/MasterDuke17/ff704...6ca0d7cbbe 23:31
timotimo oh, you have nothing for the case where a parameter might be anonymous 23:35
MasterDuke_ think it should be handled in the exception? 23:36
timotimo do you think we can get the index of the parameter?
so it could either be a string with the name or an int with the index?
and based on the type it'd say "anonymous parameter number $foo" or "parameter '$param'" 23:37
not sure if it'd help a lot
also, anything about subsignatures?
MasterDuke_ what about them?
timotimo maybe it'd be a good idea to split param vs invocant
well, it could point out that it's not the parameter of the routine directly but from a subsignature
i think i'll go to bed now 23:38
have a good one!
MasterDuke_ split them more than this? `my $beginning = $!param-is-invocant ?? 'Invocant of method' !! "Parameter '$!param' of routine";`
timotimo yeah 23:39
have others weigh in on this before accepting my suggestion please :)
MasterDuke_ heh, sure. later...