00:11 sena_kun joined 00:13 Altai-man left 00:29 Summertime left 00:34 Summertime joined 00:46 maggotbrain left 00:47 sena_kun left 01:55 evalable6 left, nativecallable6 left, sourceable6 left, squashable6 left, coverable6 left, benchable6 left, notable6 left, statisfiable6 left, bisectable6 left, linkable6 left, greppable6 left, unicodable6 left, quotable6 left, releasable6 left, tellable6 left, shareable6 left, committable6 left, bloatable6 left 01:56 notable6 joined, benchable6 joined, unicodable6 joined, greppable6 joined, nativecallable6 joined, quotable6 joined, statisfiable6 joined 01:57 sourceable6 joined, bloatable6 joined, coverable6 joined, releasable6 joined, linkable6 joined, bisectable6 joined, shareable6 joined 01:58 evalable6 joined, squashable6 joined, committable6 joined 01:59 tellable6 joined 03:35 coverable6 left, squashable6 left, greppable6 left, unicodable6 left, evalable6 left, linkable6 left, bloatable6 left, nativecallable6 left, benchable6 left, shareable6 left, bisectable6 left, committable6 left, statisfiable6 left, tellable6 left, releasable6 left, notable6 left, sourceable6 left, quotable6 left, squashable6 joined, bloatable6 joined, releasable6 joined, committable6 joined, linkable6 joined 03:36 benchable6 joined, unicodable6 joined, tellable6 joined, quotable6 joined, statisfiable6 joined, greppable6 joined 03:37 bisectable6 joined, sourceable6 joined, nativecallable6 joined, coverable6 joined, evalable6 joined 03:38 shareable6 joined, notable6 joined 05:18 greppable6 left, committable6 left, nativecallable6 left, shareable6 left, statisfiable6 left, tellable6 left, benchable6 left, squashable6 left, sourceable6 left, notable6 left, evalable6 left, releasable6 left, bloatable6 left, bisectable6 left, quotable6 left, unicodable6 left, linkable6 left, coverable6 left, notable6 joined, unicodable6 joined, squashable6 joined 05:19 committable6 joined, releasable6 joined, nativecallable6 joined, greppable6 joined, evalable6 joined 05:20 sourceable6 joined, shareable6 joined, bisectable6 joined, benchable6 joined, bloatable6 joined, statisfiable6 joined, linkable6 joined 05:21 quotable6 joined, tellable6 joined, coverable6 joined 05:49 frost-lab joined 06:33 sena_kun joined 08:10 Altai-man joined 08:13 sena_kun left 08:15 raku-bridge left, raku-bridge joined
Geth_ nqp: 3f1dcfe874 | Altai-man++ | tools/templates/MOAR_REVISION
[MoarVM Bump] Brings 2 commits

MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...g76ea45804 76ea45804 Merge pull request #1380 from MoarVM/serialize-cstr 3c5deb2f6 Implement serialize/deserialize of CStr REPR
rakudo: 06b01c9191 | Altai-man++ | tools/templates/NQP_REVISION
[NQP Bump] 3f1dcfe87 [MoarVM Bump] Brings 2 co […]

