🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | log inspection situation still under development | For MoarVM see #moarvm
Set by lizmat on 22 May 2021.
00:02 reportable6 left 00:04 reportable6 joined 02:10 benchable6 left, nativecallable6 left, notable6 left, coverable6 left, reportable6 left, quotable6 left, unicodable6 left, releasable6 left, shareable6 left, linkable6 left, committable6 left, squashable6 left, bisectable6 left, sourceable6 left, statisfiable6 left, evalable6 left, greppable6 left, tellable6 left, bloatable6 left 02:11 sourceable6 joined, benchable6 joined, nativecallable6 joined 02:12 bloatable6 joined, shareable6 joined, linkable6 joined, reportable6 joined, squashable6 joined, tellable6 joined, bisectable6 joined 02:13 evalable6 joined, unicodable6 joined, releasable6 joined, statisfiable6 joined, coverable6 joined, quotable6 joined, greppable6 joined, committable6 joined 02:14 notable6 joined 02:53 frost joined 02:58 MasterDuke left 03:58 committable6 left, bloatable6 left, bisectable6 left, unicodable6 left, quotable6 left, evalable6 left, notable6 left, coverable6 left, shareable6 left, benchable6 left, greppable6 left 03:59 committable6 joined, shareable6 joined, greppable6 joined, quotable6 joined 04:00 benchable6 joined 04:01 bisectable6 joined, unicodable6 joined, coverable6 joined, evalable6 joined, notable6 joined, bloatable6 joined 05:01 notable6 left, evalable6 left, bloatable6 left, unicodable6 left, quotable6 left, nativecallable6 left, linkable6 left, greppable6 left, coverable6 left, releasable6 left, tellable6 left, committable6 left, sourceable6 left, shareable6 left, reportable6 left, statisfiable6 left, bisectable6 left, squashable6 left, benchable6 left 05:02 releasable6 joined, nativecallable6 joined, reportable6 joined, benchable6 joined, unicodable6 joined, notable6 joined, sourceable6 joined 05:03 statisfiable6 joined, evalable6 joined, tellable6 joined, quotable6 joined 05:04 greppable6 joined, committable6 joined, linkable6 joined, bloatable6 joined, coverable6 joined, bisectable6 joined, shareable6 joined, squashable6 joined 05:14 Kaiepi left 05:33 Kaiepi joined 05:38 Kaiepi left 05:43 Kaiepi joined 05:51 Kaiepi left 05:53 Kaiepi joined 05:58 Kaiepi left 06:00 Kaiepi joined 06:02 reportable6 left 06:05 reportable6 joined 06:23 Kaiepi left, Kaipi joined 06:30 Kaipi left, Kaiepi joined 06:47 Kaiepi left 06:53 Kaiepi joined 07:44 patrickb joined 07:59 Kaiepi left 08:00 Kaiepi joined 08:39 Kaipi joined 08:40 Kaiepi left
raydiak tonyo: I find your lack of compromise distrubing. You implied that I knew nothing about the meta files beyond the search I linked, for no apparent reason. Now you're telling me that I'm changing the argument to win, which appears to be what you just did prior, while I am simply trying to address your stated concerns. Understand this VERY clearly: I am not having an argument, I'm actually trying actively to 09:43
avoid such a thing. My ego has no need for your validation or anybody elses. If I just wanted to feel right regardless of actual fact, I simply wouldn't bother to talk about it. I am exploring an idea space, not having a flashback to debate class. If I misunderstood what you were saying then I am sorry, maybe we are simply communicating on very different levels. But I am trying the very best I know how, to 09:44
address both my concerns and the opposite concerns of others including yourself, all simultaneously, which is an enormous task. I wish you had more respect for that position. From this point forward, I would appreciate it if we could keep this discussion pointed at the facts instead of the individuals. I'm not here to posture and sabre-rattle and if these dicussions have to be made into arguments which
culminate in personal attacks, I will drop the whole thing entirely and keep my ideas to myself and my own compiler work outside of Raku in the future.
The rest I will review and respond to tomorrow depending on the content of the backlog between now and then. Goodnight.
10:20 linkable6 left, evalable6 left, linkable6 joined 10:22 evalable6 joined
Geth rakudo: 2efe4302c5 | (Elizabeth Mattijsen)++ | src/core.c/Any-iterable-methods.pm6
IterateOneWithPhasers handles empty iterators 20% faster

