Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-10-23

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 Zoffix ZofBot: tell me things
00:00 ZofBot Zoffix, The Party did not permit divorce, but it rather encouraged separation in cases where there were no children
00:14 Geth ¦ nqp: e0bd0ec664 | (Zoffix Znet)++ (committed using GitHub Web editor) | docs/ops.markdown
00:14 Geth ¦ nqp: Fix eqat description
00:14 Geth ¦ nqp:
00:14 Geth ¦ nqp: It doesn't appear to default to zero and needs it
00:14 Geth ¦ nqp: explicitly specified.
00:14 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/e0bd0ec664
00:32 MasterDuke Zoffix: i read that to mean the return value. are you thinking of $pos?
00:34 Zoffix Oh, I didn't even read the start of that sentence
00:34 Geth ¦ nqp: 129d4b8aff | (Zoffix Znet)++ (committed using GitHub Web editor) | docs/ops.markdown
00:34 Geth ¦ nqp: Fix eqat description; MasterDuke++
00:34 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/129d4b8aff
00:35 MasterDuke heh, Zoffix++, that is clearer
01:01 astj joined #perl6-dev
01:38 llfourn joined #perl6-dev
01:38 TimToady joined #perl6-dev
01:57 ilbot3 joined #perl6-dev
01:57 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
03:12 AlexDaniel` samcv++
03:59 AlexDaniel` ok, OO::Actors is a really weird one, but the problem is in the module itself
04:00 AlexDaniel` so it does $*SCHEDULER.cue(stuff) hundreds of times, where each “stuff” has an infinite loop
04:00 AlexDaniel` and that infinite loop never ends, never sleeps, and never blocks on anything
04:02 AlexDaniel` so this is a non-issue and I hope nobody is using the module :)
04:10 AlexDaniel` greppable6: OO\:\:Actors
04:10 greppable6 AlexDaniel`, https://gist.github.com/5c11d5a188c5e6fc52418201fa5ffd0c
04:11 AlexDaniel` anyway, feel free to discuss: https://github.com/jnthn/oo-actors/issues/6
04:11 AlexDaniel` .oO( NEXT!! )
04:40 AlexDaniel` greppable6: ZOFFLOP
04:40 greppable6 AlexDaniel`, Found nothing!
04:40 AlexDaniel` ehh
04:40 AlexDaniel` ah
04:40 AlexDaniel` quotable6: ZOFFLOP
04:40 quotable6 AlexDaniel`, OK, working on it! This may take up to three minutes (4412528 messages to process)
04:40 quotable6 AlexDaniel`, Found nothing!
04:40 AlexDaniel` ehh
05:45 evalable6 joined #perl6-dev
06:10 [Tux] This is Rakudo version 2017.09-490-g3f595acfb built on MoarVM version 2017.09.1-614-g19523568
06:10 [Tux] csv-ip5xs        1.183 -  1.184
06:10 [Tux] test            11.914 - 12.020
06:10 [Tux] test-t           3.122 -  3.173
06:10 [Tux] csv-parser      11.921 - 12.367
06:22 AlexDaniel` hmmm maybe WebSocket has issues because it is using IO::Socket::INET instead of IO::Socket::Async
07:41 AlexDaniel` OK, I see some stability issue
07:42 AlexDaniel` found it when I was digging into RT #132287
07:42 synopsebot RT#132287 [open]: https://rt.perl.org/Ticket/Display.html?id=132287 [REGRESSION][CONC] stall/block in async heavy code
07:42 AlexDaniel` the ticket itself is a bit weird because it seems to be doing concurrent access to %c, maybe
07:42 AlexDaniel` but the problem is that it hangs on qqx{}
07:42 AlexDaniel` and I can hang it on qqx without any of that code
07:43 AlexDaniel` it'll take a little bit for me to bisect it, so more info later
07:43 AlexDaniel` *but* I don't see that issue on 2017.09
07:44 AlexDaniel` or at least right now I don't
07:46 committable6 joined #perl6-dev
07:47 lizmat Files=1229, Tests=75768, 315 wallclock secs (14.68 usr  5.25 sys + 2180.70 cusr 212.04 csys = 2412.67 CPU)
07:48 committable6 joined #perl6-dev
08:13 AlexDaniel` lizmat: do you know what files exactly were hanging during the spectest?
08:36 lizmat I'm afraid not  :-(
09:33 AlexDaniel` well, yeah, it'll take some time to bisect
09:34 AlexDaniel` the problem that I'm seeing is that this stuff:
09:34 AlexDaniel` await (^5).map({start { say qqx{echo -n foo $_} } })
09:34 AlexDaniel` dies or hangs, sometimes
09:34 lizmat :-(
09:34 AlexDaniel` I thought that it is a golfed version of this: RT #132287
09:34 synopsebot RT#132287 [open]: https://rt.perl.org/Ticket/Display.html?id=132287 [REGRESSION][CONC] stall/block in async heavy code
09:35 AlexDaniel` but I can't really reproduce the issue right after the merge of better-sched
09:35 AlexDaniel` and IMO this is the kind of issue we don't want to have in a release
09:36 lizmat but, wasn't this issue already in previous release, and it is now *less* manifest ?
09:37 AlexDaniel` I couldn't reproduce it on 2017.09
09:37 AlexDaniel` but I need to double check it
09:37 stmuk Does this only affect  v6.d.PREVIEW?
09:39 AlexDaniel` no, “use v6.d.PREVIEW” is not needed to reproduce it
09:39 * AlexDaniel` is trying again on 2017.09
09:41 lizmat re using phasers in hypered/raced blocks: I would propose setting a $*BATCH dynamic variable if running inside a batch
09:41 lizmat possibly this could have the batch number and maybe some other information
09:42 lizmat that way we wouldn't need any new phasers
09:43 lizmat and could code inside a phaser decide to do something special if $*BATCH is set, or not
09:43 AlexDaniel` This representation (Uninstantiable) does not support elems (for type (null))
09:43 lizmat m: use nqp; nqp::null.elems
09:43 camelia rakudo-moar 3f595acfb: OUTPUT: «Cannot call method 'elems' on a null object␤  in block <unit> at <tmp> line 1␤␤»
09:43 AlexDaniel` OK! False alarm then
09:43 lizmat hmmm
09:43 AlexDaniel` SNAFU.
09:43 lizmat m: use nqp; nqp::elems(nqp::null)
09:44 camelia rakudo-moar 3f595acfb: OUTPUT: «This representation (Null) does not support elems (for type VMNull)␤  in block <unit> at <tmp> line 1␤␤»
09:44 AlexDaniel` that's on 2017.09
09:44 lizmat m: use nqp; nqp::elems(Mu but Ininstantiable)
09:44 camelia rakudo-moar 3f595acfb: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared name:␤    Ininstantiable used at line 1␤␤»
09:44 W4RL0RD joined #perl6-dev
09:44 AlexDaniel` took a bit longer tho, or maybe it depends on system load or whatever
09:44 lizmat m: use nqp; nqp::elems(Mu but Uninstantiable)
09:44 camelia rakudo-moar 3f595acfb: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared name:␤    Uninstantiable used at line 1␤␤»
09:44 lizmat hmmm
09:45 AlexDaniel` buggable: tags
09:45 buggable AlexDaniel`, Total: 1630; 6.D: 2; 9999: 9; @LARRY: 28; ANNOYING: 8; BOGUSTEST: 1; BOOTSTRAP: 4; BUG: 588; BUILD: 12; CONC: 39; DOCS: 1; EXOTICTEST: 4; FLAP: 1; GLR: 3; IO: 19; JVM: 48; LHF: 7; LTA: 178; MATH: 6; META: 2; MOAR: 2; MOLD: 233; NATIVECALL: 21; NYI: 58; OO: 13; OPTIMIZER: 8; OSX: 2; PARSER: 5; PERF: 27; PERFTEST: 1; POD: 19; PRECOMP:
09:45 buggable AlexDaniel`, 15; REGEX: 46; REGRESSION: 38; REPL: 6; RFC: 61; RT: 2; SECURITY: 2; SEGV: 30; SINK: 1; SITE: 1; SPESH: 1; STAR: 7; TESTCOMMITTED: 12; TESTNEEDED: 38; TODO: 13; UNI: 27; UNTAGGED: 284; WEIRD: 2; WINDOWS: 4; See http://fail.rakudo.party/ for details
09:46 W4RL0RD__ joined #perl6-dev
09:47 AlexDaniel` This type (Nil+{Mu::Suggestion[Str]}) does not support elems
09:47 AlexDaniel` really weird errors coming out of this :)
09:47 * AlexDaniel` rakudobugs
09:49 W4RL0RD__ joined #perl6-dev
09:51 ExtraCrispy joined #perl6-dev
09:52 AlexDaniel` m: say 42
09:52 camelia rakudo-moar 3f595acfb: OUTPUT: «42␤»
10:05 AlexDaniel` alright, so there it goes for RT #132287: https://rt.perl.org/Ticket/Display.html?id=132287#txn-1501863
10:05 synopsebot RT#132287 [open]: https://rt.perl.org/Ticket/Display.html?id=132287 [REGRESSION][CONC] stall/block in async heavy code
10:07 AlexDaniel` now, OO::Actors is not our problem, and Test::Scheduler creates its own scheduler so I guess it can be fixed in the module itself
10:08 AlexDaniel` the only question left is about WebSocket module
10:08 AlexDaniel` I tried running the example and it does not seem to work, so it's not just an issue with tests
10:08 AlexDaniel` or so it seems
10:25 greppable6 joined #perl6-dev
10:26 AlexDaniel` samcv: are you online? :)
10:26 Zoffix oh ffs
10:26 Zoffix You brought annoying label to github too?
10:27 AlexDaniel` Zoffix: as I already mentioned, you can rename it to something better
10:27 AlexDaniel` (or did I mention it? I guess I did)
10:28 pmurias joined #perl6-dev
10:29 Zoffix AlexDaniel`: I have no idea what the fuck "annoying" is meant to indicate, so I don't know what something better is
10:29 Zoffix left #perl6-dev
10:30 AlexDaniel` .hug Zoffix
10:30 * huggable hugs Zoffix
10:30 pmurias m: use Test;my regex single { o | k | e }; ok("bookkeeper" ~~ m/<single> ($<single>)/, 'Named backref');
10:30 camelia rakudo-moar 3f595acfb: OUTPUT: «not ok 1 - Named backref␤# Failed test 'Named backref'␤# at <tmp> line 1␤»
10:30 pmurias ^^ that's marked as dubious test
10:31 AlexDaniel` Zoffix: I guess https://rt.perl.org/Ticket/Display.html?id=131003#txn-1496218 is not good enough to explain the purpose?
10:31 samcv AlexDaniel`, i am for a second. was sleeping but woke up
10:31 yoleaux 05:09Z <brrt> samcv: where should i write it? in the repo?
10:32 AlexDaniel` samcv: oh ok, ping me later then
10:32 AlexDaniel` we'll get the release going I hope
10:32 samcv awesome. will ping you when i wake up for real
10:32 pmurias AlexDaniel`: to be fair I'm not sure what the label 'annoying' is meant to be?
10:33 AlexDaniel` pmurias: okay, what about the explanation linked above? Does not cut it?
10:33 llfourn joined #perl6-dev
10:40 AlexDaniel` it may be that we need more than one tag for things that have 「annoying」 tag right now
10:41 pmurias AlexDaniel`: so the label just means that the bug is super annoying to the person who tagged it?
10:43 AlexDaniel` pmurias: oh, that's almost the right definition I think. It means that the bug is super annoying to anyone who stumbles upon it.
10:44 AlexDaniel` like, I didn't experience GH #1202 issue myself, so it's not annoying to me personally (but I tagged it). But I can totally imagine someone pulling his hair out because of this
10:44 AlexDaniel` does it make sense?
10:46 AlexDaniel` let's rename it to [hair-pulling] ? :)
10:50 Geth ¦ nqp: 6824c6aa89 | pmurias++ | 2 files
10:50 Geth ¦ nqp: [js] Implement regex node charrange with ignorecase
10:50 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/6824c6aa89
10:50 Geth ¦ nqp: d2959ad4a4 | pmurias++ | 3 files
10:50 Geth ¦ nqp: [js] Matching literals with :m
10:50 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/d2959ad4a4
10:50 Geth ¦ nqp: 9be4f9ae84 | pmurias++ | src/vm/js/nqp-runtime/nfa.js
10:50 Geth ¦ nqp: [js] NFA matching for more things
10:50 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/9be4f9ae84
10:52 AlexDaniel` lizmat: any chance for a git bisect on macos for RT #132349 ? :)
10:52 synopsebot RT#132349 [open]: https://rt.perl.org/Ticket/Display.html?id=132349 $*IN.getc not blocking on macOS
10:55 AlexDaniel` with ssh access to something macos-ish I can do it myself
10:56 astj joined #perl6-dev
10:56 astj joined #perl6-dev
10:59 lizmat AlexDaniel`: I currently don't have a MacOS machine that's accessible from the outside  :-(
11:00 timotimo .o( it's the inside that counts )
11:08 AlexDaniel` m: say $*INITTIME
11:08 camelia rakudo-moar 3f595acfb: OUTPUT: «Instant:1508756941.119038␤»
11:08 AlexDaniel` c: HEAD say $*INITTIME
11:08 committable6 AlexDaniel`, https://gist.github.com/95c61343aa6e1c5f9f7947f629f25b38
11:09 AlexDaniel` “Deprecated since v2017.09.84.gb.02.da.4.d.1.a, will be removed with release v2017.08!”
11:09 ilmari m: say $*INIT-INSTANT == INIT now
11:09 camelia rakudo-moar 3f595acfb: OUTPUT: «False␤»
11:09 ilmari m: say $*INIT-INSTANT; say INIT now
11:09 camelia rakudo-moar 3f595acfb: OUTPUT: «Instant:1508757008.014608␤Instant:1508757008.073634␤»
11:09 timotimo m: say $*INIT-INSTANT - INIT now
11:09 camelia rakudo-moar 3f595acfb: OUTPUT: «-0.058967␤»
11:10 lizmat MoarVM panic: Heap corruption detected: pointer 0x10c02dde8 to past fromspace  # whee, running code of https://github.com/rakudo/rakudo/issues/1202
11:10 AlexDaniel` why camelia prints no deprecation message?
11:11 ilmari I guess $*INIT-INSTANT gets initialised before any INIT phasers run
11:11 ilmari m: say INIT now - $*INIT-INSTANT
11:11 camelia rakudo-moar 3f595acfb: OUTPUT: «0.0590460␤»
11:11 timotimo AlexDaniel`: because it has RAKUDO_NO_DEPRECATIONS set in its environment
11:11 lizmat m: %*ENV<RAKUDO_NO_DEPRECATIONS> = 0; say $*INITTIME
11:11 AlexDaniel` oh
11:11 camelia rakudo-moar 3f595acfb: OUTPUT: «Instant:1508757135.540318␤Saw 1 occurrence of deprecated code.␤================================================================================␤$*INITTIME seen at:␤  <tmp>, line 1␤Deprecated since v2017.09.84.gb.02.da.4.d.1.a, will be remove…»
11:12 AlexDaniel` so I am changing it to 2018.08, right?
11:12 timotimo among other things because the ================================================================================ doesn't mix well with irc line length limits
11:12 AlexDaniel` or, I guess 2018.07 was mant
11:12 AlexDaniel` meant*
11:12 timotimo how often do you have to run the qqx thing before it usually fails?
11:13 AlexDaniel` timotimo: it really depends. I don't know
11:13 AlexDaniel` but normally it fails within a minute
11:14 Geth ¦ rakudo/nom: 6af44f8d38 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm
11:14 Geth ¦ rakudo/nom: Use a lexical instead of a state var to prevent sinking
11:14 Geth ¦ rakudo/nom:
11:14 Geth ¦ rakudo/nom: This was one of the places where the code of
11:14 Geth ¦ rakudo/nom:   https://github.com/rakudo/rakudo/issues/1202
11:14 Geth ¦ rakudo/nom: was failing.  Since we know that state variables have some racing issues
11:14 Geth ¦ rakudo/nom: and a state var was not needed here, change it to a lexical to reduce
11:14 Geth ¦ rakudo/nom: the surface of potential issues.
11:14 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6af44f8d38
11:15 lizmat running it with --ll-exception gives more info
11:15 lizmat fwiw, most of the issues appear to originate in ThreadPoolScheduler
11:16 lizmat and looking at the code, I wouldn't be surprised if there are still some racing issues there
11:18 Geth ¦ rakudo/nom: bd6c6403e0 | (Aleks-Daniel Jakimenko-Aleksejev)++ | src/core/Instant.pm
11:18 Geth ¦ rakudo/nom: Fix deprecation date
11:18 Geth ¦ rakudo/nom:
11:18 Geth ¦ rakudo/nom: Definitely we cannot remove things from past releases.
11:18 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bd6c6403e0
11:23 lizmat ok, I get the most fails now with "This type (Mu) does not support elems"
11:24 lizmat and this goes back to List.reify-until-lazy, where we first test for $!future.DEFINITE
11:24 lizmat and only then do a nqp::elems($!future)
11:24 timotimo liz, do you know about the cross-thread-write log?
11:25 lizmat no
11:25 lizmat so $!future is being reset in some other thread (which happens if the list is exhausted)
11:25 timotimo it's got lots of false positives in it, but maybe it can figure out why between .DEFINITE and nqp::elems the value might change there
11:25 lizmat how do I activate that ?
11:27 timotimo set MVM_CROSS_THREAD_WRITE_LOG
11:27 timotimo in the env
11:27 lizmat I also wonder what jnthn's thinking was by making $!general-workers, $!timer-workers and $!affinity-workers HLL List objects
11:28 lizmat rather than low level nqp::lists
11:29 lizmat timotimo: activating that brings its own set of errors  :-(
11:30 lizmat moar(81961,0x700003374000) malloc: *** error for object 0x7ffda0479340: pointer being freed was not allocated
11:30 lizmat or just segfault  :-(
11:31 timotimo oh!
11:31 timotimo i suppose it just bitrotted :(
11:31 timotimo i shall investigate briefly
11:32 timotimo can't find that kind of error with valgrind
11:33 timotimo OK, it happens without valgrind though
11:33 timotimo so requires threading to "cooperate"
11:33 lizmat timotimo: do you know why jnthn used Lists for the worker arrays, rather than nqp::lists ?
11:34 timotimo no
11:34 timotimo probably because List is "good enough"?
11:35 lizmat hmmm.. well, in the comments he says that they're immutable
11:35 lizmat which makes me wonder how such a list can have a $!future
11:37 timotimo grmbl why is --asan broken on my system
11:42 timotimo a realclean helped
11:48 patrickz joined #perl6-dev
11:52 patrickz 'annoying' tag name bikeshedding: 'severe'. A bug with consequences you can't easily live with and without a simple workaround possible. NYIs are never severe.
11:55 AlexDaniel` patrickz: I'm totally OK with that. “severe” word does not sound that severe to me, but it works
11:56 AlexDaniel` if there are no better suggestions I'll rename it to “severe” in a few hours
11:58 timotimo lizmat: you can get it to not crash by setting MVM_SPESH_BLOCKING and getting the patch i'll push to moar momentarily
11:58 pmurias a few of the ones we have in RT don't seem that "severe"
11:58 lizmat timotimo++
11:59 lizmat timotimo: I think there's a basic flaw in using Lists for the $!xxx.workers attributes in ThreadPoolScheduler
11:59 timotimo there it is
12:00 lizmat the fails so far are all in .elems being called, and the $!future being obliterated
12:00 lizmat basically: Lists are not thread safe
12:09 lizmat hmmm... it seems to fail most often when $!general-workers is null
12:10 lizmat so could it be that the Scheduler object is being used before it has run its BUILDALL to completion ?
12:22 Geth ¦ rakudo/nom: 50be159f20 | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/create-release-announcement.pl6
12:22 Geth ¦ rakudo/nom: Tiny improvements to announcement generation
12:22 Geth ¦ rakudo/nom:
12:22 Geth ¦ rakudo/nom: This gets the generation in line with my monkey patching for last
12:22 Geth ¦ rakudo/nom: announcements (no trailing whitespace, more unicode, and Perl 6 with
12:22 Geth ¦ rakudo/nom: nbsp).
12:22 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/50be159f20
12:28 Geth ¦ rakudo/nom: 76017036aa | (Aleks-Daniel Jakimenko-Aleksejev)++ | docs/release_guide.pod
12:28 Geth ¦ rakudo/nom: Reflect actual date, claim next release
12:28 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/76017036aa
12:28 AlexDaniel` lizmat: hoping to release a bit later today, let me know when you're done :)
12:29 AlexDaniel` getc issue on MacOS is a little bit worrying but there's not much I can do
12:31 stmuk AlexDaniel`: If you need a remote macOS shell I can probably set one up via SSH tunnels
12:31 AlexDaniel` stmuk: that would be great
12:32 AlexDaniel` stmuk: the first one from here will do: https://github.com/AlexDaniel.keys
12:32 AlexDaniel` if your stuff does not support ed25519 then the other one is fine as well
12:34 astj joined #perl6-dev
12:34 stmuk OK probably take a few mins I'll msg you when done
12:34 AlexDaniel` stmuk: thank you very much!
12:36 stmuk AlexDaniel`: whats your usual UNIX username?
12:36 AlexDaniel` alex
12:41 [Coke] I'm in the middle of upgrading xcode but when that's done can test stuff out
12:46 AlexDaniel` [Coke]: on macos you mean? It's more about bisecting (not just testing). I want to know what caused RT #132349
12:46 synopsebot RT#132349 [open]: https://rt.perl.org/Ticket/Display.html?id=132349 $*IN.getc not blocking on macOS
12:47 [Coke] sure, I can kick off a slow bisect once xcode is done.
12:47 Geth ¦ nqp/master: 9 commits pushed by pmurias++
12:47 Geth ¦ nqp/master: 0d0ff481f9 | [js] Fix syntatic style violations found by eslint
12:47 Geth ¦ nqp/master: a3ebec09e9 | [js] Install correct repr
12:47 Geth ¦ nqp/master: d7416a75bf | [js] Remove unused requires
12:47 Geth ¦ nqp/master: 0a5a92311b | [js] Remove unused NFA constants
12:47 Geth ¦ nqp/master: ce098e2822 | [js] Get rid of remaining unused variable warnings
12:47 Geth ¦ nqp/master: 8fe3f8e444 | [js] eslint --fix a lot of vars into lets
12:47 Geth ¦ nqp/master: 1a0bf85ae1 | Turn remaining vars into lets or consts
12:47 Geth ¦ nqp/master: 33d6db5369 | [js] eslint --fix let uses into const
12:47 Geth ¦ nqp/master: 5f702e07bc | [js] Enable prefer-const linting rule
12:47 Geth ¦ nqp/master: review: https://github.com/perl6/nqp/compare/9be4f9ae84...5f702e07bc
12:48 AlexDaniel` [Coke]: that would be great
12:48 AlexDaniel` stmuk: not sure if I need that anymore ↑
12:50 Geth ¦ rakudo/nom: 6f6e62ea02 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
12:50 Geth ¦ rakudo/nom: Some ThreadPoolScheduler tweaks
12:50 Geth ¦ rakudo/nom:
12:50 Geth ¦ rakudo/nom: - make sure we can identify which .elems failed in stacktrace
12:50 Geth ¦ rakudo/nom: - use = instead of .= Lock like everywhere else
12:50 Geth ¦ rakudo/nom:   - not sure about this one
12:50 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6f6e62ea02
12:51 AlexDaniel` stmuk: but if you'd let me use it in the future then I do need it :)
12:55 AlexDaniel` [Coke]: you can probably use something like this to do it automatically: start { sleep 2; exit 1}; say $*IN.getc
12:56 stmuk AlexDaniel`: OK I'll pause that ... but give me a shout if you still need access
12:56 AlexDaniel` stmuk: thank you!
12:56 japhdc joined #perl6-dev
12:57 unicodable6 joined #perl6-dev
12:58 [Coke] (started bisect, one down..)
13:02 AlexDaniel` by the way, for anybody else reading: if you stumble across unbuildable stuff then use “git bisect skip”. If you're doing it automatically, then you have to “exit 125”. One way to test it is to check if perl6 executable exists after you run make, or you can use the exit code from make itself.
13:10 travis-ci joined #perl6-dev
13:10 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Use a lexical instead of a state var to prevent sinking
13:10 travis-ci https://travis-ci.org/rakudo/rakudo/builds/291486125 https://github.com/rakudo/rakudo/compare/3f595acfbda2...6af44f8d38a0
13:10 travis-ci left #perl6-dev
13:20 [Coke] 5 steps remaining...
13:21 ExtraCrispy joined #perl6-dev
13:41 lizmat AlexDaniel`: still tracing some stuff
13:41 AlexDaniel` cool
13:44 lizmat bisectable6: class A { has $.a = 42; submethod BUILD() {} }; use nqp; dd nqp::getattr(A.new,A,q/$!a/)
13:44 bisectable6 lizmat, On both starting points (old=2015.12 new=6f6e62e) the exit code is 0 and the output is identical as well
13:44 bisectable6 lizmat, Output on both points: «Int $!a = 42»
13:45 lizmat so why is it documented that BUILD should take care of the default values as well?
13:47 [Coke] last run...
13:47 [Coke] (sorry, didn't automate, and am in meeting, so am hitting up arrow every few minutes.)
13:50 [Coke] oh. duh: https://gist.github.com/coke/071fd4d43ec796701df9b81809e64a2c
13:50 [Coke] it's the commit with "getc" in the subject. :)
13:54 AlexDaniel` yeah but Jul 14 :)
13:54 AlexDaniel` [Coke]: thanks
14:01 Zoffix joined #perl6-dev
14:01 Zoffix [Coke]: what does perl6 -e '$*IN.eof.say'  give you?
14:04 japhdotcom joined #perl6-dev
14:05 lizmat Zoffix: it gives True to me
14:05 Zoffix That must be it then. Gives False to me
14:13 [Coke] same as liz, gives true on a recent rakudo
14:15 ggoebel joined #perl6-dev
14:22 Zoffix What about perl6 -e '$*IN.seek: 0, SeekFromCurrent'  does this crash saying can't seek this handle?
14:23 [Coke] no output
14:24 Zoffix Aha!
14:26 Zoffix ZOFVM: Files=1283, Tests=152772, 154 wallclock secs (21.15 usr  3.22 sys + 3311.70 cusr 170.37 csys = 3506.44 CPU)
14:27 Geth ¦ rakudo/nom: e70969e342 | (Zoffix Znet)++ | 2 files
14:27 Geth ¦ rakudo/nom: Use lexical instead of state var when we can
14:27 Geth ¦ rakudo/nom:
14:27 Geth ¦ rakudo/nom: Same reasoning as in
14:27 Geth ¦ rakudo/nom: https://github.com/rakudo/rakudo/commit/6af44f8d38a02bbd0d68cfd014165d6e33e4d89a
14:27 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e70969e342
14:30 travis-ci joined #perl6-dev
14:30 travis-ci Rakudo build passed. Aleks-Daniel Jakimenko-Aleksejev 'Fix deprecation date
14:30 travis-ci https://travis-ci.org/rakudo/rakudo/builds/291487729 https://github.com/rakudo/rakudo/compare/6af44f8d38a0...bd6c6403e083
14:30 travis-ci left #perl6-dev
14:36 Geth ¦ rakudo/nom: 50324bb004 | (Elizabeth Mattijsen)++ | src/core/List.pm
14:36 Geth ¦ rakudo/nom: Threadsafe List.reify-until-lazy a bit
14:36 Geth ¦ rakudo/nom:
14:36 Geth ¦ rakudo/nom: This is a bandaid for the 2017.10 release.  It fixes the most common
14:36 Geth ¦ rakudo/nom: place where https://github.com/rakudo/rakudo/issues/1202 goes awry.
14:36 Geth ¦ rakudo/nom: The result is fewer crashes, and if they crash, it's because MoarVM
14:36 Geth ¦ rakudo/nom: itself go thoroughly corrupted.
14:36 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/50324bb004
14:36 lizmat AlexDaniel`: ^^^ concludes my search for now
14:37 AlexDaniel` lizmat: awesome, thanks
14:40 Zoffix The macos $*IN.getc bug is likely on this line: https://github.com/MoarVM/MoarVM/blob/5d2ee22e6/src/io/syncfile.c#L171 don't got a macos so can't dump stuff to see what's in it. From answers above, on macos $*IN is seekable, and I'm guessing st_size is zero on that line and seek_pos is zero and the result is it thinks it reached EOF so it doesn't block to wait for a new char
14:41 Zoffix Alternatively, the bug is that on macos $*IN is detected as seekable when it ain't (no idea about this stuff)
14:49 [Coke] Zoffix: doing a build with -g now, will try to get you a dump.
14:54 Zoffix This tells me "NOT seekable" on Linux: https://glot.io/snippets/eutbl8qmkz
14:55 Zoffix and IIRC basically the code used by MoarVM to figure out if handle is seekable
14:55 [Coke] STDIN IS: seekable
14:56 Zoffix Well, that's where the problem is at, I guess.
14:57 [Coke] so do we just hardcode if stdin is seekable?
14:57 Zoffix What do you mean hardcode?
14:57 [Coke] https://stackoverflow.com/questions/28760485/different-behavior-of-cin-seekg-tellg-on-os-x-vs-linux
14:58 [Coke] "if stdin, assume seek behavior is <blah>, regardless of what lseek says"
14:59 Zoffix "It appears to be a problem with OS X's standard library, even though this works with clang on Linux. It works on OS X using the Homebrew G++ 4.9."
14:59 Zoffix yikes
14:59 Zoffix [Coke]: with <blah> being what? It could be both seekable and unseekable depending on what it was pointed to, can't it?
15:00 [Coke] no clue, just spitballing.
15:01 [Coke] In any case, is reverting jnthn's commit ok? Or adding a version that is mac specific? (Since the old way worked)
15:01 b2gills joined #perl6-dev
15:03 AlexDaniel` what if it needs #include <unistd.h> ?
15:04 Zoffix It's already included
15:04 AlexDaniel` https://stackoverflow.com/questions/587254/why-does-lseek-return-0
15:04 AlexDaniel` ah right
15:04 AlexDaniel` nvm
15:05 Zoffix [Coke]: reverting is kinda sweeping the problem under the rug. .eof would still be broken. This was all part of rework from async libuv stuff to sync stuff, so presumably inside libuv there's an answer for how to figure out EOF
15:09 * Zoffix &
15:22 lizmat afk for a bit&
15:48 ugexe note that windows had a similar problem, where we recently added a return -1 if ESPIPE in its platform specific MVM_lseek function. which was ok because like lseek its behavior is not defined for non file type descriptors. so maybe we should add that constraint to non-windows MVM_lseek as well
15:59 pmurias bartolin: isn't p6bindattrinv meant for normal non-native attributes?
16:00 Zoffix What about changing this https://github.com/MoarVM/MoarVM/blob/5d2ee22e6/src/io/syncfile.c#L171 to return statbuf.st_size == seek_pos || (statbuf.st_size == 0 && S_ISREG(statbuf.st_mode))
16:00 Zoffix 'cause we already do stat call there
16:02 Zoffix Ah, wait no
16:09 Zoffix ugexe: how to do that? I googled and results say to do lseek to figure out if you're on a seekable device and another answer is to use S_ISREG macro, but that needs a stat call and that's expensive or something?
16:12 ugexe a naive solution may assume fd 0,1,2 are not seekable
16:14 Zoffix That's too native, I think
16:14 Zoffix $ perl6 -e '$*IN.readchars(3).say; $*IN.seek: 0, SeekFromBeginning; $*IN.slurp.say' < foo
16:14 Zoffix abc
16:14 Zoffix abc
16:14 Zoffix def
16:14 Zoffix .seek works fine when $*IN is a file
16:16 ilmari $ perl6 -e '$*OUT.say("wibble"); $*OUT.seek: 0, SeekFromBeginning; $*OUT.say("wat")' > wibble
16:16 ilmari $ cat wibble
16:16 ilmari wat
16:16 ilmari le
16:16 ilmari ditto for $*OUT
16:18 Zoffix maybe special handling: use lseek, if it says fd is seekable and fd is 0, 1, 2, then do stat and check S_ISREG(statbuf.st_mode)
16:19 * Zoffix & for a few hours
16:21 dogbert17 joined #perl6-dev
16:21 ugexe https://github.com/gdamore/less-fork/search?utf8=%E2%9C%93&amp;q=seekable&amp;type= this shows `less` using lseek($, 1, $) to check if it is seekable, and then do a lseek($, 0, $) immediately afterwards if it is
16:22 ugexe so maybe in moarvm it should be doing an lseek($,1,$) instead of lseek($,0,$)?
16:23 bartolin pmurias: oh, I didn't know that. I was looking at that, because this code does not work on the jvm backend: https://github.com/rakudo/rakudo/blob/50324bb004e120a0f82363bf8ff4222dc2cfa014/src/core/Int.pm#L31
16:23 lizmat AlexDaniel`: are you still up for a release today ?   If not, I think I have an idea on one of the underlying issues of https://github.com/rakudo/rakudo/issues/1202
16:24 AlexDaniel` lizmat: go for it, I'll adjust accordingly :)
16:24 lizmat the thing is that List.elems may not be a read-only action on a List
16:25 lizmat and there's plenty of .elems on Lists in ThreadPoolScheduler outside of protected blocks :-(
16:26 bartolin m: use nqp; say nqp::p6bindattrinvres(Int.new,Int,q|$!value|, nqp::getattr(42,Int,q|$!value|))  ## fails with BadReferenceRuntimeException on jvm
16:26 camelia rakudo-moar 50324bb00: OUTPUT: «42␤»
16:27 bartolin pmurias: ^^ in BOOTSTRAP.nqp we define $!value as bigint
16:32 Zoffix bartolin: FWIW that used to segfault on MoarVM
16:32 Zoffix until recently
16:33 Zoffix m: use nqp; nqp::bindattr(Int.new,Int,q|$!value|, nqp::getattr(42,Int,q|$!value|));
16:33 camelia rakudo-moar 50324bb00: ( no output )
16:33 Zoffix m: use nqp; nqp::bindattr_i(Int.new,Int,q|$!value|, nqp::getattr_i(42,Int,q|$!value|));'
16:33 camelia rakudo-moar 50324bb00: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in single quotes; couldn't find final "'" (corresponding starter was at line 1)␤at <tmp>:1␤------> 3e|, nqp::getattr_i(42,Int,q|$!value|));'7⏏5<EOL>␤    expecting …»
16:33 Zoffix m: use nqp; nqp::bindattr_i(Int.new,Int,q|$!value|, nqp::getattr_i(42,Int,q|$!value|));
16:33 camelia rakudo-moar 50324bb00: ( no output )
16:33 Zoffix both seem to work for bigint vOv
16:35 Zoffix That was the fix for the segfault: https://github.com/MoarVM/MoarVM/commit/3b4b032984
16:40 Zoffix m: use nqp; class Foo { has int $.x }; nqp::p6bindattrinvres(Foo.new, Foo, q|$!x|, my int $ = 42)
16:40 camelia rakudo-moar 50324bb00: OUTPUT: «P6opaque: representation mismatch when storing value (of type Int) to attribute (of type int)␤  in block <unit> at <tmp> line 1␤␤»
16:41 timotimo you cannot use bindattr with native attributes
16:41 timotimo you need a bindattr_i equiv; we don't have that for p6bindattrinvres it seems
16:41 timotimo but it'd be easy enough to implement, no need to touch moarvm even
16:41 Zoffix m: use nqp; class Foo { has int $.x = 42 }; nqp::p6bindattrinvres(Foo.new, Foo, q|$!x|, nqp::getattr(Foo.new, Foo, q|$!x|)).x.say
16:41 camelia rakudo-moar 50324bb00: OUTPUT: «42␤»
16:42 lizmat afk for dinner&
16:42 timotimo not sure how exactly that works :) :)
16:42 Zoffix bartolin: maybe Int.new should just be changed?
16:43 Zoffix Feels like the path of least resistance, since on moarvm p6bindattrinvres don't seem to be handling natives in all cases either
16:44 ggoebel joined #perl6-dev
16:44 Zoffix timotimo: what's `bigint` is that considered native attribute or not?
16:45 timotimo where exactly are you seeing that?
16:45 Zoffix Int's $!value attribute
16:45 timotimo ah
16:45 timotimo i expect it's .. quite special indeed
16:46 timotimo write access is usually done via boxing operations
16:46 Zoffix j: use nqp; nqp::bindattr_i(Int.bless,Int, q|$!value|, nqp::getattr_i(nqp::decont(42),Int, q|$!value|))
16:46 camelia rakudo-jvm bd6c6403e: OUTPUT: «Error while reading '/home/camelia/p6eval-token': No such file or directory at /home/camelia/rakudo-j-inst/bin/eval-client.pl line 10.␤»
16:47 timotimo and at the lowest level Int will behave like a bigint, i guess?
16:47 bartolin Zoffix: your last evaluation gives: Attribute '$!value' is not a native int
16:47 timotimo m: use nqp; nqp::box_I(Int, Int.new(99)).perl.say;
16:47 camelia rakudo-moar 50324bb00: OUTPUT: «===SORRY!===␤No registered operation handler for 'box_I'␤»
16:47 Zoffix m: use nqp; my $i := Int.bless; nqp::bindattr($i,Int, q|$!value|, nqp::getattr(nqp::decont(4200000000000000000000000000000000000000000000000000),Int, q|$!value|)); say $i
16:47 camelia rakudo-moar 50324bb00: OUTPUT: «4200000000000000000000000000000000000000000000000000␤»
16:48 timotimo m: use nqp; nqp::add_I(0, Int.new(99)).perl.say;
16:48 camelia rakudo-moar 50324bb00: OUTPUT: «===SORRY!===␤Arg count 2 doesn't equal required operand count 4 for op 'add_I'␤»
16:48 timotimo m: use nqp; nqp::add_I(0, Int.new(99), Int).perl.say;
16:48 camelia rakudo-moar 50324bb00: OUTPUT: «99␤»
16:48 Zoffix bartolin: what about my last one ^
16:48 timotimo since we don't have box_I exposed, you can just do it like that and that'll have the effect you want
16:48 bartolin again a BadREferenceRuntimeException:  Cannot access a native attribute as a reference attribute
16:49 Zoffix timotimo: that'd give me infinite loop tho. Is `Int.new` part necessary?
16:49 timotimo no, that's the argument you're getting passed in
16:49 timotimo this is about the Int:D case for Int.new, right?
16:49 timotimo i mean Int.new(Int:U: Int:D)
16:50 Zoffix Yeah: https://github.com/rakudo/rakudo/blob/nom/src/core/Int.pm#L31-L32
16:50 timotimo i'd implement it based on add_I
16:50 timotimo but not using Int literally in the add_I. use self instead, so it'll be subclassing friendly
16:51 Zoffix m: my $i := 42 but role Meows {}; use nqp; dd nqp::add_I(0, $i, Int)
16:51 camelia rakudo-moar 50324bb00: OUTPUT: «42␤»
16:51 Zoffix cool. Patch coming up
16:51 timotimo does that work on the jvm?
16:51 timotimo j: my $i := 42 but role Meows {}; use nqp; dd nqp::add_I(0, $i, Int)
16:51 camelia rakudo-jvm bd6c6403e: OUTPUT: «Error while reading '/home/camelia/p6eval-token': No such file or directory at /home/camelia/rakudo-j-inst/bin/eval-client.pl line 10.␤»
16:51 timotimo oh, yeah
16:52 bartolin that one gives back 42
16:52 bartolin but this is a Exception again: 'use nqp; nqp::add_I(0, Int.new(99), Int).perl.say;'
16:53 Zoffix bartolin: 'cause that's got Int.new that has p6bindintvres
16:53 bartolin oops, you're right
16:53 bartolin Zoffix++
16:54 travis-ci joined #perl6-dev
16:54 travis-ci Rakudo build passed. Aleks-Daniel Jakimenko-Aleksejev 'Tiny improvements to announcement generation
16:54 travis-ci https://travis-ci.org/rakudo/rakudo/builds/291513127 https://github.com/rakudo/rakudo/compare/bd6c6403e083...50be159f202a
16:54 travis-ci left #perl6-dev
16:57 Zoffix m: use nqp; for ^1000_000 { nqp::p6bindattrinvres(0, Int, q|$!value|, nqp::getattr(42, Int, q|$!value|)) }; say now - INIT now
16:57 camelia rakudo-moar 50324bb00: OUTPUT: «0.␤»
16:58 Zoffix what's up with that output lol
16:59 Zoffix m: use nqp; for ^1000_000 { nqp::p6bindattrinvres(100, Int, q|$!value|, nqp::getattr(42, Int, q|$!value|)) }; say now - INIT now
16:59 camelia rakudo-moar 50324bb00: OUTPUT: «0.164588␤»
16:59 Zoffix m: use nqp; for ^1000_000 { nqp::p6bindattrinvres(0, Int, q|$!value|, nqp::getattr(42, Int, q|$!value|)) }; say now - INIT now
16:59 camelia rakudo-moar 50324bb00: OUTPUT: «0.␤»
16:59 Zoffix Ok, whatevs. Seems to be something about messing with 0's guts
17:00 Zoffix ZOFFLOP: t/spec/S11-modules/nested.t
17:01 Zoffix m: use Test; isnt 2.WHERE, Int.new(2).WHERE
17:01 camelia rakudo-moar 50324bb00: OUTPUT: «ok 1 - ␤»
17:01 Zoffix The nqp::add_I method fails this test
17:01 Zoffix "returns a new object (not a cached constant)"
17:01 * Zoffix tries to remember why that matters
17:04 Zoffix m: use nqp; my $orig := 2; my $new := nqp::add_I(0, $orig, Int); $new does role Meows {}; $orig.^name.say
17:04 camelia rakudo-moar 50324bb00: OUTPUT: «Int+{Meows}␤»
17:05 Zoffix m: use nqp; my $orig := 2; my $new := Int.new: $orig; $new does role Meows {}; $orig.^name.say
17:05 camelia rakudo-moar 50324bb00: OUTPUT: «Int␤»
17:06 Zoffix m: use nqp; my int $orig = 2; my $new := Int.new: $orig; $new does role Meows {}; $orig.^name.say
17:06 camelia rakudo-moar 50324bb00: OUTPUT: «Int+{Meows}␤»
17:06 Zoffix Eh, it's a load of crap, I guess.
17:06 Zoffix the test
17:07 Zoffix Or is there a reliable way to get an uncached Int object? Basically, the idea is you could `Int.new: blah` and then mess with that object all you want without affecting all the other cached Int onstants in the entire codebase
17:08 Geth ¦ nqp: 0539f6bb77 | MasterDuke17++ (committed using GitHub Web editor) | docs/ops.markdown
17:08 Geth ¦ nqp: Correct isprime_I documentation
17:08 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/0539f6bb77
17:08 Zoffix ^ the native int version about just does `box_i` which evidently reuses the cached cosntant
17:09 Zoffix m: use nqp; my int $orig = 2000; my $new := Int.new: $orig; $new does role Meows {}; $orig.^name.say
17:09 camelia rakudo-moar 50324bb00: OUTPUT: «Int␤»
17:12 Zoffix m: use nqp; my $orig := 2; my $new := nqp::add_I(0, $orig, Int); $new does role Meows {}; $orig.^name.say; Rat.new(1, $orig).denominator.^name.say
17:12 camelia rakudo-moar 50324bb00: OUTPUT: «Int+{Meows}␤Int␤»
17:12 Zoffix Looks like there's a way to do it...
17:16 Zoffix m: use nqp; my int $orig = 2; my $new := nqp::div_I(nqp::decont($orig), 1, Int); $new does role Meows {}; $orig.^name.say;
17:16 camelia rakudo-moar 50324bb00: OUTPUT: «Int␤»
17:17 Zoffix works.... kinda hackish, but works
17:20 Zoffix ZofBot: it's alive!
17:20 ZofBot Zoffix, He exists
17:34 Geth ¦ rakudo/nom: e4a5bb17c9 | (Zoffix Znet)++ | src/core/Int.pm
17:34 Geth ¦ rakudo/nom: Improve/Fix Int.new
17:34 Geth ¦ rakudo/nom:
17:34 Geth ¦ rakudo/nom: - Don't use p6bindattrinvres with `bigint` attributes; it's
17:34 Geth ¦ rakudo/nom:     questionable if it should work and fails on JVM (part of #1201)
17:34 Geth ¦ rakudo/nom: - Make Int.new: int candidate properly give a new object instead
17:34 Geth ¦ rakudo/nom:     of a cached constant
17:34 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e4a5bb17c9
17:36 Geth ¦ roast: c0aa93b717 | (Zoffix Znet)++ | S32-num/int.t
17:36 Geth ¦ roast: Improve tests for Int.new not returning cached constant
17:36 Geth ¦ roast:
17:36 Geth ¦ roast: - Test the more direct effects instead of poking at memory addresses
17:36 Geth ¦ roast: - Also cover Int.new(int) and Int.new(Str) candidates
17:36 Geth ¦ roast:
17:36 Geth ¦ roast: Rakudo fix: https://github.com/rakudo/rakudo/commit/e4a5bb17c9
17:36 Geth ¦ roast: review: https://github.com/perl6/roast/commit/c0aa93b717
17:38 * bartolin builds a new r-j
17:43 * Zoffix &
18:16 Geth ¦ roast: bd0c59de19 | usev6++ | 2 files
18:16 Geth ¦ roast: [jvm] Run some tests using doesn't-hang
18:16 Geth ¦ roast: review: https://github.com/perl6/roast/commit/bd0c59de19
18:19 lizmat AlexDaniel`: I don't think I'll be able to get to the https://github.com/rakudo/rakudo/issues/1202 issue for the next 16 hours or so  :-(
18:21 AlexDaniel` lizmat: ok, so let's decide what we are going to do with it. Thing is, we've had this problem for a while so it's not like we *have* to fix it now. At the same time, samcv is still not here and I'm going to bed soon.
18:21 AlexDaniel` lizmat: so if you want to get it into the release, we can release tomorrow
18:22 lizmat I'll be busy with the P6W for the next 3 hours or so
18:22 lizmat and then I'll be ready for bed as well
18:22 lizmat and tomorrow morning I won't be able to do much until 12:30 at least
18:22 AlexDaniel` well tomorrow is like, in 24 hours :)
18:22 lizmat true, ok, let's take it there  :-)
18:23 AlexDaniel` any objections from others?
18:23 Zoffix nope
18:23 AlexDaniel` as far as I'm concerned, there is no need to rush
18:28 AlexDaniel` .tell samcv See https://irclog.perlgeek.de/perl6-dev/2017-10-23#i_15342542. Basically, we'll be delaying it for a bit more. There is RT #132349 which would be nice to have fixed, so probably no need to release moar ahead of time (although it's unclear if we'll get getc issue fixed or not). In any case, see you tomorrow o/
18:28 yoleaux AlexDaniel`: I'll pass your message to samcv.
18:28 synopsebot RT#132349 [open]: https://rt.perl.org/Ticket/Display.html?id=132349 [REGRESSION] $*IN.getc not blocking on macOS
18:28 samcv thanks AlexDaniel`. i'm working on some of the changelog entries i hadn't yet added right now
18:28 yoleaux 18:28Z <AlexDaniel`> samcv: See https://irclog.perlgeek.de/perl6-dev/2017-10-23#i_15342542. Basically, we'll be delaying it for a bit more. There is RT #132349 which would be nice to have fixed, so probably no need to release moar ahead of time (although it's unclear if we'll get getc issue fixed or not). In any case, see you tomorrow o/
18:29 AlexDaniel` samcv: by the way, what was your timezone?
18:29 samcv -8
18:29 samcv or maybe it's -7 depending
18:29 samcv if it's daylight savings
18:30 samcv so it's 11:30am right now
18:30 AlexDaniel` 10 hour difference :)
18:31 AlexDaniel` ok good
18:31 samcv if we can get that bug fixed in that release that'd be great as well
18:31 AlexDaniel` yes
18:32 Zoffix I'll take a crack at $*IN.getc tonight...
18:32 AlexDaniel` awesome. Zoffix++
18:32 Zoffix I guess it's time to figure out where to get a macos shell :)
18:32 AlexDaniel` stmuk: ↑
18:33 Zoffix ZofBot: macos tacos
18:33 ZofBot Zoffix, Timings are more stable on my home machine. Must have some high-CPU browser tabs open at work.
18:33 AlexDaniel` stmuk: one shell for Zoffix, please :)
18:34 samcv you still aren't allowed to virtualize macos right?
18:34 AlexDaniel` ZofBot: what work?
18:34 ZofBot AlexDaniel`, Tonight was one of his nights at the Community Centre
18:35 moritz samcv: I think not
18:35 samcv i think you can if the host is macos though
18:35 samcv per the EULA
18:36 moritz and don't rent the virtual copy out to anybody, I assume?
18:36 ugexe i used macincloud.com before getting mac hardware
18:44 Zoffix stmuk: these two keys, if possible: https://gist.github.com/zoffixznet/76a79a09be65ba72560428c35ee54927
19:11 travis-ci joined #perl6-dev
19:11 travis-ci Rakudo build passed. Aleks-Daniel Jakimenko-Aleksejev 'Reflect actual date, claim next release'
19:11 travis-ci https://travis-ci.org/rakudo/rakudo/builds/291515551 https://github.com/rakudo/rakudo/compare/50be159f202a...76017036aaa5
19:11 travis-ci left #perl6-dev
19:12 lizmat grrr...  it looks like my last changes made hyper/racing only use a single worker  :-(
19:13 lizmat bisecting now
19:13 lizmat .oO( P6W driven debugging )
19:14 Zoffix :D
19:19 lizmat https://news.ycombinator.com/item?id=15535893   # Quest for a 100-Year Programming Language
19:20 samcv javascript is a 100 year language?
19:20 samcv what
19:22 Zoffix "javascript is a 100 year language" — Web Developer
19:23 lizmat .oO( I'm a hammer, you're a nail :-)
19:23 Zoffix :)
19:23 * lizmat just realizes she has been bingewatching Dexter too much
19:24 * stmuk pauses The Orville to look at SSH keys
19:25 lizmat http://blog.builtinperl.com/post/perl-in-brazil   # last question / answer  :-)
19:26 Zoffix \o/
19:28 lizmat false alarm: apparently I was running with some uncommitted changes, HEAD is still ok for hypering/racing
20:09 [Coke] \o/
20:14 lizmat AlexDaniel`: what was the way to get that gist for tickets again ?
20:15 lizmat (changes of the past week)
20:15 Zoffix I didn't do recent modules page cause I didn't feel up to it
20:16 lizmat Zoffix: no problem, sorry to have put the pressure on  :-(
20:37 lizmat so, when *did* the ratchet || fix land in rakudo?  I can't really find it/
20:37 lizmat ?
20:37 lizmat looks like jnthn merged it in Sep ?
20:43 Zoffix bisect: say so 'abc' ~~ /^ [b || a] bc /
20:43 bisectable6 Zoffix, On both starting points (old=2015.12 new=e4a5bb1) the exit code is 0 and the output is identical as well
20:43 bisectable6 Zoffix, Output on both points: «True»
20:44 Zoffix bisect: say so 'abc' ~~ /:r ^ [b || a] bc /
20:44 bisectable6 Zoffix, On both starting points (old=2015.12 new=e4a5bb1) the exit code is 0 and the output is identical as well
20:44 bisectable6 Zoffix, Output on both points: «True»
20:44 Zoffix fine! be that way
20:45 bartolin oops, I just got three segfaults in a row while running integration/error-reporting.t -- and that was not on MoarVM, but on the JVM (1.8.0_144)
20:45 Zoffix bisect: say so 'abc' ~~ /:r  [a || b] c /
20:45 bisectable6 Zoffix, On both starting points (old=2015.12 new=e4a5bb1) the exit code is 0 and the output is identical as well
20:45 bisectable6 Zoffix, Output on both points: «True»
20:46 Zoffix clearly I don't fully understand this stuff :)
20:50 bartolin oh, that's really interesting: this code reliably leads to a segfault with Rakudo version 2017.09-498-ge4a5bb17c built on JVM, using OpenJDK build 1.8.0_144-b01 on FreeBSD 10.4:
20:50 bartolin m: -> ::RT129906 { class :: is RT129906 {} }
20:50 camelia rakudo-moar e4a5bb17c: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤RT129906 does not support inheritance, so <anon|82510288> cannot inherit from it␤at <tmp>:1␤»
20:50 synopsebot RT#129906 [resolved]: https://rt.perl.org/Ticket/Display.html?id=129906 Error when role stubbed as class
20:51 Zoffix bisect: say so 'abc' ~~ /:r ^ a [b || bc]  $/
20:51 bisectable6 Zoffix, Bisecting by output (old=2015.12 new=e4a5bb1) because on both starting points the exit code is 0
20:52 bisectable6 Zoffix, bisect log: https://gist.github.com/8569e45b1eb7f68055315a28eccdef1f
20:52 bisectable6 Zoffix, (2017-09-20) https://github.com/rakudo/rakudo/commit/963a0f0657abaa0431d465e601c75b50462b4cd2
20:52 Zoffix k, now I understand
20:52 Zoffix Geth: ver https://github.com/rakudo/rakudo/commit/963a0f0657abaa0431d465e601c75b50462b4cd2
20:52 Geth Zoffix, version bump brought in these changes: https://github.com/perl6/nqp/compare/2017.09-3-g4bc6050...2017.09-7-ga5f92f2fe
20:53 Zoffix lizmat: Sep 20; first two commits by smsl++: https://github.com/perl6/nqp/compare/2017.09-3-g4bc6050...2017.09-7-ga5f92f2fe
20:55 lizmat ok, so not in the past 2 weeks
21:31 Geth ¦ nqp: 84cc117776 | usev6++ | src/vm/jvm/runtime/org/perl6/nqp/io/AsyncProcessHandle.java
21:31 Geth ¦ nqp: [jvm] Left shift exit code for AsyncProcessHandle
21:31 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/84cc117776
21:37 lizmat and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/2017/10/23/2017-43-hyper-lands-racing/
21:38 Zoffix \o/
21:42 cognominal lizmat++
21:42 Geth ¦ roast: 3802dde946 | usev6++ | S07-hyperrace/for.t
21:42 Geth ¦ roast: [jvm] Don't run hyperrace tests that might hang
21:42 Geth ¦ roast: review: https://github.com/perl6/roast/commit/3802dde946
21:43 Zoffix lizmat: FWIW, this one's in reverse. The description is of the buggy behaviour; I made it return Proc always: "fixed IO::Pipe.close so that only the .close on the last open handle will return the Proc object"
21:43 lizmat ah, ok, fixing
21:43 lizmat must have misread the commit message
21:45 lizmat fixed
21:45 lizmat Zoffix++
21:45 Zoffix lizmat++ # good weekly
21:54 evalable6 joined #perl6-dev
21:55 samcv lizmat++
22:06 * lizmat goes off to bed
22:19 Zoffix wonder how to test the $*IN.getc issue, since it relies on STDIN being a tty or something
22:31 Zoffix This covers the bug, but I would've liked to test that I can read from it too and that .eof becomes True when you read everything: https://gist.github.com/zoffixznet/e377f82d12d0d2fa0b02de0bdf5e697b
22:54 Zoffix We don't got a way to create IO::Handles from file descriptor numbers, do we?
22:55 Zoffix Alternatively, how do I get features of openpty() without using C code (or using NativeCall)
23:00 * Zoffix tries to hack something up with `script` command
23:04 timotimo i do believe moar has something to get an io handle from an fd
23:04 timotimo don't know the details, also gotta go to bed
23:04 timotimo o/
23:06 Zoffix \o
23:24 Zoffix (╯°□°)╯︵ ┻━┻
23:25 Zoffix 24 minutes writing a shiny test routine until I realized `script` sits and waits for MY TTY to CTRL+D instead of reacting to .in.close from shell
23:26 Zoffix Oh wait, nm, it works :p
23:41 Zoffix works on... lInux :(
23:42 Zoffix Another strike against Unicode chars in code: https://i.imgur.com/afLFM0d.png
23:42 Zoffix Works fine in my editor and terminal, but not when I'm sshed into macos box
23:43 Zoffix (those are fancy quotes)
23:46 Zoffix *sigh* the test hangs on MacOS for some reason
23:49 Zoffix looks like IO::Pipe.spurt is busted on macos
23:50 Zoffix Or rather IO::Pipe.close after spurt :S
23:50 Zoffix Hangs: ./perl6 -e 'my $p = shell :in, q|script -q /dev/null "./perl6" "test.t"|; $p.in.spurt: "meow"; $p.in.close; $p.in.close';
23:51 Zoffix Works:  ./perl6 -e 'my $p = shell :in, q|script -q /dev/null "./perl6" "test.t"|; $p.in.say: "meow"; $p.in.close; $p.in.close';
23:51 Zoffix oh, it waits for a newline or something
23:51 Zoffix yeah, .print: "meow" "hangs" while .print: "meow\n" ok
23:52 Zoffix k, nm, i'ts something with `script` program. screw it
23:56 Zoffix OK. Now I see the same bug lizmat mentioned in repl.t tests. Where STDIN I send to a Proc ends up in my STDOUT pipe
23:56 Zoffix # expected: "False\nmeow\n\nTrue\n"
23:56 Zoffix #  matcher: 'infix:<~~>'
23:56 Zoffix #      got: "meow\n^D\b\bTrue\nmeow\n\nTrue\n"

| Channels | #perl6-dev index | Today | | Search | Google Search | Plain-Text | summary