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