Perl 6 - the future is here, just unevenly distributed

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

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

All times shown according to UTC.

Time Nick Message
01:54 gfldex m: my \longlist = 1,2,4 ... *; say longlist.is-finite;
01:54 camelia rakudo-moar 957dc0: OUTPUT«Method 'is-finite' not found for invocant of class 'Seq'␤  in block <unit> at <tmp> line 1␤␤»
01:54 gfldex m: my \longlist = 1,2,4 ... *; say longlist.infinite;
01:54 camelia rakudo-moar 957dc0: OUTPUT«Method 'infinite' not found for invocant of class 'Seq'␤  in block <unit> at <tmp> line 1␤␤»
01:54 gfldex m: my \longlist = 1,2,4 ... *; say longlist.^methods;
01:54 camelia rakudo-moar 957dc0: OUTPUT«(new new-consumed is-ready iterator is-lazy eager List Slip Array elems Numeric Int Bool fmt sink from-loop list item race lazy hyper flat lazy-if cache Str Stringy gist perl Method+{<anon|51797360>}.new Method+{<anon|51797360>}.new Method+{<anon|51797360>…»
01:54 gfldex m: my \longlist = 1,2,4 ... *; say longlist.is-lazy;
01:54 camelia rakudo-moar 957dc0: OUTPUT«True␤»
01:54 Zoffix Perl 6 doesn't have a a concept of infinite lists.
01:55 gfldex it would be nice to get hold of the generator
01:56 gfldex but then a closure block without the closure variables doesn't make much sense
02:24 Zoffix m: sub foo { dd (Nil for ^10) };  foo()
02:24 camelia rakudo-moar 957dc0: OUTPUT«(Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil, Nil)␤»
02:24 Zoffix m: sub foo { dd (42 for ^10) };  foo()
02:24 camelia rakudo-moar 957dc0: OUTPUT«(42, 42, 42, 42, 42, 42, 42, 42, 42, 42)␤»
02:24 Zoffix m: sub foo { 42 for ^10 };  dd foo()
02:24 camelia rakudo-moar 957dc0: OUTPUT«Nil␤»
02:24 * Zoffix kinda expected the return to be the last value; i.e. the
02:24 Zoffix (42, 42, 42, 42, 42, 42, 42, 42, 42, 42)
02:25 Zoffix Also, is anyone else bothered that we use word 'subroutine' universally... except for the title of this page: https://docs.perl6.org/language/functions
02:26 Zoffix (and by extension its name in this list https://docs.perl6.org/language.html )
02:27 tbrowder joined #perl6-dev
02:34 gfldex Zoffix: i try to use routine because that includes subs and methods
02:35 gfldex m: sub foo { do 42 for ^10 };  dd foo()
02:35 camelia rakudo-moar 957dc0: OUTPUT«(42, 42, 42, 42, 42, 42, 42, 42, 42, 42)␤»
02:35 Zoffix Nice, gfldex++
03:11 skids joined #perl6-dev
03:13 skids joined #perl6-dev
03:14 skids joined #perl6-dev
03:34 Zoffix m: -> $, $ {}.cando: \(42, 45)
03:34 camelia rakudo-moar 957dc0: OUTPUT«Method 'cando' not found for invocant of class 'Block'␤  in block <unit> at <tmp> line 1␤␤»
03:34 Zoffix :(
03:35 skids joined #perl6-dev
03:35 gfldex m: my \b = -> $, $ {}; say &b.signature ~~ \(42, 45)
03:35 camelia rakudo-moar 957dc0: OUTPUT«False␤»
03:35 gfldex m: my \b = -> $, $ {}; say \(42, 45) ~~ &b.signature
03:35 camelia rakudo-moar 957dc0: OUTPUT«False␤»
03:36 gfldex m: my \b = -> $, $ {}; dd &b.signature
03:36 camelia rakudo-moar 957dc0: OUTPUT«Nil␤»
03:36 gfldex m: my \b = -> $, $ {}; dd b.signature
03:36 camelia rakudo-moar 957dc0: OUTPUT«:($, $)␤»
03:36 gfldex m: my \b = -> $, $ {}; dd b.signature ~~ \(42, 45)
03:36 camelia rakudo-moar 957dc0: OUTPUT«Bool::False␤»
03:37 gfldex m: my \b = -> $, $ {}; dd b.signature ~~ (42, 45)
03:37 camelia rakudo-moar 957dc0: OUTPUT«Bool::False␤»
03:37 gfldex m: my \b = -> $, $ {}; dd \(42, 45) ~~ b.signature
03:37 camelia rakudo-moar 957dc0: OUTPUT«Bool::True␤»
03:37 gfldex Zoffix: ^^^
03:37 Zoffix m: my \b = -> $, :$foo {}; dd \(42, :foo) ~~ b.signature
03:37 camelia rakudo-moar 957dc0: OUTPUT«Bool::True␤»
03:37 Zoffix m: my \b = -> $, :$foo {}; dd \(42) ~~ b.signature
03:37 camelia rakudo-moar 957dc0: OUTPUT«Bool::True␤»
03:38 Zoffix m: my \b = -> $ {}; dd \(42, :foo) ~~ b.signature
03:38 camelia rakudo-moar 957dc0: OUTPUT«Bool::False␤»
03:38 Zoffix Thanks.
03:49 dalek rakudo/nom: 4eb9a3e | skids++ | src/vm/moar/ops/container.c:
03:49 dalek rakudo/nom: Fix RT#127958 on moarvm... :D smiley containers assigned from Nil
03:49 dalek rakudo/nom:
03:49 dalek rakudo/nom:   There is no sensible default default for :D types, blame Kurt Gödel.
03:49 dalek rakudo/nom:   This breaks the assumption that a type's default is a legal value.
03:49 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127958
03:49 dalek rakudo/nom:   So, check the assigned type even when assigning from the_default.
03:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4eb9a3ef61
03:49 dalek rakudo/nom: 0a1d932 | skids++ | src/core/Exception.pm:
03:49 dalek rakudo/nom: Make errors more awesome for types that cannot contain their own type object
03:49 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0a1d932538
03:49 dalek rakudo/nom: 5500404 | lizmat++ | src/ (2 files):
03:49 dalek rakudo/nom: Merge pull request #829 from skids/nilwithsmilies
03:49 dalek rakudo/nom:
03:54 lizmat sorry dalek
03:55 Zoffix Why does it do that? It doesn't actually get kicked off by Freenode.
03:55 Zoffix dalek, source
03:55 * skids should stick to one line commit messages :-)
03:55 skids Thanks lizmat.
03:56 lizmat skids: no, thank you!
04:10 geekosaur looks like either an output lines limit, or it only sees some number of commits at a time (batching on github's end?)
04:11 skids Maybe a proactive limit to prevent a kick.
04:21 Zoffix it's not a limit, 'cause each line is a new message and I've seen it get kicked for flood in the past, so I doubt it's github's fault. I do think this may be a proactive limit.
04:21 Zoffix dalek, help
04:21 Zoffix dalek, repo
04:22 Zoffix s/not a limit/not a Freenode's max-message limit/;
05:10 dalek rakudo/nom: c2ae914 | lizmat++ | src/core/Exception.pm:
05:10 dalek rakudo/nom: Streamline warning handling a bit
05:10 dalek rakudo/nom:
05:10 dalek rakudo/nom: The big problem is still in $backtrace.first-none-setting-line, which
05:10 dalek rakudo/nom: we need to make leaner (by not completely reifying the frames inbetween)
05:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c2ae914906
05:41 dalek rakudo/nom: a0161a9 | lizmat++ | src/core/Any-iterable-methods.pm:
05:41 dalek rakudo/nom: Streamline .first adverbed result handling
05:41 dalek rakudo/nom:
05:41 dalek rakudo/nom: - rewritten using nqp ops
05:41 dalek rakudo/nom: - use underlying native hash for adverb checking
05:41 dalek rakudo/nom:
05:41 dalek rakudo/nom: On a .first that returns the first element, there's 25% improvement
05:41 dalek rakudo/nom: without any adverbs, and 2x when using the "kv" adverb.
05:41 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a0161a96e8
06:02 lizmat .tell jnthn would be nice if foo!method would also get cached, as dispatch:<!> appears quite high in a lot of profiles
06:02 yoleaux2 lizmat: I'll pass your message to jnthn.
06:51 ShimmerFairy joined #perl6-dev
06:59 dalek rakudo/nom: 3dbde5a | lizmat++ | src/core/Any-iterable-methods.pm:
06:59 dalek rakudo/nom: Streamline .grep adverb handling
06:59 dalek rakudo/nom:
06:59 dalek rakudo/nom: Reduces the overhead by 10% (no adverbs) to 30% (:v adverb) by
06:59 dalek rakudo/nom: using the underlying native hash for checking.
06:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3dbde5a4e7
07:11 dalek rakudo/nom: 35df199 | lizmat++ | src/core/Any-iterable-methods.pm:
07:11 dalek rakudo/nom: Add some inline docs for !first-result
07:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/35df199dad
07:12 Woodi technically, what are a Parrot prospects ? is it possible it will be fast like C (or Moar) ? what about code - is it clean or messy ? if no good technical prospect then it should be abandoned ASAP...
07:25 lizmat Woodi: Parrot brought us where we are now
07:26 lizmat but it developed an impedance with the Perl 6 development
07:26 lizmat which accelerated the development of multiple backend support
07:26 lizmat first JVMa
07:27 Woodi lizmat: I'm for (sentimental reasons)++ too... but what about technical state ?
07:27 lizmat and when that was there, MoarVM (which, looking back with 20/20 hindsight) is what Parrot should have been
07:27 lizmat no commits for the past 6 months
07:28 lizmat the last people interested in developing it, have started working on other projects
07:28 ShimmerFairy I personally see no reason to keep hope for the ex-parrot around if it's not going anywhere, but that's just me of course :) .
07:29 Woodi no-one-is-working is not technical... maybe refactoring is enought, maybe parrot 2.0 would help (if there is a reason for that)...
07:31 ShimmerFairy Woodi: IIRC Parrot got pretty bloated, slow, and perhaps even hard to maintain in the end. I don't know much about its guts myself, just that I can't think of a good reason to hope it'll come back someday.
07:42 dalek rakudo/nom: 4551803 | lizmat++ | src/core/Any-iterable-methods.pm:
07:42 dalek rakudo/nom: Streamline .first iterating (about 10% faster)
07:42 dalek rakudo/nom:
07:42 dalek rakudo/nom: - rewrite in nqp::ops
07:42 dalek rakudo/nom: - finding match after testing 1000 elements
07:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4551803db6
07:46 nine lizmat: looks like those failures are caused by use Test; use lib 't/spec/packages'; use Test::Util; # which again loads Test
07:47 lizmat so changing the order in the test files would fix the spectest issue
07:47 lizmat ah, no, because then it won't find Test::Util
07:47 lizmat right?
07:48 nine lizmat: yes, the better order is use lib 't/spec/packages'; use Test; use Test::Util;
07:48 nine lizmat: I just wonder if there is a way to keep it working like it is
07:48 lizmat well, yes, because one would expect it to work, no?
07:49 lizmat or are we saying: once you've used a module, you can't do a 'use lib' anymore ?
07:51 nine We've said that since ~ November :) Well, we've turned precomp off if you did that so people didn't really notice, except for a huge startup time hit.
07:51 nine The real cause of the failures is https://github.com/rakudo/rakudo/commit/0498e803b59c3fd93fafc24957ef9a8c9dfaab0d
07:54 lizmat hmmm.... the situation in t/spec/S10-packages/basic.t is a bit more complicated, it seems
07:57 lizmat breakfast&
08:03 nine Actually I think it would work if all tests either use lib first or after use Test. It's the mix that kills us.
08:04 nine One test does use lib 't/spec/packages'; use Test; use Test::Util; So Test gets compiled into t/spec/packages.
08:05 nine Another one does use Test; use lib 't/spec/packages'; use Test::Util; So Test gets compiled into lib, then we change the repo and load Test::Util which is compiled against the Test in t/spec/packages.
08:06 nine We are even smart enough to know that there's something fishy, so we re-resolve Test to see if we'd really still load the same Test and indeed, we would.
08:06 nine It's just that we've already loaded a Test from lib which we wouldn't do now.
08:08 nine The thing is that the precomp id (the SHA hash used for the file name) contains $*REPO.id which identifies the whole repo-chain. So when you use lib, we arrive at a different id, even if you try to load exactly the same module from the same repository.
08:09 nine This is a measure that causes us to when in doubt, rather compile a fresh one that use a possibly stale precomp file. But I'm not sure if it's actually needed anymore.
08:22 sno joined #perl6-dev
08:26 nine If I heard such a story at work, I'd recommend writing a list of all known use cases to check theories against. Which almost no one ever does, because we're all lazy and far too pround of our brains...
08:40 dalek roast: 1603f0f | lizmat++ | S0 (2 files):
08:40 dalek roast: Fix order of loading modules
08:40 dalek roast:
08:40 dalek roast: So that we can actually test them
08:40 dalek roast: review: https://github.com/perl6/roast/commit/1603f0f665
09:00 timotimo lizmat: what does "finding match after testing 1000 elements" mean? %)
09:01 lizmat (flat ^1000,"a").first(Str)
09:02 timotimo ah, that's just a reference to the 10% speedup number?
09:02 lizmat yeah
09:04 timotimo OK :)
09:32 Ven_ joined #perl6-dev
09:42 RabidGravy joined #perl6-dev
10:17 dalek roast: fa9a6b0 | LLFourn++ | S04-declarations/smiley.t:
10:17 dalek roast: Tests for RT #127958
10:17 dalek roast: review: https://github.com/perl6/roast/commit/fa9a6b05f6
10:17 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=127958
11:29 brrt joined #perl6-dev
11:45 dalek rakudo/nom: 852d81c | lizmat++ | src/core/Any-iterable-methods.pm:
11:45 dalek rakudo/nom: Streamline .first(:end) iterating (about 10% faster)
11:45 dalek rakudo/nom:
11:45 dalek rakudo/nom: - when finding match after testing 1000 elements
11:45 dalek rakudo/nom: - rewrite in nqp::ops
11:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/852d81cca6
11:49 lizmat afk again&
11:56 dalek nqp/noparrot: fda900e | moritz++ | src/vm/moar/ModuleLoader.nqp:
11:56 dalek nqp/noparrot: Reword a comment that really was not about Parrot anymore
11:56 dalek nqp/noparrot: review: https://github.com/perl6/nqp/commit/fda900ea3a
13:54 skids joined #perl6-dev
13:54 pmurias joined #perl6-dev
15:29 dalek nqp/noparrot: 9282327 | Coke++ | docs/nqp-overview.txt:
15:29 dalek nqp/noparrot: remove reference to non-existent directory
15:29 dalek nqp/noparrot: review: https://github.com/perl6/nqp/commit/9282327120
15:29 dalek nqp/noparrot: 9dc85d1 | Coke++ | src/vm/j (2 files):
15:29 dalek nqp/noparrot: remove cut-and-paste comment from parrot
15:29 dalek nqp/noparrot: review: https://github.com/perl6/nqp/commit/9dc85d1629
15:29 dalek nqp/noparrot: 5a717bb | Coke++ | docs/ops.markdown:
15:30 dalek nqp/noparrot: remove reference to parrot vm behavior
15:30 dalek nqp/noparrot: review: https://github.com/perl6/nqp/commit/5a717bbc54
15:58 dalek rakudo/nom: 906a46e | TimToady++ | src/Perl6/Grammar.nqp:
15:58 dalek rakudo/nom: better warnings on sequence ... in term position
15:58 dalek rakudo/nom:
15:58 dalek rakudo/nom: Instead of inflicting the overhead of the ... test on every comma parse,
15:58 dalek rakudo/nom: we instead look backwards from much less common term:sym<...> parser and
15:58 dalek rakudo/nom: check for a stub following a comma or a function call.  Also, change panic
15:58 dalek rakudo/nom: to worry as the TODO suggested.
15:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/906a46e5b8
16:25 dalek rakudo/nom: 0419194 | TimToady++ | src/Perl6/Grammar.nqp:
16:25 dalek rakudo/nom: term:<...> could also indicate missing args
16:25 dalek rakudo/nom:
16:25 dalek rakudo/nom: When we warn, we should give suggestions on both sides of
16:25 dalek rakudo/nom: the ambiguity.
16:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/041919488d
16:27 FROGGS joined #perl6-dev
16:52 gfldex m: lizmat weekly input: https://gist.github.com/gfldex/1f2285045a1a5ad5014fc26bd1548446
16:52 camelia rakudo-moar 041919: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> lizmat weekly input: https:⏏//gist.github.com/gfldex/1f2285045a1a5ad␤    expecting any of:␤        colon pair␤»
16:53 gfldex lizmat: weekly input: https://gist.github.com/gfldex/1f2285045a1a5ad5014fc26bd1548446
17:10 [Coke] FYI, we have 2 examples on rosettacode marked as needing attention: Amb, and Sieve of Eratosthenes
17:11 unmatched} There was another about sockets and promises. It no longer works on modern rakudo, saying you can't thread a socket
17:12 unmatched} gfldex++ The bigpage is awesome.
17:12 unmatched} Tho "NetworkError: 404 Not Found - https://docs.perl6.org/pod-to-bigpage.css"
17:15 unmatched} 510 pages :o  Slap a cover on it and you get the Perl 6 book everyone seems to want XD
17:15 gfldex unmatched}: that's intentional. If you download the file you can drop pod-to-bigpage.css into the same dir and fiddle with the CSS (printing is still crap)
17:16 gfldex i tried xmldiff to create diffs. With a 16GB swap file, the oom killer killed my linux box.
17:16 gfldex well, xmldiff is written in python, so bless them
17:25 [TuxCM] joined #perl6-dev
17:39 [TuxCM] This is Rakudo version 2016.07.1-57-g0419194 built on MoarVM version 2016.07-4-g236058a
17:39 [TuxCM] test            15.053
17:39 [TuxCM] test-t           8.153
17:39 [TuxCM] csv-parser      16.018
17:43 stmuk hmm has anyone tried creating the docs as .epub or .mobi?
17:44 stmuk or using calibre
17:51 geekosaur not recently
17:52 geekosaur hm, actually I think there weren't any p6 docs when I was doing that (pugs was still a going concern!)
18:05 dalek star: 2b2f9c4 | coke++ | tools/star/release-guide.pod:
18:05 dalek star: fix typo
18:05 dalek star: review: https://github.com/rakudo/star/commit/2b2f9c4b7d
18:19 unmatched} :) I noticed it after my PR was merged but I didn't want to bug with yet another PR fixing a typo :)
18:37 AlexDaniel joined #perl6-dev
18:55 unmatched} What protocol do we have in place for adding features to Rakudo? I recall there was a mention about new branches or somesuch
18:56 unmatched} The feature being another multi for a method that would provide extra functionality http://irclog.perlgeek.de/perl6/2016-07-25#i_12905687
18:59 tbrowder left #perl6-dev
19:01 timotimo TimToady: is the <...> optimization noticable in stage parse?
19:01 TimToady unlikely
19:01 TimToady but I don't see how it can hurt, since commas are much more common than stubs
19:01 timotimo if it has overhead on every comma parse, that could add up to something big
19:02 * timotimo AFKBBL
19:21 lizmat gfldex++
19:24 unmatched} FWIW, my stage parse is now at 48.332, but used to float at 45 in the past.
19:47 sno joined #perl6-dev
19:51 unmatched} PR to extend IO::Path.basename. I've not proofread the description 'cause I gotta run catch my bus, but I think it's fine: https://github.com/rakudo/rakudo/pull/832
19:54 hoelzro unmatched} =:= Zoffix?
19:55 perlpilot aye
19:55 hoelzro I've been so confused with all the Zoffix aliases lately o_O
21:06 dalek nqp: 956c4ce | (Pawel Murias)++ | src/vm/js/ (4 files):
21:06 dalek nqp: [js] Move the cost of getting of the current code ref to when it's actually done.
21:06 dalek nqp: review: https://github.com/perl6/nqp/commit/956c4ce6b4
21:20 lizmat and another Perl 6 Weekly hits the Net: https://p6weekly.wordpress.com/2016/07/25/2016-30-fresh-rakudo-star/
21:23 moritz lizmat++
21:25 lizmat good night, #perl6-dev!
21:26 Zoffix night
21:26 Zoffix hoelzro, It's easy. There's the Real Zoffix and fake zoffixes who ain't got the right stuff ;)
21:48 Zoffix lizmat++ # good weekly
22:07 jnthn lizmat++ # keeping me up to date :)
22:07 yoleaux2 06:02Z <lizmat> jnthn: would be nice if foo!method would also get cached, as dispatch:<!> appears quite high in a lot of profiles
22:07 jnthn Innerestin' Perl6::Optimizer is meant to deal with those... :)
22:08 jnthn (And avoid dispatch:<!> in most cases)
22:19 jnthn 'night, #perl6
22:55 skids joined #perl6-dev
23:24 jdv79 joined #perl6-dev

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