[Tux] | This is Rakudo version 2016.12-248-gf6303d7be built on MoarVM version 2016.12-71-g331a6b43 | 10:17 | |
csv-ip5xs 3.138 | |||
test 12.974 | |||
test-t 5.327 | |||
csv-parser 13.893 | |||
bartolin | bisectable6: my $attempts = 0; say (1..5).grep({if $_ == 3 {$attempts++; redo unless $attempts == 10}; $_}).join("|"); say "looked $attempts times for element 3" | 11:19 | |
bisectable6 | bartolin, Bisecting by output (old=2015.12 new=f6303d7) because on both starting points the exit code is 0 | ||
bartolin, bisect log: gist.github.com/2b11fafe62e22fa422...803fba4be2 | |||
bartolin, (2017-01-06) github.com/rakudo/rakudo/commit/3c...320fa7bc61 | |||
bartolin | m: my $attempts = 0; say (1..5).grep({if $_ == 3 {$attempts++; redo unless $attempts == 10}; $_}).join("|"); say "looked $attempts times for element 3" | 11:21 | |
camelia | rakudo-moar f6303d: OUTPUT«1|2|4|5looked 1 times for element 3» | ||
bartolin | star-m: my $attempts = 0; say (1..5).grep({if $_ == 3 {$attempts++; redo unless $attempts == 10}; $_}).join("|"); say "looked $attempts times for element 3" | ||
camelia | star-m 2016.10: OUTPUT«1|2|3|4|5looked 10 times for element 3» | ||
bartolin | looks like a regression, doesn't it? I'll rakudobug it | 11:22 | |
j: 'my $attempts = 0; say (1..5).grep({if $_ == 3 {$attempts++; redo unless $attempts == 10}; $_}).join("|"); say "looked $attempts times for element 3"' | 11:24 | ||
camelia | rakudo-jvm fb4f16: OUTPUT«WARNINGS for <tmp>:Useless use of constant string "my $attempts = 0; say (1..5).grep({if $_ == 3 {$attempts++; redo unless $attempts == 10}; $_}).join(\"|\"); say \"looked $attempts times for element 3\"" in sink context (line 1)» | ||
bartolin | j: my $attempts = 0; say (1..5).grep({if $_ == 3 {$attempts++; redo unless $attempts == 10}; $_}).join("|"); say "looked $attempts times for element 3" | ||
camelia | rakudo-jvm fb4f16: OUTPUT«1|2|3|4|5looked 10 times for element 3» | ||
bartolin | on latest r-j this dies with 'redo without loop construct' | ||
lizmat | bartolin: please rakudobug it, and add tests for it and then we revert the patch if we can't find out why | 12:02 | |
on first sight, I have no idea why this fails: it's just getting the iterator and working off off that | |||
there shouldn't be anything else important code using an iterator should know about, right ? | 12:03 | ||
bartolin | lizmat: I think it happens, because NEXT and REDO are not handled in grep-callable: github.com/rakudo/rakudo/blob/f630...ds.pm#L930 | 12:18 | |
lizmat | but, but, why didn't we see this before then ? | ||
bartolin | lizmat: .. and this surfaces only now | ||
bartolin didn't fully understand, yet | 12:19 | ||
in IterateOneWithPhasers we do more work with regard to LAST, NEXT and REDO: github.com/rakudo/rakudo/blob/f630...ds.pm#L104 | 12:22 | ||
anyway, I'm writing a bug report now | 12:23 | ||
lizmat | star-m: my $attempts = 0; say (1..5).grep({if $_ == 3 {$attempts++; redo unless $attempts == 10}; $_}) # broken longer ago | ||
camelia | star-m 2016.10: OUTPUT«(1 2 4 5)» | ||
lizmat | BTW: what does "redo" in a grep mean anyway ? | ||
bartolin | yeah, I wondered about that, too | 12:25 | |
in S32-list/grep.t we have tests for 'last' and 'next' in grep -- with a comment "grep with last, next etc." | |||
also, 7021861705 might be related to this. do you remember which hyper/race tests passed back then, perhaps? | 12:28 | ||
lizmat | no | ||
AlexDaniel | well, try the same element again? | 12:31 | |
I wonder why would anybody need this ever… | |||
even 「last」 in grep is not that common given that it was broken for almost a year and nobody noticed | 12:32 | ||
bartolin | I don't see a use case for 'redo'. Actually I stumbled about this, because a test for 'next' in grep from S32-list/grep.t dies on rakudo-j -- and it seems to happen for the same reason, that 'redo' is failing on MoarVM | 12:35 | |
r: say (1..12).grep({next if $_ % 5 == 0; $_ % 2 == 0}).join('|') | |||
camelia | rakudo-moar f6303d, rakudo-jvm fb4f16: OUTPUT«2|4|6|8|12» | ||
bartolin | ^^ that one dies now with 'next without loop construct' on rakudo-j | 12:36 | |
AlexDaniel | by the way… | 12:37 | |
j: say (1..12).grep({next if $_ % 5 == 0; $_ % 2 == 0}).join('|') | |||
camelia | rakudo-jvm fb4f16: OUTPUT«2|4|6|8|12» | ||
AlexDaniel | oh, that's not very old! | ||
bartolin | no, but it is before 3c52aa096c | 12:38 | |
AlexDaniel | how much space does r-j take when installed, by the way? | ||
and how long does it take to build it? | |||
bartolin | hmm, I have no numbers, but can take a look | 12:41 | |
AlexDaniel | well, would be nice to know before I jump into it head first :) | 12:42 | |
bartolin | my install dir has a size of 11 M | ||
lizmat | well, the simple thing could be to just die on a redo in a grep | ||
AlexDaniel | wow, 11 | 12:43 | |
bartolin | and it's definitely not fast. stage parse takes about 140 s on my server | ||
AlexDaniel | but generally under 10 minutes I guess? | ||
bartolin | yes, I'd say less than 10 min, but not much less | 12:44 | |
lizmat | otoh, if the code block has a phaser, it goes through the slow .map path, and then redo *is* supported | ||
so I guess we have no choice :-( | |||
bartolin builds r-j | 12:47 | ||
AlexDaniel | so if I am going to do the same thing bisectable does now for r-moar but for r-j, do I need to know anything? In terms of building it? Running it is a bit different story… | ||
moritz | you need to know that you'll need patience | 12:48 | |
bartolin | AlexDaniel: Hmm, there where a lot of commits where r-j did not build at all | ||
AlexDaniel | that is, ≈5500 builds or something. I guess most of them will fail, yea | ||
moritz: you overestimate the amount of patience required | 12:49 | ||
moritz | AlexDaniel: tell me after you've done it :-) | ||
AlexDaniel | I've already done it for moar | ||
it was like 3 or 4 days to do it from scratch | |||
a good estimate for moar was 1 minute per build (it takes about 7, but there are 7 in parallel) | 12:52 | ||
soo | |||
m: say 5500 ÷ 60 ÷ 24 | |||
camelia | rakudo-moar f6303d: OUTPUT«3.819444» | ||
AlexDaniel | yea | ||
.oO( it takes more procrastination than patience ) |
12:53 | ||
moritz | the JVM needs more memory, so fewer builds in parallel | 12:54 | |
and it's slower | |||
OTOH, more builds will abort early | |||
AlexDaniel | memory! Good point. I won't be surprised if it goes over 16 GB | 12:55 | |
bartolin | I'm running my daily builds on a virtual machine with 8 GB and 2 cores | 12:56 | |
and I think 6 GB would be enough | 12:57 | ||
moritz | maybe 4 | ||
lizmat | ok, so I have a fix for redo in grep, but it makes it 1.7x slower :-( | ||
bartolin: ^^ | 12:58 | ||
bartolin | on that machine a complete build (with nqp-j) just tooka bit about 12 min :-/ | ||
lizmat: :-( that's a lot, esp. since noone needs 'redo' in grep | 13:00 | ||
lizmat | yeah... :( | ||
in fact, just using map would only make it 1.5x slower, because we then don't need to check for phasers | 13:01 | ||
bartolin | lizmat: how does your fix look like? (could you gist it?) | 13:04 | |
lizmat | basically add the redo support from sequential-map | ||
bartolin | I see | 13:05 | |
lizmat | gist.github.com/lizmat/819e753b785...4beac36f89 | ||
bartolin | bug report (without this discussion, yet): RT #130529 | 13:12 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130529 | ||
lizmat | hmmm... it just occurred to me that returning an empty Slip from a map, starts up a SlippyIterator and then doesn't find anything in it | 13:17 | |
perhaps we need an EmptySlip sentinel just like IterationEnd to indicate nothing got returned | 13:18 | ||
an eqaddr for that should be really fast | |||
jnthn moritz notviki opinions ? ^^ | 13:19 | ||
moritz can't really comment | |||
jnthn | m: say Empty.^name | 13:21 | |
camelia | rakudo-moar f6303d: OUTPUT«Slip» | ||
jnthn | Already exists, no? :) | ||
And yes, we can past-path Empty | |||
*fast-path | 13:22 | ||
lizmat | hmmm... | 13:25 | |
ok, will do | 13:26 | ||
bartolin | lizmat: there is anothere inconsistency with the command above: it works as expected when I use .perl instead of .join | 13:30 | |
m: my $attempts = 0; say (1..5).grep({if $_ == 3 {$attempts++; redo unless $attempts == 10}; $_}).perl; say "looked $attempts times for element 3" | 13:31 | ||
camelia | rakudo-moar f6303d: OUTPUT«(1, 2, 3, 4, 5).Seqlooked 10 times for element 3» | ||
lizmat | yeah, that inconsistency will go after I push my fix | ||
will make grep about 1.4x slower | |||
I guess you can't have your cake and eat it as well | |||
bartolin | so, you think the problem really is in grep-callable and only surfaces with the new join for Seq? | 13:32 | |
lizmat | yeah, pretty sure of that | ||
it will also fix the problem on the JVM | 13:33 | ||
I guess we were cutting corners a bit too much there -( | |||
bartolin | ok. what do you think about adding: 'NEXT', $_, | ||
lizmat: to the nqp::handle part | |||
lizmat | the expensive part is the REDO part | 13:34 | |
bartolin | (I think only that will make r-j happy there= | ||
lizmat | you need to build an entire loop construct for that | ||
bartolin | *nod* | ||
lizmat | and since redo is dynamic (afaik), we can't determine at compile time whether a block will execute a redo or not | 13:35 | |
dalek | kudo/nom: 362f674 | lizmat++ | src/core/Any-iterable-methods.pm: Fix for RT #130529 - remove the special case "fast" grep loop because it didn't support redo - make general case a bit faster by rewriting as nqp ops - also directly go to sequential-map, instead of calling self.map - this makes the slow path about 10% faster - this makes the fast path about 1.4x slower :-( |
13:38 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130529 | ||
bartolin feels a bit sorry for bringing this up ... | 13:40 | ||
but lizmat++ | 13:41 | ||
lizmat | yeah, sometimes you have a kobayashi maru situation | ||
jnthn | I suspect the redo handling will get cheaper once we have a goto | 13:57 | |
dalek | kudo/nom: 9052427 | lizmat++ | src/core/Str.pm: Use Empty for an empty Slip So we can test for it better later. |
14:09 | |
b2gills | I wonder if 「|()」 could return 「Empty」 rather than a new Slip every time. | 16:21 | |
notviki | 0.o it returns a slip? | 16:22 | |
Ah ok | |||
b2gills | m: say Empty.perl; say (|()).perl | ||
camelia | rakudo-moar 905242: OUTPUT«slip()slip()» | ||
notviki | s: &prefix:<|> | 16:23 | |
SourceBaby | notviki, Sauce is at github.com/rakudo/rakudo/blob/9052...t.pm#L1464 | ||
b2gills | m: my \a = |(); my \b = |(); say Empty =:= a; say a =:= b # currently |() returns a new Slip every time | 16:25 | |
camelia | rakudo-moar 905242: OUTPUT«FalseFalse» | ||
notviki | m: say Empty =:= Empty | 16:27 | |
camelia | rakudo-moar 905242: OUTPUT«True» | ||
notviki | Prolly just need a new candidate that doesn't take args? | ||
m: my \a = ().Slip; my \b = ().Slip; say Empty =:= a; say a =:= b | 16:28 | ||
camelia | rakudo-moar 905242: OUTPUT«FalseFalse» | ||
RabidGravy | for discussion github.com/perl6/DBIish/issues/84 | 16:49 | |
lizmat | m: dd { 42 if 0 }() # how about that would actually spell Empty ? | 20:22 | |
camelia | rakudo-moar 905242: OUTPUT«slip()» | ||
notviki | m: dd Empty | 20:23 | |
camelia | rakudo-moar 905242: OUTPUT«slip()» | ||
moritz doesn't care much either way | |||
lizmat | m: dd { 42 if 0 }().perl.EVAL # and this would also say Empty | ||
camelia | rakudo-moar 905242: OUTPUT«slip()» | ||
lizmat | it would make debugging a bit easier for me :-) | 20:24 | |
but it breaks 2 spectests that specifically test for "slip()" | |||
as the output of .perl | |||
FWIW, it would also be faster :-) for the Empty case, at the expense of one more nqp::eqaddr when it isn't | 20:25 | ||
masak | I feel these types for listish and other emptiness keep floating around over the years, slowly, like oil on water | ||
I'm sorry, that came out very grumpy :) | |||
lizmat | well, Empty is post-GLR | 20:26 | |
so it's only been around for 1.5 year at the most | |||
masak | but if the above proposal is a simplification in that it makes things more consistent without any obvious drawback, I'm all for it, I guess | ||
moritz | I don't really understand what Nil is used for these days | ||
except for resetting something to its default value | |||
geekosaur | emptiness is surprisingly hard to pin down :) | 20:27 | |
lizmat | Nil signifies the absence of a value where there should be one | ||
moritz | but that could be a function too; doesn't need to be a separate type | ||
lizmat: but don't we have type objects already to do that? | |||
masak | moritz: the magic behavior of assigning to Nil is such an obvious antipattern anyway -- let's get rid of it | ||
lizmat | m: dd (Nil,) | ||
camelia | rakudo-moar 905242: OUTPUT«(Nil,)» | ||
lizmat | m: dd (Empty,) | ||
camelia | rakudo-moar 905242: OUTPUT«()» | ||
moritz | like, use Str when no instance of Str can be found? | ||
lizmat | masak: assigning to Nil ?? | 20:28 | |
masak | moritz: it's non-obvious *and* it slows down assignment in general | ||
moritz | masak: +1 | ||
masak | m: my Int $x = 42; $x = Nil; say $x | ||
camelia | rakudo-moar 905242: OUTPUT«(Int)» | ||
masak | lizmat: that. | ||
lizmat | masak: how does it slow down assignment in general ?? | ||
masak | lizmat: because you need to check, is it Nil, and then run special code | 20:29 | |
lizmat | ok, so you rather have something like undefine() ? | ||
masak | frankly, I'd rather just set it to Int in the above case | ||
with arrays, I'd rather just set it to () | |||
etc | 20:30 | ||
lizmat | masak: and what should .first return when it doesn't find anything ? | ||
masak | I'm not proposing getting rid of Nil, fwiw | ||
just that it lose that magic assignment behavior | |||
I'm all for having some value that means "there wasn't anything here, sorry" | |||
moritz | lizmat: it could also fail | 20:31 | |
lizmat | well, that's how it worked before, if I recall correctly | ||
moritz | fail('nothing here, move along') | ||
masak | yeah, I'd be fine with it throwing an exception, even | ||
lizmat | just like .pop fails atm instead of returning Nil | ||
moritz | IterationEnd :-) | ||
lizmat | but all of this discussion strayed from my original question, which I consider answered now | 20:32 | |
masak | +1 | 20:34 | |
jnthn | I did fear Nil would slow down every assignment, but it turns out you need to do a type check anyway on assignment, and you can put the Nil magic on the failure path. | 20:40 | |
The Nil assignment magic is so you can write stuff like `my ExpectedType $foo = @bar.first(&predicate)` | 20:41 | ||
Without it, what could `first` return? | 20:42 | ||
moritz | a Failure | ||
masak | I'm not opposed to a type that means "you expected there to be something here but there wasn't anything" | 20:43 | |
moritz | or you could give first, pop et al an optional argument for the fallback | ||
jnthn | Right, 'cus specifying things twice aids refactorability. :) | ||
masak .oO( poor man's Maybe ) | |||
jnthn | m: say Failure ~~ Nil | 20:44 | |
camelia | rakudo-moar 905242: OUTPUT«True» | ||
jnthn | And Failure is a Nil, which just happens to carry an exception because there's something useful to convey beyond "there wasn't a value" | ||
japhb | jnthn: To be clear, you're saying that Nil handling does not slow down assignments that would have worked normally *at all*? | 20:45 | |
moritz | does that mean Failure also have the semantics of resetting stuff to the default value? | ||
my Int $x is default(5); sub f() { fail 'fast' }; $x = 42; $x = f(); say $x | |||
m: my Int $x is default(5); sub f() { fail 'fast' }; $x = 42; $x = f(); say $x | 20:46 | ||
camelia | rakudo-moar 905242: OUTPUT«Earlier failure: fast in sub f at <tmp> line 1 in block <unit> at <tmp> line 1Final error: Type check failed in assignment to $x; expected Int but got Failure (Failure.new(exception...) in block <unit> at <tmp> line 1» | ||
masak | m: my Int $x = 42; $x = Failure; say $x | ||
camelia | rakudo-moar 905242: OUTPUT«Type check failed in assignment to $x; expected Int but got Failure (Failure) in block <unit> at <tmp> line 1» | ||
moritz | .oO( Liskov? ) |
||
I don't think I'd like it the other way though | |||
masak | no please no | ||
not more of it | |||
moritz | masak: not more what? Liskov violation? or magic? | 20:47 | |
masak | magic | ||
jnthn | japhb: I'd have to go code-digging, but I believe it's on the failover path. | 20:48 | |
japhb | jnthn: But it doesn't prevent optimizations that you'd otherwise be able to do? | ||
jnthn | japhb: Those type checks don't spesh away yet, but once we get *that* done too then the Nil case is essentially free. | ||
japhb | oh cool | 20:49 | |
jnthn | The far costlier thing going on in assignment is the WHENCE callback stuff, fwiw. | ||
dalek | kudo/nom: ebe9147 | lizmat++ | src/core/SlippyIterator.pm: Make Empty work faster with the SlippyIterator - check for Empty directly at startup - check for first value pulled, don't start if IterationEnd: this should handle the slip() cases faster - rewrite method in nqp entirely - 5% faster in my @a = ^1000; for ^1000 { my @b = @a.grep({ 0 }) } |
||
rakudo/nom: ec0258a | lizmat++ | src/core/Slip.pm: | |||
rakudo/nom: Give Empty its own .perl output | |||
rakudo/nom: | |||
rakudo/nom: - for easier debugging | |||
rakudo/nom: - for faster .perl output for Empty | |||
jnthn | Which I didn't yet hit on a good strategy for getting rid of. | 20:50 | |
lizmat | - and yes, it roundtrips ok | ||
This breaks two spectests that were specifically checking for .perl | |||
returning "slip()". I consider those tests to be sub-optimal :-) | |||
japhb | I'm not familiar with that bit, what is the WHENCE callback? | ||
lizmat | review: github.com/rakudo/rakudo/commit/ec0258a | 20:51 | |
jnthn | m: my %h; if %h<a> { }; say %h.keys # we never vivify a hash entry | ||
camelia | rakudo-moar 905242: OUTPUT«()» | ||
jnthn | m: my %h; if %h<a> -> \entry { entry = 42 }; say %h.keys # we never vivify a hash entry | ||
camelia | rakudo-moar 905242: OUTPUT«()» | ||
lizmat | japhb: it's the bit that makes: | ||
jnthn | duh | ||
lizmat | m: my %h; my $b := %h<a>; dd %h; $b = 42; dd %h | ||
camelia | rakudo-moar 905242: OUTPUT«Hash %h = {}Hash %h = {:a(42)}» | 20:52 | |
lizmat | work | ||
jnthn | m: my %h; %h<a> = 42; say %h.keys | ||
camelia | rakudo-moar 905242: OUTPUT«(a)» | ||
jnthn | Right, that :) | ||
Same on arrays etc. | |||
It's a 1-shot callback-on-assign | |||
m: my %h; %h<a b c> |= 1..3; say %h | 20:53 | ||
camelia | rakudo-moar 905242: OUTPUT«Cannot assign to an immutable value in block <unit> at <tmp> line 1» | ||
jnthn | d'oh | ||
japhb | Oh gah, that case that lizmat showed is ... ew, yeah | ||
jnthn | m: my %h; %h<a b c> Z= 1..3; say %h | ||
camelia | rakudo-moar 905242: OUTPUT«{a => 1, b => 2, c => 3}» | ||
jnthn | Also since meta-ops like Z= can happen then it can happen somewhat "at a distance" | ||
japhb nods ruefully | |||
jnthn | First-class l-values are both powerful and a performance headache. | ||
japhb | Totally get that. | 20:54 | |
And it's not just that they're first-class l-values, it's also that they can vivify | |||
jnthn | Aye | ||
Thankfully, we did make assignment something that the VM can understand. | |||
dalek | ast: ce75103 | lizmat++ | S03-metaops/reduce.t: Fix two sub-optimal tests that broke with ec0258a |
20:55 | |
jnthn | Spesh skates on extremely thin ice at the moment in that regard, though. | ||
japhb | I bet. That whole problem space just feels like running through a locust swarm and trying not to hit any bugs | 20:56 | |
jnthn | We'll need proper alias analysis before long, but that gets us a good way towards escape analysis too... | ||
...which we'd probably want anyway. | |||
japhb | nodnod | ||
jnthn wonders if we'll manage EA during the year :) | 20:57 | ||
notviki | My dalek replacement is ready. Anyone got keys to rakudo/rakudo, rakudo/star, and moarvm/moarvm and can go into Settings -> Web Hooks and swap out dalek for: geth.perl6.party/?chan=#perl6-dev (or #moarvm for moarvm), Content-type: application/json and "Send me everything." for which events? | 21:00 | |
dalek | ast/6.c-errata: deba56e | lizmat++ | S03-metaops/reduce.t: Fix two tests that broke with ec0258a |
||
notviki | (though currently only "Pull Request", "Create", and "Push" events have handlers) | ||
moritz | notviki: I can do that for rakudo/{rakudo,star}, iirc | 21:01 | |
notviki | cool | ||
jnthn | Maybe let's do a couple of repos first, see how it is, then do the rest? :) | 21:02 | |
notviki | Sounds good | ||
done doc and roast so far. | |||
jnthn | OK | ||
AlexDaniel | done for whateverable | ||
:) | |||
jnthn | I'll do MoarVM tomorrow unless a showstopper stops the show :) | ||
notviki++ | |||
moritz | notviki: doen for rakudo/{rakudo,star} | ||
*done | |||
AlexDaniel | .tell dalek We like dogfood. Change the webhook to geth.perl6.party/?chan=#perl6-dev (or #moarvm for moarvm), Content-type: application/json and "Send me everything." | 21:04 | |
yoleaux2 | AlexDaniel: I'll pass your message to dalek. | ||
Geth | ast/zoffixznet-patch-1: 7bd88e48f1 | (Zoffix Znet)++ | README.md s/Environment/Environmental/ also bot test |
21:06 | |
ast: zoffixznet++ created pull request #220: s/Environment/Environmental/ |
|||
ast: c7904f7da9 | (Zoffix Znet)++ | README.md s/Environment/Environmental/ (#220) also bot test |
|||
notviki | k | ||
so far so good :P | 21:07 | ||
timotimo | i like its initial capital letter | ||
also its color is nice | |||
oh, create pull request, eh? | |||
notviki | Yeah, unlike dalek this one will also say when people create pull requests | 21:08 | |
(I noticed on doc repo some seem to be unreviewed for days) | |||
timotimo | does it also receive comments and such on pull requests? so we could theoretically check that nothing got done in a pull request? | 21:09 | |
notviki | Yeah, there's a web hook for comments too. These are all the available events we could do something for: blob:imgur.com/42205f88-d5d1-4ad3-8fe4-02c3257c938a | 21:10 | |
i.imgur.com/xwdjIGJ.png | |||
diakopter | notviki: cool | 21:11 | |
notviki: did you try some very long messages to see if it throttles messages enough to get past freenode's spam detection? | 21:12 | ||
notviki | diakopter: it does something smarter for when the push has multiple commits: irclog.perlgeek.de/perl6/2017-01-08#i_13880268 | 21:13 | |
diakopter: for long commit messages it abridges them (saying $X more lines) and still gives review URL | |||
Though now I realize it doesn't currently do anything for very long single lines | 21:14 | ||
diakopter | neat | ||
well presumably they'd just be truncated by the irc server | 21:15 | ||
timotimo | make sure to abbreviate extremely long branch names ;) | 21:18 | |
notviki | good idea. | ||
Geth: source | |||
Geth | notviki, Source at github.com/zoffixznet/geth To add repo, add an 'application/json' webhook on GitHub pointing it to geth.perl6.party/?chan=#perl6 | ||
timotimo | "well volunteered"? ;) | 21:19 | |
notviki | Well, I just created two Issues on it :) | ||
timotimo | cool :) | 21:20 | |
Geth | kudo: fbbe446c64 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm Introducing R:I.ZipIterablesMapIterator Zips iterables, each zip passed as an IterationBuffer to the mapper. The new workhorse for Zop |
21:59 | |
camelia | rakudo-moar ec0258: OUTPUT«===SORRY!=== Error while compiling <tmp>Undeclared names: Elizabeth used at line 1 Internals used at line 1 Mattijsen used at line 1Undeclared routines: core used at line 1 fbbe446c64 used at line 1 src used …» | ||
rakudo-moar ec0258: OUTPUT«===SORRY!=== Error while compiling <tmp>Bogus postfixat <tmp>:1------> Introducing R:I.ZipIterablesMapIterator⏏ expecting any of: infix infix stopper postfix statement end sta…» | |||
rakudo-moar ec0258: OUTPUT«===SORRY!=== Error while compiling <tmp>Two terms in a rowat <tmp>:1------> s, each zip passed as an IterationBuffer⏏ to the mapper. expecting any of: infix infix stopper postfix stateme…» | |||
rakudo-moar ec0258: OUTPUT«===SORRY!=== Error while compiling <tmp>Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntaxat <tmp>:1------> The new workhorse ⏏for Zop» | |||
rakudo-moar ec0258: OUTPUT«===SORRY!=== Error while compiling <tmp>Confusedat <tmp>:1------> review: https:⏏//github.com/rakudo/rakudo/commit/fbbe44 expecting any of: colon pair» | 22:00 | ||
lizmat | que ? | ||
notviki: it's trying to run my commit message as code ? | 22:01 | ||
timotimo | oh jesus | ||
rakudo: say "hi" | |||
camelia | rakudo-moar ec0258: OUTPUT«hi» | ||
notviki | lol | ||
geekosaur | guessing camelia has a special case to not accept commands from dalek when the repo name matches a program | ||
timotimo | yeah, it must have had that so far %) | ||
notviki | Well, that's easy to rectify | ||
timotimo | that's amazing | ||
notviki | No, it didn't dalek reported it as "rakudo/nom" | ||
timotimo | yeah, just put a ü instead of u or something | ||
notviki | But I taught geth to treat nom as master | ||
geekosaur | er s/when/, for when/ | ||
timotimo | or an extra space | ||
geekosaur | ah | 22:02 | |
timotimo | quite frankly, that is hilarious :) | ||
diakopter | uh huh, botwars | 22:03 | |
notviki | There. Fixed forever :} | ||
geekosaur | batty bots | ||
lizmat | m: use nqp; BEGIN my $h := nqp::hash("a",42); dd $h # huh? Am I missing something ? | 22:23 | |
camelia | rakudo-moar fbbe44: OUTPUT«Mu» | ||
lizmat | m: use nqp; my $h; BEGIN $h := nqp::hash("a",42); dd $h # even weirder ? | ||
camelia | rakudo-moar fbbe44: OUTPUT«Any $h = Any» | ||
lizmat | m: use nqp; my $h; BEGIN { $h := nqp::hash("a",42) }; dd $h # are we not allowed to run nqp code in a BEGIN block ? | 22:24 | |
camelia | rakudo-moar fbbe44: OUTPUT«Any $h = Any» | ||
b2gills | m: use nqp; INIT my $h := nqp::hash("a",42); dd $h | ||
camelia | rakudo-moar fbbe44: OUTPUT«{:a(42)}» | ||
b2gills | m: use nqp; my $h := BEGIN nqp::hash("a",42); dd $h | 22:25 | |
camelia | rakudo-moar fbbe44: OUTPUT«{:a(42)}» | ||
lizmat | b2gills: wow, | ||
wonder what's going on there | |||
diakopter | m: use nqp; BEGIN my $h = nqp::hash("a",42); dd $h | 22:27 | |
camelia | rakudo-moar fbbe44: OUTPUT«Cannot find method 'dispatch:<.?>': no method cache and no .^find_method in block <unit> at <tmp> line 1» | ||
diakopter | wheh | 22:28 | |
b2gills | m: use nqp; BEGIN my $h = nqp::hash("a",42); put $h.^name | ||
camelia | rakudo-moar fbbe44: OUTPUT«BOOTHash» | ||
diakopter | m: use nqp; BEGIN our $h := nqp::hash("a",42); dd $h # lizmat <- | 22:34 | |
camelia | rakudo-moar fbbe44: OUTPUT«Any $h = Any» | ||
lizmat | diakopter: I'd rather not pollute namespaces | 22:35 | |
diakopter | ok, I wasn't suggesting doing that; just showing more evidence of what might be going on | 22:36 | |
timotimo | m: use nqp; BEGIN my Mu $h := nqp::hash("a",42); dd $h | 22:42 | |
camelia | rakudo-moar fbbe44: OUTPUT«Mu» | ||
Geth | ast: 876785a94f | MasterDuke17++ | S05-mass/rx.t Add a test for Nd digits in regex quantifiers |
22:54 |