Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-05-25

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

All times shown according to UTC.

Time Nick Message
00:08 Ven joined #perl6-dev
02:22 geekosaur joined #perl6-dev
06:43 astj_ joined #perl6-dev
06:52 robertle joined #perl6-dev
07:22 cono joined #perl6-dev
07:53 cono ok, looks like I finally got idea of GC_DEBUG, set MVM_GC_DEBUG_LOG_FLAGS to 3. And not it prints debug!!!
07:54 cono but this program: perl6 -e 'my $thread = Thread.new(code => { say "Hello" }); $thread.run; $thread.finish'
07:54 cono gives me segfault :(
07:55 cono as I understood it tries to print debug info about frame $*CTX_MAIN or something like this, and it doesn't have REPR->id
07:55 cono actually obj->st gives 0x0
07:56 cono But dont understand what this STables means :(
08:04 nine cono: the STable is somewhat like the class
08:07 lizmat ugexe++ # http://ugexe.com/perl-toolchain-summit-2017-cpan-and-perl6/
08:10 lizmat hmmm.. it looks like my last Mix changes triped up some mix tests
08:11 lizmat *tripped
08:11 lizmat will look at them later today
08:11 jnthn morning o/
08:11 lizmat jnthn  o/
08:12 lizmat 4 tests failing, 4 TODO's now passing
08:12 lizmat TODO's were marked "submix behavior still under discussion" about 2 years ago
08:12 jnthn That balances out, at least... :P
08:13 lizmat yeah  :-)  could be worse
08:15 * jnthn was woken up by construction noise...
08:15 lizmat it *is* the last commit that causes this regression, but that should only apply to Mix (<=) Bag and Bag (<=) Mix behaviour
08:16 lizmat and the tests are only about Mix (<=) Mix, weird
08:16 jnthn At first I thought the pub was dismantling its summer terrace and thought "noooo...." A glance outside suggested not. Next guess was that they were finally fixing the pavement. But no, just scaffolding going up on a building 1 down from mine...
08:16 jnthn m: say Mix ~~ Bag
08:16 camelia rakudo-moar 5ebf30: OUTPUT: «False␤»
08:21 nine When cleaning, I found 4 adaptors for european power plugs to british sockets. So that's how often I've been to LPW...
08:21 nine Man I suck at packing for travel :)
08:31 Geth ¦ roast: b57be1c07a | (Elizabeth Mattijsen)++ | S03-operators/set.t
08:31 Geth ¦ roast: Remove tests for (<=) and friends
08:31 Geth ¦ roast:
08:31 Geth ¦ roast: (<=) and friends are now more thoroughly tested in S03-operators/subset.t
08:31 Geth ¦ roast: review: https://github.com/perl6/roast/commit/b57be1c07a
08:32 lizmat afk for a few hours&
08:39 cono nine: does that mean that frames shouldn't have STables ?
08:40 jnthn Frames may or may not have an STable
08:40 jnthn They're born without in the call stack region, but if needed are promoted onto the heap
08:40 jnthn (for example in the event of closure or a continuation control)
08:41 cono so stack frame of the closure can reborn to class?
08:41 cono can => should
08:43 jnthn Yes, there's a promote_to_heap or so function in frame.c that does this
08:43 jnthn Effectively, the rule is that callstack -> heap references are fine but heap -> callstack ones are not
08:44 cono collect.c:286 then wrong, we shouldn't print REPR(item)->ID
08:44 cono if (item->flags & (MVM_CF_NURSERY_SEEN | MVM_CF_HAS_OBJECT_ID)) { as this is not an object
08:44 jnthn Ah
08:45 jnthn Yeah, I pretty much never use GCDEBUG_LOG with MVM_GC_DEBUG_COLLECT
08:45 jnthn And I doubt anyone else much does
08:45 jnthn Any more at least
08:46 jnthn Since it produces just incredibly much output
08:46 cono how do you usually investigate spoil of the gen2root ? or any other memory area?
08:46 cono as I'm getting: $3 = {forwarder = 0x110dbc0, sc = {sc_idx = 17882048, idx = 0}, st = 0x110dbc0}
08:46 jnthn Typically by switching on stuff in src/gc/debug.h
08:46 cono which is incredibly high index
08:47 jnthn It's a union though
08:47 jnthn So the sc_idx part may not be relevant
08:48 cono if MVMCollectable of what type its not relevant?
08:49 jnthn It's not about type, it's about lifetime
08:49 cono as (gdb) print new_addr->flags -> $1 = 0
08:49 jnthn forwarder is set by the GC after moving an object
08:50 jnthn st is only used after death
08:50 jnthn And is used to chain types that need collecting into a linked list
08:51 jnthn If forwarder is still set in the object that was copied, then it's possible that an outdated reference was seen at some point
08:51 Geth ¦ rakudo/refactor-handle-encoding: 2f2930ab91 | (Jonathan Worthington)++ | src/core/Rakudo/Internals/VMBackedDecoder.pm
08:51 Geth ¦ rakudo/refactor-handle-encoding: Fill out more of VMBackedDecoder.
08:51 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/2f2930ab91
08:51 Geth ¦ rakudo/refactor-handle-encoding: 303b7eb526 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
08:51 Geth ¦ rakudo/refactor-handle-encoding: Switch getc to use streaming decoder.
08:51 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/303b7eb526
08:51 Geth ¦ rakudo/refactor-handle-encoding: 5786587972 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
08:51 Geth ¦ rakudo/refactor-handle-encoding: In char mode, make read go via. streaming decoder.
08:51 Geth ¦ rakudo/refactor-handle-encoding:
08:51 Geth ¦ rakudo/refactor-handle-encoding: To facilitate mixed char/binary mode I/O (with the usual caveats that
08:51 Geth ¦ rakudo/refactor-handle-encoding: one must be aware of things like normalization buffering, which isn't
08:51 Geth ¦ rakudo/refactor-handle-encoding: anything new). In binary mode, we fast-path it directly to the binary
08:51 Geth ¦ rakudo/refactor-handle-encoding: I/O, which is an optimization over what happens in MoarVM today.
08:51 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/5786587972
08:52 jnthn But an object can't be all of dead, moved, or the new copy, so we can use a union for those 3 things and make every object smaller
08:53 jnthn s/object/collectable/ is probably more precise
08:54 Geth ¦ rakudo/refactor-handle-encoding: b9297918c3 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
08:54 Geth ¦ rakudo/refactor-handle-encoding: Make binary slurp-rest go via. read.
08:54 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/b9297918c3
08:54 cono but in roots.c:294 we are not checking anything about dead this collectable or not, and trying to mark_collectable, which tries to get sc_idx
08:55 cono or if collectable -> collected, we actually shoulnd't have it in gen2roots ?
08:56 jnthn Yes, it appears something is in gen2roots that should not be
08:56 jnthn There's a function in debug.c that can take an address an tell you if it's in any thread's fromspace
08:57 jnthn If you catch the crash under GDB then it's usually possilbe to call it wiht the address you see in forwarder
08:57 jnthn If it's found, that would strongly suggest that you're looking at an object that was already moved, but then somehow accessed at its own address
08:57 jnthn That most often happens as a result of a missing use of MVMROOT
09:01 cono forwarder or current object?
09:02 jnthn I'd expect it to find either of them, but finding forwarder to point to a valid memory address would be a good indicator
09:03 cono (gdb) call MVM_gc_debug_find_region(tc, new_addr->sc_forward_u) or ->forwarder prints nothing to me :(
09:04 jnthn What about calling it just on new_addr?
09:04 cono that what I did first :)
09:04 cono zero
09:04 jnthn Also, if you p *(new_addr->forwarder)
09:04 cono there is no forwarder
09:06 cono only via union: sc_forward_u
09:06 cono and all of them prints me nothing
09:07 jnthn Hmmm
09:07 cono wait a moment, it should print to me atleast line "Not found" but i don't see even this
09:08 cono ah, its in different console
09:08 cono yeah, I see Not found for all 3
09:11 cono anyway, thanks for help. Will continue to dig into this :)
09:11 jnthn Thanks for digging :)
09:11 * jnthn is knee deep in I/O refactoring
09:51 Geth ¦ rakudo/refactor-handle-encoding: 938a6141b4 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
09:51 Geth ¦ rakudo/refactor-handle-encoding: Re-implement change of IO::Handle encoding.
09:51 Geth ¦ rakudo/refactor-handle-encoding:
09:51 Geth ¦ rakudo/refactor-handle-encoding: Allowing a type object to be passed to indicate "no encoding", and
09:51 Geth ¦ rakudo/refactor-handle-encoding: making an argument of 'bin' translate into that.
09:51 Geth ¦ rakudo/refactor-handle-encoding:
09:51 Geth ¦ rakudo/refactor-handle-encoding: The most common use for this is a switch of encoding prior to doing
09:52 Geth ¦ rakudo/refactor-handle-encoding: any I/O, but when passing it at `open` time is not an option. For all
09:52 Geth ¦ rakudo/refactor-handle-encoding: <…commit message has 11 more lines…>
09:52 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/938a6141b4
09:59 stmuk joined #perl6-dev
10:07 jnthn Aww, I hoped that would fix up the issue that busted precomp when I switched over .get
10:07 jnthn oh wait
10:07 jnthn I didn't actually use it
10:12 jnthn Yay, it worked once I added the "switch to binary mode" :)
10:15 Zoffix Did Laurent release the source for their book for free? I'm looking at this "protip", but there's not a word about it in the repo itself: https://irclog.perlgeek.de/perl6/2017-05-10#i_14561091
10:16 Zoffix Also, it got finished already, right? I see it's listed here as "in work": https://perl6.org/resources/
10:17 Zoffix moritz: also yours is still listed as "Perl 6 by Example"; needs an update? https://perl6.org/resources/
10:20 Geth ¦ rakudo/refactor-handle-encoding: ad3de5d70b | (Jonathan Worthington)++ | src/core/CompUnit/Loader.pm
10:20 Geth ¦ rakudo/refactor-handle-encoding: Switch to binary mode before passing precomp to VM
10:20 Geth ¦ rakudo/refactor-handle-encoding:
10:20 Geth ¦ rakudo/refactor-handle-encoding: We have used char mode I/O to .get various things from the start of
10:20 Geth ¦ rakudo/refactor-handle-encoding: the file. This means some bytes will be hanging around in the decode
10:20 Geth ¦ rakudo/refactor-handle-encoding: stream. Switch the handle to binary mode, which will seek the file
10:20 Geth ¦ rakudo/refactor-handle-encoding: handle to the right place.
10:20 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/ad3de5d70b
10:20 Geth ¦ rakudo/refactor-handle-encoding: c63c103879 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
10:20 Geth ¦ rakudo/refactor-handle-encoding: Switch IO::Handle.get over to using the decoder.
10:20 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/c63c103879
10:25 nine jnthn: ah, looks like a very easy fix then :)
10:25 jnthn nine: Well, it was after I re-did IO::Handle.encoding :)
10:26 jnthn I just realized that it does more work in there than it needs to also, so fixing that too
10:36 Geth ¦ rakudo/refactor-handle-encoding: 606e452bad | (Jonathan Worthington)++ | src/core/IO/Handle.pm
10:36 Geth ¦ rakudo/refactor-handle-encoding: Update IO::Handle.eof to check decoder.
10:36 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/606e452bad
10:36 Geth ¦ rakudo/refactor-handle-encoding: 31195bd1eb | (Jonathan Worthington)++ | 2 files
10:36 Geth ¦ rakudo/refactor-handle-encoding: It helps if all the code agrees on a method name.
10:36 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/31195bd1eb
10:39 Zoffix jnthn: when do you estimate that branch would be merge-ready?
10:40 jnthn If we're lucky, tomorrow
10:40 jnthn But still got quite a few spectest failures
10:40 jnthn But I didn't yet fix up all the methods :)
10:41 jnthn And some seem to be because I hand back an extra empty string at EOF
10:41 jnthn Which upsets some number of tests
10:42 Zoffix Great.
10:42 jnthn Hmm
10:42 jnthn Apart from not in a simple test csae
10:46 jnthn huh, there's an empty line at the *start* of some output?!
10:48 jnthn more fun stuff, it seems .lines is doing it but that's one of the methods I didn't yet re-work
10:48 jnthn Guess it's time
10:49 [Tux] This is Rakudo version 2017.05-84-g5ebf307af built on MoarVM version 2017.05-24-gd86a35b6
10:49 [Tux] csv-ip5xs        2.644
10:49 [Tux] test            13.648
10:49 [Tux] test-t           4.418 - 4.322
10:49 [Tux] csv-parser      13.190
10:50 jnthn Actually, it's lunch time. :-) Will work on .lines after
10:50 jnthn bbiab
10:50 lizmat Files=1196, Tests=59338, 209 wallclock secs (12.84 usr  5.10 sys + 1256.53 cusr 119.29 csys = 1393.76 CPU)
10:52 * lizmat is starting to think the failing mix tests have been passing for the wrong reason in the past
11:00 Ven joined #perl6-dev
11:08 lizmat yup, tests are all faulty:
11:09 lizmat m: dd  mix(a => 2.2);  # does NOT give you a mix with "a" with a weight of 2.2
11:09 camelia rakudo-moar 5ebf30: OUTPUT: «Unexpected named argument 'a' passed␤  in block <unit> at <tmp> line 1␤␤»
11:09 lizmat m: dd  mix("a" => 2.2);  # does NOT give you a mix with "a" with a weight of 2.2
11:09 camelia rakudo-moar 5ebf30: OUTPUT: «(:a(2.2)=>1).Mix␤»
11:09 lizmat it gives you a Mix with a Pair with weight 1
11:14 Geth ¦ roast: 09d2f87c13 | (Elizabeth Mattijsen)++ | S03-operators/mix.t
11:14 Geth ¦ roast: Fix Mix creation, and remove now passing TODO's
11:14 Geth ¦ roast: review: https://github.com/perl6/roast/commit/09d2f87c13
11:17 Geth ¦ roast: f0b918071e | (Elizabeth Mattijsen)++ | S03-operators/mix.t
11:17 Geth ¦ roast: Remove tests for (<=) and friends
11:17 Geth ¦ roast:
11:17 Geth ¦ roast: They are now covered more thoroughly in subset.t
11:17 Geth ¦ roast: review: https://github.com/perl6/roast/commit/f0b918071e
11:22 AlexDaniel joined #perl6-dev
11:43 Ven_ joined #perl6-dev
11:45 Zoffix (re Laurent's book): yup: https://github.com/LaurentRosenfeld/thinkperl6/issues/2#issuecomment-303986422
11:50 Ven_ joined #perl6-dev
12:05 Geth ¦ rakudo/nom: 428324d155 | (Elizabeth Mattijsen)++ | t/spectest.data
12:05 Geth ¦ rakudo/nom: Add thorough testing of (<) and friends
12:05 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/428324d155
12:06 lizmat afk&
12:07 CptnObvious .tell lizmat mentioning it, just in case. Do not remove any files from t/spectest.data, since the same list is used by 6.c-errata test run (at least for now).
12:07 yoleaux CptnObvious: I'll pass your message to lizmat.
12:08 Zoffix .... which reminds me of another thing I was meaning to do months back... make per-lang-ver t/spectest.data :\
12:13 stmuk_ joined #perl6-dev
12:21 b2gills joined #perl6-dev
12:24 Ven joined #perl6-dev
12:26 Geth ¦ roast/newer-cat-handle: 7022dc846d | (Zoffix Znet)++ | S32-io/io-cathandle.t
12:26 Geth ¦ roast/newer-cat-handle: de-public @.handles attr
12:26 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/7022dc846d
12:31 Geth ¦ rakudo/newer-cat-handle: ac39c9a07e | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
12:31 Geth ¦ rakudo/newer-cat-handle: Use nqp array to keep CatHandle's handles in
12:31 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/ac39c9a07e
12:32 Ven_ joined #perl6-dev
12:32 Geth ¦ rakudo/newer-cat-handle: dc76252159 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
12:32 Geth ¦ rakudo/newer-cat-handle: Remove cathandle overengineering
12:32 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/dc76252159
12:35 Zoffix lulzwut... "Binary files a/S32-io/io-cathandle.t and b/S32-io/io-cathandle.t differ"
12:35 Zoffix I think I broke git :)
12:36 Geth ¦ roast/newer-cat-handle: 8c22156d9c | (Zoffix Znet)++ | S32-io/io-cathandle.t
12:36 Geth ¦ roast/newer-cat-handle: Make test file pass by default
12:36 Geth ¦ roast/newer-cat-handle:
12:36 Geth ¦ roast/newer-cat-handle: use `plan 0` for yet untested stuff
12:36 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/8c22156d9c
12:36 Zoffix and github :S "Binary file not shown. "
12:36 Zoffix ... and `file` command. wtf
12:37 Geth ¦ rakudo/refactor-handle-encoding: 03fd91f991 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
12:37 Geth ¦ rakudo/refactor-handle-encoding: Update .lines and .nl-in to use decoder.
12:37 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/03fd91f991
12:37 jnthn Zoffix: You can put something in .gitattributes to insist to git that it's a binary file
12:38 Zoffix Well, I didn't put anything, so I guess it's not it
12:39 Ven_ joined #perl6-dev
12:40 jnthn uh, that it's a *text* file
12:40 jnthn To override its default gues
12:40 jnthn *guess
12:40 Zoffix Ah.
12:40 stmuk joined #perl6-dev
12:40 jnthn My module Data::TextOrBinary borrows the git algo fwiw :)
12:40 jnthn So may give an idea what's going on
12:41 jnthn Wow, not a single spectest for method readchars
12:42 jnthn I guess it's convered indirectly by IO::Handle.words
12:44 Zoffix A bunch of stuff (was) entirely untested. Last week I wrote the first ever tests for &prompt
12:44 jnthn :)
12:44 jnthn Zoffix++
12:44 jnthn Your extra tests will almost certainly reduce the change that I inadvertantly break something
12:45 Geth ¦ rakudo/refactor-handle-encoding: bc8d93736e | (Jonathan Worthington)++ | src/core/IO/Handle.pm
12:45 Geth ¦ rakudo/refactor-handle-encoding: Fix up .tell to respect decoder's buffer.
12:45 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/bc8d93736e
12:46 jnthn *chance, even :)
12:49 Ven_ joined #perl6-dev
12:50 jnthn Yay, down to just one use of a char-mode nqp::op in IO::Handle, which is coincidentally the last #?if jvm in the file too
12:51 Zoffix Speaking of readchars; it's busted on JVM; perhaps this refactor fixes the issue: https://rt.perl.org/Ticket/Display.html?id=130840#ticket-history
12:51 Zoffix j: "/tmp/Foo.pm6".IO.spurt: "♥"; "/tmp/Foo.pm6".IO.open.readchars(1).say
12:51 camelia rakudo-jvm 428324: OUTPUT: «�␤»
12:52 jnthn Yeah, there's a workaround there that will bust anything not in BMP
12:52 jnthn Hopefully I'll fix us that
12:52 Zoffix \o/
12:54 Ven_ joined #perl6-dev
12:56 Ven joined #perl6-dev
13:09 Zoffix lol... just got a notification from an issue I created in 2015. It starts with "Just some of my feedback for what I found confusing on the tutorial; I'm totally new to Perl 6:" :) https://github.com/adambard/learnxinyminutes-docs/issues/1390
13:09 Zoffix Time flies.
13:09 Zoffix ZofBot: swat them!
13:09 ZofBot Zoffix, name(), "\n", &
13:18 Zoffix m: my $f = "/tmp/foo{rand}".IO; $f.spurt("a\nb\nc"); with $f.open -> $cat { my @res; @res.push($_) while ($_ = $cat.get) !~~ Nil; dd @res }
13:18 * Zoffix wonders why that hangs
13:18 camelia rakudo-moar 428324: OUTPUT: «(timeout)»
13:18 jnthn 'cus .get returns the Str type object, not Nil?
13:18 Zoffix Should return Nil
13:18 jnthn Really?
13:18 Zoffix m: my $f = "/tmp/foo{rand}".IO; $f.spurt("a\nb\nc"); with $f.open -> $cat { dd ( $cat.get xx 20 ) }
13:18 camelia rakudo-moar 428324: OUTPUT: «("a", "b", "c", Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil).Seq␤»
13:19 Zoffix Ah
13:20 Zoffix m: my $f = "/tmp/foo{rand}".IO; $f.spurt("a\nb\nc"); with $f.open -> $cat { my @res; @res.push($_) while ($_ is default(Nil) = $cat.get) !~~ Nil; dd @res }
13:20 camelia rakudo-moar 428324: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3 $cat { my @res; @res.push($_) while ($_7⏏5 is default(Nil) = $cat.get) !~~ Nil; dd␤    expecting any of:␤        infix␤        infix stopper␤      …»
13:20 brrt joined #perl6-dev
13:20 Zoffix well, by the time it gets to Nil check, it's an Any already :)
13:20 jnthn ("a", "b", "c", Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str, Str).Seq
13:20 jnthn In my local branch
13:20 jnthn I guess we'll see if there's a spectest for this :P
13:20 Zoffix :}
13:21 Geth ¦ rakudo/refactor-handle-encoding: 3b649f4dcb | (Jonathan Worthington)++ | src/core/IO/Handle.pm
13:21 Geth ¦ rakudo/refactor-handle-encoding: Clean up now streaming decoder used in most places
13:21 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/3b649f4dcb
13:21 Geth ¦ rakudo/refactor-handle-encoding: cca3ef3c80 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
13:21 Geth ¦ rakudo/refactor-handle-encoding: Switch readchars to use the streaming decoder.
13:21 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/cca3ef3c80
13:22 jnthn Think I'm about at the "hunt busted tests" point with this branch
13:23 jnthn Maybe should rebase it on nom
13:23 Zoffix I'm at "Bogus statemen" stage with mine :P
13:23 jnthn 'cus some of them are from missing changes
13:24 Ven_ joined #perl6-dev
13:26 Zoffix hm, looks like the binary stuff and this "bogus statement" is due to scp'ing a file off sshfs'ed partition :S if I copy/paste it into target off my editor, it works fine
13:27 Geth ¦ rakudo/refactor-handle-encoding: 17 commits pushed by (Jonathan Worthington)++
13:27 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/compare/cca3ef3c80...d4948aee3e
13:30 jnthn So, 12 test files that have some kind of regression
13:30 Zoffix nope... scping from box itself still has the issue :S Atom says encoding is utf8.. I'm at a loss :/
13:31 jnthn Odd
13:32 * jnthn never used sshfs
13:34 Geth ¦ rakudo/refactor-handle-encoding: d19f780376 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
13:34 Geth ¦ rakudo/refactor-handle-encoding: .get should give Nil, not Str, at eof.
13:34 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/d19f780376
13:34 Geth ¦ rakudo/refactor-handle-encoding: 582c39dfbf | (Jonathan Worthington)++ | src/core/IO/Handle.pm
13:34 Geth ¦ rakudo/refactor-handle-encoding: Don't treat empty file as having one empty line.
13:34 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/582c39dfbf
13:34 jnthn That gets me down to 8 test files needing attention
13:35 Zoffix looks like bad copy has a bunch of crap at the end: (hex diff): https://github.com/zoffixznet/debug/commit/1bc08d163a5ed9077cc409066e331bed0e5e3698
13:36 * Zoffix sticks to copy-pasting from atom to pico for now
13:46 jnthn argh
13:46 Geth ¦ rakudo/newer-cat-handle: 7c63f6a4c4 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
13:46 Geth ¦ rakudo/newer-cat-handle: Die if CatHandle.new was given nothing to cathandle
13:46 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/7c63f6a4c4
13:46 Geth ¦ rakudo/newer-cat-handle: 4ad8b1792a | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
13:46 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.get
13:46 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/4ad8b1792a
13:46 jnthn no wonder stuff ended up pretty broken for slurp when I removed the old encoding stuff
13:46 Geth ¦ roast/newer-cat-handle: 9833012763 | (Zoffix Znet)++ | S32-io/io-cathandle.t
13:46 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.get
13:46 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/9833012763
13:47 jnthn IO::Path.slurp is poking in to the IO::Handle guts and using nqp::readcharsfh
13:47 Zoffix oh crap. I forgot about that one
13:47 Zoffix :) when we were talking about nothing poking into guts of IO::Handle
13:48 jnthn There is a sensible optimization to do here, if we know we're slurping up the whole file
13:48 jnthn In that we don't have to set up a streaming decoder, we can just do it all at once
13:53 * Zoffix &
14:02 Geth ¦ rakudo/refactor-handle-encoding: 173c33d20a | (Jonathan Worthington)++ | src/core/IO/Path.pm
14:02 Geth ¦ rakudo/refactor-handle-encoding: Update IO::Path.slurp for IO::Handle changes.
14:02 Geth ¦ rakudo/refactor-handle-encoding:
14:02 Geth ¦ rakudo/refactor-handle-encoding: This still tries to do some amount of fast-pathing by avoidng the cost
14:02 Geth ¦ rakudo/refactor-handle-encoding: of the setup of a streaming decoder by opening in binary mode (or at
14:02 Geth ¦ rakudo/refactor-handle-encoding: least, we'll do so once MoarVM's file handle support switches to be
14:02 Geth ¦ rakudo/refactor-handle-encoding: binary only), and doing the decode in a single swoop. More may be
14:02 Geth ¦ rakudo/refactor-handle-encoding: possible; in the meantime, this gets things working again.
14:02 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/173c33d20a
14:02 jnthn Down to 5 test files that need a looing at
14:02 jnthn *looking
14:10 jnthn OK, 3 failures are tests I think want reconsidering
14:10 jnthn 4 others I need to look in to
14:21 brrt joined #perl6-dev
14:36 Zoffix Geth: uptime
14:36 Geth Zoffix, 1 week, 3 days, 23 hours, 46 minutes, and 30 seconds
14:37 Zoffix \o/ looking good :)
14:47 jnthn Grr, tracked down one of the problems
14:47 jnthn Inconsistent API is inconsistent
14:52 Zoffix But is it consistently inconsistent? >:}
14:52 jnthn No, it was mostly reasnonably designed
14:52 jnthn Fixed it in MoarVM to do what I thought it was doing
14:53 jnthn Hurrah, that strikes argfiles from my list
14:55 Ven joined #perl6-dev
15:01 Ven_ joined #perl6-dev
15:05 Zoffix m: dd "\n\x[308]c".comb
15:05 camelia rakudo-moar 428324: OUTPUT: «("\n", "\x[308]", "c").Seq␤»
15:06 Zoffix m: with '/tmp/foo70'.IO { .spurt: "\n\x[308]c"; with .open { dd [ .getc xx 20 ] } }
15:06 camelia rakudo-moar 428324: OUTPUT: «["\n", "\x[308]", "c", Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any, Any]␤»
15:06 jnthn m: say uniname 308
15:06 camelia rakudo-moar 428324: OUTPUT: «LATIN CAPITAL LETTER J WITH CIRCUMFLEX␤»
15:06 jnthn m: say uniname 0x308
15:06 camelia rakudo-moar 428324: OUTPUT: «COMBINING DIAERESIS␤»
15:06 jnthn Thought it was a combiner you were trying out :)
15:07 Zoffix weird. getting "\n\x[308]c" as a return from .getc in cathandle :S
15:07 jnthn You can't put a combiner onto a control char
15:07 jnthn fwiw
15:07 jnthn :)
15:07 Zoffix Yeah :)
15:07 jnthn Cool, I have 3 passing todos
15:08 jnthn 1 test I agree I should fix
15:08 Ven joined #perl6-dev
15:08 jnthn And 3 that I think want discussion
15:10 jnthn Zoffix: Do you think we should continue with having .encoding return 'bin' when the handle is in binary mode?
15:12 Zoffix jnthn: as opposed to returning Str type object instead?
15:12 jnthn Yeah
15:12 jnthn I mean, it's not a "real" encoding
15:12 Zoffix Yeah, type object sounds good.
15:12 jnthn OK.
15:13 jnthn What about an unopened handle?
15:13 jnthn That also now returns Str
15:13 Zoffix Yeah, also good.
15:13 jnthn I wonder if Nil would be more consistent...
15:13 AlexDaniel joined #perl6-dev
15:14 Zoffix m: with '/tmp/foo70'.IO { .spurt: "\x[308]a♥b\x[308]♥c♥"; with .open { dd ( .getc xx 10 ) } }
15:14 camelia rakudo-moar 428324: OUTPUT: «("\x[308]", "a", "♥", "b̈♥c♥", Nil, Nil, Nil, Nil, Nil, Nil).Seq␤»
15:14 Zoffix That's a bug innit? The last item has two hearts and c and b with combiner
15:15 Ven_ joined #perl6-dev
15:15 jnthn Looks odd
15:17 Zoffix m: with '/tmp/foo70'.IO { .spurt: "b♥c♥"; with .open { dd ( .getc xx 10 ) } }
15:17 camelia rakudo-moar 428324: OUTPUT: «("b", "♥c♥", Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil).Seq␤»
15:17 Zoffix m: with '/tmp/foo70'.IO { .spurt: "a♥c"; with .open { dd ( .getc xx 10 ) } }
15:17 camelia rakudo-moar 428324: OUTPUT: «("a", "♥c", Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil).Seq␤»
15:17 Zoffix m: with '/tmp/foo70'.IO { .spurt: "a♥cd"; with .open { dd ( .getc xx 10 ) } }
15:17 camelia rakudo-moar 428324: OUTPUT: «("a", "♥", "cd", Nil, Nil, Nil, Nil, Nil, Nil, Nil).Seq␤»
15:18 jnthn Heh, its survived the refactor
15:18 Zoffix aww
15:18 jnthn I get I can guess what it is too
15:18 Zoffix What?
15:19 jnthn Something to do with the normalization buffer, which hangs on to a char
15:19 jnthn Or more
15:20 jnthn So getc tries to grab a char, then if it can't looks if there's anything more in the file, sees not, then does a "get all" operation on the buffer, figuring that there's only one more char to force out
15:20 jnthn m: with '/tmp/foo70'.IO { .spurt: "acd"; with .open { dd ( .getc xx 10 ) } }
15:20 camelia rakudo-moar 428324: OUTPUT: «("a", "c", "d", Nil, Nil, Nil, Nil, Nil, Nil, Nil).Seq␤»
15:20 jnthn m: say uniname '♥'
15:20 camelia rakudo-moar 428324: OUTPUT: «BLACK HEART SUIT␤»
15:21 Ven_ joined #perl6-dev
15:22 Geth ¦ rakudo/refactor-handle-encoding: 0210297cbf | (Jonathan Worthington)++ | src/core/IO/Handle.pm
15:22 Geth ¦ rakudo/refactor-handle-encoding: Correct a typo.
15:22 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/0210297cbf
15:22 Geth ¦ rakudo/refactor-handle-encoding: 0f6cce7f78 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
15:22 Geth ¦ rakudo/refactor-handle-encoding: .getc should return Nil, not Str, at the end.
15:22 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/0f6cce7f78
15:22 Geth ¦ rakudo/refactor-handle-encoding: 280c34f27b | (Jonathan Worthington)++ | src/core/IO/Handle.pm
15:22 Geth ¦ rakudo/refactor-handle-encoding: Fix bug in .encoding switching.
15:22 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/280c34f27b
15:23 jnthn At least I've been careful enough to preserve bugs :P
15:24 Zoffix :)
15:26 jnthn m: say Str // 0 || 42
15:26 camelia rakudo-moar 428324: OUTPUT: «42␤»
15:26 jnthn m: say 1 // 0 || 42
15:26 camelia rakudo-moar 428324: OUTPUT: «1␤»
15:26 jnthn m: say 1 // 2 || 42
15:26 camelia rakudo-moar 428324: OUTPUT: «1␤»
15:26 jnthn m: say Str // 2 || 42
15:26 camelia rakudo-moar 428324: OUTPUT: «2␤»
15:26 Zoffix Filed as https://rt.perl.org/Ticket/Display.html?id=131365
15:26 jnthn Alright
15:27 jnthn Think I've hunted down the last regression, then it's just bin/:bin to consider
15:27 jnthn Plus syncing up a MoarVM patch with the JVM impl
15:27 jnthn And I likely need to switch on newline translation
15:28 jnthn So Windows will be happy
15:28 Zoffix hoh
15:28 Zoffix j: with '/tmp/foo70'.IO { .spurt: "a♥cd"; with .open { dd ( .getc xx 10 ) } }
15:28 camelia rakudo-jvm 428324: OUTPUT: «("a", "♥", "c", "d", Nil, "\0", "\0", "\0", "\0", "\0").Seq␤»
15:29 Zoffix \0s after the first Nil
15:29 jnthn That one may well be fixed by my work
15:31 Ven_ joined #perl6-dev
15:31 Geth ¦ rakudo/newer-cat-handle: 3b668b6804 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
15:31 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.getc
15:31 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/3b668b6804
15:32 Geth ¦ roast/newer-cat-handle: 2f65a72df5 | (Zoffix Znet)++ | S32-io/io-cathandle.t
15:32 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.getc
15:32 Geth ¦ roast/newer-cat-handle:
15:32 Geth ¦ roast/newer-cat-handle: 1 TODOed test due to IO::Handle.getc bug:
15:32 Geth ¦ roast/newer-cat-handle: https://rt.perl.org/Ticket/Display.html?id=131365
15:32 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/2f65a72df5
15:36 robertle joined #perl6-dev
15:38 jnthn Zoffix: I guess we'll also drop :enc<bin>?
15:38 Zoffix jnthn: yeah
15:39 Ven_ joined #perl6-dev
15:47 Ven_ joined #perl6-dev
15:57 Geth ¦ roast: 45ce2fa4b1 | (Jonathan Worthington)++ | S32-io/open.t
15:57 Geth ¦ roast: Eliminate test doing open with :enc and :bin.
15:57 Geth ¦ roast: review: https://github.com/perl6/roast/commit/45ce2fa4b1
15:57 Geth ¦ roast: e6bf69bb91 | (Jonathan Worthington)++ | S32-io/open.t
15:57 Geth ¦ roast: Re-work tests for :bin and .encoding.
15:57 Geth ¦ roast:
15:57 Geth ¦ roast: Todo'd one of them that will fail until the I/O encoding refactors
15:57 Geth ¦ roast: branch is merged.
15:57 Geth ¦ roast: review: https://github.com/perl6/roast/commit/e6bf69bb91
15:59 Geth ¦ rakudo/refactor-handle-encoding: 2e12cea2da | (Jonathan Worthington)++ | src/core/IO/Handle.pm
15:59 Geth ¦ rakudo/refactor-handle-encoding: Don't be so eager to avoid trying to read.
15:59 Geth ¦ rakudo/refactor-handle-encoding:
15:59 Geth ¦ rakudo/refactor-handle-encoding: Removing these checks is probably a speed-up anyway, but we also rely
15:59 Geth ¦ rakudo/refactor-handle-encoding: on them issuing a read to generate errors when we try to read from a
15:59 Geth ¦ rakudo/refactor-handle-encoding: handled opened for write.
15:59 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/2e12cea2da
15:59 Geth ¦ rakudo/refactor-handle-encoding: caacd25515 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
15:59 Geth ¦ rakudo/refactor-handle-encoding: Allow :bin to be set at construction time.
15:59 Geth ¦ rakudo/refactor-handle-encoding:
15:59 Geth ¦ rakudo/refactor-handle-encoding: And use it as a default to `open`, just like we do for things like
15:59 Geth ¦ rakudo/refactor-handle-encoding: `:enc`, `:nl-in`, etc.
15:59 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/caacd25515
15:59 Geth ¦ rakudo/refactor-handle-encoding: 3a396b48a1 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
15:59 Geth ¦ rakudo/refactor-handle-encoding: Need a fresh decoder after a seek.
15:59 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/3a396b48a1
16:00 Geth ¦ rakudo/refactor-handle-encoding: 51c73ba066 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
16:00 Geth ¦ rakudo/refactor-handle-encoding: Use Nil to signal no encoding (thus :bin mode).
16:00 Geth ¦ rakudo/refactor-handle-encoding: review: https://github.com/rakudo/rakudo/commit/51c73ba066
16:01 Zoffix m: https://gist.github.com/zoffixznet/269379aebe538214b7a37d94dd05187e
16:01 camelia rakudo-moar 428324: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤P6opaque: missing attribute protocol in compose of B2␤at <tmp>:2␤»
16:02 Zoffix m: class Foo does Blob {}
16:02 camelia rakudo-moar 428324: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤P6opaque: missing attribute protocol in compose of Foo␤at <tmp>:1␤»
16:03 Zoffix Filed as https://rt.perl.org/Ticket/Display.html?id=131366
16:03 jnthn m: class Foo does Blob is repr('VMArray') {}
16:03 camelia rakudo-moar 428324: ( no output )
16:03 jnthn Probably needs that
16:04 Zoffix Ahhh
16:04 Zoffix jnthn: so should I just close the ticket?
16:06 Zoffix Hmm... "NEW version is 220.63x faster"
16:06 Zoffix But is it 220x wronger...
16:07 jnthn Zoffix: Hm, we may be able to try and figure out that it needs the different REPR
16:07 jnthn I forget exactly how that part works
16:08 Zoffix "NEW version is 3141.78x faster"
16:09 Zoffix haha :D
16:09 jnthn o.O
16:09 jnthn Wow
16:09 jnthn Yay. All passing spectests, plus todo passes also
16:10 Zoffix "NEW version is 51497.76x faster"... k looks like O(n) changed. /me plugs that change in and strestests
16:11 jnthn So, remaining with my branch is (1) try it on Windows and probably fix up missing translate-nl stuff, and (2) patch up JVM the way I did Moar and then see what's busted
16:11 Zoffix Cool
16:14 Geth ¦ nqp: ab01023b30 | (Jonathan Worthington)++ | tools/build/MOAR_REVISION
16:14 Geth ¦ nqp: Bump MOAR_REVISION for decoder API fix.
16:14 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/ab01023b30
16:14 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.05-24-gd86a35b6... No newline at end of file
16:14 Geth ¦ nqp: 4c522faf03 | (Jonathan Worthington)++ | t/moar/05-decoder.t
16:14 Geth ¦ nqp: Test nqp::decodertakebytes when not enough bytes.
16:14 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/4c522faf03
16:14 Geth ¦ nqp: version bump brought these changes: https://github.com/MoarVM/MoarVM/compare/2017.05-24-gd86a35b6... No newline at end of file
16:14 jnthn haha
16:18 Zoffix heh
16:18 jnthn It somehow went missing in the previous bump, my commit added it back
16:20 Geth ¦ nqp: 34b728e541 | (Jonathan Worthington)++ | 2 files
16:20 Geth ¦ nqp: Sync JVM decodertakebytes semantics with MoarVM.
16:20 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/34b728e541
16:21 jnthn Righty, home time
16:24 Ven joined #perl6-dev
16:29 jnthn heh, well, except I noticed the JVM spectest I set off before heading there spat out No subtests run for every single test
16:29 jnthn And then did it for make test too
16:31 jnthn But running under prove it seems make test looks...better
16:32 jnthn *sigh* but 99-test-basic.t seems to hang
16:33 jnthn While precompiling Test.pm
16:33 jnthn Guess that's what I'll be looking at in the morning, then...
16:33 jnthn bbl
16:45 Geth ¦ rakudo/nom: 7ecb59dcd5 | (Samantha McVey)++ | src/core/Str.pm
16:45 Geth ¦ rakudo/nom: 8% speed increase for .starts-with() Str method
16:45 Geth ¦ rakudo/nom:
16:45 Geth ¦ rakudo/nom: We can apply the same simplification and speed up other methods
16:45 Geth ¦ rakudo/nom: for Str as well, as there are many which use nqp::getattr which
16:45 Geth ¦ rakudo/nom: uses more CPU time than not.
16:45 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7ecb59dcd5
16:46 Zoffix m: my $b = Blob.new: 1..1000; .signature.say for $b.^lookup("splice").candidates
16:46 camelia rakudo-moar 428324: ( no output )
16:46 Zoffix dafuq? the method is there but there are no candidates?
16:48 Zoffix m: dd Any.^lookup("splice")
16:48 camelia rakudo-moar 428324: OUTPUT: «Method+{<anon|56674624>} splice = method splice (Mu $: | is raw) { #`(Method+{<anon|56674624>}|48479896) ... }␤»
16:48 Zoffix Ah. It's not a multi
16:48 Zoffix Is that it?
16:48 Zoffix m: Blob.new.splice: 42
16:48 camelia rakudo-moar 428324: OUTPUT: «Use of uninitialized value of type Any in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤  in block <unit> at <tmp> line 1␤Cannot resolve caller splice(Blob, Int); none of these signatures…»
16:49 Ven_ joined #perl6-dev
16:49 Zoffix ^ cause that error is LTA. It says "none of these signatures match:" and ends
16:52 Zoffix Filed as https://rt.perl.org/Ticket/Display.html?id=131367
16:54 Zoffix dammit... my amazing speedup changes fail spectest because it doesn't return a blob of the right type
16:56 Zoffix which amusingly is mostly caught by my new IO tests and not buf tests :P
16:58 Zoffix ah -str- tests bufs, ok
16:58 Zoffix ZofBot: you're on Buf robot, I tell you!
16:58 ZofBot Zoffix, I was looking at the pi bug we discussed the other day, changing snprintf from "%.15g" to "%.16g" makes one test fail in t/spec/integration/advent2013-day15.t
16:58 Zoffix ZofBot: great work. Carry on!
16:58 ZofBot Zoffix, I think I just don't understand the use case where it would ever matter if the thread changes...
16:59 Zoffix (these responses would be impressive if I didn't remember conversations they came from :P)
17:00 Zoffix nebuchadnezzar: ???? works with Perl 6. It's just not a valid identifier. You need to make it one.
17:00 Zoffix m: my \term:<????> = 42; say ???? +  ????
17:00 camelia rakudo-moar 7ecb59: OUTPUT: «84␤»
17:03 * Zoffix hits a snag
17:05 Zoffix Or, I guess not. It's just IO::CatHandle can be made from a mix of Cools and IO::Handles. And some of those handles might be opened in char mode, but others in binary mode.
17:10 Zoffix Maybe I need a new attribute: if it's set, then for already-opened handles, set chomp/nl-in/encoding to that of the cathandles attributes; if it's not set, then leave the handles alone
17:12 Zoffix I'm gonna go with: always set them when switching to already opened handle; otherwise there'll be all sorts of crashes when, say, trying to $cat.slurp with a mix of handles opened in bin/char modes
17:13 * Zoffix gives it a rest and will wait for jnthn++'s merge to see how the encoding is signaled now.
18:02 brrt joined #perl6-dev
18:43 Zoffix .tell jnthn BTW what do you think of making IO::Handle.encoding consistent with other attributes? You can change $fh.chomp/.nl-in/.nl-out by assigning to them, while $fh.encoding takes an arg instead. I kinda left it alone, but if we're doing all these refactors that touch encoding, maybe we should nail that consistency too?
18:43 yoleaux Zoffix: I'll pass your message to jnthn.
19:33 Zoffix Hehe. A ticket asks to consider 6 year olds reading the error message :D I like that it doesn't sound crazy :)
19:33 Zoffix .oO( make a Perl 6 distro targeted for kids... )
19:34 ugexe my $last = @arr.poop;
19:35 Zoffix :)
19:35 geekosaur well, really that ticket is yet another 'perl 5 programmer trap detection considered harmful'
19:35 geekosaur oh wait, no, I'm confusing tickets
19:35 Zoffix Yeah :)
19:35 geekosaur it's the octal one that's 'p5 considered harmful'
19:36 Zoffix I'm talking about the octal one.
19:36 Zoffix But most langs use 0n for octals, so it's not P5 only :)
19:37 Zoffix And the other one about the dot: while `"42".␤abs` works, `42.␤abs` doesn't.
19:39 AlexDaniel Zoffix: well, you have to use spaces around your infix ops
19:39 AlexDaniel that's not the only case where it doesn't work
19:41 Zoffix m: sub infix:<♥> { $^a ~ $^b }; say "look ma"♥"no spaces"
19:41 camelia rakudo-moar 7ecb59: OUTPUT: «look mano spaces␤»
19:41 Zoffix m: sub infix:<.> { $^a ~ $^b }; say "look ma"."no spaces"
19:41 camelia rakudo-moar 7ecb59: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'.␤at <tmp>:1␤------> 3{ $^a ~ $^b }; say "look ma"."no spaces"7⏏5<EOL>␤»
19:41 Zoffix m: sub infix:<.> { $^a ~ $^b }; say "look ma".␤"no spaces"
19:41 camelia rakudo-moar 7ecb59: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at <tmp>:2␤------> 3 infix:<.> { $^a ~ $^b }; say "look ma".7⏏5<EOL>␤»
19:41 Zoffix heh
19:43 brrt joined #perl6-dev
19:43 Zoffix AlexDaniel: how's this: https://gist.github.com/zoffixznet/e0d7417c02821493e95b5396ce9e9476
19:44 AlexDaniel Zoffix: looks better
19:45 AlexDaniel but why isn't it a compile-time error?
19:45 AlexDaniel like, SORRY! Leading 0 is not allowed
19:46 Zoffix AlexDaniel: it's a compile time warning
19:46 AlexDaniel yes, why warning?
19:46 AlexDaniel so that you can silence it and continue?
19:46 Zoffix I'm guessing "Because Perl 5". Same as why the hell is Int == 0
19:47 Zoffix m: say Int == 0
19:47 camelia rakudo-moar 7ecb59: OUTPUT: «Invocant of method 'Bridge' must be an object instance of type 'Int', not a type object of type 'Int'.  Did you forget a '.new'?␤  in block <unit> at <tmp> line 1␤␤»
19:47 Zoffix Which amusingly you can't evaluate with half the ops
19:47 * AlexDaniel bangs his head against the wall
19:47 Zoffix ehh... the message change is blocked by a dumb test
19:47 * Zoffix needs to relocate
19:48 AlexDaniel Zoffix: but yes, the text is better
19:56 Zoffix AlexDaniel: though now that you pointed out that it's an error and not a warning, perhaps the "Not allowed" part is wrong?
19:56 Zoffix Iirc, I added that part last time I improved that message
19:57 Zoffix m: 05
19:57 camelia rakudo-moar 7ecb59: OUTPUT: «Potential difficulties:␤    Leading 0 does not indicate octal in Perl 6. Please use 0o5 if you mean that.␤    at <tmp>:1␤    ------> 057⏏5<EOL>␤WARNINGS for <tmp>:␤Useless use of constant integer 5 in sink context (line 1)␤»
19:57 Zoffix yeah
19:57 AlexDaniel well, it can say that leading zeros do nothing
19:58 Zoffix s/'Leading zero is not allowed.'/'Leading zero has no meaning'/
19:58 Zoffix Gonna do that when I get to a computer
20:12 * perlpilot idly wonders if the octal message should mention quoting in case they meant '05'
20:14 dct joined #perl6-dev
21:13 Geth ¦ roast: 2705ff130b | (Zoffix Znet)++ | S15-literals/numbers.t
21:13 Geth ¦ roast: Make 067 warning check less exact
21:13 Geth ¦ roast:
21:13 Geth ¦ roast: The test is not part of 6.c-errata, and perhaps this sort of tests
21:13 Geth ¦ roast: that test exact textual content of error/warning messages
21:13 Geth ¦ roast: should be excluded from errata.
21:13 Geth ¦ roast: review: https://github.com/perl6/roast/commit/2705ff130b
21:13 Geth ¦ roast: 243964211f | (Zoffix Znet)++ | S19-command-line/repl.t
21:13 Geth ¦ roast: Move octal warning REPL test to rakudo/t
21:13 Geth ¦ roast:
21:13 Geth ¦ roast: The test is not part of 6.c-errata, and perhaps this sort of tests
21:13 Geth ¦ roast: that test exact textual content of error/warning messages
21:13 Geth ¦ roast: should be excluded from errata.
21:13 Geth ¦ roast: review: https://github.com/perl6/roast/commit/243964211f
21:14 Geth ¦ rakudo/nom: 666350af93 | (Zoffix Znet)++ | t/02-rakudo/repl.t
21:14 Geth ¦ rakudo/nom: Move octal REPL warning test from roast to rakudo test suite
21:14 Geth ¦ rakudo/nom:
21:14 Geth ¦ rakudo/nom: Moved from https://github.com/perl6/roast/commit/243964211f
21:14 Geth ¦ rakudo/nom:
21:14 Geth ¦ rakudo/nom: Marked as TODO because the available REPL testing function doesn't
21:14 Geth ¦ rakudo/nom: appear to test STDERR. The entire test file should be reworked with
21:14 Geth ¦ rakudo/nom: better testing routines. Marking the two tests as TODO until then.
21:14 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/666350af93
21:16 Geth ¦ rakudo/nom: b6694bd0b3 | (Zoffix Znet)++ | src/core/Exception.pm
21:16 Geth ¦ rakudo/nom: Improve octal-leading-zero warning
21:16 Geth ¦ rakudo/nom:
21:16 Geth ¦ rakudo/nom: - Remove wording about leading zero not allowed, since we only warn
21:16 Geth ¦ rakudo/nom:     and don't throw, so obviously it is allowed.
21:16 Geth ¦ rakudo/nom: - Do not assume the user definitely meant to write an octal;
21:16 Geth ¦ rakudo/nom:     Fixes RT#131361: https://rt.perl.org/Ticket/Display.html?id=131361
21:16 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131361
21:16 Geth ¦ rakudo/nom: - Add suggestion for if the user meant to write a string; perlpilot++
21:16 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b6694bd0b3
21:26 Zoffix Hah. Samba vuln... I guess I'm finally going to be updating my ancient Linux frankenbuntu box :P http://thehackernews.com/2017/05/samba-rce-exploit.html
21:38 dct joined #perl6-dev
21:49 Zoffix .tell jnthn perhaps we shouldn't add $.bin to IO::Handle and simply have $.encoding.defined.not to mean binary mode?  For example, if I have a handle made with `my $fh = IO::Handle.new: :path<foo>, :$bin`, then `$fh.open: :enc<ascii>` might die complaining about both enc and bin, and I need to write it as `$fh.open: :enc<ascii> :!bin`
21:49 yoleaux Zoffix: I'll pass your message to jnthn.
21:53 jnthn I added it so there was a way to specify binary mode when doing the IO::Handle.new(...) approach
21:53 yoleaux 21:49Z <Zoffix> jnthn: perhaps we shouldn't add $.bin to IO::Handle and simply have $.encoding.defined.not to mean binary mode?  For example, if I have a handle made with `my $fh = IO::Handle.new: :path<foo>, :$bin`, then `$fh.open: :enc<ascii>` might die complaining about both enc and bin, and I need to write it as `$fh.open: :enc<ascii> :!bin`
21:54 jnthn The introspection aspect of it was a side-effect of that.
21:54 jnthn I think if you construct it with :bin and then open with a :enc then you deserve the exception yet get.
21:54 Zoffix Ah, right. OK
21:54 jnthn It probably suggests confusion of some kind anyway
21:55 jnthn I added it 'cus we had a test that I couldn't express any more (it did .new with :enc<bin>)
21:55 jnthn The other option woulda been to toss the test
21:56 jnthn But it felt a bit odd that you could .new with enc, nl-in, nl-out, and friends but then not bin.
21:56 Zoffix Yeah, I didn't think about the case where you wanted to .new in bin
21:57 dct joined #perl6-dev
22:10 ugexe does reworking Proc to use Proc::Async have any new ramifications regarding IO from a proc spawned in a thread (..lol?)
22:14 timotimo hm. is it the case that until now starting a synchronous Proc would not spawn an event loop thread?
22:15 ugexe i have no idea!
22:17 jnthn At present, if you make a Proc on one thread, but then try to read the .out or .err on another thread you'll have problems
22:17 jnthn My intention was to address that
22:18 Geth ¦ rakudo/newer-cat-handle: 25b664a2d6 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
22:18 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.words
22:18 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/25b664a2d6
22:18 Geth ¦ roast/newer-cat-handle: a4a7eaabd7 | (Zoffix Znet)++ | S32-io/io-cathandle.t
22:18 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.words
22:18 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/a4a7eaabd7
22:20 ugexe yeah, i just assumed there would be some sort of downside as well
22:21 Geth ¦ roast/newer-cat-handle: 33048a4c28 | (Zoffix Znet)++ | S32-io/io-cathandle.t
22:21 Geth ¦ roast/newer-cat-handle: Don't spec IO::CatHandle.slurp-rest
22:21 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/33048a4c28
22:21 Geth ¦ rakudo/newer-cat-handle: 2eb8a25f18 | (Zoffix Znet)++ | t/02-rakudo/07-io-cathandle.t
22:21 Geth ¦ rakudo/newer-cat-handle: Test .slurp-rest throws X::Obsolete..
22:21 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/2eb8a25f18
22:22 * Zoffix is & for the day
22:22 timotimo Zoffix: this is a very nitty pick, but the exception about leading 0 won't tell you that a number is invalid octal if it has different digits that mean 8 or 9
22:22 timotimo (i don't have any on hand, and i'm not sure if anybody would ever actually run in this in The Real World™)
22:23 ugexe *currently* if i spawn a process that itself spawns processes i seem to hit open 3 problem  deadlocks a lot
22:23 * Zoffix doesn't get what you mean, timotimo
22:23 Zoffix What different digits that mean 8 or 9?
22:23 timotimo u: nine
22:23 unicodable6 timotimo, U+0039 DIGIT NINE [Nd] (9)
22:23 unicodable6 timotimo, U+00AA FEMININE ORDINAL INDICATOR [Lo] (ª)
22:23 Zoffix Ah, right
22:23 unicodable6 timotimo, 143 characters in total: https://gist.github.com/0a8824930c496602967fc9c0bc19abb8
22:23 timotimo m: say 0o9
22:23 camelia rakudo-moar b6694b: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤'9' is not a valid number␤at <tmp>:1␤------> 3say 0o97⏏5<EOL>␤»
22:24 timotimo wait what :δ
22:24 timotimo m: say 0o9
22:24 camelia rakudo-moar b6694b: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤'9' is not a valid number␤at <tmp>:1␤------> 3say 0o97⏏5<EOL>␤»
22:24 timotimo that's not a cool error message
22:24 Zoffix heh
22:24 Zoffix m: say 0୯
22:24 camelia rakudo-moar b6694b: OUTPUT: «Potential difficulties:␤    Leading 0 has no meaning. If you meant to create an octal number, use '0o' prefix; like, '0o୯'. If you meant to create a string, please add quotation marks.␤    at <tmp>:1␤    ------> 3say 0୯7⏏5<EOL>␤9␤»
22:24 Zoffix I've no idea how to improve hat.
22:25 Zoffix Othat than something crazy like .combing and +'' each char :D
22:25 * Zoffix &
22:26 timotimo we are able to regexmatch on unicode properties and such, and we can also use unival here
22:26 timotimo m: say unival($_) for "789୯"
22:26 camelia rakudo-moar b6694b: OUTPUT: «7␤»
22:26 timotimo m: say unival($_) for "789୯".comb
22:26 camelia rakudo-moar b6694b: OUTPUT: «7␤8␤9␤9␤»
22:27 timotimo and the "is not a valid number" one should at least include the base if it isn't base10 (or maybe always)
22:28 jnthn ugexe: Yeah...well, if we do it in terms of Proc::Async then we can the natural way would be for it to shove input as it arrives into a channel
22:28 jnthn ugexe: And the sync reads pull from that
22:28 jnthn ugexe: That means we don't deadlock, though of course we pay in memory.
22:29 jnthn But at some point we'll need to cross the general issue of supplies and back-pressure
22:29 jnthn So I don't mind kicking that issue down the road some
22:30 ugexe i thought Supply already had stuff for that
22:30 jnthn yes and no
22:31 jnthn I mean, there's natural back-pressure if you are the source, because you are paying the cost of the processing
22:31 jnthn But data arriving on the event loop schedules its handler on the thread pool
22:31 jnthn And the input queue to the pool is unbounded
22:32 jnthn There's things like throttle, but those are largely about throwing data away
22:32 geekosaur joined #perl6-dev
22:32 jnthn We don't yet have a way to push back on the event loop
22:33 ugexe yeah thats what I was thinking of. I thought you could just vent-at some other Supply, but then where does it end I guess
22:33 jnthn Well, yes :)
22:34 jnthn In general, though, I'm not fond of the synchronous Proc API. I mean, for run/shell/qx it's fine, but once it's more complex I'd much rather deal in Proc::Async's API
22:35 jnthn But we have it, and need to support it
22:35 timotimo ugexe: it makes me mildly uncomfortable that the urls in the blog post about the cpan testers reporter will result in "report not found" :(
22:35 ugexe timotimo: well tell them to stand up their new api already :P
22:35 jnthn I'd just rather supporting it didn't mean two separate proc spawning impls to support in MoarVM
22:36 jnthn Which is what we've got today
22:36 timotimo oh, we can submit but it won't reach the front-end yet if it's p6?
22:36 ugexe jnthn: yes agree. i've done the fake-async with Proc to get some things working on jvm before
22:36 ugexe this probably also fixes the :merge issues
22:36 jnthn Oh, 'cus no Proc::Async on JVM...
22:37 jnthn That'll be nice to have fixed :)
22:37 ugexe timotimo: yeah it submits. but not even perl 5 reports that are submitted to it (if that has happened yet) would show up
22:37 ugexe they do get stored though because a UUID is returned and I saw them look one up on the db
22:38 jnthn Sleep time here; will get some more work on the file handle stuff in tomorrow :)
22:38 timotimo oh, i didn't know it doesn't work for p5 either
22:39 timotimo exciting times for our ecosystem
22:39 ugexe jnthn: definitely, probably fix precomp deadlocks too
22:39 ugexe timotimo: yeah their new api is generic - its for any kind of test report
22:40 timotimo uh oh, do i sense a tiny bit of second system syndrome? ;)
22:40 ugexe a perl6 report was the first report to it though
22:40 timotimo cool!
22:40 timotimo how long before PTS did this get started?
22:40 ugexe you can still report to p6c testers if you install Net::HTTP and use `--p6c-testers`
22:40 timotimo once we can retire p6c-testers, p6c will have so much less cpu load ;)
22:40 ugexe the new api? not sure
22:41 ugexe i believe they discussed it on the flight there
22:43 timotimo and the staging compunit repo is also quite exciting
22:46 ugexe there is also build.pm replacement stuff that got worked out but its not done yet
22:47 timotimo that's such a hairy topic
22:47 timotimo definitely nice to have
22:47 timotimo but damn, i wouldn't dare touch something like that
22:48 ugexe https://design.perl6.org/S22.html#Dependency_hints
22:49 timotimo oh, is this old speculations already?
22:49 ugexe we try to abuse `by-$SOME-DYNAMIC-VAR.method` as filters
22:49 ugexe that was added at PTS
22:49 timotimo ah
22:50 ugexe version 1 of meta6 spec
22:50 timotimo how do you handle when multiple overlapping values?
22:51 timotimo i.e. "if it's windows, do this, except if it's windows and the version is 3.11"
22:51 ugexe there is no dyn var to get the os version?
22:51 timotimo well, windows may be a bad example
22:52 timotimo "oh yeah if the kernel version's 4.9.23, use this workaround library"
22:52 ugexe m: say $*DISTRO.version
22:52 camelia rakudo-moar b6694b: OUTPUT: «v42.2␤»
22:52 timotimo that's opensuse afaik
22:52 ugexe so they'd put by-distro.version => whatever
22:53 ugexe you can have multiples, but first match wins i believe
22:53 timotimo OK
22:53 timotimo does that mean you can nest 'em?
22:54 ugexe yeah i believe you can nest as many levels as you need
22:55 timotimo that's kind of cool. also terrible things will be done with this
22:56 timotimo it'll be annoying that you can't reference things across branches
22:57 timotimo i have no idea if it'd ever appear in practice, but you might have lots of repetition
22:57 Geth ¦ rakudo/nom: ec51e73fcd | (Zoffix Znet)++ | 2 files
22:57 Geth ¦ rakudo/nom: Detect non-ASCII digits > 7 octal warning; timotimo++
22:57 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ec51e73fcd
22:59 timotimo cool, Zoffix++
22:59 BenGoldberg joined #perl6-dev
23:00 timotimo oh yes, an "emulates" function
23:00 ugexe people should not be writing build.pm stuffs often enough for that to be a serious problem
23:01 timotimo why don't we have a "phpbb" key for the "support" section? ;) ;)
23:01 ugexe or we could come up with a way to do json spec and ref
23:02 timotimo i find it really weird to have "phone" in there, but i realize i'm living in a very narrow world with regards to that
23:02 ugexe (with potential cost indication)
23:02 timotimo yup
23:03 timotimo the section "support" lists a few things as "possible keys are", but lacks "license" which is introduced as another possibility in the next section
23:03 timotimo also, no mention of "or" and "and" in the spdx license string
23:04 timotimo i'm amazed JSON::Fast is used as an example ;)
23:06 timotimo i don't understand the second paragraph under "bin"
23:07 timotimo for the :from adverb
23:07 timotimo it seems to be about :from<bin> as well as the bin/ folder in a distribution
23:07 timotimo but it doesn't point out that it switched topics in between the paragraphs
23:08 timotimo it should be possible to put data: urls for dlls and such in the depends section :D :D :D
23:09 timotimo i'll go to be dnow
23:09 timotimo have a good one!
23:14 ugexe :from<bin> and :from<lib> just hint where to look for the dependency... its referring to system stuff
23:15 ugexe e.g. `is wget bin available?` or `is gtk library available?`
23:50 eater joined #perl6-dev

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