NQP bump brought: github.com/perl6/nqp/compare/2020....g3f1dcfe87
09:36 TreyHarris left
Altai-man releasable6, status 09:58
releasable6 Altai-man, Next release in ≈9 hours. 1 blocker. 0 out of 144 commits logged
Altai-man, Details: gist.github.com/aa576130c048cfc326...2a75d40742
nwc10 good *, #raku-dev 10:09
Altai-man o/ 10:12
nwc10 \o 10:13
Altai-man This month's release is very juicy... 10:26
releasable6, status
releasable6 Altai-man, Next release in ≈8 hours. 1 blocker. 28 out of 144 commits logged 10:27
Altai-man, Details: gist.github.com/0a1eb68d3b960cce61...907cbfd986
Altai-man releasable6, say Array::ShapedArray 10:29
releasable6 Altai-man, I cannot recognize this command. See wiki for some examples: github.com/Raku/whateverable/wiki/Releasable
Altai-man c: say Array::ShapedArray
committable6 Altai-man, Seems like you forgot to specify a revision (will use “v6.c” instead of “say”)
Altai-man c: Array::ShapedArray.say
committable6 Altai-man, I cannot recognize this command. See wiki for some examples: github.com/Raku/whateverable/wiki/Committable
Altai-man c: v6.c Array::ShapedArray.say
committable6 Altai-man, gist.github.com/45d072dc088173ac06...efb233d450
Altai-man, gist.github.com/bb12f5c2b56693c03e...becef6beaf
MasterDuke Altai-man: iirc, it was renamed to Array::Shaped 10:31
m: say Array::ShapedArray; say Array::Shaped
camelia Could not find symbol '&ShapedArray' in 'Array'
in block <unit> at <tmp> line 1
MasterDuke m: say Array::Shaped
camelia (Shaped)
Altai-man MasterDuke, I am just documenting `Expose Array::Shaped1|2|3Array roles [532b5423]` and trying to get how exactly "exposed" that is...
Is it "Internal" or "Additions" for the release. :)
MasterDuke those are my scoped i believe, so internal 10:32
Altai-man MasterDuke, those commits remove `my` scoping, that's the thing. :)
Anyway, marked as Internal.
1086 out of 1553 modules processed 10:33
MasterDuke oh, maybe i'm a little behind HEAD
Altai-man Blin is much faster than me writing a changelog with so many things, so kudos to all who contributed.
10:38 raku-bridge left
AlexDaniel` is that with Pakku? 10:38
10:38 raku-bridge joined, raku-bridge left, raku-bridge joined
Altai-man AlexDaniel`, with zef. 10:38
I did some extensive testing with Pakku last weeks, but for releasing prefer the usual route. 10:39
releasable6, status 11:07
releasable6 Altai-man, Next release in ≈7 hours. 1 blocker. 107 out of 144 commits logged
Altai-man, Details: gist.github.com/41e94faaeeb87f6985...647db1f905
11:09 domidumont joined
Altai-man releasable6, status 11:19
releasable6 Altai-man, Next release in ≈7 hours. 1 blocker. 144 out of 144 commits logged
Altai-man, Details: gist.github.com/53d2aa0d39aa4085ef...f9e407c3ab
11:58 frost-lab left 12:12 sena_kun joined 12:13 Altai-man left
Geth_ roast/6.c-errata: 66b56f702c | Altai-man++ | S32-exceptions/misc.t
Binding to hash/array slices is now possible
rakudo/release-2020.11: 3805f7bf22 | Altai-man++ | 3 files
Update changelog + announcement

Deliberately not logged:
78b03b6 f4b38a1 7176cbc b129f31 23f67fe 5552434 5ee3d53 06b01c9 746c599 41d8956 084b92a 9be9a5c 42c4c1e 2fe6420 46477cd 2a5dd9e 1f090e0 9070d5c 6ed8891 fb32d0c 9976cab 8310690 e074f3c 6f31494 5f0da2b ebc9517 fb60e48 32230aa 6542f10 d3acd86 c54193e f6a33b8 44d037d
rakudo: Altai-man++ created pull request #4053:
Release 2020.11
sena_kun No.
NMAKE : fatal error U1073: don't know how to make 'gen/nqp-version' 12:59
Sigh. 13:00
Geth_ nqp: 689982a3d6 | Altai-man++ | tools/templates/MOAR_REVISION
[release] Bump MoarVM revision to 2020.11
nqp: 46dc8f503c | Altai-man++ | VERSION
[release] Bump VERSION to 2020.11
rakudo/release-2020.11: 957935a29e | Altai-man++ | tools/templates/NQP_REVISION
[release] Bump NQP revision to 2020.11
rakudo/release-2020.11: 34faae566b | Altai-man++ | VERSION
[release] Bump VERSION to 2020.11
rakudo/master: 4 commits pushed by Altai-man++ 13:46
rakudo: a3755971af | (Elizabeth Mattijsen)++ | docs/announce/2020.11.md
Fix spello in announcement
lizmat sena_kun++ # yet another Rakudo Compiler release! 13:58
sena_kun Dammit.
lizmat sena_kun: no worries :-)
sena_kun That's really unfortunate, it's like the largest thing introduced, it's the first line people will read... 13:59
lizmat shit happens... I will link to the updated announcement in the RWN, so it won't be that bad there :-) 14:00
Geth_ rakudo: 4ac0f73736 | (Peter du Marchie van Voorthuysen)++ | src/core.c/array_operators.pm6
Optimize some array operators

