Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-01-29

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

All times shown according to UTC.

Time Nick Message
01:04 Geth rakudo/nom: dd514da052 | TimToady++ | src/Perl6/Grammar.nqp
01:04 Geth rakudo/nom: speed up find_symbol a bit
01:04 Geth rakudo/nom:
01:04 Geth rakudo/nom: The $*WANTEDOUTERBLOCK symbol is usually false, but our dynvar cache
01:04 Geth rakudo/nom: doesn't cache negative results, and we didn't set a default cacheable
01:04 Geth rakudo/nom: false value.  Now we do.  Parses setting most of a percent faster.
01:04 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dd514da052
01:21 geekosaur joined #perl6-dev
01:40 pyrimidine joined #perl6-dev
01:52 ggoebel joined #perl6-dev
02:09 evalable6 joined #perl6-dev
02:09 unicodable6 joined #perl6-dev
02:09 committable6 joined #perl6-dev
02:09 benchable6 joined #perl6-dev
02:09 bisectable6 joined #perl6-dev
02:09 statisfiable6 joined #perl6-dev
02:09 kalkin- joined #perl6-dev
02:48 ilbot3 joined #perl6-dev
02:48 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
07:48 pyrimidine joined #perl6-dev
08:22 Geth roast: f7a91c6448 | (Carl Masak)++ | S12-class/attributes.t
08:22 Geth roast: Mark up test with 'RT #126975'
08:22 Geth roast: review: https://github.com/perl6/roast/commit/f7a91c6448
08:22 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=126975
09:27 RabidGravy joined #perl6-dev
09:45 Geth rakudo/nom: d932355ea9 | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm
09:45 Geth rakudo/nom: Include try-load in CompUnit::PrecompilationRepository's interface
09:45 Geth rakudo/nom:
09:45 Geth rakudo/nom: Users expect every precompilation repository to support try-load, so don't
09:45 Geth rakudo/nom: break in case we get a non-Default precomp repository.
09:45 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d932355ea9
10:05 Geth roast: b37b953b72 | (Stefan Seifert)++ | 2 files
10:05 Geth roast: Run tests for long implemented importing of Perl 5 functions
10:05 Geth roast: review: https://github.com/perl6/roast/commit/b37b953b72
10:10 tadzik Inline::Perl5 is core now? :o
10:19 Ven joined #perl6-dev
10:19 nine No, but Perl 5 compatibility tests have been in roast long before I started Inline::Perl5 ;)
11:07 tadzik ah :)
11:12 nine Which is good because I'm quite lazy when it comes to writing tests...
11:15 AlexDaniel joined #perl6-dev
11:21 Geth rakudo/nom: 9d5c3fd549 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
11:21 Geth rakudo/nom: Introducing R:It.CStyleLoop
11:21 Geth rakudo/nom:
11:21 Geth rakudo/nom: An optimized version of Seq::CStyleLoopIter
11:21 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9d5c3fd549
11:21 Geth rakudo/nom: c2eb7fb70a | (Elizabeth Mattijsen)++ | src/core/Seq.pm
11:21 Geth rakudo/nom: Make Seq.from-loop use R:It.CStyleLoop
11:21 Geth rakudo/nom:
11:21 Geth rakudo/nom: This makes "do loop ( init; while; next ) { }" about 6% faster.
11:21 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c2eb7fb70a
11:33 AlexDaniel :o
11:38 Geth rakudo/nom: 493211227d | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
11:38 Geth rakudo/nom: Optimize R:It.WhileLoop a bit further
11:38 Geth rakudo/nom:
11:38 Geth rakudo/nom: Work around the "Cannot reference undeclared local '__lowered_lex_3225"
11:38 Geth rakudo/nom: issue.  Makes "do while foo { bar }" about 20% faster.
11:38 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/493211227d
11:54 [Tux] This is Rakudo version 2017.01-102-gd932355ea built on MoarVM version 2017.01-14-g357438a9
11:54 [Tux] csv-ip5xs        2.828
11:54 [Tux] test            12.426
11:54 [Tux] test-t           5.028
11:54 [Tux] csv-parser      13.681
11:54 [Tux] 2nd run 5.239
11:58 RabidGravy still nudging down
11:58 RabidGravy under five seems well doable
11:59 Geth rakudo/nom: 3888b4201e | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
11:59 Geth rakudo/nom: Optimize R:It.RepeatLoop a bit further
11:59 Geth rakudo/nom:
11:59 Geth rakudo/nom: Work around the "Cannot reference undeclared local '__lowered_lex_3225"
11:59 Geth rakudo/nom: issue.  Makes "do repeate while foo { bar }" about 20% faster.
11:59 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3888b4201e
12:23 pyrimidine joined #perl6-dev
12:34 geekosaur joined #perl6-dev
12:38 Geth rakudo/nom: fdcf462f42 | (Elizabeth Mattijsen)++ | src/core/Any-iterable-methods.pm
12:38 Geth rakudo/nom: Optimize Any.IterateOneNotSlippingWithoutPhasers
12:38 Geth rakudo/nom:
12:38 Geth rakudo/nom: - work around "Cannot reference undeclared local '__lowered_lex_3225"
12:38 Geth rakudo/nom: - use $stopped instead of $redo logic: saves one init each iteration
12:38 Geth rakudo/nom:
12:38 Geth rakudo/nom: Makes maps of the form ".map: -> $_ --> Foo { ... }" about 2x as fast,
12:38 Geth rakudo/nom: where Foo is something not Slippy.
12:38 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fdcf462f42
12:55 * masak .oO( the fight against Kryptonited Superman would've been pretty short and curb-stomp, if not for the fact that Lex had also been correspondingly lowered ) :P
12:56 masak also, I'm now picturying Slippy as a really slimy paper clip
12:56 masak picturing*
13:14 vendethiel joined #perl6-dev
13:47 pyrimidine joined #perl6-dev
13:50 Geth roast: 8b31a15344 | (Samantha McVey)++ | S15-unicode-information/uniprop.t
13:50 Geth roast: Test for full names for East_Asian_Width not abbreviated ones
13:50 Geth roast: review: https://github.com/perl6/roast/commit/8b31a15344
14:08 Geth rakudo/nom: 7e98504c1f | (Elizabeth Mattijsen)++ | src/core/Block.pm
14:08 Geth rakudo/nom: Make firing phasers about 25% faster
14:08 Geth rakudo/nom:
14:08 Geth rakudo/nom: This should affect all loops that have phasers in them.  Of course,
14:08 Geth rakudo/nom: this improvement is only on the overhead of calling the phasers, not
14:08 Geth rakudo/nom: the code in them.
14:08 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7e98504c1f
14:24 Geth nqp: 9f6530e878 | MasterDuke17++ | docs/6model/repr-compose-protocol.markdown
14:24 Geth nqp: Fix typo
14:24 Geth nqp: review: https://github.com/perl6/nqp/commit/9f6530e878
14:30 lizmat afk&
14:45 ggoebel joined #perl6-dev
15:22 FROGGS joined #perl6-dev
15:24 pyrimidine joined #perl6-dev
15:48 samcv lizmat, having some problem with iterators
15:49 samcv here is my log https://gist.github.com/samcv/7ff0bcee783ac7b894c4cd3d02264a41
15:50 samcv and i can't replicate if i write my data to a json, then have a minimal thing and put it in a $ sigil hash, and do for $rev-hash.keys.sort(+*) it works fine
15:50 samcv maybe all that print out means something
15:55 samcv still getting the same error even if I turn it into a List before calling `for` on it
16:03 nine samcv: what's on ./UCD-gen.p6:580?
16:04 samcv for $rev-hash.sort.keys(+*) { }
16:04 samcv but even if i make the sort and the keys section happen above it, it still crashes
16:04 samcv for $sorted-values { } << this still crashes
16:20 pyrimidine joined #perl6-dev
16:30 cognominal joined #perl6-dev
16:45 geekosaur joined #perl6-dev
16:57 dogbert17 brokenchicken: bizarre, according to my mail prg I didn't send anything ?!?!
17:00 * dogbert17 notices that Digest::MD5 is incredibly slow :(
17:01 brokenchicken .oO( the ghost in the machine... )
17:02 dogbert17 I did get a strange mail in the middle of the night from RT mentioning this bug, confused the hell out of me
17:05 nine Ah curse zef's agressive cache :/
17:06 brokenchicken There's an option to bypass it, though I don't see it documented...
17:08 brokenchicken --/cached
17:42 Geth nqp: 5bebbcf857 | (Pawel Murias)++ | 5 files
17:42 Geth nqp: [js] Remove takeclosure leftover, update comment.
17:42 Geth nqp: review: https://github.com/perl6/nqp/commit/5bebbcf857
17:42 Geth nqp: 94ea924119 | (Pawel Murias)++ | docs/qast.markdown
17:42 Geth nqp: Improve QAST::ParamTypeCheck docs.
17:42 Geth nqp: review: https://github.com/perl6/nqp/commit/94ea924119
17:42 Geth nqp: ca1e923d27 | (Pawel Murias)++ | src/vm/js/nqp-runtime/reprs.js
17:42 Geth nqp: [js] Remove debugging leftover found by BenGoldberg1++.
17:42 Geth nqp: review: https://github.com/perl6/nqp/commit/ca1e923d27
17:50 geekosaur joined #perl6-dev
17:56 Geth nqp: 04c221c7fc | MasterDuke17++ | docs/qast.markdown
17:56 Geth nqp: Fix typo
17:56 Geth nqp: review: https://github.com/perl6/nqp/commit/04c221c7fc
18:46 lizmat m: for ^10 -> { ... }   # samcv, looks like you're doing this somehow
18:46 camelia rakudo-moar 7e9850: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤  in block <unit> at <tmp> line 1␤␤»
19:06 dugword joined #perl6-dev
19:09 samcv lizmat, weird
19:10 brokenchicken Where's the code with that issue live?
19:10 brokenchicken https://github.com/samcv/UCD
19:11 samcv yeah. i replaced it with a while loop tho
19:11 brokenchicken oh
19:11 samcv let me try switching it back and investigate more
19:12 samcv brokenchicken, let me show you this atom plugin i got tho
19:12 samcv https://a.uguu.se/QCHsRaf0pTh8_Screenshot_20170129_111201.png
19:12 samcv see the right side
19:12 samcv it's populated with all the sub's in the file, and i can easily click and go to them
19:13 samcv i have a file .nav-marker-rules https://gist.github.com/6b69255ed071eb9c2530c9ddf4594238 in the project's folder which just has regex which matches the sub's
19:14 MasterDuke wouldn't DrForr's Perl6::Parser be the best tool for implementing that? assuming it's fast enough, etc.
19:15 samcv well all it's matching is #marker-rule: /sub ([\w-']+)/||%1
19:15 samcv but you can have more rules if you want, but it's way more productive for large files. and in the rakudo source you could set it for methods etc and do more things
19:15 samcv to find your way around the file easier and get a gist of the routines in it
19:17 brokenchicken samcv: I don't got any space for it tho: http://i.imgur.com/NIzgyq0.png
19:17 samcv lol. you can always show it and then hide it i guess?
19:17 samcv idk i usually show it in alternative to the file browser
19:18 pyrimidine joined #perl6-dev
19:43 pyrimidine joined #perl6-dev
20:27 awwaiid joined #perl6-dev
20:29 b2gills joined #perl6-dev
21:02 Geth rakudo/nom: 031efe0d9f | (Elizabeth Mattijsen)++ | src/core/Any-iterable-methods.pm
21:02 Geth rakudo/nom: Optimize Any::IterateOneWithPhasers a bit further
21:02 Geth rakudo/nom:
21:02 Geth rakudo/nom: This makes
21:02 Geth rakudo/nom:   my @a = do for @b { ...; PHASER foo }
21:02 Geth rakudo/nom: about 5% faster, and
21:02 Geth rakudo/nom:   for @b { ...; PHASER foo }
21:02 Geth rakudo/nom: about 15% faster.
21:02 cognominal joined #perl6-dev
21:02 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/031efe0d9f
21:25 samcv so str seem to maybe just automatically unbox?
21:25 samcv m: use nqp; my $h := nqp::hash; nqp::bindkey($h, nqp::unbox_s('key'), nqp::unbox_s('value')); say nqp::istype(nqp::atkey($h, 'key'), str)
21:25 camelia rakudo-moar 031efe: OUTPUT«0␤»
21:25 samcv m: use nqp; my $h := nqp::hash; nqp::bindkey($h, nqp::unbox_s('key'), nqp::unbox_s('value')); say nqp::istype(nqp::atkey($h, 'key'), Str)
21:25 camelia rakudo-moar 031efe: OUTPUT«1␤»
21:26 lizmat yeah str <-> Str pretty much is automatic
21:27 samcv and I thought jnthn said i couldn't bind native types in nqp?
21:28 samcv m: use nqp; my $h_2 := nqp::hash; nqp::bindkey($h_2, 'wa', 1); say $h_2<wa>.WHAT;
21:28 camelia rakudo-moar 031efe: OUTPUT«(Int)␤»
21:28 samcv seems to work fine?
21:29 samcv so I am very confused
21:29 pyrimidi_ joined #perl6-dev
21:30 lizmat samcv: why wouldn't that work ?
21:30 samcv idk jnthn said there were only string keys or values in nqp
21:30 samcv or maybe that's on the vm level and the Int is a hack?
21:31 samcv i thought that nqp only had string keys or values, and then rakudo employed some hack to be able to have typed objects
21:31 lizmat well, the $h_2<wa> will nqp::hllize the nqp::hash
21:31 lizmat but the values can be anything, they're _o if you will
21:31 lizmat for opaque I believe
21:31 samcv _o?
21:33 timotimo no, _o stands for "object"
21:33 lizmat just like nqp::list is really internally nqp::list_o, so is nqp::hash really nqp::hash_o
21:33 timotimo i.e. whatever MVMObject you can come up with
21:33 timotimo it's just contrast to _i, _n, and _s
21:33 samcv hmm ok
21:34 timotimo i don't seem to remember us having any hash with _i, _n, or _s?
21:34 samcv so hashes CAN store native types
21:34 samcv just keys are only strings?
21:34 samcv and native type strings are a hack in rakudo right?
21:34 timotimo yeah, hash keys can only be strings
21:34 samcv so all nqp hashes stores values as objects?
21:35 timotimo yeah
21:35 samcv m: use nqp; my $h_2 := nqp::hash; nqp::bindkey($h_2, 'wa', nqp::unbox_s('1')); say nqp::isstr(nqp::atkey($h_2, 'wa'));
21:35 camelia rakudo-moar 031efe: OUTPUT«0␤»
21:35 samcv nqp: my $h_2 := nqp::hash; nqp::bindkey($h_2, 'wa', nqp::unbox_s('1')); say nqp::isstr(nqp::atkey($h_2, 'wa'));
21:35 camelia nqp-moarvm: OUTPUT«Confused at line 2, near "say nqp::i"␤   at gen/moar/stage2/NQPHLL.nqp:765  (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)␤ from gen/moar/stage2/NQP.nqp:908  (/home/camelia/rakudo-m-inst-1/share/nqp/lib/nqp.moarvm:comp_unit)␤ from gen/moar…»
21:36 timotimo m: use nqp; my $h := nqp::hash; nqp::bindkey($h, nqp::unbox_s('key'), nqp::unbox_s('value')); say nqp::isstr(nqp::atkey($h, 'key'))
21:36 camelia rakudo-moar 031efe: OUTPUT«0␤»
21:36 samcv nqp: my $h_2 := nqp::hash; nqp::bindkey($h_2, 'wa', nqp::unbox_s('1')); say(nqp::isstr(nqp::atkey($h_2, 'wa')))
21:36 camelia nqp-moarvm: OUTPUT«1␤»
21:36 samcv it won't let me store a str into a hash?
21:36 samcv in rakudo? but is fine in nqp?
21:36 lizmat indeed, native str hashes are NYI
21:36 lizmat as are any native value hashes actually
21:36 timotimo writing nqp in rakudo gives you a whole lot of hllize and other magical things
21:37 timotimo which can be surprising
21:37 samcv how do i stop it
21:37 timotimo but necessary to make it mix at all with perl6 code
21:37 timotimo don't actually know :\
21:37 samcv can i have a nqp module then?
21:37 samcv that is pure nqp?
21:38 timotimo yeah, you can, but i'm not sure what limitations there are
21:38 timotimo there is "use floo:from<nqp>"
21:38 timotimo m: use Perl6::Compiler:from<NQP>; say Perl6::Compiler.WHAT
21:38 camelia rakudo-moar 031efe: OUTPUT«No such method 'gist' for invocant of type 'Perl6::Compiler'␤  in block <unit> at <tmp> line 1␤␤»
21:38 timotimo there, it's a nqp object, and so it won't .gist
21:39 lizmat m: use Perl6::Compiler:from<NQP>; say Perl6::Compiler.^name
21:39 camelia rakudo-moar 031efe: OUTPUT«Perl6::Compiler␤»
21:39 samcv ok so if i have a file called "myawesomenqpthing"
21:39 samcv use lib 'lib'; use myawesomenqpthing:from<NQP> and it'll work?
21:40 samcv a file called myawesomenqpthing.nqp in lib
21:40 brokenchicken m: use HLL::Grammar:from<NQP>; grammar Foo is HLL::Grammar { token TOP { <ident> } }.parse('foo').say
21:40 camelia rakudo-moar 031efe: OUTPUT«===SORRY!===␤While looking for 'HLL/Grammar.moarvm': no such file or directory␤»
21:40 brokenchicken awww
21:45 timotimo i'm not actually certain
21:45 timotimo but RAKUDO_MODULE_DEBUG ought to help
21:45 timotimo and you can "use lib" with something magical to make it look for nqp modules in the right place
21:56 nine use lib won't do anything for NQP
21:56 timotimo can't we nqp#something for that?
22:00 nine NQP's module loader looks in %*COMPILING<%?OPTIONS> for one extra path. Otherwise it'll look in . and blib
22:01 nine Curiously nqp-jvm supports an NQP_LIB environment variable
22:06 samcv interesting
22:14 timotimo OK
22:20 Geth rakudo/nom: 6b6a0b4357 | (Elizabeth Mattijsen)++ | src/core/SlippyIterator.pm
22:20 Geth rakudo/nom: Add SlippyIterator.slip-all
22:20 Geth rakudo/nom:
22:20 Geth rakudo/nom: A utility method when an iterator received a Slip and you're inside
22:20 Geth rakudo/nom: of a push-all.  Checks for Empty so it is even faster doing nothing :-)
22:20 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6b6a0b4357
22:22 Geth rakudo/nom: 3424465077 | (Elizabeth Mattijsen)++ | src/core/Any-iterable-methods.pm
22:22 Geth rakudo/nom: Optimize Any.IterateOneWithPhasers still further
22:22 Geth rakudo/nom:
22:22 Geth rakudo/nom: - add push-all method
22:22 Geth rakudo/nom:   makes @a = do for @b { ...; PHASER foo } about 1.5x faster
22:22 Geth rakudo/nom: - fix problem with LAST phaser being called twice in sink-all
22:22 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3424465077
22:34 Geth rakudo/nom: b31c591915 | (Elizabeth Mattijsen)++ | src/core/SlippyIterator.pm
22:34 Geth rakudo/nom: Add SlippyIterator.slip-all(Slip:U) candidate
22:34 Geth rakudo/nom:
22:34 Geth rakudo/nom: So we can transparently handle Slip type objects being iterated.
22:34 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b31c591915
22:34 Geth rakudo/nom: 5b3ac83b93 | (Elizabeth Mattijsen)++ | src/core/Any-iterable-methods.pm
22:34 Geth rakudo/nom: Use SlippyIterator.slip-all in more places
22:34 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5b3ac83b93
22:34 geekosaur joined #perl6-dev
22:34 lizmat and that finishes my tuits for today
22:34 lizmat good night, #perl6-dev!
22:34 brokenchicken night
22:36 timotimo gnite lizmat!
22:50 pyrimidine joined #perl6-dev
23:42 samcv what's the nqp ternary operator?
23:45 brokenchicken Same as Perl 6
23:45 samcv well how do i call it in perl 6?
23:46 * brokenchicken doesn't really understand the question
23:46 samcv there's nqp::if, how do i call ternary operator from perl 6?
23:47 brokenchicken hehe
23:47 brokenchicken samcv: just use the nqp::if :) It's the same thing
23:47 samcv b-but
23:47 samcv fine!
23:47 brokenchicken nqp::if(cond, stuff-if-true, stuff-if-false)
23:53 samcv is calling nqp::atkey(nqp::atkey($enum-prop-nqp, $prop), $enum)); twice more expensive than
23:53 samcv err
23:54 samcv https://gist.github.com/564739be643467135b488005ab104cd6 see this change
23:54 samcv it seems having a variable holding the atkey takes about the same amount of time as calling atkey twice

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