🦋 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 01:16 greppable6 left, releasable6 left, statisfiable6 left, coverable6 left, squashable6 left, linkable6 left, evalable6 left, quotable6 left, reportable6 left, bisectable6 left, committable6 left, shareable6 left, notable6 left, unicodable6 left, tellable6 left, nativecallable6 left, benchable6 left, sourceable6 left, bloatable6 left, releasable6 joined, shareable6 joined, bisectable6 joined, tellable6 joined 01:17 coverable6 joined, greppable6 joined, evalable6 joined, reportable6 joined, squashable6 joined, sourceable6 joined 01:18 quotable6 joined, linkable6 joined, benchable6 joined, committable6 joined, unicodable6 joined 01:19 nativecallable6 joined, notable6 joined, statisfiable6 joined, bloatable6 joined 02:19 bisectable6 left, linkable6 left, greppable6 left, statisfiable6 left, evalable6 left, releasable6 left, notable6 left, unicodable6 left, benchable6 left, sourceable6 left, tellable6 left, bloatable6 left, reportable6 left, squashable6 left, coverable6 left, quotable6 left, committable6 left, nativecallable6 left, shareable6 left, squashable6 joined, benchable6 joined, bloatable6 joined 02:20 statisfiable6 joined, reportable6 joined, releasable6 joined, greppable6 joined, sourceable6 joined, nativecallable6 joined, committable6 joined 02:21 bisectable6 joined, tellable6 joined, quotable6 joined, notable6 joined 02:22 unicodable6 joined, shareable6 joined, evalable6 joined, coverable6 joined, linkable6 joined 04:08 coverable6 left, releasable6 left, evalable6 left, notable6 left, reportable6 left, quotable6 left, shareable6 left, tellable6 left, bloatable6 left, committable6 left, greppable6 left, statisfiable6 left, unicodable6 left, squashable6 left, benchable6 left, nativecallable6 left, bisectable6 left, linkable6 left, sourceable6 left, nativecallable6 joined 04:09 quotable6 joined, benchable6 joined, shareable6 joined, notable6 joined, committable6 joined, statisfiable6 joined, reportable6 joined 04:10 unicodable6 joined, tellable6 joined, releasable6 joined, greppable6 joined, bloatable6 joined, sourceable6 joined, linkable6 joined, coverable6 joined, evalable6 joined 04:11 bisectable6 joined, squashable6 joined 06:02 reportable6 left 06:04 reportable6 joined 07:27 patrickb joined 10:27 patrickb left 11:38 patrickb joined
Geth rakudo: 5ecc8308fc | (Elizabeth Mattijsen)++ | 2 files
Reduce overhead of loops with phasers by at least 5%

Completely re-imagines the IterateOneWithPhasers iterator:
  - set the FIRST phaser flag in .new
  - check for any iteration in .new, don't bother with much if none
  - keep the next value pulled as an attribute, which simplifies loops
  - add some helper methods to reduce bytecode footprint of the fast path
  - don't use any control statements
Also adds a Block.callable_for_phaser method that will return a Callable for the given phaser on the given block, or Nil if there are no phasers.
12:02 reportable6 left 12:05 reportable6 joined
Geth nqp/new-disp: b76786d4b3 | (Jonathan Worthington)++ | 2 files
Stop generating MoarVM if_o and unless_o ops

These ops, along with istrue and isfalse, behave according to the object's boolification protocol configuration and may result in a method call. Said method call needs to be performed via the new dispatch mechanism.
For now, generate istrue + if_i/unless_i; the istrue will later become a dispatch op, so factor out emitting it in preparation for that.
nqp/new-disp: 72c1606a57 | (Jonathan Worthington)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp
Compile isfalse using istrue + not_i

