Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-06-21

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

All times shown according to UTC.

Time Nick Message
00:10 BenGoldberg joined #perl6-dev
00:36 awwaiid joined #perl6-dev
00:47 awwaiid joined #perl6-dev
00:56 awwaiid joined #perl6-dev
00:58 Geth ¦ rakudo: b2gills++ created pull request #1105: Add missing role to ::TranslateNewlineWrapper
00:58 Geth ¦ rakudo: review: https://github.com/rakudo/rakudo/pull/1105
01:03 awwaiid joined #perl6-dev
01:09 awwaiid joined #perl6-dev
01:15 awwaiid joined #perl6-dev
01:27 awwaiid joined #perl6-dev
01:46 awwaiid joined #perl6-dev
01:49 ilbot3 joined #perl6-dev
01:49 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
01:51 awwaiid joined #perl6-dev
02:04 awwaiid joined #perl6-dev
02:53 awwaiid joined #perl6-dev
03:03 awwaiid joined #perl6-dev
03:08 geekosaur joined #perl6-dev
03:16 Ben_Goldberg joined #perl6-dev
03:54 awwaiid joined #perl6-dev
04:01 awwaiid joined #perl6-dev
05:01 astj joined #perl6-dev
05:29 astj joined #perl6-dev
06:04 astj joined #perl6-dev
06:04 astj joined #perl6-dev
06:17 [Tux] This is Rakudo version 2017.06-39-gb45612296 built on MoarVM version 2017.06-7-gee49c831
06:17 [Tux] csv-ip5xs        2.657
06:17 [Tux] test            13.288
06:17 [Tux] test-t           4.141 - 4.223
06:17 [Tux] csv-parser      12.308
06:32 Geth ¦ rakudo/nom: 5ab4036e33 | (Brad Gilbert)++ (committed using GitHub Web editor) | src/core/Encoding/Encoder/TranslateNewlineWrapper.pm
06:32 Geth ¦ rakudo/nom: Add missing role to ::TranslateNewlineWrapper
06:32 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5ab4036e33
06:32 Geth ¦ rakudo/nom: b342370b8d | niner++ (committed using GitHub Web editor) | src/core/Encoding/Encoder/TranslateNewlineWrapper.pm
06:32 Geth ¦ rakudo/nom: Merge pull request #1105 from b2gills/patch-5
06:32 Geth ¦ rakudo/nom:
06:32 Geth ¦ rakudo/nom: Add missing role to ::TranslateNewlineWrapper
06:32 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b342370b8d
07:06 travis-ci joined #perl6-dev
07:06 travis-ci Rakudo build passed. niner 'Merge pull request #1105 from b2gills/patch-5
07:06 travis-ci https://travis-ci.org/rakudo/rakudo/builds/245237678 https://github.com/rakudo/rakudo/compare/b4561229663b...b342370b8d40
07:06 travis-ci left #perl6-dev
08:41 robertle joined #perl6-dev
09:04 [TuxCM] joined #perl6-dev
09:23 AlexDaniel joined #perl6-dev
09:28 lizmat Files=1206, Tests=62543, 218 wallclock secs (13.40 usr  4.87 sys + 1323.44 cusr 133.23 csys = 1474.94 CPU)
09:41 geekosaur joined #perl6-dev
09:51 geekosaur joined #perl6-dev
09:56 Geth ¦ rakudo/nom: 30619e8d76 | (Elizabeth Mattijsen)++ | src/core/Mu.pm
09:56 Geth ¦ rakudo/nom: Re-order BUILDALL a bit more
09:56 Geth ¦ rakudo/nom:
09:56 Geth ¦ rakudo/nom: Ops higher than 7 now have 2 fewer conditions to check
09:56 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/30619e8d76
10:02 eveo joined #perl6-dev
10:20 dogbert17 eveo: aren't studying c for two weeks?
10:20 dogbert17 *aren't you
10:26 eveo dogbert17: I am. ATM on page 94 out of 831 of C Programming a Modern Approach, 2nd Edition
10:27 eveo But ATM I'm getting ready to work and I backlog and check social media feeds once in a while
10:52 eveo left #perl6-dev
12:37 perlpilot joined #perl6-dev
13:02 jnthn Yay, now I've some hacking time :)
13:05 Geth ¦ rakudo/nom: f71cbed490 | (Jonathan Worthington)++ | src/core/IO/Handle.pm
13:05 Geth ¦ rakudo/nom: Add IO::Handle.say candidate for Str.
13:05 Geth ¦ rakudo/nom:
13:05 Geth ¦ rakudo/nom: Just as we do for the `say` subroutine. Since the `.gist` call was
13:05 Geth ¦ rakudo/nom: inlined anyway it's not a big saving, but very easily measurable
13:05 Geth ¦ rakudo/nom: using callgrind.
13:05 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f71cbed490
13:05 Geth ¦ rakudo/nom: 0d053ab95c | (Jonathan Worthington)++ | src/core/Encoding/Encoder/Builtin.pm
13:05 Geth ¦ rakudo/nom: Take a str, not Str:D, in encode-chars.
13:05 Geth ¦ rakudo/nom:
13:05 Geth ¦ rakudo/nom: Since many code paths calling it will pass a native string after
13:05 Geth ¦ rakudo/nom: concatenating a newline to the end of it. This strips out all of
13:05 Geth ¦ rakudo/nom: the boxing.
13:05 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0d053ab95c
13:06 jnthn Forgot to push those yesterday, it seems
13:28 dogbert17 is it output optimization time?
13:30 jnthn Yeah, I'm going to put in some output buffering logic but, for now, disabled by default
13:32 jnthn Then we can flip the switch next week or so
13:32 jnthn (Just want some time for the big encodings changes yesterday to work their way through some use)
13:34 dogbert17 very cool
14:10 jnthn Nice
14:11 jnthn time ./perl6-m -e 'my $fh = open "longfile", :w, :buffer; for ^1_000_000 { $fh.say("xyz" x 20) }; $fh.close'
14:11 jnthn Show a nice big reduction in sys time
14:13 AlexDaniel joined #perl6-dev
14:21 Geth ¦ nqp: 4d2b86669d | (Jonathan Worthington)++ | 2 files
14:21 Geth ¦ nqp: Map setbuffersizefh op.
14:21 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/4d2b86669d
14:34 travis-ci joined #perl6-dev
14:34 travis-ci NQP build passed. Jonathan Worthington 'Map setbuffersizefh op.'
14:34 travis-ci https://travis-ci.org/perl6/nqp/builds/245391123 https://github.com/perl6/nqp/compare/3ff261cb41f0...4d2b86669d45
14:34 travis-ci left #perl6-dev
14:37 eveo joined #perl6-dev
14:37 eveo m: gather await start take 42
14:37 camelia rakudo-moar 0d053a: OUTPUT: «Tried to get the result of a broken Promise␤  in block <unit> at <tmp> line 1␤␤Original exception:␤    take without gather␤      in code  at <tmp> line 1␤␤»
14:37 eveo Is this by design or is there a reasonable way to make it work?
14:38 jnthn That's never going to work
14:38 eveo Cool. Thanks.
14:40 jnthn Easiest way is a channel and .list it in the receiving end
14:41 jnthn And .send in all of the various tasks
14:42 eveo Yeah. Easy to work around it. Just writing an article on Seqs and came across this :)
14:56 jnthn Seems that yesterday's output improvement have knocked a few seconds off my spectest run.
14:56 jnthn (usually 116s -> usually 112s)
15:03 Geth ¦ nqp: 0b45398c4d | (Jonathan Worthington)++ | 3 files
15:03 Geth ¦ nqp: Stub setbuffersizefh for JVM.
15:03 Geth ¦ nqp:
15:03 Geth ¦ nqp: Don't actually implement it, but stub it sufficiently to allow the
15:03 Geth ¦ nqp: Rakudo build to work without needing `#?if jvm`.
15:03 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/0b45398c4d
15:10 [Coke] jnthn++
15:14 Geth ¦ rakudo/nom: 86e7b2bd25 | (Jonathan Worthington)++ | 2 files
15:14 Geth ¦ rakudo/nom: Add a `buffer` argument to IO::Handle.
15:14 Geth ¦ rakudo/nom:
15:14 Geth ¦ rakudo/nom: When passed a boolean, it either enables or disables output buffering.
15:14 Geth ¦ rakudo/nom: Anything else will be coerced to an `Int`. So, `:buffer` means buffer
15:14 Geth ¦ rakudo/nom: output with a default buffer size, `:!buffer` means do not buffer
15:14 Geth ¦ rakudo/nom: output, and `:4096buffer` means to use a buffer size of 4096 bytes.
15:14 Geth ¦ rakudo/nom:
15:14 Geth ¦ rakudo/nom: For now the default is `:!buffer`; in the future, we'll try changing
15:14 Geth ¦ rakudo/nom: it to be `:buffer` in the case that the file handle is not a TTY,
15:14 Geth ¦ rakudo/nom: and beyond that enable it for the standard handles in non-TTY mode
15:14 Geth ¦ rakudo/nom: also.
15:14 Geth ¦ rakudo/nom: review: https://github.com/rakudo/rakudo/commit/86e7b2bd25
15:15 jnthn m: say 1.287 / 2.085
15:15 camelia rakudo-moar 0d053a: OUTPUT: «0.617266␤»
15:15 jnthn So, the write a million lines one at a time to a file runs in about 60% of the time with :buffer
15:16 jnthn m: say 1.287 / 0.929
15:16 camelia rakudo-moar 0d053a: OUTPUT: «1.385361␤»
15:16 jnthn Perl 5 still ~1.4x faster, but much of that is 'cus our looping overhead is a bit more
15:17 jnthn Oh, and because there's some sink logic that spesh makes a bad job of
15:19 timotimo it does that often :)
15:19 jnthn Yeah, I'm aware
15:19 jnthn I'll soon be making a list of "things that spesh is poor at" in prep for my next round of design work and improvements on it :)
15:20 timotimo the code i wrote to get rid of redundant "set" instructions isn't very awesome
15:21 jnthn I'm wondering if that's to blame for some oddities in the output where we have wrong versions showing up
15:21 timotimo versions of registers?
15:21 timotimo it should be easy to throw out for a check if we have a good example or two
15:22 jnthn I'm not sure if it's maybe phis getting tossed instead
15:22 jnthn But I've seen cases where we return, say, r16(5)
15:22 jnthn But nowhere in the code is that written
15:22 jnthn The write was to r16(4)
15:22 timotimo right, i saw that a few times
15:22 jnthn And of course it "works"
15:22 eveo ZOFVM: Files=1256, Tests=139509, 115 wallclock secs (19.40 usr  3.74 sys + 2225.30 cusr 200.63 csys = 2449.07 CPU)
15:22 jnthn I guess it's a mis-delete of a PHI
15:22 timotimo i wanted to have a re-version step
15:22 eveo Previous run was 111s
15:23 jnthn But it worries me because if we get the tree into an inconsistent state, any analysis downstream of that can get us in a lot of bother
15:23 eveo And t/spec/S17-procasync/stress.t crashed both times (same ticket I mentioned yesterday)
15:24 timotimo yeah
15:24 jnthn eveo: ah, the .out/.in thing?
15:24 eveo Yeah
15:42 Geth ¦ nqp: 04a42074fa | TimToady++ | src/QRegex/Cursor.nqp
15:42 Geth ¦ nqp: add refine_slang to automatically do mixins
15:42 Geth ¦ nqp:
15:42 Geth ¦ nqp: because define_slang is not short enough...
15:42 Geth ¦ nqp: review: https://github.com/perl6/nqp/commit/04a42074fa
15:43 TimToady_ m: BEGIN $?LANG.refine_slang('MAIN', role { token apostrophe { <[ - ' \\ ]> } }); my $foo\bar = 42; say $foo\bar;
15:43 camelia rakudo-moar 86e7b2: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤An exception occurred while evaluating a BEGIN␤at <tmp>:1␤Exception details:␤  No such method 'refine_slang' for invocant of type 'Perl6::Grammar'. Did you mean 'define_slang'?␤    in code  at <tmp…»
15:43 TimToady_ that will work when the refine_slang change propagates through
15:44 TimToady_ that's how close we are to inline slangs
15:44 jnthn o.O
15:44 jnthn TimToady++
15:45 TimToady_ m: BEGIN $?LANG.define_slang('MAIN', $?LANG.slang_grammar('MAIN').^mixin(role { token apostrophe { <[ - ' \\ ]> } })); my $foo\bar = 42; say $foo\bar;
15:45 camelia rakudo-moar 86e7b2: OUTPUT: «42␤»
15:45 TimToady_ that already does work
15:46 jnthn What's the sugar form?
15:46 jnthn augment slang MAIN { token apos... } ?
15:46 TimToady_ something like that
15:46 TimToady_ need to get it easier to do <.callsame> or some such too
15:47 TimToady_ probably have to do { $/ := callsame } or some such currently
15:48 eveo :o
15:50 eveo m: BEGIN { if 0 {} else { $?LANG.define_slang('MAIN', $?LANG.slang_grammar('MAIN').^mixin(role { token apostrophe { <[ - ' \\ ]> } })) }; $ = 42 }
15:50 camelia rakudo-moar 86e7b2: OUTPUT: «5===SORRY!5=== Error while compiling <tmp>␤An exception occurred while evaluating a BEGIN␤at <tmp>:1␤Exception details:␤  No such method 'sink' for invocant of type 'Perl6::Grammar'. Did you mean 'sign'?␤    in block  at <tmp> line 1␤␤»
15:50 eveo ^ maybe we should add the sink method
15:50 eveo Real world case where I came across it: https://github.com/MattOates/BioInfo/blob/master/lib/BioInfo.pm6#L36-L39
15:55 TimToady would have to add it in nqp
17:04 eveo left #perl6-dev
17:17 TimToady joined #perl6-dev
17:25 AlexDaniel joined #perl6-dev
19:12 cog_ joined #perl6-dev
19:37 TimToady m: say "A\c[zwj]B".ords
19:37 camelia rakudo-moar 86e7b2: OUTPUT: «(65 8205 66)␤»
19:38 TimToady m: say "A\c[zwj]B".chars
19:38 camelia rakudo-moar 86e7b2: OUTPUT: «2␤»
19:38 TimToady how can 2 be the right answer?
19:42 jnthn TimToady: The A and zwj form a grapheme, because per TR29 you don't break before a ZWJ.
19:42 TimToady are emoji special cased then?
19:42 jnthn Yes.
19:42 TimToady k
19:42 jnthn http://unicode.org/reports/tr29/#GB10
19:43 jnthn samcv++ has looked at the emoji bits more closely than I have, but the answer matches what's in the grapheme boundary spec.
19:44 jnthn Or at least, matches my reading of it :-)
19:45 TimToady well, I just claimed that Perl 6 was the second language to support 9.0, a few days after 5.26 did :)
19:46 TimToady maybe we'll beat them to 10.0...
19:47 jnthn Yeah, 8 -> 9 was anything but a "run the script on the new database" change
20:39 AlexDaniel joined #perl6-dev
20:49 awwaiid joined #perl6-dev
21:03 AlexDaniel joined #perl6-dev
21:10 awwaiid joined #perl6-dev
21:19 awwaiid joined #perl6-dev
21:46 AlexDaniel well…
21:46 AlexDaniel m: say “\c[man health worker: medium skin tone]”.chars
21:46 camelia rakudo-moar 86e7b2: OUTPUT: «2␤»
21:46 AlexDaniel m: say “\c[man health worker]”.chars
21:46 camelia rakudo-moar 86e7b2: OUTPUT: «2␤»
21:47 AlexDaniel RT #127048
21:47 synopsebot6 Link:  https://rt.perl.org/rt3/Public/Bug/Display.html?id=127048
21:48 AlexDaniel samcv: ↑ I think you know about these tickets, but still :)
22:46 lizmat m: use nqp; class A { has Int $.a is default(42) }; my $a := nqp::create(A); dd $a.a; dd nqp::getattr($a,A,q/$!a/).VAR.default
22:46 camelia rakudo-moar 86e7b2: OUTPUT: «Int␤42␤»
22:46 lizmat jnthn: ^^^ feels like some deep code gen issue
22:46 lizmat why is the value Int, while the default is clearly set in the descriptor?
22:47 lizmat the only way I think this can happen, is that the Int is actually put into the Scalar
22:48 lizmat fwiw, if this could work, then assigning default state to attributes could become much faster, as they wouldn't need to run through BUILDALL  :-)
22:48 lizmat has $
22:48 lizmat has Bool $flag = False
22:49 lizmat or: has Bool $flag is defauilt(False)
22:49 lizmat the former would need a BUILDALL to set the default, the latter wouldnt
22:50 lizmat aka, $!flag would be come a 13 as opposed to a 4
22:52 timotimo the "is default" one can't have a thunk
22:52 timotimo maybe that's the important difference?
22:53 lizmat m: my $a is default(42); dd $a  # works fine
22:53 camelia rakudo-moar 86e7b2: OUTPUT: «Int $a = 42␤»
22:53 lizmat and oddly enough, the container of the attribute *does* have the right descriptor
22:54 lizmat it feels like the container of the attribute is vivified with its type, rather than not vivifying it like lexicals
22:55 lizmat note that in the above example, not BUILDALL is called, as the object is created with nqp::create  :-)
22:55 lizmat *no
22:57 timotimo yeah
22:58 lizmat quite possible it's the problem that nqp doesn't know about HLL features like "is default" ?
22:59 lizmat anyways, I think we can get 5% off of test-t if we can make "is default" work on attributes
23:00 * lizmat is going to contemplate this with her eyes shut :-)
23:00 lizmat good night!
23:08 BenGoldberg joined #perl6-dev
23:19 samcv hi AlexDaniel
23:21 samcv this is the same as this ticket? https://rt.perl.org/Ticket/Display.html?id=127047 i think these are dupes unless i'm missing something
23:23 samcv though i guess one is refering to things attached to emoji_base/emoji_base_gaz characters? compared to ZWJ combiners
23:23 samcv i guess that makes sense
23:24 samcv added to my list. thanks :)
23:46 AlexDaniel samcv: yeah, at least that was the idea
23:49 AlexDaniel “it's fucking blue” uhhhh… I should watch my mouth when a bug is being discussed…
23:51 AlexDaniel .oO( … well, at least… )

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