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:58 vrurg joined
AlexDaniel uhhh 01:25
c: 2018.09 for 0..0x10FFFF { say .uniname if .unival == 25 }; say now - BEGIN now
committable6 AlexDaniel, ¦2018.09: «CIRCLED NUMBER TWENTY FIVE␤«timed out after 10 seconds» «exit signal = SIGHUP (1)»»
AlexDaniel c: HEAD for 0..0x10FFFF { say .uniname if .unival == 25 }; say now - BEGIN now
committable6 AlexDaniel, ¦HEAD(9d1505d): «CIRCLED NUMBER TWENTY FIVE␤0.54908169␤»
AlexDaniel this is so fast now!?
bisect: old=2018.09 for 0..0x10FFFF { say .uniname if .unival == 25 }; say now - BEGIN now
bisectable6 AlexDaniel, Bisecting by exit signal (old=2018.09 new=9d1505d). Old exit signal: 1 (SIGHUP)
AlexDaniel, bisect log: gist.github.com/7e8c13b98a0bb33a52...a6ce60fa11 01:27
AlexDaniel, (2019-01-05) github.com/rakudo/rakudo/commit/08...b55e9799a2
AlexDaniel lizmat: .unival is now *much* faster than just 2x colabti.org/irclogger/irclogger_lo...9-09-05#l7 01:28
tellable6 AlexDaniel, I'll pass your message to lizmat
01:43 epony left 03:00 lucasb left, epony joined 05:41 Elronnd joined
Elronnd I am making an api to embed perl6 in c 05:41
I want to be able to say something like p6eval("my $x = 5;"); p6eval("say $x;"). Simply running EVAL on whatever string does not work because EVAL does not affect the external scope 05:42
how can I get that to work? My first thought was to have some kind of namespace variable I could pass to EVAL each time, in which new names persist 05:43
but neither the *%n nor the PseudoStash parameters seem to do that. Is it possible?
And how does the repl do it?
05:50 sortiz left
nine Elronnd: AFAIK the repl uses nested lexical contexts to keep those symbols available 06:32
Elronnd HA 06:37
haha
that's clever
I could do something like that--but it would have some overhead 06:38
is there a way to do what I want to do?
nine I don't think there's a good one. Feeding a program line by line into a compiler like this just goes fundamentally against the compiler's architecture. The question is: why do you even think you need it? 06:47
FWIW I ran into the exact same issue with Inline::Perl6 and my conclusion was that I couldn't come up with an actual use case (besides writing tests for Inline::Perl6) where such functionality was actually needed. 06:48
What I do need is be able to load Perl 6 modules, create those objects and call functions and methods. And that's quite possible without EVAL 06:49
Elronnd ok 07:01
the main thing I want it for is defining functions 07:02
I want to be able to expose functions, to say 'I have this c function; now feed it to perl6'
07:26 robertle joined
nine Elronnd: how would the Perl 6 code then use such functions? 08:42
08:46 dogbert17 left 11:50 pmurias joined 11:56 lucasb joined 12:03 Guest15407 joined 12:31 pmurias left 12:32 pmurias joined 12:36 epony left 12:38 epony joined
|Tux| Rakudo version 2019.07.1-255-g9d1505d18 - MoarVM version 2019.07.1-177-g38915b934
csv-ip5xs0.672 - 0.759
csv-ip5xs-205.001 - 5.046
csv-parser21.061 - 22.777
csv-test-xs-200.429 - 0.443
test6.939 - 7.001
test-t1.721 - 1.750
test-t --race0.779 - 0.785
test-t-2029.350 - 29.930
test-t-20 --race9.528 - 9.687
12:57
12:59 ufobat joined 13:14 pmurias left, pmurias joined
Geth rakudo: fa238cac19 | (Paweł Murias)++ | tools/build/gen-js-makefile.nqp
[js] Remove no longer needed script that generated a Makefile.in
13:14
14:02 squashable6 left 14:03 squashable6 joined, ChanServ sets mode: +v squashable6
kawaii AlexDaniel: are you interested in another ecosystem roast? 14:06
vrurg kawaii: what is it about? 14:07
timotimo always! 14:10
(dunno)
vrurg Sounds like there is ecosystem roas around 14:14
14:56 pmurias left
AlexDaniel kawaii: hmm let's see 15:09
kawaii AlexDaniel: it's in progress, will bother you later :)
AlexDaniel kawaii: ah ok! most issues here were fixed github.com/rakudo/rakudo/issues/3132 15:10
so doing another one is probably a good idea
15:13 ufobat_ joined 15:14 ufobat_ left
jnthn Finally...I get around to fixing some things :) 15:14
japhb jnthn: \o/ (And there was much rejoicing ....) 15:15
15:17 ufobat left
Guest15407 jnthn: [Coke] offered free coffee to whoever fixed R#3057 15:21
synopsebot R#3057 [open]: github.com/rakudo/rakudo/issues/3057 "too many open files" when repeatedly using Proc::Async
jnthn $ perl6 -e 'run ‘perl6’, ‘-e’, ‘use NativeCall; sub strdup(int64) is native(Str) {*}; strdup(0)’'
The spawned command 'perl6' exited unsuccessfully (exit code: 0, signal: 11) in block <unit> at -e line 1
That looks better :)
Guest15407: If I drink any more coffee today it'll mean I don't sleep well tonight :P
Guest15407 :-) 15:22
jnthn And the good news is that our tests didn't depend on such kinds of exit being ignored 15:26
japhb jnthn: Any hope of merging PEA in this burst of activity? (I ask because a few commenters on your perf talk at Riga asked when they'd see those improvements in a default rakudo build) 15:28
Kaiepi when will breaking changes stop being merged in preparation for the next release? 15:29
jnthn japhb: There's still some fixes to do before that can happen; the math is a bit tricky, and I've not quite felt up to it in the last weeks. Almost feeling normalish again by now, though. Maybe next week. :) 15:33
japhb Best of luck with fully working brain. :-) 15:34
jnthn Yes, this stuff is still a bit of a stretch even when I have one... :)( 15:35
*:)
Known problems are: 1) materialization on two branches breaks SSA form 2) the analysis is smart enough to do away with circular data structures but the materialization/deopt ain't, 3) the unboxing of bigints is still leak-tastic if they actually are upgraded 15:37
japhb Heh 15:38
jnthn m: gist.github.com/jnthn/51f33103301b...95f92f9b62 15:42
evalable6 (exit code 2) 1..2
not ok 1 - code dies
# Failed test 'code dies'
# at san…
jnthn, Full output: gist.github.com/328f8b5bd2af85b6e7...a966903b34
Geth rakudo: 225b1c56f9 | (Jonathan Worthington)++ | src/core.c/Proc.pm6
Take signal part of process outcome into account