And also prepare the compilation of istrue to become a compilation into a dispatch op.
13:22 patrickb left 13:24 patrickb joined
patrickb Are there any graphics designers among us? I'd welcome someone to make the two images at github.com/patrickbkr/rakudo/tree/...ler-assets more shiny. (Gimp files are located one folder up in `raw-images`). Those are the backgrounds of the new MSI installer. 13:27
Geth rakudo: a5d8135392 | (Elizabeth Mattijsen)++ | src/core.c/Any-iterable-methods.pm6
Fix next/last with Slip as value

The iterator handling loops with phasers would not properly handle a Slip passed as a value with next/last if the "pull-one" path was taken. Also make sure that the LAST phaser only will get executed if there actually was an iteration.
patrickb Please contact me before going at it, there are some conditions that should be met.
Geth rakudo/new-disp: 7d45745f6c | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Use boot-code, not boot-code-constant

Otherwise closures won't work out properly.
rakudo/new-disp: e4fe996b86 | (Jonathan Worthington)++ | src/core.c/Routine.pm6
Always use new-disp based wrap on MoarVM

Switch to using the conditional compilation to leave the existing implementation in place for other backends.
nqp/new-disp: 89d4f2fba7 | (Jonathan Worthington)++ | 2 files
Compile istrue into a dispatch op
nqp/new-disp: b2a385e987 | (Jonathan Worthington)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp
Compile chain QAST op using dispatch
nqp/new-disp: 405d2a095c | (Jonathan Worthington)++ | src/core/dispatchers.nqp
Handle Raku methods added to NQP objects
rakudo/new-disp: 083ce6b4d7 | (Jonathan Worthington)++ | src/Perl6/World.nqp
Ensure code object is set on stub

Didn't matter much before now, but does so with the new dispatcher.
rakudo/new-disp: d6d9bd14c6 | (Jonathan Worthington)++ | src/Perl6/bootstrap.c/BOOTSTRAP.nqp
Use new dispatch op for role group selector
rakudo: patrickbkr++ created pull request #4448:
Extend binary release pipeline to also create an MSI installer
rakudo/new-disp: 18de797ba2 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
Handle native refs in new-disp multi dispatcher
Kaiepi getting curried roles to do their thing is a doozy, but things are looking up locally 16:40
16:45 Voldenet left 16:50 Voldenet joined
Kaiepi m: blob8.new(0,0,0).decode("utf16") 17:15
camelia Malformed UTF-16; odd number of bytes (3)
in block <unit> at <tmp> line 1
Kaiepi m: "abc".encode("latin1").decode("utf16") 17:16
camelia ( no output )
Kaiepi m: "aouou".encode("latin1").decode("utf16")
camelia ( no output )
Kaiepi m: "aoaou".encode("latin1").decode("utf16") 17:17
camelia Unhandled exception: Failed to write 100 bytes to filehandle: No space left on device
from SETTING::src/core.c/Exception.pm6:583 (/home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.c.setting.moarvm:<anon>)
from gen/moar/stage2/NQPHLL.nqp:21…
Kaiepi m: "aoaou".encode("latin1").decode("utf16")
camelia Unhandled exception: Failed to write 100 bytes to filehandle: No space left on device
at SETTING::src/core.c/Exception.pm6:527 (/home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.c.setting.moarvm:print_exception)
from gen/moar/stage2/NQPH…
Kaiepi uh
Geth rakudo/new-disp: 7c58455dd9 | (Jonathan Worthington)++ | src/vm/moar/dispatchers.nqp
hllize values in multi-dispatch type checking