Raw slurpies are more efficient.
rakudo: 1cd8765e69 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/array_operators.pm6
Merge pull request #4050 from dumarchie/array_operators

Optimize some array operators
sena_kun lizmat, the URL in tweet points to master, so the typo fix is already there. It's Changelog packed in the sources for this release affected, but hopefully people don't read it that much, I suspect. 14:06
sena_kun afk
Geth_ Blin: hythm7++ created pull request #28:
Change Pakku verbosity level from trace to info
rakudo: 484f870c87 | (Peter du Marchie van Voorthuysen)++ | src/core.c/atomicops.pm6
Make cas($target, &code) ~10% faster
rakudo: 96ab6eba55 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/atomicops.pm6
Merge pull request #4042 from dumarchie/cas

Make cas($target, &code) ~17% faster
bartolin sena_kun++ 14:32
14:45 lucasb joined
Geth_ rakudo: 534cc543b8 | (Ben Davies)++ | src/core.c/IO/Socket/INET.pm6
Type IO::Socket::INET family/type/protocol values

This changes the type of IO::Socket::INET.new's :$family parameter from Int to ProtocolFamily:D(Int:D) (removing their invalid Int:U typing) and gives the class' $!family/$!type/$!proto attributes explicit ProtocolFamily:D/SocketType:D/ProtocolType:D typings (meaning they no longer accept raw Int:D values corresponding to those types' enum values).
rakudo: f7ab4f508a | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/IO/Socket/INET.pm6
Merge pull request #4047 from Kaiepi/io-socket-inet-enums

Type IO::Socket::INET family/type/protocol values
roast: be962b7d35 | (Ben Davies)++ | S32-io/IO-Socket-INET.t
Add a test for invalid Int:D families given to IO::Socket::INET.new

My first attempt at github.com/rakudo/rakudo/pull/4047 typed families as ProtocolFamily(Int:D). This passed Roast despite making the method accept invalid Int:D values.
roast: ee0cc1da22 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | S32-io/IO-Socket-INET.t
Merge pull request #702 from Kaiepi/io-socket-inet-enums

Add a test for invalid Int:D families for IO::Socket::INET.new
rakudo: f2ea0a65b3 | (Elizabeth Mattijsen)++ | 2 files
Allow for a contentless spurt

To give "touch" like capability. This can already be achieved by explicitely specifying "", so maybe we should emphasize that in the documentation instead.
rakudo: 737560e88e | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 2 files
Merge pull request #4032 from rakudo/empty-spurt

Allow for a contentless spurt
Blin: 2df623e862 | (Haytham Elganiny)++ | lib/Blin/Tester/Pakku.rakumod
Change Pakku verbosity level from trace to info
Blin: 99e3335fa9 | Altai-man++ (committed using GitHub Web editor) | lib/Blin/Tester/Pakku.rakumod
Merge pull request #28 from hythm7/master

Change Pakku verbosity level from trace to info
dogbert17 is trying to pinpoint a perf regression 15:27
sena_kun Ouch. 15:29
dogbert17, is it bad? 15:30
I did not spot any _serious_ issues with stage PARSE or with spec/stresstest.
dogbert17 sena_kun: i have one script which is between 25-30 percent slower that 2020.10 15:32
I belive that the regression is relatively recent though 15:33
lizmat dogbert17: please golf :-) 15:34
dogbert17 trying to find the offending commit atm 15:36
here's the script, perhaps something jump out: gist.github.com/dogbert17/1864d402...9defbc1fc0 15:37
sena_kun Something related to native ints, but I thought we optimized those... 15:38
dogbert17 I belive one optimization was removed before release
lizmat I don't think I did anything to native arrays, just to native *1dim shaped* arrays ? 15:41
Geth_ rakudo: bd5eba4b60 | (Elizabeth Mattijsen)++ | src/core.c/Main.pm6
Introduce %*SUB-MAIN-OPTS<coerce-allomorphs-to>

