JJMerelo Reminder: Raku user survey, please fill it :-) docs.google.com/forms/d/e/1FAIpQLS...Q/viewform 07:44
tellable6 2020-08-24T16:59:00Z #raku <tbrowder> jjmerelo: i used the safari browser which i rarely use and still don't see the change on the nativecall page.
JJMerelo .tell tbrowder it's under a CDN, sometimes changes take a bit of time... I can deploy today again just in case. 07:45
tellable6 JJMerelo, I'll pass your message to tbrowder
MasterDuke m: my @a = ("a" .. "zzz")[]; say @a[(^@a).pick]; say @a.elems; 09:45
camelia hrr
18278
MasterDuke m: my @a = ("a" .. "yzz")[]; say @a[(^@a).pick]; say @a.elems;
camelia d
25
MasterDuke is ^^^ expected? only if the first letter on the rhs is a 'z' will it create all the multi-char entries in the range 09:46
lizmat hmmm... 09:49
MasterDuke looks like it should be going through this block github.com/rakudo/rakudo/blob/mast...#L164-L169 09:50
lizmat looking at the code, it appears it turns it into ... sequence if the lengths of the strings do not match
timotimo coverable6: my @a = ("a" .. "yzz")[]; say @a[(^@a).pick]; say @a.elems; 09:51
coverable6 timotimo, and I oop! Backtrace: gist.github.com/1a352b13d1d60da3ae...85317ea420
lizmat and *that* uses .succ until the string cmps greater than the right hand side
m: dd "z" cmp "yzz"
camelia Order::More
timotimo interesting
lizmat so that makes it stop then
AlexDaniel timotimo: which bot did you want? 09:52
lizmat I'm *not* saying it should be that way, just describing why it does it now
timotimo i did want coverable
since it shows you what lines are being hit by a code example
AlexDaniel timotimo: ahh… yeah, I'll take a look later 09:54
MasterDuke lizmat: makes sense (the explanation of what is happening). also interesting is the difference between a range and a sequence 09:55
where in this case the sequence is 100x faster
lizmat because it does less?
MasterDuke m: my @a = ("a" .. "za")[]; say @a[(^@a).pick]; say @a.elems; say now - INIT now
camelia qj
677
0.0325126
MasterDuke m: my @a = ("a" ... "za")[]; say @a[(^@a).pick]; say @a.elems; say now - INIT now
camelia tz
677
0.036371
MasterDuke m: my @a = ("a" .. "za")[*]; say @a[(^@a).pick]; say @a.elems; say now - INIT now 09:56
camelia og
677
5.46495354
MasterDuke m: my @a = ("a" ... "za")[*]; say @a[(^@a).pick]; say @a.elems; say now - INIT now
camelia jn
677
0.048007
MasterDuke .. with [*] is the outlier here
timotimo oh, is there a way to get coverable to not sort the hit lines so you get more like a trace?
MasterDuke does coverable sort? don't remember now 09:57
lizmat hmmm.....
timotimo line 90 runs sort
MasterDuke ah
lizmat MasterDuke: could you make an issue for the Range[*] case ?
MasterDuke R#3865
linkable6 R#3865 [open]: github.com/rakudo/rakudo/issues/3865 [performance] Slow code when using whatever star in index to return full-length object (who'da thunk?)
timotimo coverable6: HEAD my @a = ("a" .. "yzz")[]; say @a[(^@a).pick]; say @a.elems; 09:59
coverable6 timotimo, gist.github.com/38f367e054fd4c7dcc...d2e7859e2b 10:00
AlexDaniel did you fix it? :) 10:01
timotimo looks like the problem was just not giving it a valid commit
AlexDaniel ahhh
timotimo and the problem wasn't reported at the earliest point for some reason
i'd put "my" into the regex with "sub" and "say" that finds out you're actually passing code instead of commit 10:05
AlexDaniel timotimo: but github.com/Raku/whateverable/blob/...p6#L74-L78 ? 10:06
timotimo yeah, could you imagine to-full-commit getting "my" "wrong"? 10:07
committable6: my say "hi"
committable6 timotimo, ¦my: «Cannot find this revision (did you mean “nom”?)»
timotimo hmm
Geth ¦ rakudo: patrickbkr self-assigned Alpine build "raku -V" says "No exception handler located for catch" github.com/rakudo/rakudo/issues/3875 10:10
Xliff nine: Let me know if you need a tester for OBS 10:27
lizmat Xliff: nine is on holiday for at least another week 11:06
Geth nqp: patrickbkr++ created pull request #661:
Fix `raku -V`
11:34
rakudo: patrickbkr++ created pull request #3876:
Fix `raku -V`
11:37
nqp: 04d53f0237 | (Patrick Böker)++ | src/HLL/Compiler.nqp
Fix `raku -V`

