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:07 vrurg_ joined 00:09 vrurg left 00:12 vrurg_ left 00:14 vrurg joined 00:34 vrurg left, vrurg joined 00:46 lucasb left 01:11 epony left 03:09 reportable6 left, notable6 left, benchable6 left, bisectable6 left, unicodable6 left, nativecallable6 left, shareable6 left, squashable6 left, coverable6 left, undersightable6 left, releasable6 left, greppable6 left, quotable6 left, bloatable6 left, statisfiable6 left, evalable6 left, committable6 left, benchable6 joined, ChanServ sets mode: +v benchable6 03:10 shareable6 joined, committable6 joined, bloatable6 joined, nativecallable6 joined, ChanServ sets mode: +v nativecallable6, undersightable6 joined, statisfiable6 joined, ChanServ sets mode: +v statisfiable6 03:11 greppable6 joined, ChanServ sets mode: +v greppable6, notable6 joined, ChanServ sets mode: +v notable6, unicodable6 joined 03:12 releasable6 joined, ChanServ sets mode: +v releasable6, coverable6 joined, squashable6 joined, quotable6 joined, reportable6 joined, ChanServ sets mode: +v reportable6 03:13 bisectable6 joined 03:14 evalable6 joined, ChanServ sets mode: +v evalable6 05:50 robertle left 07:15 epony joined
MasterDuke m: sub arg-coercion( Bool:D() ) { 1 }; arg-coercion(1); sub return-coercion( --> Bool:D() ) { 1 }; return-coercion() 07:51
camelia Unable to coerce the return value from Int to Bool:D; no coercion method defined
in sub return-coercion at <tmp> line 1
in block <unit> at <tmp> line 1
MasterDuke should return types also support type-smilied coercion? 07:52
[Tux] Rakudo version 2019.03.1-624-g6f8442ada - MoarVM version 2019.05-55-g8c85b4a46
csv-ip5xs1.169 - 1.252
csv-ip5xs-2067.484 - 69.604
csv-parser24.131 - 24.381
csv-test-xs-200.453 - 0.534
test7.341 - 7.614
test-t1.701 - 1.758
test-t --race0.864 - 0.924
test-t-2028.677 - 32.312
test-t-20 --race9.434 - 10.764
08:42
nine When did csv-ip5xs-20 become 12x slower?! 08:53
MasterDuke [Tux], nine: i don't see any graphs of csv-ip5xs-20 over time on [Tux]'s site, but maybe he has the logs locally 09:04
nine Seems to have happened during his vacation between 2019-06-02 and 2019-06-15 09:16
And all of the additional time seems to be spent in tear down: I added a END { note "exiting at {now - $start}"} and this gives me exiting at 7.5417977 after which the process stays around for another 50 seconds! 09:17
MasterDuke is he running with --full-cleanup? weren't there some commits related to that flag recently? 09:19
does strace or perf show you what it's doing those last 50s? 09:20
nine I'm certainly not
It would be so much easier to debug stuff like this if our build system weren't as broken :/ 09:26
Unhandled exception: Cannot find method '2' on object of type Scalar [...] from src/Perl6/Compiler.nqp:38 09:27
nine@sphinx:~/rakudo/nqp (master=)> bash config.status 09:28
Unable to read file '/home/nine/rakudo/nqp/tools/templates/unix/nqp-m'
timotimo recommends running the process in gdb and ctrl-c-ing regularly and using MVM_dump_backtrace over and over
MasterDuke never seen that before
nine timotimo: that's what I tried to do. I just wanted to compile a MoarVM with debug info like I did a million times before, but I ran into these ^^^ errors
What did we actually gain for all this pain? 09:31
timotimo hopefully the build system gets more maintainable 09:34
at the very least we now share code between the nqp configure stuff and the rakudo configure stuff again
and not in the "sometimes somebody copy-pastes useful bits back and forth" way we had before
nine I used to be able to actually fix issues with the build system. Now, not so much anymore 09:39
timotimo you do have to admit the build system was rather ad-hoc 09:46
i at least wasn't pleased with it 09:47
and i actively evaded having to deal with it until not long ago (but still before the refactoring)
[Tux] MasterDuke, tux.nl/Talks/CSV6/speed-all.log 09:48
nine Of course it was. But it at least worked and it wasn't all that complicated 09:49
MasterDuke [Tux]++ 09:52
timotimo honestly, i guess you have much more of a stake in the build system than i do
so i think i'll have to defer to your judgement 09:53
nine Seems like it's actually Perl 5's tear down and is caused by github.com/niner/Inline-Perl5/comm...b20f8a2453
And yes, I do realize that I'm being unfair and that the involved developers had only the very best intentions and have objectively done pretty good work and were brave to tackle the swamp that is our build system. 09:54
It's just really frustrating to run into some issue every time I try to do something now. All the more because I kind of anticipated that this will happen as there's a gazillion different situation that need to be taken into account and no new developer can know them all. 09:55
timotimo reminds me of that time i did that thing with the git submodule 09:58
so, any clue what that commit might be doing? 10:05
causing billions of DESTROY invocations?
10:06 go|dfish left
nine That's my guess, though I don't yet know how 10:06
Especially since the benchmark should use only a single Inline::Perl5::ClassHOW based object. The rest is just arrays and strings. 10:08
10:12 go|dfish joined
timotimo OK. anyway, a "perf record", a "perf top" or even using the flamescope could be a good first step to finding out what kind of stuff is running in that period 10:13
also, can you see if it's spending much time in sys? like, if there was a crapton of inter-thread waking-each-other-up perhaps? i don't see how that would apply here, but my wildest suggestions have turned out true more than once before 10:14
AlexDaniel kawaii: what about now? :) 10:27
or we'll have to wait till Monday?
lizmat Files=1275, Tests=108113, 207 wallclock secs (26.83 usr 7.40 sys + 2905.14 cusr 265.44 csys = 3204.81 CPU) 10:56
nine Ah, looks like it's a refcounting issue on the Text::CSV_XS objet. Every time we call a method on it the refcount is increased. If I don't do that it stays fast. But then a test fails because the object gets freed prematurely 11:03
timotimo oh, you know, just have it start at 1 instead of 0, lol 11:05
[Tux] nine, a bug in Text::CSV_XS? 11:10
nine [Tux]: no, in Inline::Perl5 11:11
[Tux] </ relief> 11:15
11:40 kanopis joined 11:49 hankache joined
nine Got a possible fix that keeps both csv_ip5xs.pl and meta_model.t happy....but breaks another test 11:53
timotimo d'oh 11:56
11:56 kanopis left
nine That's the very nature of refcounting fixes... 11:59
timotimo waterbed theory of reference counts
nine Especially if you're too tired to create a complete model in your head.
timotimo there is a mysterious amount of untiredness where that is possible? 12:00
clearly i have not tried enough caffeine at once
nine I recommend against trying this at home :) 12:01
(or anywhere else(
timotimo maybe in a hospital ;) 12:02
nine Of course, there may also be a very different and highly successful approach. Question why I did this change: github.com/niner/Inline-Perl5/comm...a34b99L233 12:03
Just reverting that magically fixes everything and I have no idea why I did it in the first place. It doesn't make much sense.
12:04 AlexDaniel left
hankache hello * 12:04
Can someone take a look at this? github.com/rakudo/rakudo/issues/2610 12:05
It's a Windows Only issue 12:06
timotimo hankache: is PATHEXT set in the environment by default? 12:19
12:19 vrurg left
hankache hi timotimo echo %PATHEXT% yields: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.RB;.RBW 12:22
timotimo i recommend attaching a debugger to that moarvm function you've pointed out 12:24
and seeing what th eactual values end up being
hankache run away 12:25
timotimo or, you know, fprintf stderr some variables in there :) 12:26
hankache comes back
:)
timotimo now what the heck did i do to b0rk my moarvm 12:28
nine I think the bug is pretty obvious: github.com/MoarVM/MoarVM/blob/mast...ops.c#L235 12:29
We always compare the file's extension to a part of the PATHEXT string. However, we don't compare until the next separator but always to the end of the string. Which can only work for the very last of the listed extensions. 12:30
timotimo ah, so it doesn't stop at the shorter string
i don't have a man page for stricmp
so is there a strnicmp or strincmp? 12:34
12:34 vrurg joined
timotimo also, it'll have to do a little more work than that, so it can handle four-letter extensions without issue 12:34
and i guess ; aren't disallowed in filenames either?
nine I think a better fix would be to read that environment variable once, split it into an array and then try to match any of the members. Would save a lot of stricmp calls as well as we no longer try to match partial extensions that can never match. 12:35
timotimo probably, yeah
lizmat @nine: re github.com/niner/Inline-Perl5/comm...4df01514d4 that may have been because of a bug that I introduced a while back and that jnthn fixed not too long ago re BUILDPLAN 12:36
hankache nine: I guess, unfortunately I can't wander in C code 12:38
nine lizmat: the whole "Properly represent P6 subclasses of P5 packages in P5" commit was necessitated by the need to get rid of the rebless as it no longer worked after jnthn's tightening of mixin support. I think the change in the line that caused the refcount issue was just an artifact of my experiments to get stuff working and shouldn't have made it into the commit. 12:39
hankache: none of us could until we tried for the first time
hankache nine: Indeed :) 12:41
I'll work on it 12:46
nine ++hankache 13:02
hankache nine one last question if you may, what would *ext point to '.EXE' or 'EXE'? 13:03
in this line: github.com/MoarVM/MoarVM/blob/8c85...ops.c#L230
nine ".EXE" 13:05
hankache nine thanks
13:50 vrurg left 14:01 vrurg joined 14:38 AlexDaniel joined
hankache nine can you please review github.com/MoarVM/MoarVM/pull/1122 ? 14:41
14:48 vrurg left
nine just did 14:49
14:57 vrurg joined
hankache nine thanks 14:58
releasable6 Next release in ≈4 days and ≈3 hours. 3 blockers. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 15:00
hankache nine: how can I split a string into an array without using strtok? Is there something else I could use? 15:01
vrurg hankache: do you mean 'split'? 15:03
kawaii eh? www.irccloud.com/pastebin/pon9KsFI/ 15:04
cc: AlexDaniel
Something up with the ecosystem mirror?
oh, ecosystem-api.p6c.org seems to redirect to examples.p6c.dev
hankache nine: When you say "I think a proper fix would be to read that environment variable once (e.g. at startup)" Where exactly should I place the function? 15:05
vrurg yes
vrurg So, you have it. :) I didn't see the whole conversation, so if nqp is meant then nqp::split 15:07
hankache vrurg in MoarVM 15:09
vrurg hankache: there is MVM_string_split but that as much as I know about MoarVM for now. 15:11
AlexDaniel rba: why no https on ecosystem-api.p6c.org ??
nine hankache: since the file name is originally an MVMString and you have an MVMString *fileext you may as well turn the PATHEXT into an MVMString and use MVM_string_split and MVM_string_equal_at_ignore_case 15:12
hankache vrurg thanks for the pointer, will look into it
nine thank you for your feedback
rba AlexDaniel: afaik only http was needed. you want me to add https? 15:15
AlexDaniel rba: of course
nine There's just no good reason anymore for using http instead of https for any public facing web anything 15:16
AlexDaniel especially given that the current certificate is for a different domain
15:19 hankache left
kawaii rba: if you could ping me when it's resolved please that would be great 15:28
AlexDaniel if you ask me I'd even say that http endpoints shouldn't ever give anything other than a redirect 15:33
rba kawaii: will do. give me a few minutes. 15:34
AlexDaniel: good point.
nine nqp: print(nqp::getcomp("nqp").config<libdir>) 15:54
camelia /home/camelia/rakudo-m-inst-1/share/nqp/lib
AlexDaniel wow, rakudobrew is now completely different 16:15
it's kinda awesome, now I can easily switch between the distro package and master 16:17
(whoever did that)++ 16:18
vrurg Oh, it reminds me... Need to file a ticket on rakudobrew switch system...
16:27 vrurg left
nine I just realized that something that foiled some plans for me years ago may come back to save the day! It's about the problem I was pondering last weekend with P6 subclasses of P5 classes and the circular reference issue they cause. 16:29
In Perl 5 objects are officially and according to the documentation "blessed references". But in reality what's blessed is not actually the reference, but the object that's pointed to. A second reference to the same underlying object will still be blessed. 16:30
AlexDaniel rba: btw it makes me wonder… does zef accept the certificate blindly or what?
rba: how is that domain used?
I think Blin failed because it got that link from a zef config but then used curl to fetch it 16:31
and if zef doesn't complain, it's a big issue actually
nine What this means is that I can use the original reference to the P5 object that contains the base class' data and store it in the Perl 6 object. And when I pass the Perl 6 object to Perl 5 code I can simply create a new reference that will be pretty indistiguishable from the original one but will have an independent reference count.
rba AlexDaniel: Hmm. zef use http, isn't it?
AlexDaniel it does??? 16:32
nine This way the Perl 6 object will have complete ownership of the Perl 5 kernel, while it's still possible for Perl 5 code to keep the Perl 6 object alive!
16:42 lucasb joined 16:50 pmurias joined, vrurg joined 17:19 vrurg left 17:32 vrurg joined 17:46 hankache joined
pmurias I'm working on getting use chalk:from<node.js> to work in rakudo.js 18:07
the problem is that it seems that CompUnit::Repository wants to install a Stash 18:08
and require(...) in node.js can return anything
I'm not certain how to deal with that 18:09
any ideas?
18:46 ggoebel joined 18:51 ggoebel left 19:11 vrurg left
nine pmurias: you're gonna need something like a CompUnit::Repository::Javascript anyway, aren't you? 19:12
19:12 lucasb left 19:17 vrurg joined 19:18 vrurg left 19:19 hankache left 19:31 vrurg joined
rba kawaii: Messed up my nginx + certbot stuff for ecosystem-api.p6c.org. will try to fix tomorrow. will let you know. 19:35
kawaii rba, no problem, keep me updated! :) 19:36
19:50 brrt joined 20:02 pmurias left 21:11 vrurg left 21:16 vrurg joined 21:22 vrurg left 21:23 brrt left 21:25 brrt joined 21:38 vrurg joined 21:40 vrurg left 21:49 vrurg joined 23:03 brrt left 23:58 Blue^NeXuS joined