This new SUB-MAIN-OPTS setting allows one to specify how allomorphs should be coerced **prior** to being dispatched. So suppose you have a sub MAIN:
   sub MAIN(Int:D $value) {
... (15 more lines)
rakudo: 49eecd68c5 | (Elizabeth Mattijsen)++ | src/core.c/Main.pm6
Simplify coercer setting

  MasterDuke++ for keeping nudging
rakudo: 2e33736541 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/Main.pm6
Merge pull request #4005 from rakudo/coerce-allomorphs-to

Introduce %*SUB-MAIN-OPTS<coerce-allomorphs-to>
rakudo: 87fc041f3c | (Elizabeth Mattijsen)++ | src/core.c/Iterator.pm6
Add Iterator.deterministic method

By default, this will return True, but it should return False for iterators that produce values in a non-determnistic way, such as iterators that operate on hashes.
Why do we need this? While working on the full implementation of ... (22 more lines)
rakudo: b83b1b3469 | (Elizabeth Mattijsen)++ | src/core.c/Iterator.pm6
Add missing word, MasterDuke++
rakudo: 1aff2ad229 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/Iterator.pm6
Merge pull request #3963 from rakudo/iterator-deterministic

Add Iterator.deterministic method
rakudo: a0a8a51533 | (Daniel Mita)++ | lib/Pod/To/Text.rakumod
Improve output of Attribute with Pod::To::Text
rakudo: b93d9b3f5a | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | lib/Pod/To/Text.rakumod
Merge pull request #4029 from mienaikage/pod-text-attribute

Improve output of Attribute with Pod::To::Text
sena_kun lizmat, please delete the branch in github.com/rakudo/rakudo/pull/3963 if it's not needed anymore. 16:03
Same for github.com/rakudo/rakudo/pull/4005
lizmat done 16:10
16:10 Altai-man joined 16:13 sena_kun left
dogbert17 heh, it seems to be 1f090e04dcd4ed 16:43
linkable6 (2020-11-15) github.com/rakudo/rakudo/commit/1f090e04dc Merge pull request #3891 from vrurg/raku_1285
[Tux] Rakudo v2020.11-18-gb93d9b3f5 (v6.d) on MoarVM 2020.11-1-gca5d19d21
csv-ip5xs0.828 - 0.862
csv-ip5xs-208.682 - 9.081
csv-parser25.676 - 26.864
csv-test-xs-200.395 - 0.395
test8.062 - 8.649
test-t1.983 - 2.011
test-t --race0.827 - 0.866
test-t-2033.621 - 33.982
test-t-20 --race9.713 - 10.272
lizmat dogbert17 yeah, so the test-t slowdown was no fluke, and probably the spectest slowdown neither 16:58
17:00 melezhik joined
melezhik I run slowdown test on RP for head and 2020.10 - rakudist.raku.org/sparky/report/RakuPlay-1/1424 rakudist.raku.org/sparky/report/RakuPlay-1/1423 17:02
11 sec VS 7 sec
in average
Geth_ nqp: usev6++ created pull request #683:
[JVM] Align behaviour for NQP hash to MoarVM
lizmat @melezhik: would it be hard to produce a --profile of a rakuplay run? 17:14
that would be *really* interesting in this case
17:17 tailgate left
Geth_ rakudo: b63c0e02cf | (Elizabeth Mattijsen)++ | 11 files
Add "deterministic" info to many iterators

A recap: when an iterator.deterministic call returns False, it means that the iterator may not produce the same values, or not in the same order, given the same initial condition. This specifically applies to iterators running on hashes at some level, and iterators that create a random selection on a set of values.
This commit also covers iterators that run off of other iterators. Although the more complicated ones are not covered in this commit.
dogbert17 looking at a profile and comparing differences between old (fast) and new (slow) one thing which stands out is slip-all (SETTING::src/core.c/Rakudo/SlippyIterator.pm6:49) 17:45
both versions have 1851068 entries but in the old version that code is jitted and that is not the case with the new version 17:46
Geth_ roast: 5071b526d5 | (Elizabeth Mattijsen)++ | spectest.data
Add multislice.6e tests to spectest

Sadly, these were forgotten, causing a small regression about to be fixed
dogbert17 the new version also allocates 1851073 BOOTContexts (SETTING::src/core.c/Rakudo/SlippyIterator.pm6:49) while the old version allocates none 17:48
the difference in GC is old = 42, new = 158 17:49
Geth_ rakudo: c37a88e857 | (Elizabeth Mattijsen)++ | src/core.c/Rakudo/Iterator.pm6
BOOTiters don't have a deterministic method

And when they're running off a hash, there are *always* non-deterministic. Not caught before because the multislice.6e tests were not being run yet :-(
rakudo: 96285afb6c | (Elizabeth Mattijsen)++ | src/core.e/hash_multislice.pm6
Use deterministic method in multi array slicing
lizmat dogbert17: turning slipall into an only, does not fix it 17:55
so I can only assume that typechecking the Slip is the cause
lizmat tries something else 17:56
dogbert17 lizmat++ 17:57
lizmat yeah, that makes things worse 17:58
lizmat tries something else again 18:00
18:01 domidumont left
lizmat making it an only without Slip:D check, does not make it better 18:02
dogbert17: what is current way to find out why something was not JITted?
dogbert17 I guess it's the spesh log, i.e. setting both MVM_SPESH_LOG and MVM_JIT_DEBUG. MasterDuke would know for certain. 18:12
I see the following, which looks interesting 18:21
Spesh of 'slip-all' (cuid: 960, file: SETTING::src/core.c/Rakudo/SlippyIterator.pm6:49)
a few lines later
Instructions: 18:22
sp_getarg_o r5(3), liti16(0) # [015] start of exprjit tree
ctx r9(3)
# [017] JIT: bailed completely because of <ctxcode>
# [016] expr bail: Cannot get template for: ctxcode
18:22 TreyHarris joined
MasterDuke does the after for both HEAD and 2020.10 look the same? ctxcode hasn't had a jit template all along, so that would (likely) only be interesting if 2020.10 didn't have it at all 18:29
lizmat perhaps related: the slowdown looks to be cause by excessive BOOTContext allocations 18:30
dogbert17 MasterDuke: it does not look the same in the older version, no bail at that point 18:34
MasterDuke how similar do the afters look? i.e., mostly the same ops? 18:35
lizmat afk for a few hours& 18:38
dogbert17 MasterDuke: gist.github.com/dogbert17/605f5477...4acf36385e 18:39
18:48 melezhik left 20:12 sena_kun joined, melezhik joined 20:13 Altai-man left
melezhik .tell lizmat I've implemented Raku profiles in RP - rakudist.raku.org/sparky/report/RakuPlay-3/1457 please be aware that in case of slowdown script, generated profile data is big enough so it takes a few minutes to publish it to GH gists. Please be considerate and not overload poor RP worker host ))) 20:17
tellable6 melezhik, I'll pass your message to lizmat
melezhik to use Raku profiles in RakuPlay scenarios, check "Use Profile" checkbox - raw.githubusercontent.com/melezhik...rofile.png 20:19
profile data gets uploaded to GH gist under , account, I think there is a limitation, no more 60 requests per hour, I might be wrong though, a link to gist is visible through RP report 20:21
the profile format is json
if you need others - html / sql - let me know
20:29 melezhik left
MasterDuke .tell melezhik very cool. however, i'd say json is probably the least useful of the three. i'd suggest defaulting to html with the option of sql instead 20:37
tellable6 MasterDuke, I'll pass your message to melezhik
MasterDuke dogbert17: yeah, those don't very similar. only two BBs in the new, but a lot more going on in them. timotimo would be another good person to take a look 20:40
20:46 sena_kun left
timotimo well, melezhik could actually host moarperf along with the sql file, perhaps a version that doesn't allow the user to enter a path to load 20:54
and some kind of timeout mechanism of course
vrurg dogbert17: I think the most likely cause are changes in Actions.nqp, sub lower_signature, if/elsif pair at line 9225. Worst penalty would be paid on handling generics, it's a complicated matter. 22:45
The elsif branch hasn't been changed much and shouldn't have such influence, unless previously moar was inlining calls to coercion methods. 22:49
MasterDuke i don't see how generics or coercions would come into play with gist.github.com/dogbert17/1864d402...9defbc1fc0 22:56
vrurg MasterDuke: but the regression has been bisected back to my work. Besides, some core code might still be using them. Another option – generics. Since there is no way to know beforehand if a generic is a coercion the QAST code to handle this case is still gets installed. 23:05
Positional is a parametric, BTW. 23:07
MasterDuke ah, that if is probably where the ctxcode and getcodeobj in the new speshlog come from
vrurg Exactly. I already see where some optimization could be done. But these two are unavoidable because the binding needs to iterate over code object signature paramters. 23:14
I have took measures not to re-fetch the code object for each parameter, but eventually I overlooked the fact that all I need it for is to get the signature. So, I can pre-fetch the signature. But if there is a way to give it to me in a more efficient way – this might get the problem solved. 23:16
Otherwise I can pre-fetch the signature, but it'd spare one getattr per parameter, not the ctxcode/getcodeobj pair. 23:17
MasterDuke i'm about 90% sure the ctxcode/getcodeobj are much more expensive
vrurg Another optimization to be done is to avoid invocation of `coercive` method on a parameter object by providing a specialized attribute and replacing the method call with a getattr. 23:18
23:20 melezhik joined
vrurg Without having them once per each invocation there is no way to handle generics in the right way. For nominals it's all done by the binding-generation code because their parameters are known at compile time. But generics can only be taken care at runtime. 23:20
MasterDuke dogbert17: fwiw, changing the grep to `* > 1` seems to be a little bit faster, at least on HEAD 23:23
vrurg BTW, can somebody suggest the best way to unbox a Bool into a native int in NQP? would nqp::unbox_i do the job? 23:24
lizmat NQP doesn't know about Bool?
tellable6 hey lizmat, you have a message: gist.github.com/c406f2524b45db97c4...d86e24807d
lizmat or do you meen in nqp ops ?
m: use nqp; dd nqp::unbox_i(False) 23:25
camelia 0
lizmat m: use nqp; dd nqp::unbox_i(True) 23:26
camelia 1
vrurg lizmat: not sure. I'm having a weird error with something like `if $!refinee.is_generic` where is_generic returns a Bool. So far suspect a problem with the False it returns.
lizmat has done enough hacking for today&
vrurg lizmat: thanks! I'm probably a bit tired not to try it this way. :) 23:27
lizmat: o/
melezhik lizmat MasterDuke I changed raku profile format in RP to html 23:46
tellable6 2020-11-21T20:37:08Z #raku-dev <MasterDuke> melezhik very cool. however, i'd say json is probably the least useful of the three. i'd suggest defaulting to html with the option of sql instead
melezhik see f.e. rakudist.raku.org/sparky/report/RakuPlay-2/1458