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| |
|
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
|