So that if something exists with a SEGV, then:
  * The Proc is falsey
  * Sinking the Proc will explode
Fixes #3149.
15:45
synopsebot RAKUDO#3149 [closed]: github.com/rakudo/rakudo/issues/3149 [severe] Processes that segfault should return a failure (just like they do for non-zero exit codes)
rakudo: 89fc9f356b | (Jonathan Worthington)++ | src/core.c/Exception.pm6
Report signal in X::Proc::Unsuccessful
rakudo: 6b42d3148a | (Jonathan Worthington)++ | src/core.c/Proc.pm6
Align Proc.signal with Proc.exitcode
roast: 618eefb482 | (Jonathan Worthington)++ | S29-os/system.t
Test Proc.[Bool|Sink] accounts for signal

Covers github.com/rakudo/rakudo/issues/3149.
15:46
AlexDaniel jnthn: thank you
japhb AlexDaniel: Might be worth a moar/nqp bump in order to pick up the Moar-level fixes from earlier. 15:48
AlexDaniel sure
Geth nqp: 18d11a94eb | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/templates/MOAR_REVISION
[MoarVM Bump] Brings 46 commits

MoarVM bump brought: github.com/MoarVM/MoarVM/compare/2...gcf3b545e5 cf3b545e5 Reinstate callsite during uninlining 5f177f582 Make MVM_HASH_RANDOMIZE properly control hash rand 1fd0fdcd6 Fix stack simulation losing track in some cases 38915b934 Tweak spesh logging's new compunit handling/quotas ... (42 more lines)
15:49
rakudo: 9dd67cb37b | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/templates/NQP_REVISION
[NQP Bump] Brings 8 commits

