Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-08-07

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

All times shown according to UTC.

Time Nick Message
00:19 dalek nqp: 495bc19 | TimToady++ | src/QAST/ (19 files):
00:19 dalek nqp: factor out common boolean annotations to flags
00:19 dalek nqp:
00:19 dalek nqp: Instead of adding common annotations to pretty much every node,
00:19 dalek nqp: we put the common ones into a flags word so that hash allocations for
00:19 dalek nqp: annotations are once again a rarity.
00:19 dalek nqp: review: https://github.com/perl6/nqp/commit/495bc19b29
00:19 dalek rakudo/nom: bda5999 | TimToady++ | src/Perl6/ (3 files):
00:19 dalek rakudo/nom: use new node bitflags instead of bool annotations
00:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bda5999657
00:19 dalek rakudo/nom: 77724b2 | TimToady++ | tools/build/NQP_REVISION:
00:19 dalek rakudo/nom: bump NQP to get node flags methods
00:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/77724b299c
00:20 timotimo nice
00:20 timotimo do you have a little measurement/result for us?
00:21 TimToady it's roughly the same, currently
00:22 timotimo i wonder if setflag, clearflag, and isflag would be good candidates to become private methods?
00:23 TimToady mebbe, I'm sure there are various tricksy things we could do
00:23 timotimo precalculate the bitneg_i of the flags? ;)
00:23 TimToady we could mix in various bits instead of preallocing them
00:24 TimToady I don't think the calculation is that much overhead, was mostly trying to avoid allocating many hashes
00:24 TimToady and bitops will tend to jit well
00:25 timotimo right
00:25 TimToady if annotaions are rare, we could mix in the hash pointer instead of preallocing
00:26 timotimo oooooh
00:26 sno joined #perl6-dev
00:27 timotimo that's just *nasty* :)
00:27 timotimo nqp::pretendpointerisreallyint(...)
01:10 travis-ci joined #perl6-dev
01:10 travis-ci Rakudo build errored. TimToady 'bump NQP to get node flags methods'
01:10 travis-ci https://travis-ci.org/rakudo/rakudo/builds/150349508 https://github.com/rakudo/rakudo/compare/0de1391a5a7d...77724b299c7d
01:10 travis-ci left #perl6-dev
01:11 buggable travis-ci, one build failed due to the timeout. No other failures.
01:12 timotimo damn you, buggable, you're fantastic
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
03:21 TimToady mixing in the hash pointer does not appear to help, maybe the mixin mechanism is a little to heavy
03:22 TimToady *too
03:40 timotimo oh, now i understand what you mean by "mix in the hash pointer"
03:40 timotimo i thought you wanted to set the bits inside the machine-level pointer
03:59 ShimmerFairy fun with bugs:
03:59 ShimmerFairy m: Buf[uint64].new(0x7FFFFFFF_FFFFFFFF, 0x80000000_00000000, 0x80000000_00000001).say
03:59 camelia rakudo-moar 77724b: OUTPUT«Buf[uint64]:0x<7fffffffffffffff -8000000000000000 -7fffffffffffffff>␤»
04:00 ShimmerFairy m: Buf[uint32].new(0x7FFFFFFF, 0x80000000, 0x80000001).say
04:00 camelia rakudo-moar 77724b: OUTPUT«Buf[uint32]:0x<7fffffff 80000000 80000001>␤»
04:13 ShimmerFairy m: my uint64 $a = 0x80000000_00000000; say $a.base(16)
04:13 camelia rakudo-moar 77724b: OUTPUT«-8000000000000000␤»
04:13 ShimmerFairy I definitely recall seeing this pop up before.
05:41 moritz good morning all
05:41 moritz do we have any infrastructure for language-version dependent features?
05:41 moritz (in Actions.nqp, not the setting)
05:52 ShimmerFairy moritz: not sure, I'd check around where 'use v6.c' gets parsed and handled
07:01 lizmat Files=1114, Tests=52553, 233 wallclock secs (13.69 usr  4.17 sys + 1436.58 cusr 122.23 csys = 1576.67 CPU)
07:01 lizmat going in the right direction again
07:02 lizmat down from 1594/238
07:02 lizmat with 39 more tests now
07:03 lizmat afk for the http://deventerboekenmarkt.nl &
07:40 brrt joined #perl6-dev
07:50 [Tux] This is Rakudo version 2016.07.1-135-g77724b2 built on MoarVM version 2016.07-16-g85b6537
07:50 [Tux] test            15.378
07:50 [Tux] test-t           7.311
07:50 [Tux] csv-parser      16.372
07:56 RabidGravy joined #perl6-dev
09:18 [Tux] I somehow expected perl6 to respect BOM's
09:18 [Tux] perl6 -e'.say for "z".IO.lines'
09:18 [Tux] Malformed UTF-8
09:20 brrt hmm, it doesn't respect BOMs?
09:20 brrt BOMs are dumb for utf-8, but oh well...
09:20 [Tux] $ head -1 z | od -x | head -2
09:20 [Tux] 0000000 fffe 6b00 6f00 6400 6500 3b00 4d00 6100
09:20 [Tux] 0000020 7400 6500 7200 6900 6100 6c00 3b00 5100
09:20 [Tux] utf-16be
09:35 nine [Tux]: you need .lines(:enc<utf16>) or something like that then, as we default to utf-8.
10:09 [Tux] I know how to "fix" it, but as said, I somehow hoped BOM's would be respected (and auto-converting to utf-8 would happen) automagically
10:10 [Tux] $ perl6 -e'.say for "spec.csv".IO.lines(:enc<utf-16>)'
10:10 [Tux] Streaming decode NYI for encoding 4
10:11 [Tux] $ perl6 -e'.say for "spec.csv".IO(:enc<utf-16>).lines'
10:11 [Tux] Malformed UTF-8
10:12 [Tux] and fwif, it does not know about utf-16be :(
10:28 * [Tux] now has to change his YAPC::EU talk :(
10:37 sno joined #perl6-dev
10:48 nine [Tux]: we cannot really guess at UTF-16 in the precence of a BOM as while it's completely useless, having a BOM in a UTF-8 encoded file is allowed by Unicode.
10:48 nine And stupid programs actually add them.
11:01 brrt joined #perl6-dev
11:13 masak they set up us it
11:17 masak [Tux]: more to the point, in Perl 6, the I/O encoding is UTF-8 unless you specify otherwise.
11:17 [Tux] and if I specify otherwise, I get errors (currently)
11:18 [Tux] my talk was based on an example in utf-16be
11:28 masak I don't know what's going on there. maybe there isn't support for utf-16be yet
11:29 timotimo hm, utf-16 can't be that hard to build a streaming decoder for
11:31 edehont joined #perl6-dev
12:34 [Tux] joined #perl6-dev
13:43 brrt joined #perl6-dev
14:37 skids joined #perl6-dev
14:48 edehont joined #perl6-dev
17:03 gfldex is this NYI or by design? http://stackoverflow.com/questions/38816496/override-attribute-of-a-role
17:13 timotimo hm, knowing what i do about internals, this seems ... interesting
17:16 gfldex it would be nice to have a declarator that means "set the default on an attribute not declared here"
17:19 pmichaud good afternoon, #perl6
17:19 timotimo hey pm!
17:20 pmichaud This probably belongs on #perl6, but I have a question about tickets like https://github.com/perl6/doc/issues/818  and https://github.com/perl6/doc/issues/819
17:21 pmichaud Are these methods part of the Perl 6 language spec?
17:21 pmichaud I'm thinking they're probably internal Rakudo methods.
17:21 timotimo do you have an opinion on "how could we let a user express a trait being added to an attribute"?
17:21 jnthn pmichaud: I just spotted those two also. I suspect they're meant to be privates...
17:22 pmichaud Okay, I'll reply to 818 about it.
17:24 gfldex m: role R[$d] { has $.a = $d }; class C does R["default"] { }; my $c = C.new; dd $c;
17:24 camelia rakudo-moar 77724b: OUTPUT«C $c = C.new(a => "default")␤»
17:24 pmichaud timotimo: I don't have an opinion on that, beyond "it should probably be done with 'is'"  :)
17:52 cognominal joined #perl6-dev
18:23 timotimo maybe put an "also" in there somewhere
19:20 edehont joined #perl6-dev
19:37 AlexDaniel joined #perl6-dev
19:42 pmurias joined #perl6-dev
20:02 bartolin joined #perl6-dev
20:26 dalek nqp: 3aee321 | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
20:26 dalek nqp: [js] Store more lexical variables as native javascript lexicals.
20:26 dalek nqp: review: https://github.com/perl6/nqp/commit/3aee3215eb
20:26 dalek nqp: 018a151 | (Pawel Murias)++ | src/vm/js/ (3 files):
20:26 dalek nqp: [js] Avoid having lexicals and local get mixed up, they should have seperate namespaces.
20:26 dalek nqp: review: https://github.com/perl6/nqp/commit/018a1515ae
20:26 dalek nqp: fe782bf | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
20:26 dalek nqp: [js] Avoid storing locals as variables in BlockInfo.
20:26 dalek nqp: review: https://github.com/perl6/nqp/commit/fe782bf3f5
20:26 dalek nqp: 0ff93e0 | (Pawel Murias)++ | src/vm/js/ (2 files):
20:26 dalek nqp: [js] Rename has_local_* to has_own_* to avoid confusion with locals.
20:26 dalek nqp: review: https://github.com/perl6/nqp/commit/0ff93e0652
20:26 dalek nqp: 4006efa | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
20:26 dalek nqp: [js] Use the .variables on BlockInfo instead of symbol to avoid a bug when a lexical doesn't have an entry in  the symbol table.
20:26 brrt joined #perl6-dev
21:51 dalek rakudo/nom: ff26dd8 | lizmat++ | / (2 files):
21:51 dalek rakudo/nom: Increment Thai digits as well, fixes RT #128868
21:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ff26dd8e5e
21:51 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128868
21:53 dalek rakudo/nom: c8c27e9 | lizmat++ | src/core/List.pm:
21:53 dalek rakudo/nom: Mark List.sum as nodal
21:53 dalek rakudo/nom:
21:53 dalek rakudo/nom: Re http://irclog.perlgeek.de/perl6/2016-08-07#i_12979511
21:53 dalek rakudo/nom:
21:53 dalek rakudo/nom: This does not break any spectests.  However, it may need explicit
21:53 dalek rakudo/nom: testing somewhere, or a revert :-)
21:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c8c27e93d6
21:56 gfldex lizmat: is c8c27e93d6 related to http://stackoverflow.com/questions/38741605/ ?
21:57 timotimo i bet it is
21:57 lizmat yes
22:05 lizmat ok, so I have a patch that makes .comb 40% faster on a 26 char string
22:05 lizmat but: 1 - it returns a List rather than a Seq
22:05 lizmat 2 - it is much more memory hungry
22:07 timotimo oof
22:07 timotimo maybe the comb seq's "all at once, please" isn't being invoked for some reason?
22:08 lizmat well, the "all at once" will also copy every char
22:08 lizmat basically, it replaces the .comb with:
22:09 lizmat nqp::p6bindattrinvres(nqp::create(List),List,'$!reified',nqp::split("",$!value))
22:10 lizmat so, this pessimises for "".comb { }
22:10 skids star: my uint32 $f = 2;
22:10 camelia star-m 2016.04: ( no output )
22:11 skids m: my uint32 $f = 2;
22:11 camelia rakudo-moar c8c27e: ( no output )
22:11 lizmat because it *will* allocate a Str for each char in the string, even if that would not be needed
22:11 skids oops sorry I thought this was my camelia tab
22:12 timotimo will nqp::split actually create a full Str?
22:13 lizmat well, no, native str actually
22:13 lizmat and it's actually a list_s
22:14 lizmat which actually may have its own internal optimisations ?
22:14 timotimo list_s has hardly anything better than list_o does
22:15 timotimo i believe it still has BOOTStr in it, or something like that
22:15 timotimo i'd have to check
22:15 timotimo nope, actually the list_s directly holds VMString objects, rather than boxes
22:17 lizmat so that's good ?
22:18 timotimo i suppose so
22:19 timotimo also, nqp::split("", $!value) could have a tiny optimization in it where if the string is quite long it could immediately store stuff in the old generation
22:20 timotimo when you split a very long string into tiny pieces, you end up GCing like crazy because every second GC run will just be 100% promotions, and the others will be 0% freed
22:20 timotimo OTOH, there's the single-grapheme-cache that i've built that can help on ascii-only strings
22:20 lizmat yeah, so this is just a bad idea
22:22 timotimo in the other case where you have a Seq, those strings may end up dying before the old generation would consider having them
22:27 timotimo ... did i merge that cache into moarvm master yet?
22:27 timotimo how long until the next release?
22:27 timotimo middle of this month, so between 1 and 2 weeks?
22:29 timotimo though to be honest the improvement gotten through the single-grapheme-cache wasn't as stellar as i had hoped
22:30 lizmat every little bit helps  :-)
22:31 lizmat as long as it doesn't have any adverse effects somewhere else  :-)
22:35 lizmat I wonder if we could speed up sequential-map if we could mark Seq's as guaranteed not to return a Slip
22:36 lizmat or actually, the iterator
22:39 * lizmat will sleep on it
22:39 lizmat good night, #perl6-dev!
22:44 travis-ci joined #perl6-dev
22:44 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Increment Thai digits as well, fixes RT #128868'
22:44 travis-ci https://travis-ci.org/rakudo/rakudo/builds/150489303 https://github.com/rakudo/rakudo/compare/77724b299c7d...ff26dd8e5e64
22:44 travis-ci left #perl6-dev
22:44 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=128868
23:27 travis-ci joined #perl6-dev
23:27 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Mark List.sum as nodal
23:27 travis-ci https://travis-ci.org/rakudo/rakudo/builds/150489684 https://github.com/rakudo/rakudo/compare/ff26dd8e5e64...c8c27e93d618
23:27 travis-ci left #perl6-dev

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