The rename of `Compiler.config()` to `Compiler.sysconfig()` failed to rename all uses. Also the naming is a bit unfortunate, as that method does not return the `SysConfig` object, but the build configuration. So just give it back its old name.
12:31
nqp: 461eb8b46f | (Patrick Böker)++ (committed using GitHub Web editor) | src/HLL/Compiler.nqp
Merge pull request #661 from patrickbkr/fix-raku-v

Fix `raku -V` (requires matching rakudo PR)
Geth roast/master: 30 commits pushed by rir++, (Vadim Belman)++
review: github.com/Raku/roast/compare/f59c...14cd497107
15:14
gfldex raku: class C { has $!var handles <gist FETCH>; method STORE(\v) { $!var := v } } constant term:<$c> = C.new; $c = 42; say $c.WHAT; 15:58
evalable6 (exit code 1) 04===SORRY!04=== Er…
gfldex, Full output: gist.github.com/c03daebf766911de48...8acc3e5970
gfldex this class is unWHATable :->
timotimo m: raku: class C { has $!var handles <gist FETCH>; method STORE(\v) { $!var := v } } constant term:<$c> = C.new; $c = 42; say $c.VAR.WHAT 15:59
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3ETCH>; method STORE(\v) { $!var := v } }7⏏5 constant term:<$c> = C.new; $c = 42; sa
expecting any of:
16:00
Geth rakudo/introducing-allomorph-class: 4872c3f068 | (Elizabeth Mattijsen)++ | 7 files
Properly capitalize the Allomorph class
gfldex .WHAT depends on gist and handles seams not to work here
timotimo m: raku: class C { has $!var handles <gist FETCH>; method STORE(\v) { $!var := v } }; constant term:<$c> = C.new; $c = 42; say $c.VAR.WHAT
camelia Cannot look up attributes in a C type object
in block <unit> at <tmp> line 1
gfldex raku: class C { has $!var handles <FETCH>; method STORE(\v) { $!var := v } } constant term:<$c> = C.new; $c = 42; say $c.WHAT;
evalable6 (exit code 1) 04===SORRY!04=== Er…
gfldex, Full output: gist.github.com/07206a3b12a7dced48...080d7607a3
timotimo you still need that semicolon 16:01
Geth rakudo/master: 7 commits pushed by (Elizabeth Mattijsen)++ 16:02
gfldex raku: class C { has $!var handles <FETCH>; method STORE(\v) { $!var := v } }; constant term:<$c> = C.new; $c = 42; say $c.WHAT; 16:04
evalable6 (C)
gfldex raku: class C { has $!var handles <gist FETCH>; method STORE(\v) { $!var := v } }; constant term:<$c> = C.new; $c = 42; say $c.^name; 16:05
evalable6 C
gfldex Does .WHAT really depend on .gist on type objects?
raku: class C { has $!var handles <Str>; method STORE(\v) { say 'storing'; $!var := v }; method FETCH { $!var } }; constant term:<$c> = C.new; $c = 42; say $c; 16:11
evalable6 storing
C.new
gfldex FETCH is not called in this case. 16:12
vrurg c: introducing-allomorph-class class Foo is IntStr {}; say IntStr.new(42, ‘forty two’) eqv Foo.new(42, ‘forty two’) 16:45
committable6 vrurg, ¦introducing-allomorph-class: «False␤»
vrurg c: introducing-allomorph-class class Foo is IntStr {}; say IntStr.new(42, ‘forty two’) ~~ Foo.new(42, ‘forty two’)
committable6 vrurg, ¦introducing-allomorph-class: «True␤»
lizmat vrurg: he, good point 17:10
they should match, I guess
hmmm... or maybe not 17:11
c: introducing-allomorph-class class Foo is IntStr {}; say Foo.new(42, ‘forty two’) ~~ IntStr.new(42, ‘forty two’)
committable6 lizmat, ¦introducing-allomorph-class: «True␤»
lizmat hmmm... not sure whether *that* should be true 17:12
vrurg lizmat: Smartmatch must be true. Foo is IntStr and has the same value. 17:13
AlexDaniel c: introducing-allomorph-class,HEAD class Foo is IntStr {}; say Foo.new(42, ‘forty two’) ~~ IntStr.new(42, ‘forty two’) 17:14
committable6 AlexDaniel, ¦introducing-allomorph-class,HEAD(64dfb2e): «True␤»
AlexDaniel c: introducing-allomorph-class,HEAD class Foo is IntStr {}; say IntStr.new(42, ‘forty two’) eqv Foo.new(42, ‘forty two’)
committable6 AlexDaniel, ¦introducing-allomorph-class: «False␤» ¦HEAD(64dfb2e): «True␤»
Geth rakudo: f98861ad1f | (Ben Davies)++ | src/core.c/Buf.pm6
Make Blob.gist work for all sizes of Blob

