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