By letting .new return the Empty iterator if the first pull fails.
Example code: my @a; for @a { NEXT Nil }
10:29
10:29 Xliff left 10:30 Xliff joined
Geth rakudo: 7f5f60e851 | (Elizabeth Mattijsen)++ | src/core.c/Any-iterable-methods.pm6
Remove Slip thinko

The source iterator may produce Slips, but they will be passed as such to the block, so we shouldn't be checking for this here.
10:46
nqp/new-disp: 32e2ad0262 | (Jonathan Worthington)++ | 2 files
Replace use of smart-intify with a dispatcher

And along the way, tweak the smart-strify dispatcher to use some new more efficient ops for checking for unboxability.
11:03
11:32 dogbert17 joined 11:33 MasterDuke joined 12:02 reportable6 left 12:03 reportable6 joined
Geth nqp/new-disp: 1d632aea49 | (Jonathan Worthington)++ | 2 files
Replace use of smart-numify with a dispatcher
12:18
rakudo/new-disp: 305d2708a4 | (Jonathan Worthington)++ | t/02-rakudo/99-misc.t
Correct a test relying on a changed impl detail

Prior to new-disp, mutliple dispatch worked by doing a trial bind of the signature of a multi candidate containing a `where` clause. If it passed then the candidate would be invoked "for real". This means that `where` clauess would get evaluated twice on a successful candidate.
... (10 more lines)
12:19
rakudo/new-disp: ffede8cc0b | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Fix multi dispatch of a Proxy to an `is rw` param
12:47
13:05 MasterDuke left 13:06 MasterDuke joined 13:47 patrickb left 13:48 patrickb joined 13:51 patrickb left 13:52 patrickb joined 13:53 patrickb left 13:54 patrickb joined 13:55 patrickb left 13:56 patrickb joined 13:57 patrickb left 13:58 patrickb joined 14:02 patrickb left, patrickb joined
Geth nqp/new-disp: 0d7f899d37 | (Jonathan Worthington)++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp
Fix compilation of regex Unicode property tests
14:05
rakudo/new-disp: 9cd6395f80 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Add a missing type guard installation

When we do a multiple dispatch on a native reference, make sure to add a type guard. If not, future dispatches will incorrectly end up using that candidate.
14:16 patrickb left 14:17 frost left, patrickb joined, MasterDuke77 joined 14:18 MasterDuke left 14:20 dogbert11 joined, dogbert17 left 14:23 patrickb left, patrickb joined 14:24 melezhik joined 14:26 Xliff left 14:27 Xliff joined 14:32 patrickb left
Geth rakudo/new-disp: 0a563aaeff | (Jonathan Worthington)++ | src/core.c/Metamodel/Primitives.pm6
Mark types created by MOP primitives as Raku types

So that method dispatch on the will work out.
14:32
rakudo/new-disp: 7152630f93 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Fix X::Method::InvalidQualifier reporting
14:32 patrickb joined 14:34 patrickb left, patrickb joined 14:38 patrickb left 14:39 patrickb joined 14:43 patrickb left, patrickb joined 14:49 patrickb left 14:50 patrickb joined
[Tux] Rakudo v2021.06-72-g7f5f60e85 (v6.d) on MoarVM 2021.06-17-g736154d29
csv-ip5xs0.844 - 0.904
csv-ip5xs-208.782 - 8.896
csv-parser28.295 - 29.037
csv-test-xs-200.385 - 0.395
test7.873 - 8.303
test-t1.986 - 2.111
test-t --race0.901 - 0.931
test-t-2035.512 - 35.764
test-t-20 --race10.815 - 11.373
15:06
15:10 patrickb left, patrickb joined 15:13 patrickb left 15:26 patrickb joined
Geth rakudo/new-disp: ded9a56141 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Ensure proxy readers are marked as thunks

