Geth rakudo/is-unit-tester: 930b037aac | (Elizabeth Mattijsen)++ | 2 files
Rename to is test-assertion

After a suggestion by jnthn. Also move this trait as an exported sub from Test, so the core doesn't have to actually have this.
01:37 frost-lab joined 01:50 zostay left, lucasb left 01:51 zostay joined, lucasb joined 02:13 Xliff left 02:52 lucasb left
Geth nqp: 59c15fa021 | Coke++ | t/docs/opcodes.t
Skip more non-exposed opcodes
[Coke] Down to 187
apparently when I did the last check for non-exposed opcodes, I missed several. 03:04
06:47 maggotbrain joined 07:12 sena_kun joined 07:34 patrickb joined 08:08 Altai-man joined 08:11 sena_kun left 08:23 Xliff joined 08:58 frost-lab left
Geth rakudo: patrickbkr++ created pull request #3993:
Fix formatting errors in docs/running.pod
rakudo: f4b38a173f | (Patrick Böker)++ | docs/running.pod
Fix formatting errors in docs/running.pod
rakudo: 084b92a328 | (Patrick Böker)++ (committed using GitHub Web editor) | docs/running.pod
Merge pull request #3993 from patrickbkr/fix-doc_running-format-errors

Fix formatting errors in docs/running.pod
09:24 domidumont joined
Geth rakudo/is-unit-tester: fa561564cc | (Elizabeth Mattijsen)++ | src/core.c/traits.pm6
Remove mention of old "is-assertion" name

Also note: since the trait now lives in the Test module itself, it does not need to be mentioned here at all.
rakudo/is-unit-tester: c4e5db6a7a | (Elizabeth Mattijsen)++ | src/core.c/traits.pm6
Oops, a little overzealous in deleting the old term
09:35 AlexDaniel joined, AlexDaniel left, AlexDaniel joined
AlexDaniel samcv: can you please double check? Files changed → Review changes 09:36
I changed something but from what I see you should've had permissions anyway
Geth rakudo: 585db59c9a | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | lib/Test.rakumod
Introducing Routine is test-assertion trait (#3991)

Introducing Routine is test-assertion trait
Marking a subroutine with the "is test-assertion" trait, indicates that the subroutine produces Test (aka TAP) output. All of the exported subroutines in Test implicitely have this trait. ... (24 more lines)
linkable6 RAKUDO#3991 [closed]: Introducing Routine is test-assertion trait
lizmat seems to have gotten an immediate like so I merged it ^^ 09:37
AlexDaniel lizmat: yeah that's a nice addition, I think whateverable has weird line numbers in tests too 09:39
kinda forces you to write good test descriptions, so that it's easily findable :)
.oO( Hmmm.... adding default values to usage output could go into Main.pm6 at line 258... )
lizmat Xliff: PR ? 09:42
Xliff lizmat: Thinking of creating one. See:
lizmat Ah, you mean automatic insertion of the Parameter.default value... makes sense 09:43
Xliff :) 09:44
AlexDaniel it does makes sense, I did want something like this recently
Xliff: just make sure to add some checks so that it doesn't always just dump whatever the default value is
I'm not sure what the criteria could be though 09:45
Xliff $p.default must be defined, it must not be empty, if Str then surround with ''
AlexDaniel and if it's one thousand characters long?
Xliff Ah! Good point.
That's.... tricky.
AlexDaniel or if it's an object that stringifies into something large?
Xliff Max 25 characters? 09:46
AlexDaniel or if it has newlines? :)
Xliff Yeah. Also... must be Cool
LOL! This is good stuff.... drop at first newline and insert '...'
AlexDaniel I think in most cases people don't have stuff that is too weird as default values, but the help message shouldn't just explode if they do :) 09:47
Xliff *nod*
Does raku track current terminal width?
AlexDaniel unlikely
Xliff Yeah, so all of this needs to be in test cases. 09:48
AlexDaniel Xliff: rakudo test cases I think, not roast. That's a relief :)
Xliff So... capture $*USAGE in sub USAGE and check that. 09:49
Will be a lot of test cases, given the mechanism.
May tackle this on the weekend.
AlexDaniel step by step! Maybe it's a good idea to present just a PR without tests first 09:50
Xliff At any rate, thanks for the feedback, lizmat++ AlexDaniel++
AlexDaniel: Sure!
Can always add the tests in later commits. 09:51
AlexDaniel yes :)
samcv: anyway, please ping me if you still can't leave a review
oh, I have an idea… 09:52
09:52 Xliff left
Geth problem-solving: 5c5955978d | (Aleks-Daniel Jakimenko-Aleksejev)++ | .github/CODEOWNERS

Just testing the github feature. More about it here:
See this comment to understand why it may be useful: ... (10 more lines)
10:13 domidumont left
Geth problem-solving: a517aab345 | (Aleks-Daniel Jakimenko-Aleksejev)++ | .github/CODEOWNERS
Comment out invalid CODEOWNERS entries

