Perl 6 - the future is here, just unevenly distributed

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

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

All times shown according to UTC.

Time Nick Message
00:00 Geth ¦ roast/newer-cat-handle: 6 commits pushed by (Zoffix Znet)++, (Elizabeth Mattijsen)++, usev6++
00:00 Geth ¦ roast/newer-cat-handle: aa53211b19 | Restore default handle's encoding to be utf8
00:00 Geth ¦ roast/newer-cat-handle: 9d622b43cd | Fix hang test on Promise ~~ Enum
00:00 Geth ¦ roast/newer-cat-handle: be637ec491 | Add some more tests for (<=) and friends
00:00 Geth ¦ roast/newer-cat-handle: fe8c7ae5ba | Add some more tests for (<) and friends
00:00 Geth ¦ roast/newer-cat-handle: 2a15eb7959 | [JVM] Adjust fudging (avoid hanging tests)
00:00 Geth ¦ roast/newer-cat-handle: b84bcc97bc | Test .seek on handles opened in non-binary mode
00:00 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/compare/980dfc9a19...b84bcc97bc
00:00 Geth ¦ rakudo/newer-cat-handle: 5 commits pushed by (Zoffix Znet)++, (Elizabeth Mattijsen)++
00:00 Geth ¦ rakudo/newer-cat-handle: 2669d74cc0 | Restructure IO::Handle binary encoding controls
00:00 Geth ¦ rakudo/newer-cat-handle: 061d3aa5dd | Further fix crash in smartmatch with Numeric
00:00 Geth ¦ rakudo/newer-cat-handle: abb9b26f09 | Fix problem with bag() (<) <a>.Bag
00:00 Geth ¦ rakudo/newer-cat-handle: 9adc69c194 | Make VMDecoder.consume-exactly-bytes use buf8
00:00 Geth ¦ rakudo/newer-cat-handle: 3d0c829cf8 | Fix regression in .seek from current
00:00 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/compare/f881a7b6a6...3d0c829cf8
00:31 Geth ¦ roast/newer-cat-handle: 93e335aa57 | (Zoffix Znet)++ | S32-io/io-cathandle.t
00:31 Geth ¦ roast/newer-cat-handle: Change spec of .chomp/.nl-in behaviour on cathandle
00:31 Geth ¦ roast/newer-cat-handle:
00:31 Geth ¦ roast/newer-cat-handle: While original idea of leaving the already opened handles with
00:31 Geth ¦ roast/newer-cat-handle: whatever mode and attributes they were in seemed neat, we run into
00:31 Geth ¦ roast/newer-cat-handle: issues with binary/non-binary operations that might cross from
00:31 Geth ¦ roast/newer-cat-handle: a binary handle to non-binary handle.
00:31 Geth ¦ roast/newer-cat-handle:
00:31 Geth ¦ roast/newer-cat-handle: Spec the default to be: change mode/attrs of all handles to what the
00:31 Geth ¦ roast/newer-cat-handle: cathandle was instantiated with. We still have room to add an option
00:31 Geth ¦ roast/newer-cat-handle: to swap to preserving behaviour if we ever end up needing it.
00:32 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/93e335aa57
00:34 Geth ¦ rakudo/newer-cat-handle: ce17a2f871 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
00:34 Geth ¦ rakudo/newer-cat-handle: Refactor cathandle attribute handling
00:34 Geth ¦ rakudo/newer-cat-handle:
00:34 Geth ¦ rakudo/newer-cat-handle: - Match attribute paradigm to that of new IO::Handle encoding refactor
00:34 Geth ¦ rakudo/newer-cat-handle: - Re-set attributes and mode on already opened handles to that of the
00:34 Geth ¦ rakudo/newer-cat-handle:     CatHandle's attrs
00:34 Geth ¦ rakudo/newer-cat-handle: - Re-allow instantiation with empty list of handles; no need to make the
00:34 Geth ¦ rakudo/newer-cat-handle:     rocket explode if we have no sensors to read from ;)
00:34 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/ce17a2f871
00:45 Geth ¦ rakudo/newer-cat-handle: 60129a1943 | (Zoffix Znet)++ | 2 files
00:45 Geth ¦ rakudo/newer-cat-handle: Fix IO::CatHandle.slurp-rest exception args
00:45 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/60129a1943
00:52 MasterDuke timotimo: did you see jnthn's comment earlier about atpos and ]\? do you have any idea why [] isn't compiling down to the same thing as atpos?
00:53 MasterDuke *atpos and []
01:04 BenGoldberg joined #perl6-dev
01:10 Zoffix ===SORRY!===
01:10 Zoffix Failed to rename 'C:\rakudo-git\install\share\perl6\precomp\C6A98BBB719A4A7942B8DB22D62510D812B345FA.1495846969.20647\C5\C57EBB9F7A3922A4DA48EE8FCF34A4DC55942942.tmp' to 'C:\rakudo-git\install\share\perl6\precomp\C6A98BBB719A4A7942B8DB22D62510D812B345FA.1495846969.20647\C5\C57EBB9F7A3922A4DA48EE8FCF34A4DC55942942': Failed to rename file: operation not permitted
01:10 Zoffix in block <unit> at tools/build/install-core-dist.pl line 27
01:10 Zoffix Fresh clone on Windows10 :/
01:11 MasterDuke timotimo, jnthn: if i put a print in the moarvm VMArray.at_pos function, i see its output when i do nqp::atpos, but not when i do []
01:11 MasterDuke Zoffix: your branch?
01:11 Zoffix nom
01:12 Zoffix huh, and a bunch of .dll.a in the checkout: https://gist.github.com/zoffixznet/ac938ebb19af56d4eca4401004343d13
01:12 MasterDuke whoops
01:12 Zoffix Wonder if that's normal :\
01:14 Zoffix hm, and there IS a file named that in that dir...
01:15 Zoffix and if I delete it and try to gmake install; it gets recreated and same error happens :\
01:20 Zoffix .ask jnthn did your encoding rework affect precomp stuff? I'm getting file-rename errors on Win10, and I had no build issues on 2017.05 release, so it's something new: https://rt.perl.org/Ticket/Display.html?id=131378
01:20 yoleaux Zoffix: I'll pass your message to jnthn.
01:21 ugexe windows does some shit where you have to do some shit like wait for io to actually complete
01:21 ugexe maybe a handle is left open somewhere?
01:24 ugexe a naive solution could sleep after the spawned precomp processes (which open files) to give things time to catch up
01:24 Zoffix Well, we didn't need any sleeps a week ago...
01:24 Zoffix c: 2017.04 with '/tmp/foo999'.IO { .spurt: Buf.new: 200; dd .open.slurp }
01:24 committable6 Zoffix, ¦2017.04: «""»
01:24 Zoffix m: with '/tmp/foo999'.IO { .spurt: Buf.new: 200; dd .open.slurp }
01:24 camelia rakudo-moar 094e77: OUTPUT: «""␤»
01:24 Zoffix This seems busted
01:25 Zoffix m: Buf.new(200).decode
01:25 camelia rakudo-moar 094e77: OUTPUT: «Malformed termination of UTF-8 string␤  in block <unit> at <tmp> line 1␤␤»
01:25 Zoffix I'd expected ^ throwage
01:25 ugexe ive gotten that error intermitently before but i dont think reproducable
01:26 Zoffix I remember we had that error when we busted mkdir on windows
01:26 Zoffix (I mean the file rename one)
01:27 Zoffix m: with '/tmp/foo999'.IO { .spurt: Buf.new: 200, 200; dd .open.slurp }
01:27 camelia rakudo-moar 094e77: OUTPUT: «Malformed UTF-8␤  in block <unit> at <tmp> line 1␤␤»
01:27 ugexe but it seems to be ok on appveyor
01:27 Zoffix this does crash :/
01:28 ugexe install-core-dist.pl that is
01:28 Zoffix hm, indeed. That gives me hope
01:28 Zoffix Wonder what sort of windows appveyor uses
01:35 Zoffix another inconsistency: IO::Handle's .open takes `enc` but .new takes `encoding` -_-
01:37 ugexe os: Visual Studio 2013/2015 use Server 2012 R2 and 2017 uses Server 2016
01:39 * Zoffix notes that on the ticket
01:41 Zoffix cpan@perlbuild4~/CPANPRC/rakudo (newer-cat-handle)$ ./perl6 -e 'IO::CatHandle.new(:encoding<utf8-c8>).encoding.say'
01:41 Zoffix Nil
01:41 Zoffix I'm blind or what. I don't get why it ends up unset: https://github.com/rakudo/rakudo/blob/newer-cat-handle/src/core/IO/CatHandle.pm#L10-L25
01:46 ugexe its not named?
01:46 ugexe n/m looking at wrong method hurr
01:46 * Zoffix adds debug print statements
01:46 Zoffix ZofBot: time for a coffee break!
01:46 ZofBot Zoffix, The "flunk()" function marks a test as not passed
01:48 ilbot3 joined #perl6-dev
01:48 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:51 Zoffix Then I don't get why my slurp is trying to use utf8
01:52 Zoffix grrrr
01:53 Zoffix It's the enc vs encoding inconsistency that bit me twice now... 1st time was when I've used `enc` to .new() and now that my code is passing it as :$!encoding to open
01:53 Zoffix $original-designer--
01:54 Zoffix .encoding method should take the encoding as a named :enc arg. Just to mess with people
01:55 ugexe rename them all :encoding(:$enc)
01:55 Zoffix good plan
02:00 Geth ¦ rakudo/newer-cat-handle: 7ebc386d31 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
02:00 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.slurp
02:00 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/7ebc386d31
02:02 * Zoffix hesitates at the last minute, seeing as .open's args are overengineered as hell as it is :)
02:05 Geth ¦ roast/newer-cat-handle: bacfd9fd6e | (Zoffix Znet)++ | S32-io/io-cathandle.t
02:05 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.slurp
02:05 Geth ¦ roast/newer-cat-handle:
02:05 Geth ¦ roast/newer-cat-handle: 1 fudged test for newly discovered bug in IO::Handle:
02:05 Geth ¦ roast/newer-cat-handle: https://rt.perl.org/Ticket/Display.html?id=131379
02:05 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/bacfd9fd6e
02:05 Zoffix That's 2 bugs found thanks to IO::CatHandle \o/
02:08 BenGoldberg Why does IO::CatHandle have methods whose bodies are '{}' instead of, say, '{...}' ?
02:10 Zoffix Didn't think of ...
02:11 BenGoldberg :)
02:11 BenGoldberg m: sub foo { }; dd foo;
02:11 camelia rakudo-moar 094e77: OUTPUT: «Nil␤»
02:11 BenGoldberg If I call .read and get back Nil instead of a failure or an exception, I'd be a bit unhappy.
02:12 Geth ¦ rakudo/newer-cat-handle: 97aced9825 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
02:12 Geth ¦ rakudo/newer-cat-handle: Stub unimplemented cathandle methods; BenGoldberg++
02:12 Geth ¦ rakudo/newer-cat-handle:
02:12 Geth ¦ rakudo/newer-cat-handle: Instead of having them empty
02:12 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/97aced9825
02:18 BenGoldberg I just thought of something *really* clever: multi trait_mod:<is>(Routine $r, :$unimplemented!), which would cause any sub/method it's applied to, to fail with an X::NYI object
02:18 BenGoldberg Because lets face it, an error message "stub code executed" is always a LTA error message.
02:19 Zoffix heh
02:23 Geth ¦ rakudo/newer-cat-handle: 52b34b759e | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
02:23 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.comb/.split
02:23 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/52b34b759e
02:23 Geth ¦ roast/newer-cat-handle: e78e3c0c6c | (Zoffix Znet)++ | S32-io/io-cathandle.t
02:23 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.comb/.split
02:23 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/e78e3c0c6c
02:26 Zoffix Another inconsistency: .read requires a size to read, while .readchars defaults to $*DEFAULT-READ-ELEMS
02:26 Zoffix Another inconsistency: .readchars takes the optional size as a positional, while .Supply takes it as named :$size arg
02:26 Zoffix ZofBot: are you writing these down?
02:26 ZofBot Zoffix, attr()", since that terminates the entire interpolation
02:44 Zoffix hehe... I'm testing a "non-binary cat"
02:44 Zoffix genderfluid kitty :P
02:50 Geth ¦ rakudo/newer-cat-handle: beaa92593d | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
02:50 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.read
02:50 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/beaa92593d
02:50 Geth ¦ roast/newer-cat-handle: f1c112509d | (Zoffix Znet)++ | S32-io/io-cathandle.t
02:50 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.read
02:50 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/f1c112509d
02:50 * Zoffix calls it a day
02:50 Zoffix Time to play EVERSPACE™
02:55 Zoffix m: my %h is Positional; %h := <a b c>; .say for %h
02:55 camelia rakudo-moar 094e77: OUTPUT: «a␤b␤c␤»
02:55 Zoffix TIL we can do that
02:55 Zoffix m: my %h is Positional; %h := {}; .say for %h
02:55 camelia rakudo-moar 094e77: OUTPUT: «Type check failed in binding; expected Positional but got Hash (${})␤  in block <unit> at <tmp> line 1␤␤»
02:55 Zoffix crazy
02:55 Zoffix m: my %h is Positional; say %h.^roles
02:55 camelia rakudo-moar 094e77: OUTPUT: «((Positional))␤»
02:55 Zoffix m: my %h is Positional is Associative; say %h.^roles
02:55 camelia rakudo-moar 094e77: OUTPUT: «((Associative))␤»
02:56 Zoffix m: my %h dopes Positional does Associative; say %h.^roles
02:56 camelia rakudo-moar 094e77: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3my %h7⏏5 dopes Positional does Associative; say ␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement…»
02:56 Zoffix m: my %h does Positional does Associative; say %h.^roles
02:56 camelia rakudo-moar 094e77: OUTPUT: «((Associative) (Positional) (Associative) (Iterable))␤»
02:56 Zoffix hah
03:17 samcv hmm did something change with Pairs?
03:17 samcv Data::Dump is failing tests
03:18 samcv Cannot resolve caller new(Pair: ); none of these signatures match:
03:18 samcv (Pair $: Cool:D \key, Mu \value, *%_)
03:18 samcv (Pair $: Mu \key, Mu \value, *%_)
03:18 samcv (Pair $: Mu :$key!, Mu :$value!, *%_)
03:18 samcv really weird. investigating
03:20 samcv and it's not giving me a location of where the error is occuring
03:23 samcv m: sub thing ($a) { say $a }; thing(Pair.new)
03:23 camelia rakudo-moar 094e77: OUTPUT: «Cannot resolve caller new(Pair: ); none of these signatures match:␤    (Pair $: Cool:D \key, Mu \value, *%_)␤    (Pair $: Mu \key, Mu \value, *%_)␤    (Pair $: Mu :$key!, Mu :$value!, *%_)␤  in block <unit> at <tmp> line 1␤␤»
03:23 samcv wtfff
03:23 samcv bisectable6,  sub thing ($a) { say $a }; thing(Pair.new)
03:23 bisectable6 samcv, Bisecting by exit code (old=2015.12 new=094e77a). Old exit code: 0
03:23 bisectable6 samcv, bisect log: https://gist.github.com/90c4e91480234c6597f2ae3e872cac9f
03:23 bisectable6 samcv, (2017-05-22) https://github.com/rakudo/rakudo/commit/85bef661f0d4f797faaa5e20d3d73fb5dd1ee88a
03:24 samcv oh. oops. looks like Pair.new is what's erroring not the sub
03:27 samcv so do we not want you to be able to do Pair.new anymore?
03:37 Zoffix samcv: you can, but you need to specify the key/value
03:37 samcv ok that is fine. :)
03:37 Zoffix star: dd Pair.new
03:37 camelia star-m 2016.10: OUTPUT: «(Mu) => Mu␤»
03:37 Zoffix star: dd Pair.new: 42
03:37 camelia star-m 2016.10: OUTPUT: «Default constructor for 'Pair' only takes named arguments␤  in block <unit> at <tmp> line 1␤␤»
03:37 Zoffix star: dd Pair.new: :meows
03:37 camelia star-m 2016.10: OUTPUT: «(Mu) => Mu␤»
03:38 samcv ah
03:38 samcv i can see why we wanted to do that
03:38 Zoffix Basically the only reason it worked is it was hitting the Mu.new constructor and the key/value attributes ended up unset
03:38 Zoffix m: dd Pair.new: Mu, Mu
03:38 camelia rakudo-moar 094e77: OUTPUT: «(Mu) => Mu␤»
03:38 Zoffix ^ way to do it now
03:39 Zoffix m: dd Pair.new: :key(Mu) :value(Mu) # or this
03:39 camelia rakudo-moar 094e77: OUTPUT: «(Mu) => Mu␤»
03:40 Zoffix m: use nqp; dd nqp::create(Pair)
03:40 camelia rakudo-moar 094e77: OUTPUT: «(Any) => Any␤»
03:40 Zoffix heh
03:43 samcv yeah kinda odd it created Mu in the first place heh
03:43 samcv also odd that this test tested that.
03:56 samcv ok PR sent for that. onto what i was doing beforehand :)
05:12 dct joined #perl6-dev
06:18 TimToady joined #perl6-dev
07:41 brrt joined #perl6-dev
07:42 Geth ¦ roast: f3ef06fbd4 | usev6++ | 2 files
07:42 Geth ¦ roast: [JVM] Skip hanging tests
07:42 Geth ¦ roast: review: https://github.com/perl6/roast/commit/f3ef06fbd4
08:05 brrt joined #perl6-dev
08:25 stmuk joined #perl6-dev
08:28 samcv the hell https://travis-ci.org/samcv/rakudo-appimage-module-test-automation/jobs/236624151#L1234
08:29 samcv i've been getting this for the last 3 days
08:31 samcv and happens before any of my special code happens. only happens during build of rakudo
08:40 [Tux] This is Rakudo version 2017.05-133-g094e77a2c built on MoarVM version 2017.05-25-g62bc54e9
08:40 [Tux] csv-ip5xs        2.811
08:40 [Tux] test            13.270
08:40 [Tux] test-t           4.439
08:40 [Tux] csv-parser      13.161
08:40 [Tux] - 4.640
09:51 robertle joined #perl6-dev
10:37 brrt joined #perl6-dev
10:39 lizmat Files=1197, Tests=59939, 209 wallclock secs (12.75 usr  4.88 sys + 1256.99 cusr 118.00 csys = 1392.62 CPU)
10:40 bartolin_ r: .say for lines()
10:41 camelia rakudo-moar 094e77: OUTPUT: «»Wann treffen wir drei wieder zusamm?«␤   »Um die siebente Stund‘, am Brückendamm.«␤     »Am Mittelpfeiler.«␤         »Ich lösche die Flamm.«␤ »Ich mit«␤␤         »Ich komme vom Norden her.«␤        »Und ich vom Süden.«…»
10:41 camelia ..rakudo-jvm 094e77: OUTPUT: «␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤…»
10:42 bartolin_ r-j seems to keep reading newlines from stdin. it works fine with something like for "file".IO.lines { .say }
10:43 bartolin_ jnthn, Zoffix: ^^ do you have a quick idea where to look for that, perhaps? it seems to be behind some newly hanging spectests on jvm
10:49 jnthn bartolin_: 34835cc672a5444 in the nqp repo fixed a bug that caused that, maybe it needs doing in some other place?
10:49 yoleaux 10:39Z <brrt> jnthn: that is a pretty good idea, i think; we could use a separate section for that
10:49 jnthn (It caused it on file handles)
10:50 jnthn I'd have thought $*IN woulda had the same read code but maybe somehow not...
10:52 jnthn I also had some oddness when trying to test the JVM build; some tests just spit out "No subtests run" in make test or make spectest under the harness, but all of those I tried worked when I ran them individually
10:53 bartolin_ jnthn: ah, thanks. I'd seen that commit, but didn't consider that stdin could be handle separately.
10:53 jnthn Yeah...it really matters now that nqp::eoffh works
10:54 jnthn We can probably go on a Java code deleting spree at some point after this work too
10:54 jnthn Since the VM level I/O stuff will only have to care about bytes
10:55 Zoffix .
10:55 yoleaux 10:02Z <jnthn> Zoffix: Hm, I can reproduce it also, though I have no idea at all what could have caused it. As nine++ mentioned on the RT, it's pretty much always about a missing .close
10:59 bartolin_ jnthn: regarding test files complaining about 'No subtests run': I seem to remember similiar glitches (always worked when run standalone), but lately (say last two weeks) I didn't encounter them
11:04 Zoffix ugh... why is gabor spamming me with slack Bailador requests and now emailed with "I think Zoffix is not on the Bailador Slack channel so let me try this way." yeah, there's a reason, bruh. Take a hint. I'm not a fan of Failador
11:04 Zoffix ZofBot: ready the coffee!
11:04 ZofBot Zoffix, }* at every block entry time, repeats on loop blocks
11:10 tadzik Zoffix: hah, I thought it'd end with "I'm not a fan of Slack"
11:11 Zoffix Neither am I a fan of slack
11:14 Zoffix Since pitching in to gabor's book, I received a survey from indiegogo, an invite to slack Bailador, a REMINDER of slack Bailador, and now a personal spam from gabor about something in Bailador. I thought I was supporting a book, not signing up to be a Bailador maintainer.
11:16 Zoffix Anyway...
11:16 * Zoffix tries to degrump by hunting that precomp bug
11:28 bartolin_ jnthn: adding 'eof = true' after this while loop seems to avoid the issue with reading newlines from stdin: https://github.com/perl6/nqp/blob/88d5c68ea3911887b4c01e0bc44fa3840aae8dce/src/vm/jvm/runtime/org/perl6/nqp/io/StandardReadHandle.java#L44
11:29 bartolin_ I'll investigate further (unless someone else beats me to it)
11:34 MasterDuke i also sometime get those "no subtests run" during jvm spectests. have never detected a rhyme or reason, i just restart and hope they run the next time (or i'll run them individually if it's only a couple)
11:47 AlexDani` joined #perl6-dev
11:47 Zoffix holy crap! I did it!
11:48 lizmat .oO( the rain in spain stays mainly in the plain )
11:49 bartolin_ oh, now I remember: sometimes during 'make spectest' all remaining test files started to fail (I *think* it was with 'no subtests run'). I suspect it is a problem with the eval server. maybe a memory leak, since I sucessfully worked around it by increasing Xmx for the eval server
11:59 jnthn bartolin_: That may be a tad over-aggressive (try some examples with prompt, or very long input)
11:59 jnthn bartolin_: Just 'cus we can't read more now doesn't mean we can't ever read more
12:01 MasterDuke jnthn: i'm back thinking aabout atpos again. if i put a print in the moarvm VMArray.c at_pos function, i see its output when i do nqp::atpos, but not when i do []
12:01 bartolin_ jnthn: noted, thanks! (but at least that seems to be the area where some adjustment is needed)
12:11 Zoffix ZOFVM: Files=1247, Tests=136915, 105 wallclock secs (18.24 usr  3.11 sys + 2110.41 cusr 178.33 csys = 2310.09 CPU)
12:13 jnthn MasterDuke: What was your benchmark again?
12:14 MasterDuke well, i just tried with a single access to see if the print happened
12:14 Geth ¦ rakudo/nom: 0c5fe56cc9 | (Zoffix Znet)++ | src/core/CompUnit/PrecompilationRepository.pm
12:14 Geth ¦ rakudo/nom: Close unit's file handle after reading in the bytecode
12:14 Geth ¦ rakudo/nom:
12:14 Geth ¦ rakudo/nom: A file is left open on Windows, so it prevents it from being worked on.
12:14 Geth ¦ rakudo/nom:
12:14 Geth ¦ rakudo/nom: Fixes RT#131378: https://rt.perl.org/Ticket/Display.html?id=131378
12:14 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0c5fe56cc9
12:14 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131378
12:14 jnthn MasterDuke: I think that there's something in QAST compiler that deletes QAST::Var in sink context
12:14 jnthn (with some caveats on the 'scope')
12:14 MasterDuke nqp: sub a() { my $l := nqp::list(1, 3, 5); my int $i := 0; my $s := nqp::time_n(); while ++$i < 100_000_000 { $l[0] }; say(nqp::time_n() - $s) }; a()
12:14 camelia nqp-moarvm: OUTPUT: «0.303999185562134␤»
12:14 Zoffix .ask nine would you double check this commit? It fixes my Windows gmake install bug, but I'm not 100% sure if the close is in the right place: https://github.com/rakudo/rakudo/commit/0c5fe56cc9
12:14 yoleaux Zoffix: I'll pass your message to nine.
12:15 MasterDuke nqp: sub a() { my $l := nqp::list(1, 3, 5); my int $i := 0; my $s := nqp::time_n(); while ++$i < 100_000_000 { nqp::atpos($l, 0) }; say(nqp::time_n() - $s) }; a()
12:15 camelia nqp-moarvm: OUTPUT: «0.674409627914429␤»
12:15 MasterDuke those ^^^ were the benchmarks
12:15 jnthn Try assigning the result of th lookup somewhere
12:15 jnthn *the
12:16 MasterDuke nqp: sub a() { my $l := nqp::list(1, 3, 5); my int $i := 0; my $s := nqp::time_n(); mt int $a; while ++$i < 100_000_000 { $a := nqp::atpos($l, 0) }; say($a); say(nqp::time_n() - $s) }; a()
12:16 camelia nqp-moarvm: OUTPUT: «Unable to parse expression in blockoid; couldn't find final '}'  at line 2, near "mt int $a;"␤   at gen/moar/stage2/NQPHLL.nqp:768  (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)␤ from gen/moar/stage2/NQPHLL.nqp:775  (/home/camelia/rakudo-…»
12:16 MasterDuke nqp: sub a() { my $l := nqp::list(1, 3, 5); my int $i := 0; my $s := nqp::time_n(); my int $a; while ++$i < 100_000_000 { $a := nqp::atpos($l, 0) }; say($a); say(nqp::time_n() - $s) }; a()
12:16 camelia nqp-moarvm: OUTPUT: «1␤2.32188773155212␤»
12:16 MasterDuke nqp: sub a() { my $l := nqp::list(1, 3, 5); my int $i := 0; my $s := nqp::time_n(); my int $a; while ++$i < 100_000_000 { $a := $l[0] }; say($a); say(nqp::time_n() - $s) }; a()
12:16 camelia nqp-moarvm: OUTPUT: «1␤2.51248073577881␤»
12:16 MasterDuke hm, much closer
12:17 jnthn Yeah, I think your sink context $l[0] got optimized out entirley
12:17 jnthn Which'd explain what you saw :)
12:17 MasterDuke heh. doing nothing is faster than doing something quickly
12:17 jnthn Right ;)
12:18 MasterDuke do you have an opinion on converting radix, split, etc. to BOOT(Int|Str)Arrays?
12:19 lizmat afk for rest of te day&
12:19 jnthn m: use nqp; my \x = nqp::split('abcbe', 'b'); say nqp::atpos(x, 0).WHAT
12:19 camelia rakudo-moar 094e77: OUTPUT: «(Str)␤»
12:20 jnthn If we do that then a Perl 6 use of nqp::split would have to box stuff itself
12:20 jnthn And create a new array to do so
12:20 jnthn And it'll create confusion in NQP too by busting my @a := nqp::split(...); @a[0]
12:21 jnthn Since [...] expects an object array
12:21 MasterDuke yeah, i did it for radix as a test and then converted all [] to atpos in nqp and rakudo
12:22 MasterDuke which was annoying, so i didn't want to do any more unless there would be an overall benefit
12:24 jnthn I don't think there's a huge benefit to be honest
12:25 MasterDuke heh, kind of relieved, converting split would have meant way more [] to turn into atpos
12:26 jnthn Uses of nqp::radix show up at compile time
12:26 jnthn And while of course faster compilation is nice...I suspect this is a case of being a drop in the ocean.
12:27 MasterDuke would split have more impact?
12:27 jnthn As mentioned, it'd make the op *less* useful for Perl 6
12:29 MasterDuke yeah, but might effect compilation more than radix
12:29 jnthn Maybe but...do we really do split a lot in compilation?
12:29 jnthn Given we're parsing, the grammar has usually already got things broken up into pieces for us
12:30 MasterDuke looks like it's used some, but probably not worth the pain
12:30 jnthn My guess would be not
12:35 Zoffix buggable: speed 6
12:35 buggable Zoffix, ▂▃▁▆▇▃ data for 2017-05-25–2017-05-27; range: 4.286s–4.640s; 3% slower
12:36 Geth ¦ rakudo/newer-cat-handle: ccc90fd118 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
12:36 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.readchars
12:36 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/ccc90fd118
12:36 Geth ¦ roast/newer-cat-handle: e9e78e103b | (Zoffix Znet)++ | S32-io/io-cathandle.t
12:36 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.readchars
12:36 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/e9e78e103b
12:38 timotimo in theory [] could have compiled into atposref, but that seems quite unlikely
12:38 timotimo in nqp i mean
12:50 brrt joined #perl6-dev
13:23 MasterDuke timotimo: now that nqp question has been laid to rest, do you remember where we were with the int/num bug?
13:24 timotimo oooh
13:24 timotimo it got optimized out
13:24 timotimo that's fun
13:24 timotimo we were where as soon as you grab the int object out of the array with atpos and store it into a my int $foo it'll be smrt_numify-ed, then coerced from num to int
13:24 timotimo instead of unbox_i being called on it
13:24 * timotimo AFK
13:29 MasterDuke ah, right. and the sequence that's generated (decont -> smrt_numify -> coerce_ni) is in QAST::MASTOperations.add_hll_unbox, but that function isn't actually being called in our case
13:38 Zoffix # expected: $["????xC8????xC8????xC8????xC8*F"]
13:38 Zoffix #      got: $["????xC8????xC8????xC8????xC8*F"]
13:38 * Zoffix wonders what's up there... :/
13:38 MasterDuke ugh. i wanted to test whether making radix return a BOOTIntArray changed that at all, but got distracted and didn't test. and of course i forgot to do all those changes in a branch and just tossed them
13:40 Zoffix Tossed them how? I recall timotimo telling me about some git command that can restore reset changes
13:40 Zoffix (I forget what it was tho)
13:43 MasterDuke i didn't commit anything because i wasn't in a branch. did `git reset --hard HEAD`
13:43 MasterDuke pretty sure you can't recover anything after doing that
13:44 MasterDuke and why wasn't i in a branch!? no idea, i usually experiment in them
13:45 MasterDuke if i had committed the changes and then done the reset, then yeah, think there's a way to restore
13:53 Zoffix c: 7c8b705b33755 my $f1 = "/tmp/foo121212".IO; $f1.spurt: "fo♥"; $f1.open.readchars(2).say
13:53 committable6 Zoffix, ¦7c8b705: «fo♥»
13:53 Zoffix c: 7c8b705b33755~1 my $f1 = "/tmp/foo121212".IO; $f1.spurt: "fo♥"; $f1.open.readchars(2).say
13:53 committable6 Zoffix, ¦7c8b705b33755~1: «fo»
13:59 Zoffix Hm. Looks like encoding refactor should've squashed that bug
13:59 * Zoffix tries a hacketyhack
14:02 Zoffix Ah, no; was looking at the wrong thing.
14:03 dogbert17 jnthn, timotimo, anoyone around?
14:04 * dogbert17 suspects they're out getting a suntan
14:08 Zoffix .ask samcv would you have an idea about the bug in this ticket? The bug behaviour feels a lot like that case-insensitive regex match issue we had: https://rt.perl.org/Ticket/Display.html?id=131383
14:08 yoleaux Zoffix: I'll pass your message to samcv.
14:15 dogbert17 is looking a bit at RT #131375
14:15 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131375
14:15 dogbert17 what's the size limit, element wise, for an array in Perl 6?
14:17 dogbert17 is there some hard limit or is it dependent on the amount of memory
14:19 dogbert17 the 'offending' code is here: https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs/VMArray.c#L344
14:21 dogbert17 this code ('my int @a = 1..18_000_000') fails because ssize (18_000_000) is larger than '(1UL << (8 * sizeof(size_t) - repr_data->elem_size))' which evaluates to 16777216
14:32 Geth ¦ rakudo/newer-cat-handle: 40f4dc93c8 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
14:32 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.Supply
14:32 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/40f4dc93c8
14:33 Geth ¦ roast/newer-cat-handle: 04790878c9 | (Zoffix Znet)++ | S32-io/io-cathandle.t
14:33 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.Supply
14:33 Geth ¦ roast/newer-cat-handle:
14:33 Geth ¦ roast/newer-cat-handle: 8 tests are fudged due to newly discovered IO::Handle.readchars bug:
14:33 Geth ¦ roast/newer-cat-handle: https://rt.perl.org/Ticket/Display.html?id=131383
14:33 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/04790878c9
14:33 Zoffix 3 bugs now found by cathandle :) I love that class \o/
14:35 Zoffix oh wow, I'm done with all the read methods. That was fast..
14:36 * dogbert17 is impressed
14:53 MasterDuke dogbert17: from MoarVM/src/6model/reprs/VMArray.h: `struct MVMArrayBody {     /* number of elements (from user's point of view) */     MVMuint64   elems;`
14:53 dogbert17 MasterDuke: so it should be able to take more than 16777216 elements
14:54 Zoffix m: with "/tmp/foo2121".IO { .spurt: "fo♥o"; with .open(:enc<ascii>) { say .slurp } }
14:54 camelia rakudo-moar 0c5fe5: OUTPUT: «MoarVM panic: MVM_nfg_get_synthetic_info called with out-of-range synthetic␤»
14:54 MasterDuke dogbert17: that line you pointed out seems to suggest there's also a total memory used limit
14:55 dogbert17 seems a bit low of that is the case ...
14:55 MasterDuke i agree
14:55 dogbert17 I mean, the following code does not break 'my int @a[40_000_000];'
14:55 * dogbert17 on my machine that is
14:56 MasterDuke sorry, afk &
14:57 dogbert17 on my 32-bit machine 'sizeof(size_t)' equals 4
15:01 Zoffix Filed as https://rt.perl.org/Ticket/Display.html?id=131384
15:10 Geth ¦ rakudo/newer-cat-handle: 0c9aea7495 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
15:10 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.encoding
15:10 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/0c9aea7495
15:10 Geth ¦ roast/newer-cat-handle: 71953e3de3 | (Zoffix Znet)++ | S32-io/io-cathandle.t
15:10 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.encoding
15:10 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/71953e3de3
15:13 Geth ¦ rakudo/newer-cat-handle: 4afa612621 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
15:13 Geth ¦ rakudo/newer-cat-handle: Remove .path attribute from cat handle
15:13 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/4afa612621
15:13 Geth ¦ rakudo/newer-cat-handle: 529ed390d0 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
15:13 Geth ¦ rakudo/newer-cat-handle: Use consistent invocant type-constraint on CatHandle.encoding
15:13 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/529ed390d0
15:25 committable6 joined #perl6-dev
15:25 bisectable6 joined #perl6-dev
15:41 timotimo MasterDuke: if you ever "git add"ed your changes, you can use git fsck --unreachable and git cat-file those things to hopefully get your stuff back
15:44 dogbert17 timotimo: you're back
15:45 dogbert17 do you have time to backlog a screenful, i.e. the discussion about RT #131375
15:45 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131375
15:52 Geth ¦ rakudo/newer-cat-handle: ee1e185d1d | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
15:52 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.eof
15:52 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/ee1e185d1d
15:53 Geth ¦ roast/newer-cat-handle: db4847e7ec | (Zoffix Znet)++ | S32-io/io-cathandle.t
15:53 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.eof
15:53 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/db4847e7ec
15:54 timotimo dogbert17: this could probably be golfed very far down to a short c program with a single calloc
15:55 dogbert17 timotimo: I did run it in gdb
15:56 dogbert17 does this line do the right thing? https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs/VMArray.c#L344
15:57 timotimo m: say (20_000_000 * 8) / 1024 / 1024
15:57 camelia rakudo-moar 0c5fe5: OUTPUT: «152.587891␤»
15:57 timotimo so it'd only be about 150 megs?
15:58 dogbert17 yup
15:58 dogbert17 also, I'm on 32 bit but the original reporter is on 64 bit Win 10
16:00 dogbert17 for me ssize = 20_000_000, sizeof(size_t) = 4 and repr_data->elem_size = 8
16:01 timotimo weird
16:01 dogbert17 indeed
16:01 timotimo we could first try to calloc and if that fails we malloc and memset
16:02 timotimo can you see if replacing calloc there with malloc qnd memset?
16:03 dogbert17 where do you see the calloc?
16:05 timotimo i assumed it had one
16:05 timotimo since it spoke of elements
16:06 timotimo my laptop ran out of battery
16:06 dogbert17 oops
16:07 Zoffix It took 229MB on my Linux and didn't have any issues
16:08 dogbert17 what is 'ssize > (1UL << (8 * sizeof(size_t) - repr_data->elem_size))' actually trying to accomplish?
16:09 dogbert17 Zoffix: try it on you 32 bit system if you have it handy
16:09 dogbert17 s/you/your/
16:11 timotimo dogbert, i thnk thats for growing. initially we double everytime we need more, but at one point we only add little bunches
16:13 Zoffix I don't have that box ATM
16:14 dogbert17 then it thinks that it can't grow enough when 1UL << (8 * sizeof(size_t) - repr_data->elem_size) hits 2**24
16:14 dogbert17 at least in my case
16:16 timotimo hm?
16:16 dogbert17 m: my int @a[40_000_000]
16:16 camelia rakudo-moar 0c5fe5: ( no output )
16:16 dogbert17 that works on my system as well
16:17 dogbert17 m: my int @a=1..20_000_000 # this fails on my system
16:17 camelia rakudo-moar 0c5fe5: ( no output )
16:36 Geth ¦ rakudo/newer-cat-handle: 80686a7040 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
16:36 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.t/.path/.IO/.native-descriptor
16:36 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/80686a7040
16:36 Geth ¦ roast/newer-cat-handle: 175ba458e2 | (Zoffix Znet)++ | S32-io/io-cathandle.t
16:36 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.t/.path/.IO/.native-descriptor
16:36 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/175ba458e2
16:45 brrt joined #perl6-dev
16:47 * Zoffix calls it a day
16:48 Zoffix Also: gonna add a hook to execute a chunk of code when switching handles in Cat Handle, so it's no longer impossible to get behaviour of Perl 5's `$.` variable. And gonna make `LN` module that'll let one use `perl6 -MLN -ne 'say $*LN' foo bar ber; and $*LN will be like Perl 5's $.
16:48 * Zoffix &
16:55 BenGoldberg joined #perl6-dev
17:09 brrt joined #perl6-dev
17:25 brrt joined #perl6-dev
18:10 brrt joined #perl6-dev
18:24 MasterDuke timotimo: unfortunately i'd never done anything with those changes and git
18:26 MasterDuke oh, wait, they may still be in my stash list
18:35 timotimo OK
18:49 MasterDuke timotimo: re int bug, thoughts on what to try? i've pretty much exhausted my ideas
19:10 dct joined #perl6-dev
19:15 brrt joined #perl6-dev
19:36 pmurias joined #perl6-dev
19:36 Geth ¦ rakudo/js: fb4b636c47 | pmurias++ | 4 files
19:36 Geth ¦ rakudo/js: [js] Support taking nqp-js from --with-nqp
19:36 Geth ¦ rakudo/js: review: https://github.com/rakudo/rakudo/commit/fb4b636c47
19:36 Geth ¦ rakudo/js: 456b08e35e | pmurias++ | 2 files
19:36 Geth ¦ rakudo/js: [js] Compile in the path to the nqp runtime
19:36 Geth ¦ rakudo/js: review: https://github.com/rakudo/rakudo/commit/456b08e35e
19:36 Geth ¦ rakudo/js: aa14457ba3 | pmurias++ | 4 files
19:37 Geth ¦ rakudo/js: [js] perl Configure --backends=js --with-nqp=/path/to/nqp-js;make now works
19:37 Geth ¦ rakudo/js:
19:37 Geth ¦ rakudo/js: Change the way stuff is built to make it work.
19:37 Geth ¦ rakudo/js: review: https://github.com/rakudo/rakudo/commit/aa14457ba3
19:37 Geth ¦ nqp/master: 7 commits pushed by pmurias++
19:37 Geth ¦ nqp/master: c90abb047b | [js] Add runners to .gitignore
19:37 Geth ¦ nqp/master: 83c4cab12c | [js] Include some JS specific data in backend config.
19:37 Geth ¦ nqp/master: 00515dba56 | [js] Include prefix and nqp_lib directory in backend config
19:37 Geth ¦ nqp/master: 9fd1325d12 | [js] Noop flushing on stdout
19:37 Geth ¦ nqp/master: 108be7d36b | [js] Take a --nqp-runtime which sets the place we search for the nqp runtime in
19:37 Geth ¦ nqp/master: ebc7268a78 | [js] Throw when we are missing a container spec not warn
19:37 Geth ¦ nqp/master: cb169e00b1 | [js] Tweak stuff to make building rakudo.js work without env variables
19:37 Geth ¦ nqp/master: review: https://github.com/perl6/nqp/compare/88d5c68ea3...cb169e00b1
19:55 Geth ¦ nqp: a35860aefb | pmurias++ | Configure.pl
19:55 Geth ¦ nqp: Fix typo in error message
19:55 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/a35860aefb
20:00 dct joined #perl6-dev
20:57 AlexDaniel does anybody remember if there were any commits in history that made the make process get stuck?
20:58 AlexDaniel I had to unbust whateverable for some ≈2014.04 commits and now ≈2014.11
20:59 AlexDaniel I'm thinking, is it an error on my side or this actually happened?
21:01 cognominal joined #perl6-dev
21:03 AlexDaniel OK, yes
21:03 AlexDaniel nevermind
21:07 samcv taking a look at https://rt.perl.org/Public/Bug/Display.html?id=131383
21:08 jnthn samcv+
21:08 jnthn samcv++ even :)
21:10 * jnthn wonders if stuff is hanging around in the normalization buffer for a while longer than might be expected...
21:10 AlexDaniel samcv++ # I ♥ Unicode-related fixes :)
21:10 samcv hehe
21:10 MasterDuke ah ha! a wild jnthn appears! does the wild jnthn have any pointers for where to track down that nqp int bug?
21:11 jnthn MasterDuke: I think we did track it down, at least to the degree that $!int-attr := $boxed-thing was generating undesirable code?
21:12 MasterDuke sounds right. i just don't know what generates that code or where
21:13 jnthn MasterDuke: Probably somewhere in https://github.com/perl6/nqp/blob/master/src/vm/moar/QAST/QASTCompilerMAST.nqp#L380
21:14 jnthn Or a codepath leading from it
21:14 MasterDuke i've put a note() in there before, no dice
21:14 BenGoldberg joined #perl6-dev
21:15 jnthn https://github.com/perl6/nqp/blob/master/src/vm/moar/QAST/QASTOperationsMAST.nqp#L1807 most likely
21:15 jnthn Could tyr replacing
21:15 jnthn push_op($il, 'smrt_numify', $a, $dc);
21:15 jnthn push_op($il, 'coerce_ni', $b, $a);
21:15 jnthn that will probably also cause huge breakage
21:15 jnthn We've been sloppy on numeric types so far, I suspect
21:16 jnthn The equivalent for Rakudo *is* just an unbox_i
21:18 MasterDuke so the coercion() codepath gets hit, but after the bind has already happened. and adding a note() after QASTOperationsMAST.nqp#L1807 never prints anything
21:19 dct joined #perl6-dev
21:19 Geth ¦ rakudo/js: 0e10dff33c | pmurias++ | tools/build/NQP_REVISION
21:19 Geth ¦ rakudo/js: Update NQP dep.
21:19 Geth ¦ rakudo/js: review: https://github.com/rakudo/rakudo/commit/0e10dff33c
21:19 Geth ¦ rakudo/js: 977b04aab9 | pmurias++ | tools/lib/NQP/Configure.pm
21:19 Geth ¦ rakudo/js: Use correct postfix when using --gen-nqp with the js backend
21:19 Geth ¦ rakudo/js: review: https://github.com/rakudo/rakudo/commit/977b04aab9
21:21 jnthn MasterDuke: OK, then no idea that code path it's taking
21:21 MasterDuke heh, likewise
21:23 jnthn nqp:: ops that map directly to VM ops are handled in https://github.com/perl6/nqp/blob/master/src/vm/moar/QAST/QASTOperationsMAST.nqp#L161
21:23 jnthn oh, though bindattr is a special case: https://github.com/perl6/nqp/blob/master/src/vm/moar/QAST/QASTOperationsMAST.nqp#L2542
21:24 jnthn The value obtained by 2545
21:24 cognominal joined #perl6-dev
21:25 jnthn Which calls as_mast, which calls coerce here if passed a $want: https://github.com/perl6/nqp/blob/master/src/vm/moar/QAST/QASTCompilerMAST.nqp#L621
21:25 jnthn And that in turn calls coercion, which is where I started
21:26 MasterDuke i have a note() in QASTOperationsMAST.nqp#L2542, doesn't get hit either
21:26 jnthn The $!foo = ... goes via https://github.com/perl6/nqp/blob/master/src/vm/moar/QAST/QASTCompilerMAST.nqp#L1828 however
21:27 jnthn Which also ends up calling as_mast
21:28 jnthn I presume when you say "not getting hit", you aren't expecting it is going to get hit when you run the say(whatever that number is) program, right?
21:29 MasterDuke i assume not all, but i'm not 100% on which will/won't
21:29 jnthn Yeah but, we already established the problem is in code inside of the compiler being mis-compiled
21:29 jnthn Rather than the program in question
21:30 jnthn I think https://github.com/perl6/nqp/blob/master/src/QAST/IVal.nqp#L7 is the prime suspect
21:31 jnthn 'cus $value is untyped there
21:31 MasterDuke yeah. it's the correct value, and then $!value is wrong immediately after that bind
21:32 jnthn Right, because we end up compiling it in such a way that we go via a float
21:32 jnthn The things I've been pointing at are the code paths I'm pretty sure we take when compiling IVal.nqp#L7
21:32 MasterDuke it's calling smrt_numify->coerce_ni->bind_attribute->smrt_numify
21:33 jnthn *nod*
21:33 jnthn And that matches closely to https://github.com/perl6/nqp/blob/master/src/vm/moar/QAST/QASTOperationsMAST.nqp#L1807
21:34 MasterDuke i just tried changing QASTOperationsMAST.nqp#L1807 from `push_op($il, 'smrt_numify', $a, $dc); push_op($il, 'coerce_ni', $b, $a);`to unbox_i, but that dies early in the nqp comile
21:34 jnthn Yeah
21:34 jnthn I don't think there's a way out of this without tidying up our numerics hanlding in general :S
21:35 jnthn *handling
21:35 MasterDuke hm, then maybe i should just create a ticket and call it a day
21:35 jnthn But I suspect the set of cleanups needed to be able to add an int type constraint to the QAST::IVal constructor are much more manageable
21:35 jnthn And I think that would also help deal with it
21:36 MasterDuke hm, tried that, don't remember where it died
21:36 jnthn It will probably die in a lot less places than the bigger change...
21:37 jnthn NQP originally did all numeric operations as floating point, though, because it doesn't have multiple dispatch
21:37 jnthn This was one of the simplifications
21:37 MasterDuke dies in the nqp compile
21:37 jnthn In hindsight, we mighta been better saying NQP is all integers unless you write nqp::add_n and use num typed variables
21:38 jnthn I mean, it's a compiler, when do you actually *want* floating point?
21:38 jnthn So that might another way out for us.
21:39 jnthn I suspect that we'd get quite a speedup and we'd have a very small amount of code to fix
21:39 MasterDuke that sounds promising
21:40 jnthn After all, NQP exists to write NQP and Rakudo in primarily, and other compilers secondarily, and I isn't aimed at general purpose programming much at all.
21:40 jnthn s/I//
21:41 Zoffix .
21:42 jnthn I guess changing + to emit add_i instead of add_n and similar for the other mathops in src/NQP/Grammar.nqp would be the place to start experimenting...
21:43 MasterDuke hm, maybe i'll see what happens
21:47 jnthn NQP carries quite an amount of historical baggage, and since it suffers from being "the thing we use to build the product" rather than "the product" it's generally not been tended to so well.
21:48 jnthn It's only now that I'm giving it a proper IO handle object because it's about to get really awkward for it not to have that, for example...
21:49 MasterDuke btw. `my $pass_mark := 1; # NQP has no constant table yet` ... `$!match   := $pass_mark;`. better than a literal?
21:50 jnthn I believe that's still the case, yes
21:50 jnthn Though
21:50 jnthn For 1 it's not so bad as it was
21:50 jnthn Because there's a box cache
21:52 MasterDuke yeah, i thought someone (timotimo?) did some sort of caching of small int awhile ago
21:53 jnthn Yeah, think it was timotimo
21:58 MasterDuke nqp builds with some converted to _i, but doesn't test clean
21:59 dogbert17 jnthn: have you seen RT #131375? The problem line seems to be https://github.com/MoarVM/MoarVM/blob/master/src/6model/reprs/VMArray.c#L344, can you see anything wrong with it?
21:59 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131375
22:24 Geth ¦ rakudo/newer-cat-handle: 993de50dac | (Zoffix Znet)++ | 2 files
22:24 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.gist/.Str/.opened/.open
22:24 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/993de50dac
22:24 timotimo did my int cache b0rk something?
22:24 dogbert17 Zoffix: thought you called it a day :)
22:25 Geth ¦ roast/newer-cat-handle: 44265902e3 | (Zoffix Znet)++ | S32-io/io-cathandle.t
22:25 Geth ¦ roast/newer-cat-handle: Make at least one IO::Handle
22:25 Geth ¦ roast/newer-cat-handle:
22:25 Geth ¦ roast/newer-cat-handle: Even when we're making fewer than 3 files altogether
22:25 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/44265902e3
22:25 Zoffix dogbert17: I did. I already slept and started a new day.
22:25 Geth ¦ roast/newer-cat-handle: c6cc66a909 | (Zoffix Znet)++ | S32-io/io-cathandle.t
22:25 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.gist/.Str/.opened/.open
22:25 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/c6cc66a909
22:26 MasterDuke timotimo: no, just mentioning it makes something like `my $pass_mark := 1; # NQP has no constant table yet` not so needed anymore
22:27 timotimo ah
22:28 timotimo you could try building a program with a crapton of statements like that and compare speed and memory usage with vs without the box cache
22:28 timotimo it should be sort of easy to turn on/off
22:30 jnthn MasterDuke: It's a big enough change that I'm sure there'll be best fallout in NQP's test suite; we're essentially redefining the language :)
22:32 MasterDuke for just infix + and -, the only failed tests are some sprintf ones and `ok(nqp::neginf()+123 == nqp::neginf()-123, "nqp::neginf() doesn't change after adding or substracting");`
22:33 timotimo cool
22:34 MasterDuke nqp: say(nqp::neginf()+123 == nqp::neginf()-123); say(nqp::neginf()+123)
22:34 camelia nqp-moarvm: OUTPUT: «1␤-Inf␤»
22:34 MasterDuke and rakudo passed a spectest with infix + and - changed
22:34 Geth ¦ roast/newer-cat-handle: 367f9e1f7b | (Zoffix Znet)++ | S32-io/io-cathandle.t
22:34 Geth ¦ roast/newer-cat-handle: Make `make-files` sub stuff Str objects too
22:34 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/367f9e1f7b
22:36 MasterDuke with my change `say(nqp::neginf()+123)` prints -9223372036854775685
22:36 timotimo hah
22:37 jnthn If we make this chance you'd have to re-write that as nqp::add_n(nqp::neginf(), 123); that's the trade-off
22:37 MasterDuke yeah, is the test "wrong"?
22:38 MasterDuke and i think there are a bunch of places where a prefix + (or - i guess) would have to be nqp::numify()
22:42 jnthn Well, we'll probably have to re-decide what prefix:<+> means in our new world too :)
22:43 timotimo that'd be nice
22:43 jnthn And a number of other things.
22:49 timotimo "number"
22:50 jnthn ;)
22:54 jnthn should rest; 'night, #perl6-dev
22:55 Zoffix joined #perl6-dev
23:00 benchable6 joined #perl6-dev
23:00 quotable6 joined #perl6-dev
23:00 bloatable6 joined #perl6-dev
23:00 evalable6 joined #perl6-dev
23:00 committable6 joined #perl6-dev
23:01 bisectable6 joined #perl6-dev
23:06 CIAvash[m] joined #perl6-dev
23:16 MasterDuke RT #131385 is the NQP int/float bug
23:16 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=131385
23:23 Geth ¦ roast/newer-cat-handle: bb85065b7d | (Zoffix Znet)++ | S32-io/lock.t
23:23 Geth ¦ roast/newer-cat-handle: Test .unlock actually removes the lock
23:23 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/bb85065b7d
23:27 Zoffix What I hate about SeekFromBegining is I can never remember how to spell Begining....
23:27 Zoffix .oO( SeekFromStart )
23:28 Zoffix beginning
23:29 greppable6 joined #perl6-dev
23:29 unicodable6 joined #perl6-dev
23:29 statisfiable6 joined #perl6-dev
23:35 geekosaur next will be the complain that it's not Seq...
23:36 timotimo it should just be Seek and Kees
23:39 Zoffix :)
23:41 Geth ¦ rakudo/newer-cat-handle: 677c4ea6e0 | (Zoffix Znet)++ | src/core/IO/CatHandle.pm
23:41 Geth ¦ rakudo/newer-cat-handle: [io grant] Implement IO::CatHandle.lock/.unlock/.seek/.tell
23:41 Geth ¦ rakudo/newer-cat-handle: review: https://github.com/rakudo/rakudo/commit/677c4ea6e0
23:45 Geth ¦ roast/newer-cat-handle: dcdac1a01d | (Zoffix Znet)++ | 2 files
23:45 Geth ¦ roast/newer-cat-handle: [io grant] Test IO::CatHandle.lock/.unlock/.seek/.tell
23:45 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/dcdac1a01d
23:48 Geth ¦ roast/newer-cat-handle: 34dc4acc23 | (Zoffix Znet)++ | S32-io/io-cathandle.t
23:48 Geth ¦ roast/newer-cat-handle: Remove placeholder blocks for some attribute tests
23:48 Geth ¦ roast/newer-cat-handle:
23:48 Geth ¦ roast/newer-cat-handle: - These are already tested under "foo method" subtests
23:48 Geth ¦ roast/newer-cat-handle: - nl-out throws NYI and is tested in Rakudo's suite
23:48 Geth ¦ roast/newer-cat-handle: review: https://github.com/perl6/roast/commit/34dc4acc23
23:51 MasterDuke m: say :10[12,9,4]
23:51 camelia rakudo-moar 0c5fe5: OUTPUT: «1294␤»
23:52 MasterDuke should values in the list >= the base be allowed?

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