Somewhat unfortunately this means we have to get rid of the blocks we prepare ahead of time because there's no way to get those marked as thunks. More unfortunately, this breaks the reproducible builds test
  (although in a sense this is good, since less trivial programs would
have had problems with build reproducibility and we'd not have known about it so soon).
This is needed so that they get skipped when walking the call chain.
15:29
raydiak tonyo: While I still see valid concerns in my assessment a few hours ago, my statement was more pointed and less tactful than it could have been. I should have slept on it. I have frustrations with the state of raku and its community, which are making me more sensitive than I ought to be. Please accept my apologies. I should probably just take a good long break. 15:31
ugexe i hope you are able to funnel your frustrations into the change you wish to see. frustration fueled the start of my larger involvement in raku and contributing to it 15:42
16:16 squashable6 left 16:18 squashable6 joined
Geth nqp/new-disp: a0a1aad66f | (Jonathan Worthington)++ | src/HLL/sprintf.nqp
Fix the sprintf fix

It's meant to pass the array value along to the panic. Not doing so means there's a string instead of an array in the hash Rakudo gets, and then it fails when trying to construct an exception object.
16:19
16:24 MasterDuke77 left
raydiak It would be good to put a positive spin on it, I agree. It's just that if I'm starting to point that frustration at other people, I hesitate to further involve myself here. There isn't anything that matters to me more than people and their feelings. And some things I really don't see myself as having much control over. Community policies and attitudes, things like that. Then I circle back and ask myself if 16:45
it's really just my own attitude which needs adjustment.
ugexe its unfortunate you would need the backing and knowledge of individuals whojaded to this specific area 17:16
over the all the years
but i will help however i can
tonyo raydiak: you're fine, we both want to make it better and i'm fine with the tone of the conversation - i didn't take any offense 17:27
differing ideas and discussion, be it sometimes heated, are how you make things better 17:29
17:32 MasterDuke joined
raydiak tonyo: thank you very much for your grace. I try very hard to be gentle to people and don't easily forgive myself when I fail at that, so you being so cool does my heart good 17:33
ugexe: I really appreciate that. One of my complaints has been that I've floated a few of these test ballons over the past several months, looking at things which seem like they really obviously ought to change, and it has felt like I just can't get the backing or concensus for any change to be effected even if I were to do the work. So your support means a great deal to me 17:34
17:50 patrickb left
raydiak anyway, I will circle this back around to the technical discussion we were having originally at some point today. my attention is a bit divided atm 17:51
bartolin raydiak: probably not something that could help with the things that frustrate you, but I'd like to mention that a couple of weeks (?) ago I was happy to see you being more active here. For me the friendly and inspiring people around #perl6 (back in the day) were (and are) even more important than the language itself. And you were one of those ;) 17:52
tonyo raydiak: not a big deal. i've been told i'm kind of prickly anyway. in my mind the next step for fez is doing test matrices and making those data available with the modules 17:54
the difficult part in that is making sure from native can grab the correct packages 17:55
17:56 patrickb joined
MasterDuke i haven't followed the details of the discussions very closely because it's a part of the codebase i have no experience with, but is this the sort of thing where a PR showing more concretely what's intended would help? 18:00
18:02 reportable6 left 18:04 reportable6 joined 18:11 MasterDuke left 18:16 MasterDuke joined
Geth rakudo/new-disp: 43c8b3a4bc | (Stefan Seifert)++ | src/vm/moar/dispatchers.nqp
Fix wrappers of protos not getting called

The optimization to not call an onlystar proto did not take into account that the proto may be wrapped. In that case we must not just call the candidate directly.
18:38
raydiak bartolin: that's very kind of you, thank you. if you're saying my presence is generally a good thing, it at least gives me something to consider before distancing myself. that's all I'm really aiming for is to make my presence constructive 18:51
timo i haven't been active in here for a long while, but i was always happy to see raydiak in here 18:55
raydiak tonyo: so do you see any way to accomplish that in a way which is agnostic from any one tool or ecosystem? forget all my previous speculation, maybe the final solution is nothing like what I started out imagining. but how can we have a formal and tested meta spec under the control of the community as a whole?
Geth roast: 94857d4fda | (Christian Bartolomäus)++ | integration/gather-with-loops.t
[JVM] Unfudge tests for gather/last and for loop

This started to pass with commit d8281722db.
I'd guess the return (which was removed with said commit) led to the UnwindException.
18:56
bartolin meh, d8281722db was a commit for Rakudo -- I should have used a link :( 18:57
18:57 notna joined 18:58 linkable6 left
raydiak timo! I haven't ran in to you since I came back, only noticed you once or twice in the backlog. thank you for you kindness :) I miss seeing you around here 18:58
18:58 linkable6 joined
timo that is pleasant to hear :) 18:59
raydiak MasterDuke: yes I agree an implementation would help. ugexe suggested the same thing yesterday. I guess I just thought we should settle a little more on what it might look like before I actually write it because as we discuss, my idea of what "it" would exactly be and where it might live has shifted quite a bit 19:01
Xliff I miss timo, too! 19:17
MasterDuke
.oO(i miss timo, two == timotimo)
19:21
19:27 squashable6 left, squashable6 joined
Geth rakudo: patrickbkr++ created pull request #4453:
Build: Tidy and improve cleanup rules
19:30
19:34 Geth left 19:35 Geth joined
ugexe no need for an actual implementation really. just mocking out the interface and commenting/documenting it would do the trick 19:35
github.com/rakudo/rakudo/blob/7f5f...pm6#L1-L18
github.com/rakudo/rakudo/blob/mast...pm6#L1-L59
these are good examples
raydiak got it. I'm just uncertain at this point if we can actually agree on a fully functional implementation along the lines of what I originally envisioned, or if we should be looking more at writing a collection of META files to test parsers and an official validator to test serializers and aim to put all that in some repo in the raku org, or if there is some other option that might be more to everyones liking 19:43
that we haven't conceived of yet
but I suppose you're right, we have somewhat talked in circles about it for long enough that some code of some sort would be helpful at this point 19:44
20:19 Xliff left, notna left
ugexe something on master seems to have broken zen 20:29
zef
labeled next without loop construct
Geth roast: 4389ed40d0 | (Christian Bartolomäus)++ | integration/gather-with-loops.t
Remove no longer needed canary test

Should have been removed with the previous commit 94857d4fda.
ugexe github.com/ugexe/zef/blob/ef2157c7...umod#L1174 20:47
thats the only labeled loop zef uses
gist.github.com/ugexe/874293a9aa20...831eacf7e5 here is the --ll-exception output 20:48
bartolin ugexe: I'd suspect github.com/rakudo/rakudo/commit/d8281722db. (It changed the behaviour for gather + for + take + last on the JVM backend -- and you have gather + for + take + next there.) 20:50
ugexe ill check 20:51
bartolin ugexe: at what point does zef explode? (I just tried to clone and install zef with Rakudo's current HEAD (7f5f60e851) and that seemed to work.)
ugexe its definitely a specific scenario... 90% of zefs CI tests pass
it blows up trying to find a dependency 20:52
that or resolving the dependency graph
bartolin I see. so more than a plain 'bin/zef install . && bin/zef help' ... 20:53
ugexe yeah appears to be anything that has dependencies it blows up after it finds them 20:54
reverting d8281722db fixes the regression 20:57
20:57 linkable6 left 20:59 linkable6 joined 21:06 patrickb left 22:20 committable6 left, greppable6 left, notable6 left, releasable6 left, bloatable6 left, tellable6 left, shareable6 left, sourceable6 left, benchable6 left, evalable6 left, statisfiable6 left, coverable6 left, bisectable6 left, linkable6 left, squashable6 left 22:21 quotable6 left, unicodable6 left, reportable6 left, nativecallable6 left, benchable6 joined, coverable6 joined, statisfiable6 joined, bisectable6 joined 22:22 squashable6 joined, greppable6 joined, notable6 joined, unicodable6 joined, bloatable6 joined, evalable6 joined 22:23 tellable6 joined, sourceable6 joined, releasable6 joined, quotable6 joined, linkable6 joined, reportable6 joined, nativecallable6 joined, shareable6 joined 22:24 committable6 joined
Geth rakudo: 271b64f0d9 | (Nick Logan)++ | src/core.c/Any-iterable-methods.pm6
Revert "Rework IterateOneWithoutPhaser.push-all a bit"

This reverts commit d8281722dbf86c3e58378579ca076b8fe3a89fa3.
The reverted commit causes a regression in zef
22:32
ugexe strange though i cant figure out how to golf it 23:08
m: my $foo := eager gather DEPSPEC: for ^5 -> $e { for ^5 -> $f { take $f; take $_ for |(0 .. $f); next DEPSPEC; } }; say $foo
camelia (0 0 0 0 0 0 0 0 0 0)
ugexe i figured that would have tripped it but it doesnt 23:10
ah it goes away with MVM_SPESH_DISABLE=1 23:38
so that probably explains why i cannot golf it 23:39
ah can golf it now 23:41
loop { my $includes := eager gather DEPSPEC: for ^5 -> $e { for ^5 -> $f { if 1 { take $f; take $_ for |(0 .. $f); next DEPSPEC; } } }; } 23:42
(just shove it in a loop)
loop { MYLABEL: eager gather for ^5 { for ^5 { next MYLABEL } } } 23:44
that one works even without disabling spesh heh
cause its not correct 🤦 23:45
23:46 linkable6 left, evalable6 left
ugexe MVM_SPESH_DISABLE=1 raku -e 'loop { eager gather MYLABEL: for ^5 { for ^5 { next MYLABEL } } }' # works 23:47
23:47 linkable6 joined
ugexe raku -e 'loop { eager gather MYLABEL: for ^5 { for ^5 { next MYLABEL } } }' # does not work 23:47
23:48 evalable6 joined 23:52 jgaz joined