Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-07-12

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

All times shown according to UTC.

Time Nick Message
00:17 BenGoldberg joined #perl6-dev
00:52 [Coke] dogbert17: how did you run htmlify?
00:59 astj joined #perl6-dev
00:59 [Coke] ah, I can duplicate it.
01:49 ilbot3 joined #perl6-dev
01:49 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
01:50 [Coke] samcv, dogbert17: the htmlify failure was a result of samcv's commit: 0b005062fb63f7b62f79f318a1bfe450c3d49010 which I just reverted.
02:02 astj joined #perl6-dev
03:14 [Tux] joined #perl6-dev
03:16 vendethiel joined #perl6-dev
03:43 AlexDaniel joined #perl6-dev
04:23 ugexe m: Nil.?starts-with("foo"); # bug?
04:23 camelia rakudo-moar c6cc1a: OUTPUT: «Invocant of method 'starts-with' must be an object instance of type 'Cool', not a type object of type 'Nil'.  Did you forget a '.new'?␤  in block <unit> at <tmp> line 1␤␤»
04:35 llfourn m: Nil.^find_method("starts-with").package.say
04:35 camelia rakudo-moar c6cc1a: OUTPUT: «(Cool)␤»
04:35 llfourn wat
04:36 llfourn m: Nil ~~ Cool
04:36 camelia rakudo-moar c6cc1a: ( no output )
04:36 llfourn m: say Nil ~~ Cool
04:36 camelia rakudo-moar c6cc1a: OUTPUT: «True␤»
04:36 llfourn huh
05:00 BenGoldberg m: dd Nil
05:00 camelia rakudo-moar c6cc1a: OUTPUT: «Nil␤»
05:00 BenGoldberg m: say Nil.WHAT
05:00 camelia rakudo-moar c6cc1a: OUTPUT: «Nil␤»
05:00 BenGoldberg m: say Nil.HOW
05:00 camelia rakudo-moar c6cc1a: OUTPUT: «Perl6::Metamodel::ClassHOW.new␤»
05:01 BenGoldberg m: say Nil.^parents
05:01 camelia rakudo-moar c6cc1a: OUTPUT: «()␤»
05:01 BenGoldberg m: say Mu.^parents
05:01 camelia rakudo-moar c6cc1a: OUTPUT: «()␤»
05:01 BenGoldberg m: say Cool.^parents
05:01 camelia rakudo-moar c6cc1a: OUTPUT: «()␤»
05:45 samcv [Coke], is travis at least finishing now?
05:45 samcv hopefully. i set it to only do bigpage. is annoying to do without feedback from travis
05:45 samcv thanks for the revert though
06:50 [Tux] This is Rakudo version 2017.06-209-gc6cc1a7a3 built on MoarVM version 2017.06-56-g161ec639
06:50 [Tux] csv-ip5xs        2.545
06:50 [Tux] test            12.904
06:50 [Tux] test-t           4.144 - 4.482
06:50 [Tux] csv-parser      12.174
06:50 [Tux] Error encoding UTF-8 string: could not encode codepoint 1805894 (0x1B8E46), codepoint out of bounds. Cannot encode higher than 1114111 (0x10FFFF)
06:50 [Tux] in block <unit> at 88.t line 21
07:38 [Tux] joined #perl6-dev
08:50 [TuxCM] joined #perl6-dev
09:10 robertle joined #perl6-dev
09:19 Geth ¦ roast: 291b557e0d | (Elizabeth Mattijsen)++ | S03-operators/mix.t
09:19 Geth ¦ roast: Fix faulty tests
09:19 Geth ¦ roast: review: https://github.com/perl6/roast/commit/291b557e0d
09:23 Geth ¦ roast/6.c-errata: 84e08cabdd | (Elizabeth Mattijsen)++ | S03-operators/mix.t
09:23 Geth ¦ roast/6.c-errata: Fix faulty tests, same as in master
09:23 Geth ¦ roast/6.c-errata: review: https://github.com/perl6/roast/commit/84e08cabdd
09:34 astj joined #perl6-dev
09:41 lizmat wonder if this would affect Rakudo Perl 6 on Win10 as well: https://randomascii.wordpress.com/2017/07/09/24-core-cpu-and-i-cant-move-my-mouse/
09:41 yoleaux 00:27Z <perlawhirl> lizmat: I'm not sure I'm an authority :D The docs say a Mix is like a Bag, so my opinion is it should behave similar to bags, ie: False.
09:55 timotimo hm. it's about starting and quitting a whole bunch of short-lived processes; i think even roast wouldn't qualify for the amount of processes dying at the same time you have to have to get this bad behaviour
09:56 nine 3 decades of developing Windows and they still haven't figured out the most basic tasks of an OS - creating and destroying processes?
09:57 timotimo nobody could have known that multi-processor computers would be so popular in the future
09:57 timotimo and also: the problem is on windows 10, but not on windows 7
09:57 timotimo so at some point they have forgotten how to process
10:02 arnsholt Isn't that one of those fundamental differences between Windows and Unix too though?
10:03 arnsholt Unix processes are cheap, but Windows processes are more heavyweight
10:03 timotimo hmm. one major difference is the absence of fork in windows
10:03 timotimo for whatever that's worth
10:18 astj joined #perl6-dev
10:18 astj joined #perl6-dev
10:19 Zoffix heh, I have to put execution cap at 96% on VirtualBox running in Win10 host because otherwise I can't move my mouse either when I'm spectesting :)
10:21 Zoffix though haven't noticed the issue when spectesting natively on Win10
10:26 Zoffix ugexe: IMO yeah. We should add (or auto-generate) all the Cool methods into Nil to make them propagate the Nil. Otherwise the safecall operator is useless in many cases where you make use of Cool methods.
10:27 Zoffix Last time such a proposal was met with resistance as being messy
10:27 Zoffix Similar issue exists with Failure and Any methods that make 1-item list
10:28 Zoffix m: say Failure.new.elems; # look mah, no failures!
10:28 camelia rakudo-moar c6cc1a: OUTPUT: «1␤»
10:31 timotimo has Nil $!foo handles Cool :)
10:35 DrForr_ Egads. String matching in Python is amazingly clunky.
10:35 timotimo how so? just because regexes are second-class citizen?
10:36 DrForr_ Mostly.
10:37 DrForr_ I'm properly layering stuff for TensorFlow, and the hoops I need to go through in order to unpack a type declaration semi-cleanly aren't quite on fire but they're close.
10:40 Geth ¦ rakudo/nom: 0cf3487160 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
10:40 Geth ¦ rakudo/nom: Any (<=) Any should always be True, not False
10:40 Geth ¦ rakudo/nom:
10:40 Geth ¦ rakudo/nom: Unlike Any (<) Any is always False.  Caught while overhauling subset
10:40 Geth ¦ rakudo/nom: tests.  This e.g. fixes set() (<=) SetHash.new.  This is *not* the
10:40 Geth ¦ rakudo/nom: same cod path as set() (<=) set(), as that will return True based on
10:40 Geth ¦ rakudo/nom: the fact that the nqp::eqaddr() test fires.
10:40 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0cf3487160
10:41 lizmat .oO( fishy flows )
10:41 lizmat *sigh*  :-)
10:41 DrForr_ o/ I'm gonna eat you little fishie o/
10:42 DrForr_ At least I've cured the segfault.
10:59 lizmat m: dd Nil (<=) Nil   # wonders if this should be True or not
10:59 camelia rakudo-moar 0cf348: OUTPUT: «Bool::True␤»
11:00 lizmat currently it is the same as:
11:00 lizmat m: dd Nil.Set (<=) Nil.Set
11:00 camelia rakudo-moar 0cf348: OUTPUT: «Bool::True␤»
11:00 lizmat but oddly enough:
11:00 lizmat m: dd Nil.Set
11:00 camelia rakudo-moar 0cf348: OUTPUT: «set(Any)␤»
11:01 lizmat which implies:
11:01 lizmat dd Any.Set eqv Nil.Set  # :-(
11:01 lizmat m: dd Any.Set eqv Nil.Set  # :-(
11:01 camelia rakudo-moar 0cf348: OUTPUT: «Bool::True␤»
11:02 * lizmat feels that Nil.Set should be Nil
11:03 lizmat m: dd Set.new(Nil)  # subtle difference
11:03 camelia rakudo-moar 0cf348: OUTPUT: «set(Nil)␤»
11:04 lizmat ok, so either Nil.Set should be Nil, or should be set(Nil)
11:05 lizmat m: dd Nil.Set  # clearly wrong
11:05 camelia rakudo-moar 0cf348: OUTPUT: «set(Any)␤»
11:09 DrForr_ I'd go with set(Nil), arguing simply that the null set and null are different things.
11:11 samcv or it could be set().. though idk really.
11:11 samcv is Nil nothing or is Nil something
11:12 lizmat well, Nil should indicate the absence of a value where there should be one
11:12 samcv and with that i'm gonig to bed. night all. hopefully going to work more on making sure nothing concatted has to ever re-normalize the entire length of both strings tomorrow!
11:12 samcv i will have a party when i achieve that i think
11:13 astj joined #perl6-dev
11:13 lizmat good night, samcv
11:14 samcv at least i made it so that renormalization gets triggered like < 15% of the time compared to before
11:15 samcv only triggers now when renormalization will actually result in a different result than just bonding the two strings
11:17 dogbert17 .tell [Coke] htmlify works again, many thanks for fixing
11:17 yoleaux dogbert17: I'll pass your message to [Coke].
11:22 Geth ¦ rakudo/nom: f42e53cbee | (Elizabeth Mattijsen)++ | src/core/Nil.pm
11:22 Geth ¦ rakudo/nom: Make QuantHash.new(Nil) and Nil.QuantHash consistent
11:22 Geth ¦ rakudo/nom:
11:22 Geth ¦ rakudo/nom: Although I'm not 100% sure this is correct, it is at least better
11:22 Geth ¦ rakudo/nom: than generating a QuantHash.new(Any).
11:22 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f42e53cbee
11:38 pmurias joined #perl6-dev
11:46 AlexDaniel joined #perl6-dev
11:59 Geth ¦ nqp/master: 6 commits pushed by pmurias++
11:59 Geth ¦ nqp/master: c564807632 | [js] Remove our support of debugging source map generation itself
11:59 Geth ¦ nqp/master: 976b3cd111 | [js] Remove unused named parameter
11:59 Geth ¦ nqp/master: fe785783eb | [js] Merge role into class
11:59 Geth ¦ nqp/master: 350d4a5d9b | [js] Delete dead code
11:59 Geth ¦ nqp/master: 9a61818247 | [js] Quote all strings is JSON compatible way
11:59 Geth ¦ nqp/master: ea32ec96ae | [js] Change the way source maps are generated
11:59 Geth ¦ nqp/master: review: https://github.com/perl6/nqp/compare/da267b0320...ea32ec96ae
12:16 Geth ¦ rakudo/nom: 5074158712 | (Elizabeth Mattijsen)++ | src/core/Rakudo/QuantHash.pm
12:16 Geth ¦ rakudo/nom: Don't compare yourself, duh!
12:16 Geth ¦ rakudo/nom:
12:16 Geth ¦ rakudo/nom: Fixes <a b>.Mix (<=) <a>.Mix.  Caught when overhauling subset tests.
12:16 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5074158712
12:22 robertle_ joined #perl6-dev
12:27 Ven joined #perl6-dev
12:31 go|dfish joined #perl6-dev
12:40 cschwenz1 joined #perl6-dev
12:59 awwaiid joined #perl6-dev
13:15 Geth ¦ rakudo/nom: 1ce8071e5e | (Elizabeth Mattijsen)++ | src/core/set_subset.pm
13:15 Geth ¦ rakudo/nom: Need two additional similar candidates
13:15 Geth ¦ rakudo/nom:
13:15 Geth ¦ rakudo/nom: To prevent Ambiguous call to 'infix:«(<=)» for mix() (<=) set() .
13:15 Geth ¦ rakudo/nom: Spotted while overhauling subset tests.
13:15 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1ce8071e5e
13:17 jnthn Man, such a lot of backlog for such a short vacation :)
13:18 lizmat jnthn  o/
13:18 lizmat you could wait for the next P6W  :-)
13:19 llfourn wb jnthn
13:19 Zoffix jnthn: someone in #perl6 was asking last night about something you likely know about: https://irclog.perlgeek.de/perl6/2017-07-11#i_14858173
13:22 jnthn lizmat: heh, that's not a bad idea :)
13:22 jnthn At least just a handful of RTs :)
13:22 jnthn Zoffix: Hm, I get DNS resolution issue on the logs again right now :S
13:23 jnthn It's odd, seems transient but repreating
13:25 jnthn hah, yup, now they finally loaded
13:26 jnthn But scumbag browser doesn't scroll to the anchor
13:26 jnthn Ah, an RT showed up about that
13:27 jnthn m: await start { say $*THREAD.id }
13:27 camelia rakudo-moar 507415: OUTPUT: «3␤»
13:28 jnthn I'm wondering if it's some issue caused by us tracking the dynamic scope of the place we do the start
13:28 jnthn But clearly it doesn't happen in the above example
13:29 jnthn m: start { say $*THREAD.id; await Promise.in(2); say $*THREAD.id }; sleep 1; start { sleep 3 }
13:29 jnthn m: start { say $*THREAD.id; await Promise.in(2); say $*THREAD.id }; sleep 1; await start { sleep 3 } # d'oh
13:29 jnthn Hm, but why no output
13:29 camelia rakudo-moar 507415: OUTPUT: «Resource temporarily unavailable»
13:29 camelia rakudo-moar 507415: OUTPUT: «3␤3␤»
13:30 jnthn m: use nqp; start { say $*THREAD.id; say nqp::threadid; await Promise.in(2); say $*THREAD.id; say nqp::threadid }; sleep 1; await start { sleep 3 } # d'oh
13:30 camelia rakudo-moar 507415: OUTPUT: «===SORRY!===␤Arg count 0 doesn't equal required operand count 2 for op 'threadid'␤»
13:30 jnthn ah, darn
13:30 jnthn m: use nqp; start { say $*THREAD.id; say nqp::threadid(nqp::currentthread); await Promise.in(2); say $*THREAD.id; say nqp::threadid(nqp::currentthread) }; sleep 1; await start { sleep 3 } # d'oh
13:30 camelia rakudo-moar 507415: OUTPUT: «3␤3␤3␤3␤»
13:31 jnthn hah, no, it apparently doesn't like
13:31 jnthn *lie
13:33 jnthn m: await do for ^1000 -> $d { start { my $before = $*THREAD.id; await Promise.in(0.002 * $d); say $before != $*THREAD.id ?? 'D' !! 'S' } }
13:33 camelia rakudo-moar 1ce807: OUTPUT: «(timeout)S␤S␤S␤»
13:33 jnthn oh damn
13:33 jnthn I forgot the 6.d.PREVIEW on all of the above!
13:33 jnthn m: use v6.d.PREVIEW; await do for ^1000 -> $d { start { my $before = $*THREAD.id; await Promise.in(0.002 * $d); say $before != $*THREAD.id ?? 'D' !! 'S' } }
13:34 camelia rakudo-moar 1ce807: OUTPUT: «S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S␤S…»
13:34 jnthn m: use v6.d.PREVIEW; await do for ^1000 -> $d { start { my $before = $*THREAD.id; await Promise.in(0.002 * $d); say 'D' if $before != $*THREAD.id } }
13:34 camelia rakudo-moar 1ce807: ( no output )
13:34 jnthn OK, that's...a bit odd
13:35 jnthn m: use v6.d.PREVIEW; use nqp; await do for ^1000 -> $d { start { await Promise.in(0.002 * $d); say 'oops' if nqp::threadid(nqp::currentthread) != $*THREAD.id } }
13:35 camelia rakudo-moar 1ce807: ( no output )
13:36 jnthn m: use v6.d.PREVIEW; use nqp; await do for (^1000).roll(1000) -> $d { start { await Promise.in(0.002 * $d); say 'oops' if nqp::threadid(nqp::currentthread) != $*THREAD.id } }
13:37 camelia rakudo-moar 1ce807: ( no output )
13:37 jnthn m: use v6.d.PREVIEW; await do for (^1000).roll(1000) -> $d { start { my $before = $*THREAD.id; await Promise.in(0.002 * $d); say 'D' if $before != $*THREAD.id } }
13:37 camelia rakudo-moar 1ce807: ( no output )
13:38 jnthn Yeah, something feels suspect there. Clearly it's working right in that it's doing the continuation trick, but the resumption always being on the same thread feels a bit odd
13:39 jnthn m: use v6.d.PREVIEW; use NativeCall; sub gettid() returns int is native {*};  await do for (^1000).roll(1000) -> $d { start { my $before = gettid(); await Promise.in(0.002 * $d); say 'D' if $before != gettid() } }
13:39 camelia rakudo-moar 1ce807: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Cannot resolve caller infix:<==>(NQPMu, Int); none of these signatures match:␤    ($?)␤    (\a, \b)␤    (Real \a, Real \b)␤    (Int:D \a, Int:D \b)␤    (int $a, int $b)␤    (Num:D \a, Num:D \b …»
13:39 jnthn wat, NQPMu?!
13:40 jnthn m: use v6.d.PREVIEW; use NativeCall; sub gettid() returns int32 is native {*};  await do for (^1000).roll(1000) -> $d { start { my $before = gettid(); await Promise.in(0.002 * $d); say 'D' if $before != gettid() } }
13:40 camelia rakudo-moar 1ce807: OUTPUT: «An operation first awaited:␤  in block <unit> at <tmp> line 1␤␤Died with the exception:␤    Cannot locate symbol 'gettid' in native library ''␤      in method setup at /home/camelia/rakudo-m-inst-2/share/perl6/sources/24DD121B5B4774C04A7084827B…»
13:40 jnthn m: use v6.d.PREVIEW; use NativeCall; sub pthread_self() returns int32 is native {*};  await do for (^1000).roll(1000) -> $d { start { my $before = gettid(); await Promise.in(0.002 * $d); say 'D' if $before != gettid() } }
13:40 camelia rakudo-moar 1ce807: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤    gettid used at line 1␤␤»
13:41 jnthn m: use v6.d.PREVIEW; use NativeCall; sub pthread_self() returns int32 is native {*};  await do for (^1000).roll(1000) -> $d { start { my $before = pthread_self(); await Promise.in(0.002 * $d); say 'D' if $before != pthread_self() } }
13:41 camelia rakudo-moar 1ce807: OUTPUT: «D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D␤D…»
13:41 jnthn oooh
13:41 jnthn The plot thickens.
13:41 jnthn Also, wat?!
13:51 Geth ¦ roast: 631cea88c3 | (Elizabeth Mattijsen)++ | S03-operators/set_subset.t
13:51 Geth ¦ roast: Completed overhaul of (<=) tests
13:51 Geth ¦ roast:
13:51 Geth ¦ roast: Basically only use "a" and "b" as keys, and values -2,-1,0,1 as weights.
13:51 Geth ¦ roast: Testing other values should be part of te basic functionality of a
13:51 Geth ¦ roast: QuantHash type.
13:51 Geth ¦ roast: review: https://github.com/perl6/roast/commit/631cea88c3
13:52 lizmat this uncovered 4 bugs, which got fixed  :-)
13:52 lizmat now on to overhauling (<) tests
13:54 jnthn I messed up some of the above examples, it seems. It is about $*THREAD.
13:55 jnthn Also, I suspect it's going to turn out to be about the fact that we cache dynamic variable lookups
13:56 jnthn But those probably all need invalidating in the case of a continuation take/resume
13:56 lizmat which then begs the question: should we cache at all ?
13:57 jnthn Yeah, it's woth it
13:57 jnthn *worth
13:57 jnthn In general
13:57 jnthn TimToady++ has done lots of measuring on this
13:58 lizmat but that was before massive multi-threading, right ?
13:58 lizmat but I guess the context thing in a Promise only made &DYNAMIC more expensive
13:59 lizmat should invalidate until the context of the $*PROMISE ?
14:00 jnthn The easy/cheap point to do it is when taking the continuation
14:00 jnthn As we are walking the frames anyway to try and find the continuation tag.
14:01 lizmat ah, yes  :-)
14:01 jnthn Which seems to resolve the issue :)
14:02 jnthn Guess now I need to write a spectest for this :)
14:02 jnthn Which is, um, a little interesting to try and work out how to do reliably.
14:03 jnthn Especially because in the future we probably will have a scheduler that gives the thread that did the await first preference on running the resumption.
14:03 * jnthn struggles to think of a non-probabalistic test
14:05 jnthn Oh!
14:05 jnthn I can write one using NQP ops and stick it into the Rakudo tests ratherr than spectest
14:11 lizmat m: dd {:a} (<) {:a,:b}   # another buglet found
14:11 camelia rakudo-moar 1ce807: OUTPUT: «Bool::False␤»
14:25 lizmat but first afk for a bit&
14:25 Geth ¦ nqp: 124754efce | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
14:25 Geth ¦ nqp: Bump to latest MoarVM revision.
14:25 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/124754efce
14:25 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.06-56-g161ec639...2017.06-70-ga3a58c8
14:36 Geth ¦ rakudo/nom: d74ebd8250 | (Jonathan Worthington)++ | tools/build/NQP_REVISION
14:36 Geth ¦ rakudo/nom: Bump for dynamic cache/continuation bug fix.
14:36 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d74ebd8250
14:36 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.06-48-gda267b0...2017.06-55-g124754e
14:36 Geth ¦ rakudo/nom: 8aa1b0bc0b | (Jonathan Worthington)++ | t/02-rakudo/09-thread-id-after-await.t
14:36 Geth ¦ rakudo/nom: Test to cover RT #131740.
14:36 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8aa1b0bc0b
14:36 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131740
14:36 Geth ¦ rakudo/nom: version bump brought these changes: https://github.com/perl6/nqp/compare/2017.06-48-gda267b0...2017.06-55-g124754e
14:49 AlexDaniel joined #perl6-dev
15:38 pmurias jnthn: do we use nqp::continuationcontrol(1, ...) for anything?
16:17 ugexe does IO::Path.slurp(:!close) not act the same as IO::Handle.slurp(:!close) because it would just leak handles?
16:18 Zoffix ugexe: IO::Path.slurp doesn't have a :close. It always closes
16:18 Zoffix There's no filehandle in user's hands.
16:19 Zoffix So there's nothing to not-close from the user's perspective. i.e. the fact that there are any handles involved in teh process of slurping is implementation detail.
16:21 ugexe right, there could technically be a share interface between the two slurps at the cost of allowing something that is not useful
16:22 * Zoffix doesn't see the point of deliberatelly leaking handles for interface consistency
16:22 Zoffix Considering nothing's stopping you for passing :!close to IO::Path.slurp; it's just ignored
16:22 Zoffix Or mostly-ignored. IIRC there's a fastpath for when there aren't any args
16:23 Zoffix Ah. Not any more. OK :)
16:24 * Zoffix &
16:24 ugexe yeah, so what it should technically be method slurp(..., :$close where *.not) ignoring any performance penalties
16:25 ugexe er, :$close = True where *.so
16:26 Zoffix Why?
16:29 Zoffix What is $close closing in IO::Path?
16:30 nine Those methods are related but they do not do the same thing. So it's OK that the interface is not 100 % identical
16:30 ugexe i understand its pointless to do IO::Path.slurp(:!close), and that extra named params are ignored. but since slurp seems to try and mimick behavior across different types it seems like it would be nice for it to at least do *something* with the named args its ignoring that other implementations use
16:31 Zoffix What do you mean "would be nice"?
16:32 Zoffix There's nothing open for it to close. There are no errors generated if you pass :close parameter. There's nothing for it to do, so it's ignored.
16:33 Zoffix I don't understand the need for making it leak handles on purpose. The only reason IO::Handle.slurp can take a :close because you're holding the handle and can close it at another, better, time. It's not there to leak handles and it shouldn't be in IO::Path to leak handles either.
16:33 * Zoffix & for real
16:46 ugexe m: $*OUT = class :: { method print (|) {} }; say 1; note 2; warn 3;
16:46 camelia rakudo-moar 8aa1b0: OUTPUT: «2␤3␤  in block <unit> at <tmp> line 1␤»
16:47 ugexe m: $*ERR = class :: { method print (|) {} }; say 1; note 2; warn 3;
16:47 camelia rakudo-moar 8aa1b0: OUTPUT: «1␤No exception handler located for catch␤   at <unknown>:1  (/home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm:print_exception)␤ from SETTING::src/core/Exception.pm:452  (/home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.se…»
16:49 ugexe m: $*ERR = class :: { method print (|) {} }; note 2;
16:49 camelia rakudo-moar 8aa1b0: ( no output )
16:49 ugexe m: $*ERR = class :: { method print (|) {} }; warn 2;
16:49 camelia rakudo-moar 8aa1b0: OUTPUT: «No exception handler located for catch␤   at <unknown>:1  (/home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm:print_exception)␤ from SETTING::src/core/Exception.pm:452  (/home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.settin…»
16:50 ugexe [Coke]: looks related to RT 131670
16:54 stmuk_ URL doesn't install - Cannot do 'say' on a handle in binary mode  in block <unit> at t/01.t line 33
16:54 stmuk_ err URI I mean
16:55 Zoffix /me knows a fix
16:55 Zoffix buggable: eco URI
16:55 buggable Zoffix, URI 'A URI implementation using Perl 6 grammars to implement RFC 3986 BNF': https://github.com/perl6-community-modules/uri 9 other matching results: https://modules.perl6.org/#q=URI
16:57 Zoffix hm. can't repro on 2017.05-389-g326faed
16:58 Zoffix c: 2017.05-389-g326faed $*OUT.encoding: Nil; $*OUT.say: 42
16:58 committable6 Zoffix, ¦2017.05-389-g326faed: «Cannot do 'say' on a handle in binary mode␤  in block <unit> at /tmp/QxWoPHUVTT line 1␤ «exit code = 1»»
16:58 stmuk_ This is using 2017.06-215-g8aa1b0b
17:01 Zoffix It's also a Succ on -193 toast: https://toaster.perl6.party/module?module=URI&amp;commit=2017.06-193-gcb43086
17:03 Zoffix It's this module, right?
17:03 Zoffix https://github.com/perl6-community-modules/uri
17:05 Zoffix can't repro on 2017.06-197-g83e1570
17:05 * Zoffix builds HEAD
17:06 Zoffix stmuk_: what're you running for test? zef? does it pass with prove?
17:06 stmuk_ odd I did zef update and I'm getting 0.1.3
17:07 stmuk_ deleting dirs now
17:09 stmuk_ ah my issue just outdated version
17:09 Zoffix Oh *phew* :)
17:15 stmuk_ I'm wondering if "rakudobrew nuke" should blow away ~/.zef and ~/.perl6 too? or maybe new "thermonuclear" option
17:15 ugexe zef nuke RootDir
17:15 ugexe or `zef nuke RootDir site home` for "blow up everything except base rakudo install"
17:26 ugexe if you were using a zef that was older than 2 weeks old the problem probably got fixed. file locks on most things in ~/.zef (so multi copies of zef and future concurrent fetches shouldn't stomp on each other) and refactored the cache indexer
17:27 Zoffix ZOFVM: Files=1259, Tests=143197, 123 wallclock secs (21.65 usr  3.48 sys + 2416.67 cusr 186.69 csys = 2628.49 CPU)
17:28 jnthn pmurias: Perhaps nothing does in Rakudo; I think maybe some NQP tests do, but then I'm not sure about that either :)
17:42 Zoffix 6.c-errata has failures: t/spec/S03-operators/mix. test 91
17:42 Zoffix t/spec/S06-multi/type-based.t test 56
17:43 Zoffix I think that's all (the passing TODOs really dirty up the output; 6.d should remove all the fudges on release)
17:43 Zoffix type-based: "not ok 56 - native types and where clauses do not cause spurious circularities"
17:45 Geth ¦ roast/6.c-errata: 7775417330 | (Jonathan Worthington)++ (committed by Zoffix Znet) | S06-multi/type-based.t
17:45 Geth ¦ roast/6.c-errata: Update test for multi literal semantics.
17:45 Geth ¦ roast/6.c-errata: review: https://github.com/perl6/roast/commit/7775417330
17:47 Zoffix .tell lizmat S03-operators/mix.t test 91 fails: "not ok 91 - ⊅ - mix(d(2.2), e(4.4), n(2.2), y(2.2)) is not a strict supermix of mix(d(2.2), e(2.2), n(2.2))".  Would you know how to resolve this?
17:47 yoleaux Zoffix: I'll pass your message to lizmat.
17:48 ugexe when is it ok to change something in roast? specifically https://github.com/perl6/roast/blob/7851e7a710ddf9bd1f3bdea2b399aad92396446b/S11-repository/curli-install.t#L19 - the test itself is not specifically about class Distribution, just *installing -a- Distribution*. if that line can be changed, can it be changed to use code that only works on 2016.04+ ?
17:52 Zoffix I think such questions is what we'd need to nail down more thoroughly for 6.d. What exactly constitutes a wrong test and what constitutes just supporting code that itself isn't being tested.
17:53 Zoffix ¯\_(ツ)_/¯
17:53 ugexe well, Distribution has a 40 line compatability shim for that single line. and the shim is technically broken anyway, just not in a tested way
17:54 ugexe m: class Foo is Distribution {}; Distribution.new(:name<Foo>).name.say; Foo.new(:name<Foo>).name.say
17:54 Geth ¦ 6.d-prep: f82fb006e3 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/README.md
17:54 Geth ¦ 6.d-prep: List consideration of what's 'supporting code' in roast changes
17:54 Geth ¦ 6.d-prep: review: https://github.com/perl6/6.d-prep/commit/f82fb006e3
17:54 camelia rakudo-moar 8aa1b0: OUTPUT: «Foo␤No such method 'name' for invocant of type 'Foo'. Did you mean any of these?␤    none␤    note␤    take␤␤  in block <unit> at <tmp> line 1␤␤»
18:04 lucasb joined #perl6-dev
18:17 TimToady joined #perl6-dev
18:52 [Tux] This is Rakudo version 2017.06-215-g8aa1b0bc0 built on MoarVM version 2017.06-75-g8aa657d6
18:52 [Tux] csv-ip5xs        2.443
18:52 [Tux] test            12.504
18:52 [Tux] test-t           4.104 - 4.110
18:52 [Tux] csv-parser      11.790
18:55 ugexe nine: looks like some segfaults when doing -Ilib with code that does `use lib <lib>` were fixed by the fix to up-to-date/handles
19:15 gfldex joined #perl6-dev
19:16 gfldex left #perl6-dev
19:21 Geth ¦ roast: 28efdda0e8 | (Elizabeth Mattijsen)++ | S03-operators/set_proper_subset.t
19:21 Geth ¦ roast: Completed overhaul of (<) tests
19:21 Geth ¦ roast:
19:21 Geth ¦ roast: Basically only use "a" and "b" as keys, and values -2,-1,0,1 as weights.
19:21 Geth ¦ roast: Testing other values should be part of the basic functionality of a
19:21 Geth ¦ roast: QuantHash type.
19:21 Geth ¦ roast: review: https://github.com/perl6/roast/commit/28efdda0e8
19:27 Geth ¦ rakudo/nom: 103869be17 | (Elizabeth Mattijsen)++ | src/core/set_proper_subset.pm
19:27 Geth ¦ rakudo/nom: Remove Map (<) Map candidate for now
19:27 Geth ¦ rakudo/nom:
19:27 Geth ¦ rakudo/nom: While overhauling the (<) tests, it became clear to me that it is
19:27 Geth ¦ rakudo/nom: not as simple as I thought, simply because the number of keys on
19:27 Geth ¦ rakudo/nom: either side, does not have any bearing on actual number of keys
19:27 Geth ¦ rakudo/nom: that would be coerced into a Set: think {:a} (<) {:a,:0b}
19:27 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/103869be17
19:35 ugexe `run("ls", :merge).out.slurp.say` # regression from 2017.06
19:36 Zoffix What happens?
19:36 ugexe its deadlocking
19:36 Zoffix :o
19:37 ugexe mind you before 2017.06 using :merge threw an exception telling you it was broken
19:42 ugexe https://github.com/perl6/roast/blob/master/S29-os/system.t#L83 this never got unfudged, but it works in 2017.06 but not head
19:46 Geth ¦ roast: c518b59457 | (Elizabeth Mattijsen)++ | S03-operators/set_difference.t
19:46 Geth ¦ roast: Some more (-) tests and some reorg
19:46 Geth ¦ roast: review: https://github.com/perl6/roast/commit/c518b59457
19:49 AlexDaniel joined #perl6-dev
19:50 AlexDaniel I don't think :merge ever worked
19:50 AlexDaniel https://rt.perl.org/Ticket/Display.html?id=128594
19:52 geekosaur I think the complaint is that either it should work or it should throw, just not deadlock?
20:02 AlexDaniel uh! Would be lovely if it started to work
20:02 AlexDaniel I'd be able to throw away the workaround I'm using everywhere, plus it will probably work faster…
20:09 japhb Is there a channel for perl6 game dev?  ISTR something about that, but I can't find it now.  Maybe it was a mailing list and I'm just forgetting ....
20:14 Zoffix japhb: yeah, it's #perl6-gaming
20:24 lizmat Zoffix: I don't see that in my #perl6- channel list ?
20:24 yoleaux 17:47Z <Zoffix> lizmat: S03-operators/mix.t test 91 fails: "not ok 91 - ⊅ - mix(d(2.2), e(4.4), n(2.2), y(2.2)) is not a strict supermix of mix(d(2.2), e(2.2), n(2.2))".  Would you know how to resolve this?
20:25 lizmat Zoffix: I don't see that?  is that in 6.c-errata ?
20:31 jnthn AlexDaniel: It was certainly busted, and made to throw an error 'cus it SEGV'd; now Proc::Async can do it (you just .Supply to get it) and that's used to implement it for Proc too
20:31 AlexDaniel oh, so it is supposed to work now?
20:31 AlexDaniel mmmm nice
20:31 AlexDaniel I'll try to play with it soon, hopefully
20:32 jnthn Uh, supposed to, but I see in backlog apparently not? :s
20:32 jnthn Ah well, I'll repeat my regular refrain: use Proc::Async, at least when that one's wrong I know what it's meant to do :P
20:32 jnthn But yeah, instead of .stdout or .stderr your just .Supply
20:33 jnthn And since whenever will call .Supply for you, then my $p = Proc::Async.new(...); and later whenever $p { } just gets you the merged output in the whenever
20:40 Zoffix lizmat: oh yeah, sorry, it's in 6.c-errata
20:40 lizmat ok, will check
20:41 Zoffix lizmat: *shrug* there were a couple of people in it when I tried the channel a few minutes ago. I think there's also #perl6-noisegang (unsure)
20:55 Geth ¦ rakudo/nom: 68e1baa35d | (Elizabeth Mattijsen)++ | src/core/set_symmetric_difference.pm
20:55 Geth ¦ rakudo/nom: Add a number of (^) candidates we need
20:55 Geth ¦ rakudo/nom:
20:55 Geth ¦ rakudo/nom: Spotted while developing thorough (^) (symmetric difference) testing
20:55 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/68e1baa35d
21:11 lizmat did we lose Geth again, or is github just slow?
21:12 * lizmat just pushed  https://github.com/rakudo/rakudo/commit/72733bcbab329eaf998d333
21:12 Geth ¦ rakudo/nom: 72733bcbab | (Elizabeth Mattijsen)++ | src/core/set_symmetric_difference.pm
21:12 Geth ¦ rakudo/nom: Fix typo in object hash handling of (^)
21:12 Geth ¦ rakudo/nom:
21:12 Geth ¦ rakudo/nom: Spotted while working on thorough (^) testing.
21:12 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/72733bcbab
21:13 Zoffix Wow. Looks like we have a very wealthy individual willing to sponsor Rakudo development!
21:13 Zoffix "From: Florence Martinez
21:13 Zoffix I have a donation of ($5,500,000.00) for you please respond immediately."
21:14 * Zoffix responds immediately.
21:14 Zoffix ZofBot: thank you Florence Martinez!
21:14 ZofBot Zoffix, All such values pay attention to the current ":ignorecase" and ":ignoremark" settings
21:16 lizmat Zoffix: it doesn't state what type of $ so be careful!  :-)
21:20 Zoffix :)
21:25 lizmat oh, by the way: Zoffix++  # https://github.com/perl6/marketing/blob/master/TablePosters/Rakudo-Concise/Rakudo-Concise--A4-no-bleed.pdf
21:37 Geth ¦ rakudo/nom: aee4a46c1b | (Elizabeth Mattijsen)++ | src/core/set_symmetric_difference.pm
21:37 Geth ¦ rakudo/nom: Make ⊖ an alias for (^)
21:37 Geth ¦ rakudo/nom:
21:37 Geth ¦ rakudo/nom: This fixes various issues with calling infix:<⊖> with anything other
21:37 Geth ¦ rakudo/nom: than 2 parameters.  Spotted while working on the thorough testing of
21:37 Geth ¦ rakudo/nom: symmetric difference tests.
21:37 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/aee4a46c1b
21:39 Geth ¦ roast: e6d8dd11ce | (Elizabeth Mattijsen)++ | S03-operators/set_symmetric_difference.t
21:39 Geth ¦ roast: Initial version of thorough (^) (symmetric difference) tests
21:39 Geth ¦ roast: review: https://github.com/perl6/roast/commit/e6d8dd11ce
21:43 Geth ¦ rakudo/nom: 533eacfdb2 | (Elizabeth Mattijsen)++ | t/spectest.data
21:43 Geth ¦ rakudo/nom: Make sure we run thorough (^) tests
21:43 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/533eacfdb2
21:45 lizmat good night, #perl6-dev!
21:48 ugexe :merge stopped working in https://github.com/rakudo/rakudo/commit/7b175bd4b36753a5fc0410a8787d3ce8c4e2e264#diff-7e0467c62428b3696cb555c69c52a4a0
21:50 cognominal joined #perl6-dev
21:57 Geth ¦ rakudo/nom: c86090e35f | (Nick Logan)++ (committed using GitHub Web editor) | src/core/Proc.pm
21:57 Geth ¦ rakudo/nom: Fix Proc :merge
21:57 Geth ¦ rakudo/nom:
21:57 Geth ¦ rakudo/nom: See: https://github.com/rakudo/rakudo/commit/7b175bd
21:57 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c86090e35f
22:07 Zoffix haw awesome
22:31 Geth ¦ roast: ccef1af2fc | (Nick Logan)++ (committed using GitHub Web editor) | S29-os/system.t
22:31 Geth ¦ roast: Unfudge Proc :merge test
22:31 Geth ¦ roast:
22:31 Geth ¦ roast: Fixed in https://github.com/rakudo/rakudo/commit/c86090e
22:31 Geth ¦ roast: review: https://github.com/perl6/roast/commit/ccef1af2fc
22:32 d4l3k_ joined #perl6-dev
22:32 perlpilot joined #perl6-dev
22:35 arnsholt joined #perl6-dev
22:35 llfourn joined #perl6-dev
23:03 samcv don't bump moarvm until i wrate some more tests
23:03 samcv just thought of something and want to be certain there are no issues
23:04 BenGoldberg joined #perl6-dev
23:13 travis-ci joined #perl6-dev
23:13 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Add a number of (^) candidates we need
23:13 travis-ci https://travis-ci.org/rakudo/rakudo/builds/252970439 https://github.com/rakudo/rakudo/compare/103869be17e0...68e1baa35dd2
23:13 travis-ci left #perl6-dev
23:13 buggable [travis build above] ✓ All failures are due to timeout (0), missing build log (0), GitHub connectivity (1), or failed make test (0).
23:48 Geth ¦ roast/ugexe-patch-1: 750b3b0b4e | (Nick Logan)++ (committed using GitHub Web editor) | S29-os/system.t
23:48 Geth ¦ roast/ugexe-patch-1: Fix proc test failing due to prior chdir
23:48 Geth ¦ roast/ugexe-patch-1:
23:48 Geth ¦ roast/ugexe-patch-1: Use `LEAVE { chdir $orig-cwd }` to fix being left in a different directory for remaining tests.
23:48 Geth ¦ roast/ugexe-patch-1:
23:48 Geth ¦ roast/ugexe-patch-1: Use `$*EXECUTABLE.absolute` so the proper interpreter is always used.
23:48 Geth ¦ roast/ugexe-patch-1: review: https://github.com/perl6/roast/commit/750b3b0b4e
23:49 Geth ¦ roast: ugexe++ created pull request #281: Fix proc test failing due to prior chdir
23:49 Geth ¦ roast: review: https://github.com/perl6/roast/pull/281

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