To make sure that we dispatch properly on values from NQP land.
tonyo Kaiepi: iirc that bot writes to a temp file and then runs it 17:30
lizmat m: say "hello" 17:31
camelia hello
lizmat m: "aoaou".encode("latin1").decode("utf16")
camelia Malformed UTF-16; odd number of bytes (5)
in block <unit> at <tmp> line 1
18:03 reportable6 left, reportable6 joined
Kaiepi m: "aoaou".encode("latin1").decode("utf16"); CATCH { .backtrace.say } 18:09
camelia Backtrace(2 frames)
Malformed UTF-16; odd number of bytes (5)
in block <unit> at <tmp> line 1
Kaiepi weird, where's the "col 2" coming from? 18:10
for S32-str/encode.t
oh, todo 18:12
18:12 notna joined 18:45 notna left 18:47 notna joined
patrickb sena_kun: Am I right, that you use releasable for your release manager work? 19:41
sena_kun patrickb, correct. 19:49
patrickb, not sure if the both is meant or the ake script, but both.
patrickb both? What's that? I only knew about the ake file 19:50
sena_kun releasable6, status 19:51
releasable6 sena_kun, Next release in ≈13 days and ≈23 hours. 1 blocker. Changelog for this release was not started yet
sena_kun, Details: gist.github.com/b37d20f353565962f8...7cd30eb3ef
sena_kun patrickb, :)
oops, sorry
the first `both` is `bot`
patrickb Hm. It seems I know little about the release infra. So you don't use the Ake file? 19:53
only the first :-p
sena_kun patrickb, I am using both the bot and the Ake file. 19:54
patrickb There was a request to also provide checksums for our release files. I now have a minimal sh script to sign and verify a file to be released. Do you mind if I try to integrate it into that ake file? Is there any thing else that needs to be done? 19:55
Also what's your thoughts on you / the Ake script also doing the precomp release builds? (It's an open question. I'm very willing to continue doing those.) 19:56
sena_kun patrickb, this can be done, yes. Patch the Ake file, then add another step to the github.com/rakudo/rakudo/blob/mast..._guide.pod if we're talking about rakudo (the most optimal way is to have this task under human-3 umbrella (see Ake script), but for documenting purposes.
patrickb, if you are thinking about moarvm too, then you'll need to add the script somewhere to the repo and update steps from github.com/MoarVM/MoarVM/blob/mast...e_guide.md 19:57
patrickb OK. I'll have a look.
Btw. The next release will have a shiny new MSI installer on Windows. :-)
sena_kun patrickb, can you please elaborate on precomp builds, like what exactly are they, what's required? 19:58
patrickb The tar.gz and zip files offered on rakudo.org which contain a readily compiled rakudo + zef. 19:59
sena_kun ah-ha
patrickb The process to build them is largely automated. One needs to (still manually) start an Azure CI pipeline run, wait 20 minutes, download the resulting files, sign, upload. 20:00
sena_kun patrickb, ah-ha, makes sense. can it handle building from branches? 20:01
patrickb It doesn't build from a repo. It works off of the actual source release. 20:02
When staring the pipeline run, one needs to provide a URL which I usually point to the new source release on rakudo.org.
sena_kun good 20:04
patrickb, it all sounds good to me, I don't mind taking this bit on me if it's at least somewhat integrated into the releasable.
patrickb I never tried it, but I guess it would also work when pointing it to one of those GitHub autogenerated branch archives.
sena_kun Would be awesome to ease your burden as well.
patrickb I'm not the releaser. So it's more of a more burden on you thing. 20:05
I actually don't mind continuing to do it, but I'd like for someone else to know what's going on.
sena_kun patrickb, alright, anything I can be helpful with? 20:08
patrickb OK. I'll have a look at that ake file and see if I can integrate the checksuming. 20:10
Can we maybe just do the next release together? Then you can show me how to do a source release technically and I can show how to do the binary stuff. I guess it wouldn't hurt to increase the bus factor in both directions.
sena_kun patrickb, sure, I'll ping you about the time 20:14
patrickb Sounds good.
20:23 notna left
patrickb I'm off for today. 'night everyone! 20:26
sena_kun patrickb, rest well!
20:27 patrickb left 21:25 Kaiepi left 21:26 Kaiepi joined 21:39 Altai-man joined
Geth nqp/new-disp: 72588c0bad | (Jonathan Worthington)++ | src/vm/moar/QAST/QASTCompilerMAST.nqp
Avoid a potentially large flattening

Which also saves rather a lot of copying.
21:41 Altai-man left 21:51 Kaipi joined 21:52 Kaiepi left 22:25 japhb left 22:31 japhb joined