Otherwise github rejects the whole file.
rakudo: patrickbkr++ created pull request #3994:
Update `docs/running.pod`
roast: 58c711e16e | (Elizabeth Mattijsen)++ | 73 files
Use "is test-assertion" trait where applicable

No functional changes, just better error reporting if a test fails
roast: a489cdc91a | (Elizabeth Mattijsen)++ | 3 files
Add tests for "is test-assertion trait
12:09 sena_kun joined 12:11 Altai-man left 13:39 vrurg left 13:41 vrurg joined 13:50 vrurg left 13:52 vrurg joined 14:00 vrurg left 14:01 vrurg joined
nine Aaand another one diagnosed: Version caches the objects for v6 and v6.c (but e.g. not v6.d) in global variables, so a module precompiled during a raku -e 'use v6.c; use Foo' gets a reference to the -e compunit as that's where that v6.c object will be stored 14:27
lizmat nine: that should be easily fixed ? what do you prefer > 14:50
nine I wonder why we don't create those objects during setting compilation? That would safe a bit of time and depending on the setting is never an issue 14:54
14:55 domidumont joined
lizmat nine: I think there was a reason for that.... 15:09
nine commit history doesn't really explain why. Vague references to regexes not working during setting BEGIN time, but later the code got changed to be regex free anyway 15:15
lizmat yeah... trying with constants now 15:18
An exception occurred while evaluating a BEGIN
nine ah, my old nemesis 15:19
lizmat must compose Version before allocating 15:30
patrickb nine: Is this related to the ""Cannot look up attributes in a NQPMu type object" with `require`" issue ? 15:34
nine no 15:41
patrickb OK. Just curious. 15:43
Geth rakudo: 18882bf6fb | (Elizabeth Mattijsen)++ | src/core.c/Version.pm6
Create common Version objects at setting compile time
lizmat nine: ^^
afk for a few hours&
16:08 Altai-man joined 16:11 sena_kun left
nine lizmat: that does indeed fix my issue :) Many thanks! 16:19
16:43 domidumont left 17:10 jmerelo joined 17:55 Geth left 18:52 jmerelo left
lizmat tyil: I think Geth needs a wakeup call :-) 19:54
tyil lizmat: done 20:04
give it a minute or so :>
20:04 Geth joined 20:09 sena_kun joined 20:10 Altai-man left
Geth rakudo: 03e1ba7294 | (Elizabeth Mattijsen)++ | src/core.e/array_multislice.pm6
Hopefully final @a[;] tweaks for 6.e.PREVIEW

