Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:20 squashable6 left 00:25 squashable6 joined 00:57 leont left 01:00 lizmat joined 01:02 lizmat left 01:24 lucasb left 04:05 raschipi left 05:08 robertle left
nine ugexe: ah, so that ends all speculation 05:49
[Tux] somehow, have no decisive clue made it more suspense :) 06:02
yoleaux 28 Apr 2019 17:11Z <nine> [Tux]: so maybe they put the fence down on purpose _because_ they were afraid the wind would throw it around?
06:41 tyil left, tyilanmenyn joined 06:45 [TuxCM] left 07:08 lizmat joined 07:11 lizmat left 07:16 tyilanmenyn is now known as tyil 07:21 patrickb joined 07:29 patrickb left 07:35 patrickb joined
kawaii releasable6: status 08:00
releasable6 kawaii, Next release will happen when it's ready. 2 blockers. 132 out of 252 commits logged (⚠ 2 warnings)
kawaii, Details: gist.github.com/e3a64aae2fee846684...2b9fecf632
|Tux| Rakudo version 2019.03.1-252-gcac95fbbc - MoarVM version 2019.03-102-g423a9cc7d
csv-ip5xs0.699 - 0.710
csv-ip5xs-205.822 - 5.881
csv-parser22.577 - 22.637
csv-test-xs-200.420 - 0.426
test6.297 - 7.000
test-t1.605 - 1.664
test-t --race0.750 - 0.792
test-t-2027.995 - 28.372
test-t-20 --race8.842 - 8.846
08:43
09:01 leont joined 10:13 hankache joined 11:03 gfldex left 11:04 gfldex joined 11:05 hankache left
nine So I decided to add loads of debug info to release_register to find the place where we release registers in random order. But as soon as I did that the reproducibility issue with conditionals disappeared. Turns out, I added some fix to NQP and probably forgot to recompile... 11:38
timotimo d'oh 11:39
nine Now I only got issues with the Telemetry, Test and NativeCall modules. The rest looks fine. Issues seem to be about SC deps in different order and some strings from the compiler backend like "HandlerCategory", "HLL", "MASTBytecodeAssembler" and so on. 11:40
timotimo i definitely know that feeling
nine On the bright side, since there is only a 1 byte difference in Test.pm6's precomp file and this doesn't show up in moar --dump, I wrote a little mbc parser: gist.github.com/niner/63a718023aba...c1ccd84e32 11:45
And because writing all those $!mbc.read-int32 was getting boring, I wrote a BytecodeReader for that which takes a class definition as input :) 11:46
timotimo ooooh
i like that
with a CStruct, you could conceivably just read the sizeof(thatstruct) and nativecast ;)
though that has alignment stuff done to it 11:47
nine With that it's just my class Frame { has uint32 $.bytecode-offset; has uint32 $.bytecode-length; ... } my $frame = $reader.read-struct(Frame);
Yeah, I mentioned that CStruct idea in the ticket that started jnthn++'s design process for bytecode handling. Making alignment optional would be pretty simple actually. 11:48
timotimo mhm
nine However CStruct starts running into difficulties when you want to do things like: class Bytecode { has uint32 $.frames-count; has Frame @.frames is elems(*.frames-count) } 11:49
timotimo true 11:50
nine Fun really starts when the thing starts compiling code for reading the struct. Should still be rather easy to do 11:51
timotimo "the thing"?
nine The ByteReader
timotimo oh btw 12:01
do you want to give me input on the new heap snapshot format i've cooked up?
BBL 12:18
nine The ByteReadersure 12:19
sure
12:26 raschipi joined
nine Ok, down to a single byte difference in Test.pm6 and Telemetry.pm6 respectively! 12:38
And in both cases the byte is part of the locals debug_map
bytecode.pl6 is so incredibly useful for this :) tools++
raschipi nine++ 12:39
nine And I think I found the place where this happens! 12:40
Need to change trains 12:41
Finally! 12:50
raschipi Reproducible?
Or the train finally came? 12:51
12:53 leont left
nine Reproducibility :) 12:54
Doing a final check now building all repos in a fresh checkout
Final two issues were symbols from loaded modules getting imported in hash order and debug_map getting processed in hash order 12:55
raschipi Are you testing the builds in similar systems? 12:56
nine on my laptop?
12:56 lucasb joined
raschipi Two subsequent builds in your laptop. Thatis awesome, but doesn't mean it's reproducible yet. 12:57
nine You know, you could have just left me that victory a mere quarter of an hour before arriving at my parents' 12:58
raschipi Congrats, nine, I'm really happy for this victory. You're awesome. 12:59
I meant to say you should keep going, that's all.
nine And the final test was successfull indeed! 13:03
Except for a small nit: libmoar.so does not build reproducibly. But I guess the distro people know how to make the C compiler behave
raschipi Moar is already reproducible: tests.reproducible-builds.org/debi...oarvm.html 13:06
nine That's good to know :) 13:08
Unfortunately I don't have the time anymore to clean up the commits
As to release blockers: t/06-telemetry/01-basic.t fails without make install 13:13
13:29 patrickb left 13:43 patrickb joined
nine And mu installed perl6 doesn't find libmoar.so 14:39
patrickb nine: On linux? Are you sure you ran the installed perl6? Does ../lib/libmoar.so exist? 14:59
discord6 <timotimo> Im not at the keyboard right now, but I can briefly explain the format I made up 15:06
<timotimo> It starts with a version identifier, followed by a bunch of blocks that are a human readable name, a size (if possible), a per-element size for certain block types and then usually a zstd data stream 15:07
<timotimo> There are also TOC blocks which have the human readable type, start, and end positions in the file for blocks that were already written 15:08
<timotimo> At the very end of the file, if it was cleanly closed, the site of the l last TOC is written down
<timotimo> Positions in the file are 64bit unsigned little endian integers 15:09
<timotimo> I should make things a bit more uniform, I feel like 15:18
<timotimo> There will also be a few plaintext block types. One of them will have a bit of prose explaining the format itself, it will live at the start, for a human reader to find 15:19
<timotimo> The other will be jsonified data that the heap snapshot profiler ollected during the run, like statistics and such 15:20
15:32 leont joined 15:41 Geth left 15:42 Geth joined 16:05 lucasb left
nine patrickb: nine@sunshine:~/rakudo (reproducible_builds=)> which perl6 16:07
/home/nine/rakudo/install/bin/perl6
nine@sunshine:~/rakudo (reproducible_builds=)> perl6 -e ''
perl6: error while loading shared libraries: libmoar.so: cannot open shared object file: No such file or directory
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/8FEHBFkahj
Undecla…
nine nine@sunshine:~/rakudo (reproducible_builds=)> ls ~/rakudo/install/lib/libmoar.so
evalable6 nine, Full output: gist.github.com/78e12d62a1a3d7d993...7fdf070898
nine /home/nine/rakudo/install/lib/libmoar.so
patrickb nine: This is on latest rakudo? 16:08
16:08 leont left
nine yes 16:08
patrickb Ugh...
nine Btw. nine@sunshine:~/rakudo (master=)> perl Configure.pl --prefix=/home/nine/rakudo/install --backends=moar 16:10
Use of uninitialized value $nqp_config{"moar::ldrpath_relocatable"} in quotemeta at Configure.pl line 320.
Use of uninitialized value in concatenation (.) or string at Configure.pl line 321.
patrickb nine: Can you run this: objdump -a -x `which perl6`|grep RUNPATH 16:12
That's a good hint!
nine I think....I just need to run MoarVM's and nqp' Configure.pl again 16:14
patrickb looks like you have a very old MoarVM running...
well old, not very old 16:15
nine yes! 16:16
No, it was current master. But I haven't run Configure.pl in a while
patrickb That explains it. Is it working now? 16:17
nine An error message in rakudo's Configure.pl to that effect would have been nice 16:18
Yes, works just fine :)
Btw. I pushed my work into the reproducible_builds branch for now. Will hopefully be able to clean up the commits and merge tomorrow 16:29
16:46 patrickb left 16:54 robertle joined 16:57 patrickb joined 20:07 ufobat__ joined 20:10 ufobat_ left 20:38 raschipi left 20:41 Geth left 20:44 Geth joined
kawaii releasable6: status 20:53
releasable6 kawaii, Next release will happen when it's ready. 2 blockers. 132 out of 252 commits logged (⚠ 2 warnings)
kawaii, Details: gist.github.com/78ea763b1360a80256...22d6c24eb3
21:11 [Tux] left 21:27 Geth left 21:28 Geth joined 21:32 [Tux] joined
AlexDaniel` hmm so I guess alerts.perl6.org/ is dead? 21:54
kawaii: the remaining commits you'll have to log yourself :)
kawaii AlexDaniel`: going to make a PR tomorrow setting the next release to 2019.05 - seems that things didn't go to plan this month with the unexpected server outage taking most of the attention :) 21:57
AlexDaniel` kawaii: ah, alright 21:58
good decision, makes sense
though I still recommend to changelog these 120, because next month you might have to do a lot more :) 21:59
kawaii yes, IIRC there's a script to do most of the changelog for me 22:01
AlexDaniel` weeeeeelll
releasable gives a list that you can copy-paste
kawaii hm, I have a 3 day weekend coming up - seems like the ideal time to get 2019.05 done 22:02
AlexDaniel` everything else I used to do manually, but I think samcv has a script for moarvm
kawaii: as for the PR, just commit it directly
kawaii ah yes I suppose I do have that power now :) 22:03
22:22 gfldex left 22:23 gfldex joined 22:47 lizmat joined 22:55 patrickb left