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» | ||
gfldex | m: my \longlist = 1,2,4 ... *; say longlist.infinite; | ||
camelia | rakudo-moar 957dc0: OUTPUT«Method 'infinite' not found for invocant of class 'Seq' in block <unit> at <tmp> line 1» | ||
gfldex | m: my \longlist = 1,2,4 ... *; say longlist.^methods; | ||
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>…» | ||
gfldex | m: my \longlist = 1,2,4 ... *; say longlist.is-lazy; | ||
camelia | rakudo-moar 957dc0: OUTPUT«True» | ||
Zoffix | Perl 6 doesn't have a a concept of infinite lists. | ||
gfldex | it would be nice to get hold of the generator | 01:55 | |
but then a closure block without the closure variables doesn't make much sense | 01:56 | ||
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)» | ||
Zoffix | m: sub foo { dd (42 for ^10) }; foo() | ||
camelia | rakudo-moar 957dc0: OUTPUT«(42, 42, 42, 42, 42, 42, 42, 42, 42, 42)» | ||
Zoffix | m: sub foo { 42 for ^10 }; dd foo() | ||
camelia | rakudo-moar 957dc0: OUTPUT«Nil» | ||
Zoffix kinda expected the return to be the last value; i.e. the | |||
(42, 42, 42, 42, 42, 42, 42, 42, 42, 42) | |||
Also, is anyone else bothered that we use word 'subroutine' universally... except for the title of this page: docs.perl6.org/language/functions | 02:25 | ||
(and by extension its name in this list docs.perl6.org/language.html ) | 02:26 | ||
gfldex | Zoffix: i try to use routine because that includes subs and methods | 02:34 | |
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)» | ||
Zoffix | Nice, gfldex++ | ||
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» | ||
Zoffix | :( | ||
gfldex | m: my \b = -> $, $ {}; say &b.signature ~~ \(42, 45) | 03:35 | |
camelia | rakudo-moar 957dc0: OUTPUT«False» | ||
gfldex | m: my \b = -> $, $ {}; say \(42, 45) ~~ &b.signature | ||
camelia | rakudo-moar 957dc0: OUTPUT«False» | ||
gfldex | m: my \b = -> $, $ {}; dd &b.signature | 03:36 | |
camelia | rakudo-moar 957dc0: OUTPUT«Nil» | ||
gfldex | m: my \b = -> $, $ {}; dd b.signature | ||
camelia | rakudo-moar 957dc0: OUTPUT«:($, $)» | ||
gfldex | m: my \b = -> $, $ {}; dd b.signature ~~ \(42, 45) | ||
camelia | rakudo-moar 957dc0: OUTPUT«Bool::False» | ||
gfldex | m: my \b = -> $, $ {}; dd b.signature ~~ (42, 45) | 03:37 | |
camelia | rakudo-moar 957dc0: OUTPUT«Bool::False» | ||
gfldex | m: my \b = -> $, $ {}; dd \(42, 45) ~~ b.signature | ||
camelia | rakudo-moar 957dc0: OUTPUT«Bool::True» | ||
gfldex | Zoffix: ^^^ | ||
Zoffix | m: my \b = -> $, :$foo {}; dd \(42, :foo) ~~ b.signature | ||
camelia | rakudo-moar 957dc0: OUTPUT«Bool::True» | ||
Zoffix | m: my \b = -> $, :$foo {}; dd \(42) ~~ b.signature | ||
camelia | rakudo-moar 957dc0: OUTPUT«Bool::True» | ||
Zoffix | m: my \b = -> $ {}; dd \(42, :foo) ~~ b.signature | 03:38 | |
camelia | rakudo-moar 957dc0: OUTPUT«Bool::False» | ||
Zoffix | Thanks. | ||
dalek | kudo/nom: 4eb9a3e | skids++ | src/vm/moar/ops/container.c: Fix RT#127958 on moarvm... :D smiley containers assigned from Nil There is no sensible default default for :D types, blame Kurt Gödel. This breaks the assumption that a type's default is a legal value. So, check the assigned type even when assigning from the_default. |
03:49 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127958 | ||
kudo/nom: 0a1d932 | skids++ | src/core/Exception.pm: Make errors more awesome for types that cannot contain their own type object |
|||
kudo/nom: 5500404 | lizmat++ | src/ (2 files): Merge pull request #829 from skids/nilwithsmilies c2ae914 | lizmat++ | src/core/Exception.pm: Streamline warning handling a bit The big problem is still in $backtrace.first-none-setting-line, which we need to make leaner (by not completely reifying the frames inbetween) |
|||
lizmat | sorry dalek | 03:54 | |
Zoffix | Why does it do that? It doesn't actually get kicked off by Freenode. | 03:55 | |
dalek, source | |||
skids should stick to one line commit messages :-) | |||
Thanks lizmat. | |||
lizmat | skids: no, thank you! | 03:56 | |
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:10 | |
skids | Maybe a proactive limit to prevent a kick. | 04:11 | |
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 | |
dalek, help | |||
dalek, repo | |||
s/not a limit/not a Freenode's max-message limit/; | 04:22 | ||
kudo/nom: a0161a9 | lizmat++ | src/core/Any-iterable-methods.pm: Streamline .first adverbed result handling - rewritten using nqp ops - use underlying native hash for adverb checking On a .first that returns the first element, there's 25% improvement without any adverbs, and 2x when using the "kv" adverb. |
05:41 | ||
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. | ||
dalek | kudo/nom: 3dbde5a | lizmat++ | src/core/Any-iterable-methods.pm: Streamline .grep adverb handling Reduces the overhead by 10% (no adverbs) to 30% (:v adverb) by using the underlying native hash for checking. |
06:59 | |
kudo/nom: 35df199 | lizmat++ | src/core/Any-iterable-methods.pm: Add some inline docs for !first-result |
07:11 | ||
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:12 | |
lizmat | Woodi: Parrot brought us where we are now | 07:25 | |
but it developed an impedance with the Perl 6 development | 07:26 | ||
which accelerated the development of multiple backend support | |||
first JVMa | |||
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 | ||
no commits for the past 6 months | |||
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 :) . | ||
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:29 | |
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:31 | |
dalek | kudo/nom: 4551803 | lizmat++ | src/core/Any-iterable-methods.pm: Streamline .first iterating (about 10% faster) - rewrite in nqp::ops - finding match after testing 1000 elements |
07:42 | |
nine | lizmat: looks like those failures are caused by use Test; use lib 't/spec/packages'; use Test::Util; # which again loads Test | 07:46 | |
lizmat | so changing the order in the test files would fix the spectest issue | 07:47 | |
ah, no, because then it won't find Test::Util | |||
right? | |||
nine | lizmat: yes, the better order is use lib 't/spec/packages'; use Test; use Test::Util; | 07:48 | |
lizmat: I just wonder if there is a way to keep it working like it is | |||
lizmat | well, yes, because one would expect it to work, no? | ||
or are we saying: once you've used a module, you can't do a 'use lib' anymore ? | 07:49 | ||
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 | |
The real cause of the failures is github.com/rakudo/rakudo/commit/04...8c9dfaab0d | |||
lizmat | hmmm.... the situation in t/spec/S10-packages/basic.t is a bit more complicated, it seems | 07:54 | |
breakfast& | 07:57 | ||
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:03 | |
One test does use lib 't/spec/packages'; use Test; use Test::Util; So Test gets compiled into t/spec/packages. | 08:04 | ||
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:05 | ||
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 | ||
It's just that we've already loaded a Test from lib which we wouldn't do now. | |||
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:08 | ||
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:09 | ||
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:26 | ||
dalek | ast: 1603f0f | lizmat++ | S0 (2 files): Fix order of loading modules So that we can actually test them |
08:40 | |
timotimo | lizmat: what does "finding match after testing 1000 elements" mean? %) | 09:00 | |
lizmat | (flat ^1000,"a").first(Str) | 09:01 | |
timotimo | ah, that's just a reference to the 10% speedup number? | 09:02 | |
lizmat | yeah | ||
timotimo | OK :) | 09:04 | |
dalek | ast: fa9a6b0 | LLFourn++ | S04-declarations/smiley.t: Tests for RT #127958 |
10:17 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127958 | ||
dalek | kudo/nom: 852d81c | lizmat++ | src/core/Any-iterable-methods.pm: Streamline .first(:end) iterating (about 10% faster) - when finding match after testing 1000 elements - rewrite in nqp::ops |
11:45 | |
lizmat | afk again& | 11:49 | |
dalek | p/noparrot: fda900e | moritz++ | src/vm/moar/ModuleLoader.nqp: Reword a comment that really was not about Parrot anymore |
11:56 | |
p/noparrot: 9282327 | Coke++ | docs/nqp-overview.txt: remove reference to non-existent directory |
15:29 | ||
p/noparrot: 9dc85d1 | Coke++ | src/vm/j (2 files): remove cut-and-paste comment from parrot |
|||
p/noparrot: 5a717bb | Coke++ | docs/ops.markdown: remove reference to parrot vm behavior |
|||
kudo/nom: 906a46e | TimToady++ | src/Perl6/Grammar.nqp: better warnings on sequence ... in term position Instead of inflicting the overhead of the ... test on every comma parse, we instead look backwards from much less common term:sym<...> parser and check for a stub following a comma or a function call. Also, change panic to worry as the TODO suggested. |
15:58 | ||
kudo/nom: 0419194 | TimToady++ | src/Perl6/Grammar.nqp: term:<...> could also indicate missing args When we warn, we should give suggestions on both sides of the ambiguity. |
16:25 | ||
gfldex | m: lizmat weekly input: gist.github.com/gfldex/1f2285045a1...6bd1548446 | 16:52 | |
camelia | rakudo-moar 041919: OUTPUT«===SORRY!=== Error while compiling <tmp>Confusedat <tmp>:1------> lizmat weekly input: https:⏏//gist.github.com/gfldex/1f2285045a1a5ad expecting any of: colon pair» | ||
gfldex | lizmat: weekly input: gist.github.com/gfldex/1f2285045a1...6bd1548446 | 16:53 | |
[Coke] | FYI, we have 2 examples on rosettacode marked as needing attention: Amb, and Sieve of Eratosthenes | 17:10 | |
unmatched} | There was another about sockets and promises. It no longer works on modern rakudo, saying you can't thread a socket | 17:11 | |
gfldex++ The bigpage is awesome. | 17:12 | ||
Tho "NetworkError: 404 Not Found - docs.perl6.org/pod-to-bigpage.css" | |||
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) | ||
i tried xmldiff to create diffs. With a 16GB swap file, the oom killer killed my linux box. | 17:16 | ||
well, xmldiff is written in python, so bless them | |||
[TuxCM] | This is Rakudo version 2016.07.1-57-g0419194 built on MoarVM version 2016.07-4-g236058a | 17:39 | |
test 15.053 | |||
test-t 8.153 | |||
csv-parser 16.018 | |||
stmuk | hmm has anyone tried creating the docs as .epub or .mobi? | 17:43 | |
or using calibre | 17:44 | ||
geekosaur | not recently | 17:51 | |
hm, actually I think there weren't any p6 docs when I was doing that (pugs was still a going concern!) | 17:52 | ||
dalek | ar: 2b2f9c4 | coke++ | tools/star/release-guide.pod: fix typo |
18:05 | |
unmatched} | :) I noticed it after my PR was merged but I didn't want to bug with yet another PR fixing a typo :) | 18:19 | |
What protocol do we have in place for adding features to Rakudo? I recall there was a mention about new branches or somesuch | 18:55 | ||
The feature being another multi for a method that would provide extra functionality irclog.perlgeek.de/perl6/2016-07-25#i_12905687 | 18:56 | ||
timotimo | TimToady: is the <...> optimization noticable in stage parse? | 19:01 | |
TimToady | unlikely | ||
but I don't see how it can hurt, since commas are much more common than stubs | |||
timotimo | if it has overhead on every comma parse, that could add up to something big | ||
timotimo AFKBBL | 19:02 | ||
lizmat | gfldex++ | 19:21 | |
unmatched} | FWIW, my stage parse is now at 48.332, but used to float at 45 in the past. | 19:24 | |
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: github.com/rakudo/rakudo/pull/832 | 19:51 | ||
hoelzro | unmatched} =:= Zoffix? | 19:54 | |
perlpilot | aye | 19:55 | |
hoelzro | I've been so confused with all the Zoffix aliases lately o_O | ||
dalek | p: 956c4ce | (Pawel Murias)++ | src/vm/js/ (4 files): [js] Move the cost of getting of the current code ref to when it's actually done. |
21:06 | |
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/07/25/...kudo-star/ | 21:20 | |
moritz | lizmat++ | 21:23 | |
lizmat | good night, #perl6-dev! | 21:25 | |
Zoffix | night | 21:26 | |
hoelzro, It's easy. There's the Real Zoffix and fake zoffixes who ain't got the right stuff ;) | |||
lizmat++ # good weekly | 21:48 | ||
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 | ||
jnthn | Innerestin' Perl6::Optimizer is meant to deal with those... :) | ||
(And avoid dispatch:<!> in most cases) | 22:08 | ||
'night, #perl6 | 22:19 |