Blob.gist would throw with non-8-bit Blobs. This should make it so Blob.gist will work for any size of Blob, including future 1/2/4-bit ones.
17:34
rakudo: ca5e8df02d | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/Buf.pm6
Merge pull request #3812 from Kaiepi/blob-gist

Make Blob.gist work for all sizes of Blob
AlexDaniel c: introducing-allomorph-class,HEAD NumStr.new(Inf, ‘9999’).Int 18:05
committable6 AlexDaniel, ¦introducing-allomorph-class: «Cannot convert Inf to Int: ␤ in block <unit> at /tmp/VEKIS1e2jH line 1␤␤ «exit code = 1»» ¦HEAD(ca5e8df): «Cannot convert 9999 to Int: ␤ in block <unit> at /tmp/VEKIS1e2jH line 1␤␤ «exit code = 1»»
AlexDaniel lizmat: any thoughts on where this difference is coming from?
the new error message is probably better, but still 18:06
lizmat I guess it's because of it calling Str.Int 18:08
hmmm
no... I guess .Str takes the string in the error message
and I don't think the new error message is better, as "9999" *can* be coerced to Int 18:11
AlexDaniel lizmat: but that's the old one :) 18:12
lizmat aaaah... :-)
AlexDaniel it's still a bit worrying because the .Str or whatever was called on a different part of the object 18:13
yes, the error message became better, but it could also be that the behavior changed in some of the methods of NumStr allomorphs 18:14
Geth rakudo/negation-of-junctions-not-special: a51458e6b8 | (Elizabeth Mattijsen)++ | 2 files
Return a Junction that collapses to its opposite Bool

This passes the examples given by jnthn.
Reduces test failures to:
t/spec/S03-junctions/autothreading.t (Wstat: 512 Tests: 106 Failed: 2)
   Failed tests: 78-79
18:24
Geth rakudo/negation-of-junctions-not-special: bfd313854b | (Elizabeth Mattijsen)++ | 2 files
Remove special handling of ne and != wrt Junctions

This is a proof of concept. It breaks the following tests:
t/spec/S03-junctions/boolean-context.t (Wstat: 256 Tests: 74 Failed: 1)
   Failed test: 72
t/spec/S03-junctions/autothreading.t (Wstat: 768 Tests: 106 Failed: 3) ... (9 more lines)
18:52
rakudo/negation-of-junctions-not-special: dc8c1f0f5f | (Elizabeth Mattijsen)++ | 2 files
Return a Junction that collapses to its opposite Bool

This passes the examples given by jnthn.
Reduces test failures to:
t/spec/S03-junctions/autothreading.t (Wstat: 512 Tests: 106 Failed: 2)
   Failed tests: 78-79
lizmat hmmm... rather more verbosity for a rebase than I expected
timotimo i wonder why, sometimes it doesn't do that 18:56
AlexDaniel I'm pretty sure it always does that 20:19
the only time it doesn't is if you rebase a loooot of commits
in which case it doesn't list them
[Tux] Rakudo version 2020.08.1-3-g461eb8b46 - MoarVM version 2020.08-4-g0e7417add
csv-ip5xs0.992 - 1.044
csv-ip5xs-2010.586 - 10.854
csv-parser24.789 - 26.511
csv-test-xs-200.403 - 0.416
test7.934 - 9.528
test-t1.947 - 1.977
test-t --race0.860 - 0.865
test-t-2033.283 - 36.455
test-t-20 --race9.984 - 10.053
20:53
Geth rakudo: codesections++ created pull request #3878:
Add definiteness constraint to convenience methods
21:23
Geth ¦ rakudo: lizmat self-assigned Supply.head($n) is not done when it should be github.com/rakudo/rakudo/issues/3877 21:42
roast: 86272fb848 | (Elizabeth Mattijsen)++ | S17-supply/head.t
Add test for #3877
21:50
rakudo/fix-3877: 46a7299822 | (Elizabeth Mattijsen)++ | src/core.c/Supply-coercers.pm6
Fix for #3877
21:51
rakudo: lizmat++ created pull request #3879:
Fix for #3877
21:52
linkable6 RAKUDO#3877 [open]: github.com/rakudo/rakudo/issues/3877 [ASYNC] Supply.head($n) is not done when it should be
Geth roast: dddcec5561 | (Elizabeth Mattijsen)++ | S17-supply/head.t
Fix test for just 1 emit

  - also skip it for now, because this will hang on master
21:57
lizmat which concludes my hacking for today& 21:58