NQP bump brought: github.com/perl6/nqp/compare/2019....g18d11a94e 18d11a94e [MoarVM Bump] Brings 46 commits 110038284 [js] Skip a 64bit test ba5c67be3 [js] Fix bug cause by == now being nqp::iseq_i in NQP 1b0230a92 [js] Fix preprocessing the qregex tests 9eb5f2549 Fix wrong makefile variable name 079fd8257 [JVM] Improve some error messages 726917eaf Merge pull request #576 from patzim/rakudo_3136 75ef1a51e Use cincludes configuration variable from MoarVM
japhb AlexDaniel: Thanks! 15:50
15:52 robertle left
japhb jnthn: FWIW, on rakudo master now I find `time perl6 -e ''` bounces (bimodally) between ~140ms and ~210ms on my machine. Could be an antagonist on my machine, but thought I'd mention it since you just fixed one bug that resulted in bimodal timings. 16:16
jnthn Curious, i just did 10 invocations and they're all within around 3ms of each other. 16:21
[Coke] (bimodal timings) ... weird. 16:26
Kaiepi can someone review github.com/MoarVM/MoarVM/pull/1166 and github.com/rakudo/rakudo/pull/3164 ? the former's more pressing since i can't really continue with my grant without the third commit 16:32
17:00 robertle joined
Elronnd nine: it would just be able to just call them like any other NativeCall function 17:30
like 17:31
my &func = nativecase(:(int32, int32 -> Str), $ptr-from-c);
Geth ¦ problem-solving: vrurg assigned to jnthn Issue Unification of Array/List and Hash/Map behaviors. github.com/perl6/problem-solving/issues/99 17:51
AlexDaniel greppable6: PF_MAX 18:27
greppable6 AlexDaniel, Found nothing!
AlexDaniel Kaiepi: I see a few MVM_free(wi->req); lines removed, why is that? 18:35
jnthn I was trying to figure that out too, but then saw quite a few other bits of refactoring, so figured I'd try and work it out...then ran out of time. 18:38
tellable6 gist.github.com/9a0773464530e2c33e...bc858b518c
AlexDaniel jnthn: message for you ↑
I should fix tellable6 with long messages
jnthn It...should maybe say it's for me :P
AlexDaniel it shouldn't gist stuff, but it adds a few extra characters to the original message so there's a chance that it won't fit 18:39
jnthn: fwiw slapping ?w=1 on the pr links really helps :D 18:42
as in github.com/MoarVM/MoarVM/pull/1166/files?w=1
Kaiepi: but yeah, I'm interested to know if it leaks more, less or same 18:44
Kaiepi AlexDaniel, i think it was because uv_close now takes a callback that does the freeing, but i'd need to check the pullreq to see if i didn't actually remove some by accident 18:51
AlexDaniel maybe also try a test script with thousands of connections or something like that 18:52
18:58 dogbert17 joined 18:59 [Coke] joined, [Coke] left, [Coke] joined
timotimo i finally found my mistake with Concurrent::Progress 19:51
i used .new(:target(1)) where new doesn't take that argument
so i was off by one
20:13 irced joined 20:18 pmurias joined 20:32 MasterDuke joined 20:57 pmurias left 20:58 pmurias joined 21:04 lucasb left 21:23 pmurias left 21:25 japhb left 21:30 pmurias joined 21:47 japhb joined 22:35 irced left 22:36 BeastieBot left 22:37 irced joined 22:45 pmurias left