Fixing issue found while writing extensive tests
roast: c0eac55496 | (Elizabeth Mattijsen)++ | S32-array/multislice-6e.t
Add extensive tests for 6.e @a[;] functionality
20:41 Kaiepi left 20:42 Kaiepi joined
tbrowder m: class foo { has $.bar; has @.list }; my $a = foo.^attributes; say $a.^name 20:49
camelia List
tbrowder m: class f {has $.bar}; my $a=f.^attributes; say $.^ 20:51
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable $.^name used where no 'self' is available
at <tmp>:1
------> 3$.bar}; my $a=f.^attributes; say $.^name7⏏
expecting any of:
argument list
tbrowder m: class f {has $.bar}; my $a = f.^attributes; say $ 20:53
camelia No such method 'bar' for invocant of type 'List'. Did you mean 'Bag'?
in block <unit> at <tmp> line 1
tbrowder m: class f {has $.bar}; my %a = set f.^attributes; say %a; 20:56
camelia {$!bar => True}
tbrowder m: class f {has $.bar;has $.baz = 6}; my %a = set f.^attributes; say %a 20:59
camelia {$!bar => True, $!baz => True}
tbrowder m: class c {has $.baz}; say c ~~ baz 21:01
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
baz used at line 1. Did you mean 'bag'?
tbrowder m: class f {has $.bar}; my %a = set f.^attributes; say %a<$!baz>:exists 21:04
camelia False
tbrowder duh 21:05
m: class f {has $.bar}; my %a = set f.^attributes; say %a<$!bar>.exists 21:07
camelia No such method 'exists' for invocant of type 'Bool'
in block <unit> at <tmp> line 1
tbrowder ff
dogbert17 .seen lizmat
tellable6 dogbert17, I saw lizmat 2020-10-30T19:54:01Z in #raku-dev: <lizmat> tyil: I think Geth needs a wakeup call :-)
lizmat you rang? 21:08
dogbert17 lizmat: hello :)
I have a small program which suddenly fails under 6.e.PREVIEW
Cannot resolve caller AT-POS(Any:U: Mu:U); none of these signatures match:
(Any:U \SELF: int \pos, *%_) 21:09
lizmat gist ?
dogbert17 coming up ... 21:11
hopefully I've done something stupid
lizmat probably /me did something stupid, as I've worked on that area the past days 21:12
dogbert17 I actually changed to 6.e.PREVIEW to see if there were some new speed gains to be had :) 21:13
the program is quite slow
lizmat confirms something's amiss and is looking into it 21:15
dogbert17 ++lizmat 21:16
lizmat looks like all shaped array access is borked in 6.e.PREVIEW atm 21:21
like: use v6.e.PREVIEW; my @a[2;2]; dd @a[0;0] 21:22
dogbert17 yup, fails for me as well. The code did run with 'HEAD is now at 87ef76ae3 Implement binding of hash-slices (#3969)' albeit slowly 21:23
linkable6 (2020-10-27) Implement binding of hash-slices (#3969)
lizmat hash-slices broke that ? 21:24
dogbert17 no it worked with that version
lizmat ah, *phew* 21:26
dogbert17 I worded myself ambigously, sorry about that. 03e1ba7294 => code fails, 87ef76ae3 => code works 21:27
linkable6 (2020-10-30) Hopefully final @a[;] tweaks for 6.e.PREVIEW
(2020-10-27) Implement binding of hash-slices (#3969)
lizmat I'm starting to wonder whether this is a version skew issue
dogbert17 c: 87ef76ae30b use v6.e.PREVIEW; my @a[2;2]; dd @a[0;0] 21:31
committable6 dogbert17, ¦87ef76a: «Any element at [0,0] = Any␤»
lizmat aaaah.... found it, think
dogbert17 cooool 21:32
lizmat I doubt it will have gotten any faster though :-( 21:33
dogbert17 it seems to have slowed down quite a bit 21:34
the gist I sent gave 'real 2m44,351s' when running without 6.e.PREVIEW but 'real 4m28,654s' with 6.e.PREVIEW 21:36
lizmat can it be made to run a bit less, for profiling
reducing the size ? 21:37
ah... but it looks like you're initializing rows / columns? 21:38
in 6.e.PREVIEW; you can initialize a whole row /column with *
dogbert17 yes, if I remember correctly it's because ' is default' is NYI 21:39
lizmat my @a[10;10]; @a[0;*] = ^10
dogbert17 hmm, I'll have to try that
lizmat argh, not working on shaped arrays ?? 21:40
dogbert17 if your'e still intersted in profiling the line setting size to 1001 could be set to a lower value, say 401
m: my @mat[$size; $size] is default(0) 21:41
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$size' is not declared
at <tmp>:1
------> 3my @mat[7⏏5$size; $size] is default(0)
dogbert17 m: my @mat[10; 10] is default(0)
camelia 5===SORRY!5=== Error while compiling <tmp>
is default on shaped Array not yet implemented. Sorry.
at <tmp>:1
------> 3my @mat[10; 10] is default(0)7⏏5<EOL>
expecting any of:
lizmat I see
dogbert17 I wrote this several years ago, using Project Euler problems in order to learn Raku :) 21:42
Geth rakudo: 316902ddda | (Elizabeth Mattijsen)++ | src/core.e/array_multislice.pm6
Fix off by-one error spotted by Jan-Olof Hendig

I guess we need more tests.
lizmat I guess the tests don't actually cover the fast path :-(* 21:44
dogbert17 lizmat++
off by one, a timeless classic :-) 21:45
lizmat yeah, moved a decrement down to make the fast path faster, but forgot to update the tests in the fast path
dogbert17 your example: my @a[2;2]; dd @a[0;0] made the bug appear 21:48
m: my @a[10;10]; @a[0;*] = ^10 21:53
camelia Partially dimensioned views of shaped arrays not yet implemented. Sorry.
in block <unit> at <tmp> line 1
dogbert17 :-(
lizmat yeah, the problem is that it is checking for that in the shaped array logic, but that check should not be needed for 6.e 21:54
dogbert17 aha, interesting 21:55
your fix works perfectly 22:01
many thanks
lizmat yeah, still, we should be able to do * slices on shaped arrays 22:03
instead of @a[$size;$size] is default(0), it should be possble to do: @a[$size;$size]; @a[*;*] = 0 xx * 22:04
to initialize all elements to 0
dogbert17: but I guess I will need some sleep on that 22:11
dogbert17 sleep well then :-) 22:12
lizmat thanks :-) 22:15
22:15 sena_kun left
lizmat aaaahh.... I figured the issue *before* waking up again 22:20
dogbert17 a solution?
lizmat now I need to sleep on the solution :-) 22:21
dogbert17 :-)
lizmat m: my @a[2;2]; dd @a.AT-POS(0)
camelia Partially dimensioned views of shaped arrays not yet implemented. Sorry.
in block <unit> at <tmp> line 1
lizmat that's the problem
a 2-dim shaped array *must* be accessed with an AT-POS that takes 2 parameters 22:22
you cannot walk shaped arrays
m: my @a = [[42],]; dd @a.AT-POS(0).AT-POS(0) 22:23
camelia Int element = 42
lizmat sleep& 22:25
timotimo gnite liz
dogbert17 zzz
22:45 Kaiepi left, Kaiepi joined