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:10
lucasb left
01:10
Kaiepi left
01:14
Kaiepi joined
01:19
Kaiepi left,
Kaiepi joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: ZhongnianTao++ created pull request #3079: Add gb2312 to the encoding lists |
01:31 | |||||||||||||||||||||||||||||||||||||
02:21
pamplemousse_ left
02:32
Kaiepi left,
Kaiepi joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | roast: ZhongnianTao++ created pull request #563: Add test for gb2312 encoding |
03:18 | |||||||||||||||||||||||||||||||||||||
lizmat | Files=1268, Tests=108554, 193 wallclock secs (26.74 usr 7.82 sys + 2684.23 cusr 255.44 csys = 2974.23 CPU) | 04:46 | |||||||||||||||||||||||||||||||||||||
m: dd :{ 42 => 666 } # behold, an object hash | 05:52 | ||||||||||||||||||||||||||||||||||||||
camelia | :{42 => 666} | ||||||||||||||||||||||||||||||||||||||
lizmat | m: dd :{ 42, 666 } # behold, a block ??? | ||||||||||||||||||||||||||||||||||||||
camelia | -> ;; $_? is raw { #`(Block|58607360) ... } | ||||||||||||||||||||||||||||||||||||||
lizmat | bisectable6: dd :{ 42, 666 } | 05:53 | |||||||||||||||||||||||||||||||||||||
bisectable6 | lizmat, Bisecting by output (old=2015.12 new=60cfbb3) because on both starting points the exit code is 0 | ||||||||||||||||||||||||||||||||||||||
lizmat, bisect log: gist.github.com/a5fcda2d7bdf0e43db...0f2d4d0f2d | |||||||||||||||||||||||||||||||||||||||
lizmat, (2015-12-25) github.com/rakudo/rakudo/commit/07...dc61f84053 | |||||||||||||||||||||||||||||||||||||||
lizmat, The result looks a bit unrealistic, doesn't it? Most probably the output is different on every commit (e.g. 「bisect: say rand」) | |||||||||||||||||||||||||||||||||||||||
lizmat | yeah, so it's always been a block | 05:54 | |||||||||||||||||||||||||||||||||||||
ah, this is even mentioned in the doc: "Note: Rakudo implementation currently erroneously applies the same rules for :{ } as it does for { } and can construct a Block in certain circumstances." | 05:55 | ||||||||||||||||||||||||||||||||||||||
05:59
|Tux| left
|
|||||||||||||||||||||||||||||||||||||||
[Tux] |
|
06:09 | |||||||||||||||||||||||||||||||||||||
06:19
|Tux| joined
06:37
squashable6 left
06:40
squashable6 joined,
ChanServ sets mode: +v squashable6
07:15
patrickb joined
07:24
mst left,
mst joined,
mst left,
mst joined
07:37
b2gills left
07:38
b2gills joined
|
|||||||||||||||||||||||||||||||||||||||
AlexDaniel | I feel so weird about deepmap, nodemap, duckmap | 08:32 | |||||||||||||||||||||||||||||||||||||
I read the docs, totally makes sense. They Look like very useful features | 08:33 | ||||||||||||||||||||||||||||||||||||||
but then | |||||||||||||||||||||||||||||||||||||||
greppable6: deepmap | 08:34 | ||||||||||||||||||||||||||||||||||||||
greppable6 | AlexDaniel, 72 lines, 8 modules: gist.github.com/dc8dc3763646666fd7...09e8f22671 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | greppable6: nodemap | ||||||||||||||||||||||||||||||||||||||
greppable6 | AlexDaniel, 12 lines, 1 module: gist.github.com/99151d0c9c84a97a2e...886fa580cb | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | greppable6: duckmap | ||||||||||||||||||||||||||||||||||||||
greppable6 | AlexDaniel, 16 lines, 2 modules: gist.github.com/6f6ecd173efb2d5dd7...dc9f65ed2c | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | one of the “modules” is the doc repo itself | ||||||||||||||||||||||||||||||||||||||
so we have not a single module using nodemap, one module using duckmap | |||||||||||||||||||||||||||||||||||||||
deepmap is probably fine | |||||||||||||||||||||||||||||||||||||||
jnthn | Yeah, I've got a load of use of deepmap in $dayjob codebase also | 09:24 | |||||||||||||||||||||||||||||||||||||
duckmap always feels a bit too swallowy to me | 09:25 | ||||||||||||||||||||||||||||||||||||||
Though I can imagine using it in some cases | |||||||||||||||||||||||||||||||||||||||
masak had completely missed those | 09:43 | ||||||||||||||||||||||||||||||||||||||
probably more a statement of my attention (or lack thereof) of recent features, than of the features themselves :) | 09:44 | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | “recent” features? :) | 10:09 | |||||||||||||||||||||||||||||||||||||
c: 2014.01 <a b c d e f g>.duckmap(-> $_ where <c d e>.any { .uc }).say; | 10:10 | ||||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, ¦2014.01: «Cannot find method 'duckmap' in block at /tmp/8d6S5VAYPr:1 «exit code = 1»» | ||||||||||||||||||||||||||||||||||||||
AlexDaniel | c: all <a b c d e f g>.duckmap(-> $_ where <c d e>.any { .uc }).say; | ||||||||||||||||||||||||||||||||||||||
10:11
|Tux| left
|
|||||||||||||||||||||||||||||||||||||||
jnthn | Wll, if you've been following Perl 6 for the better part of 2 decades, then relatively... ;) | 10:12 | |||||||||||||||||||||||||||||||||||||
AlexDaniel slaps committable | 10:13 | ||||||||||||||||||||||||||||||||||||||
10:13
reportable6 left,
shareable6 left,
greppable6 left,
committable6 left
10:14
bisectable6 left,
quotable6 left,
evalable6 left,
shareable6 joined,
ChanServ sets mode: +v shareable6,
committable6 joined,
ChanServ sets mode: +v committable6,
bisectable6 joined
|
|||||||||||||||||||||||||||||||||||||||
AlexDaniel | c: all <a b c d e f g>.duckmap(-> $_ where <c d e>.any { .uc }).say; | 10:15 | |||||||||||||||||||||||||||||||||||||
10:17
greppable6 joined,
quotable6 joined,
evalable6 joined
10:18
|Tux| joined,
reportable6 joined
|
|||||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, gist.github.com/ad4ef87725bf43e9f9...60b2eb825e | 10:20 | |||||||||||||||||||||||||||||||||||||
AlexDaniel | O_o | 10:21 | |||||||||||||||||||||||||||||||||||||
this one is indeed very recent | 10:22 | ||||||||||||||||||||||||||||||||||||||
c: all say [[1,2,3], [[4,5],6,7], 7].nodemap(*+1); | |||||||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, gist.github.com/6e4c32cc232ec9ac99...976f04e4ac | 10:23 | |||||||||||||||||||||||||||||||||||||
13:21
lucasb joined
13:28
pamplemousse joined
13:56
hankache joined,
pamplemousse left
|
|||||||||||||||||||||||||||||||||||||||
hankache | Hello #perl6-dev | 13:57 | |||||||||||||||||||||||||||||||||||||
.tell kawaii regarding the Rakudo Star release we'll start as soon 2019.07.1 is released | 14:01 | ||||||||||||||||||||||||||||||||||||||
yoleaux | hankache: I'll pass your message to kawaii. | ||||||||||||||||||||||||||||||||||||||
14:08
robertle joined
14:14
hankache left
15:17
robertle left
15:32
patrickb left
15:33
hankache joined
15:34
hankache left
|
|||||||||||||||||||||||||||||||||||||||
ugexe | loop { say ++$; run("xxx", :err).err.slurp(:close); run("xxx", :err).err.slurp(:close); } | 16:03 | |||||||||||||||||||||||||||||||||||||
why does that deadlock at 32 | |||||||||||||||||||||||||||||||||||||||
timotimo | hm, if there's no :in, you don't have to .close-stdin? | 16:04 | |||||||||||||||||||||||||||||||||||||
but 32 sounds like that's the default thread pool size limit | |||||||||||||||||||||||||||||||||||||||
16:05
robertle joined
|
|||||||||||||||||||||||||||||||||||||||
timotimo | try the thread pool scheduler debug env var maybe | 16:05 | |||||||||||||||||||||||||||||||||||||
ugexe | it doesn't do anything beyond setting up the initial general worker thread | 16:10 | |||||||||||||||||||||||||||||||||||||
it wont deadlock if the command exists fwiw | 16:12 | ||||||||||||||||||||||||||||||||||||||
a non-zero exitcode is fine. the command must not exist afaict | 16:14 | ||||||||||||||||||||||||||||||||||||||
dogbert17 | ugexe: perhaps a spesh problem | 16:16 | |||||||||||||||||||||||||||||||||||||
ugexe | if I add `:out` / `$proc.out.close` then it immediately throws an exception | 16:18 | |||||||||||||||||||||||||||||||||||||
The spawned command 'xxx' exited unsuccessfully (exit code: 1) | |||||||||||||||||||||||||||||||||||||||
it seems like the same should happen when accessing .err | 16:19 | ||||||||||||||||||||||||||||||||||||||
16:27
AlexDaniel left
17:08
chloekek joined
17:15
pamplemousse joined
|
|||||||||||||||||||||||||||||||||||||||
Voldenet | the real question is "why does loop { say ++$; my $r = run("xxx"); }" deadlock after a while | 18:10 | |||||||||||||||||||||||||||||||||||||
…while this works flawlessly: loop { say ++$; await Proc::Async.new("xxx").start.then({$}); } | 18:14 | ||||||||||||||||||||||||||||||||||||||
ugexe | because has syncronization and one does not | 18:19 | |||||||||||||||||||||||||||||||||||||
since the former is built using the later | 18:20 | ||||||||||||||||||||||||||||||||||||||
Voldenet | Oh, that makes sense | 18:34 | |||||||||||||||||||||||||||||||||||||
ugexe | so its something like a command that doesn't exist can finish faster than a normal command, and this occurs before all the setup can occur | 18:37 | |||||||||||||||||||||||||||||||||||||
and it gets stuck awaiting X promises (and doesn't add more threads to compensate?) | 18:38 | ||||||||||||||||||||||||||||||||||||||
Voldenet | > MoarVM panic: Internal error: Unwound entire stack and missed handler | 18:50 | |||||||||||||||||||||||||||||||||||||
that's a cooler error | |||||||||||||||||||||||||||||||||||||||
ugexe | that just randomly pops up too? | 18:54 | |||||||||||||||||||||||||||||||||||||
Voldenet | my $is-spawned = await $!proc.ready.then({ if .status ~~ Broken { self!set-status(0x100); return False; }; $!pid = .result; return True; }); | 18:55 | |||||||||||||||||||||||||||||||||||||
I know, return there is wrong and this isn't js ¯\_(ツ)_/¯ | |||||||||||||||||||||||||||||||||||||||
ugexe | how does self!set-status not throwing an error? is there more to this? | ||||||||||||||||||||||||||||||||||||||
Voldenet | I've just replaced the relevant line in Proc.pm6 | 18:57 | |||||||||||||||||||||||||||||||||||||
ugexe | ah thats code from Proc.pm6, i see | ||||||||||||||||||||||||||||||||||||||
im guessing that error is because you removed the CATCH { } handler | 18:59 | ||||||||||||||||||||||||||||||||||||||
(although that much is obvious) | |||||||||||||||||||||||||||||||||||||||
i dont think .ready means the .status is ready though | 19:00 | ||||||||||||||||||||||||||||||||||||||
Voldenet | > my $is-spawned = await $!proc.ready.then({ if .status ~~ Broken { self!set-status(0x100); False } else { $!pid = .result; True } }); | 19:07 | |||||||||||||||||||||||||||||||||||||
this seems to work correctly, sets the proper is-spawned result in this case, but I'm not sure if there are other cases | 19:08 | ||||||||||||||||||||||||||||||||||||||
btw, .then is invoked after invocant is kept or broken | 19:24 | ||||||||||||||||||||||||||||||||||||||
and ready is a promise created with Proc::Async, so i'm pretty convinced that this should work | 19:25 | ||||||||||||||||||||||||||||||||||||||
ugexe | yea, but does .ready mean anything more than ready to start the process? | ||||||||||||||||||||||||||||||||||||||
Voldenet | ready means that vow containing PID was resolved | 19:26 | |||||||||||||||||||||||||||||||||||||
ugexe | sounds like it doesn't mean the process is finished then | 19:27 | |||||||||||||||||||||||||||||||||||||
Voldenet | Ah, yes, it's only a replacement for this is-spawned block | 19:29 | |||||||||||||||||||||||||||||||||||||
wait-for-finish is still in spawn-internal | |||||||||||||||||||||||||||||||||||||||
github.com/rakudo/rakudo/blob/925c...c.pm6#L179 | 19:31 | ||||||||||||||||||||||||||||||||||||||
ugexe | you think thats where the threads are getting blocked? | 19:34 | |||||||||||||||||||||||||||||||||||||
Voldenet | Yes, I've tested it and `await $!proc.ready` is where the problem is | 19:35 | |||||||||||||||||||||||||||||||||||||
ugexe | so something about await $!proc.ready + non-existant command | 19:36 | |||||||||||||||||||||||||||||||||||||
still seems weird it doesn't happen for any non-zero exit though | 19:37 | ||||||||||||||||||||||||||||||||||||||
Voldenet | > $!pid = await $!proc.ready.then({$}); | 19:38 | |||||||||||||||||||||||||||||||||||||
well, this just ignores the problem, I'm guessing it's some problem with the promise | 19:39 | ||||||||||||||||||||||||||||||||||||||
Whoa, you don't even need a process promise to cause a deadlock there | 19:42 | ||||||||||||||||||||||||||||||||||||||
any broken promise works | 19:43 | ||||||||||||||||||||||||||||||||||||||
samcv | i'm working on updating unicode from 11.0 to 12.1 for MoarVM | 19:49 | |||||||||||||||||||||||||||||||||||||
Geth | nqp: 9d7d90aa52 | (Patrick Böker)++ | tools/templates/windows/nqp-m-build.c Fix return code of nqp build runner Don't use `exec()` as that's broken on Windows. Directly use `CreateProcess()`, wait for it to finish, retrieve the exit code and exit with that ourselves. |
20:00 | |||||||||||||||||||||||||||||||||||||
nqp: c0f3ab3d77 | (Patrick Böker)++ | tools/templates/moar/Makefile.in Link build runners with correct flags Forgot to include them as given. |
|||||||||||||||||||||||||||||||||||||||
nqp: fde335ddf6 | (Patrick Böker)++ (committed using GitHub Web editor) | 2 files Merge pull request #566 from patzim/fix-windows-build-runner Fix return code of nqp build runner + A little makefile cleanup |
|||||||||||||||||||||||||||||||||||||||
rakudo/master: 4 commits pushed by (Patrick Böker)++ | 20:03 | ||||||||||||||||||||||||||||||||||||||
Voldenet | ugexe: I've reduced that problem into something more apparent | 20:09 | |||||||||||||||||||||||||||||||||||||
loop { say ++$; do { CATCH { default { } }; await Promise.broken(":("); }; } | |||||||||||||||||||||||||||||||||||||||
I don't think that code is supposed to deadlock | 20:10 | ||||||||||||||||||||||||||||||||||||||
20:33
pamplemousse left
|
|||||||||||||||||||||||||||||||||||||||
Voldenet | more reduced case: loop { say ++$; CATCH { default { } }; { CATCH { }; X::AdHoc.new(payload => ":(").rethrow; }} | 20:51 | |||||||||||||||||||||||||||||||||||||
ugexe | it took me a minute to realize :( was a frown face and not part of :(") | ||||||||||||||||||||||||||||||||||||||
nice work | 20:53 | ||||||||||||||||||||||||||||||||||||||
Voldenet | use nqp; loop { say ++$; CATCH { default { } }; { CATCH { }; my $ex := nqp::newexception(); try nqp::setmessage($ex, "test"); nqp::rethrow($ex) }} | 20:59 | |||||||||||||||||||||||||||||||||||||
21:12
chloekek left
21:20
robertle left
22:43
pamplemousse joined
|
|||||||||||||||||||||||||||||||||||||||
ugexe | Voldenet: github.com/rakudo/rakudo/issues/3080 | 23:15 | |||||||||||||||||||||||||||||||||||||
23:42
pamplemousse left
23:43
pamplemousse joined
|