Geth | rakudo/nom: 8990529295 | (Zoffix Znet)++ | src/core/Str.pm Remove trailing whitespace |
00:17 | |
rakudo/nom: 6e9d08c8ba | (Zoffix Znet)++ | src/core/Str.pm move Str.subst proto to be next to its methods No functional changes. The proto for Str.subst seems to be hundreds of lines away from Str.subst methods, tucked next to Str.substr-* Fix by moving the proto in the source code. |
00:18 | ||
rakudo: wchristian++ created pull request #1011: RFC: increase readability of REPL.pm by reducing verbosity |
00:21 | ||
rakudo/nom: 354ad9ab1c | (Christian Walde)++ | src/core/REPL.pm increase readability of REPL.pm by reducing verbosity |
01:10 | ||
rakudo/nom: f249689979 | (Zoffix Znet)++ | src/core/REPL.pm Merge pull request #1011 from wchristian/readability RFC: increase readability of REPL.pm by reducing verbosity |
|||
TimToady | heh, I'm told that six or eight generations back, my last name used to be spelled "Walde" | 01:42 | |
MasterDuke | TimToady: in a quick attempt to get rid of @*comp_line_directives, i tried turning it into an attribute (with an accessor method) in src/HLL/World.nqp and then calling $*W.comp_line_directives() in src/HLL/Compiler.nqp | 01:45 | |
but it compains, `Cannot find method 'comp_line_directives' on object of type NQPMu` | |||
*complains | 01:46 | ||
TimToady | it might be set up before there even is a World | 01:53 | |
I wouldn't sweat it too much; it might end up riding around in the new braid object anyway | 01:54 | ||
MasterDuke | k, i'll leave it for now at least | 01:58 | |
pyrimidine_ | Anyone present who knows much about dynamic module loading? I've run into a bug: RT#130709 | 04:49 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130709 | ||
pyrimidine_ | it seems to be related to some of the lexical module fixes in August | ||
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Streamline Any::IterateTwoWithoutPhasers.push-all | 07:14 | |
travis-ci.org/rakudo/rakudo/builds/197467470 github.com/rakudo/rakudo/compare/b...15a4d649ec | |||
Geth | nqp/braids: e40c5baa97 | TimToady++ | 2 files Add Braid type, move actions to braid object Cursors now maintain a braid delegate to hold aspects of the current language braid that are outside the scope of the current set of cursor methods, but nonetheless contribute to the notion of "current language" in the current lexical scope. We will be migrating various dynamic variables into the braid over time, such as %*LANG, %*PRAGMAS, and $*PACKAGE. |
07:45 | |
rakudo/braids: f526c7d72d | TimToady++ | 2 files Start using new braid abstractions from nqp We will gradually be weaning rakudo off of direct manipulation of cursors and dynvars so that we can abstract the various "current language" concepts into the Braid object that hangs off the current cursor. |
|||
[Tux] | This is Rakudo version 2017.01-148-gf24968997 built on MoarVM version 2017.01-25-g70d4bd53 | 09:34 | |
csv-ip5xs 2.755 | |||
test 13.105 | |||
test-t 4.808 - 2nd run 4.935 | |||
csv-parser 13.014 | |||
brrt | pmurias: NQP commit 5490db6fe491f30edf9de1e553782655acc3b6d3 changes a test in t/qast/01-qast.t that breaks on MoarVM | 09:46 | |
i don't know what you intended to hapepn, and if MoarVM behaviour is really wrong, so I'm not sure what to do next | |||
Geth | geth: 40e5ce18e6 | (Zoffix Znet)++ | lib/Geth/Plugin/GitHub.pm6 Remove confusing … from 3-10 commit reports |
11:04 | |
brokenchicken | it fails in not ok 26 - Exception in is_qast: equal requires a concrete string, but got null, test: str local has a zero default | 11:12 | |
m: local str $x; dd $x | |||
camelia | rakudo-moar f24968: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Two terms in a rowat <tmp>:1------> 3local str7⏏5 $x; dd $x expecting any of: infix infix stopper postfix statement end statement modifier…» | ||
brokenchicken | m: my str $x; dd $x | ||
camelia | rakudo-moar f24968: OUTPUT«""» | ||
brokenchicken | nqp: QAST::Block.new( QAST::Var.new( :name('not_set'), :scope('local'), :decl('var'), :returns(str) ), QAST::Op.new(:op<say>, QAST::Var.new(:name('not_set'), :scope('local'))) ) | 11:17 | |
camelia | ( no output ) | ||
brokenchicken | :( | ||
travis-ci | Rakudo build passed. Elizabeth Mattijsen 'Streamline Any::IterateTwoWithoutPhasers.sink-all | 11:31 | |
travis-ci.org/rakudo/rakudo/builds/197473094 github.com/rakudo/rakudo/compare/9...84939eb147 | |||
brrt | brokenchicken, yeah, so why does it | 11:44 | |
Geth | nqp: 3fbb5545ad | (Pawel Murias)++ | t/qast/01-qast.t Fix test. |
11:50 | |
nqp: 5b811222ca | (Pawel Murias)++ | src/vm/js/Compiler.nqp [js] Initialize str variables with null_s instead of ''. |
|||
brokenchicken | \o/ | ||
travis-ci | NQP build passed. Pawel Murias '[js] Initialize str variables with null_s instead of ''.' | 11:53 | |
travis-ci.org/perl6/nqp/builds/197975244 github.com/perl6/nqp/compare/f21c8...811222cab0 | |||
lizmat | commute to Brussels& | 12:59 | |
nine is sitting at Vienna airport and very much looking forward to seeing Liz&Wendy&friends :) | 13:12 | ||
tadzik | I'm leaving soon too :) | 13:13 | |
nine | yeah :) | 13:14 | |
Looks like my talk's gonna take about 30 minutes which is probably ok for a 40 minute slot with no breaks between talks. | 13:15 | ||
samcv | how do i compile perl 6 for js? | 13:54 | |
err nqp. it compiles right? | 13:55 | ||
[Coke] | ISTR pmurias had some special instructions still. | 13:59 | |
[Coke] sees brokenchicken and is reminded to do something! | |||
brokenchicken | ? dop what? | 14:00 | |
? do what? | |||
perlpilot | .oO( fix the chicken? ) |
14:06 | |
geekosaur | (do the funky chicken?) | 14:07 | |
[Coke] | brokenchicken: check your email? | ||
brokenchicken | "Inbox (2487 new)" | 14:08 | |
[Coke] | I'm your grant manager! | 14:09 | |
brokenchicken | Aha :) | ||
Sure. Sounds good. I'll post reports on blogs.perl.org, since I see pmurias doing it that way. Right? | |||
perlpilot | doh! And I just realized that I forgot to add my voice to the chorus in support of that grant. | 14:11 | |
[Coke] | brokenchicken: yes, that's fine. | 14:12 | |
[Coke] ¿accidentally? volunteers for something. | 14:13 | ||
Geth | nqp: afab417317 | (Zoffix Znet)++ | tools/build/MOAR_REVISION (moar bump) Fix nqp::div_i / optimize nqp::radix_I github.com/MoarVM/MoarVM/compare/2...0-g9258aca |
15:05 | |
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...0-g9258aca | |||
rakudo/nom: c98b3a581f | (Zoffix Znet)++ | tools/build/NQP_REVISION (nqp bump) Fix premature overflow in nqp::div_i() On MoarVM, the op uses int which overflows on large numbers, making the op produce wrong results. Fix by using MVMint64 instead. Fixes RT#130686: rt.perl.org/Ticket/Display.html?id=130686 Bump brought commits: github.com/perl6/nqp/compare/2017....7-gafab417 |
|||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130686 | ||
¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....7-gafab417 | |||
roast: 13535c7fb5 | (Zoffix Znet)++ | S03-operators/div.t Test `div` does not prematurely overflow on large `int`s RT#130686: rt.perl.org/Ticket/Display.html?id=130686 Rakudo fix: github.com/rakudo/rakudo/commit/c98b3a581f NQP fix: github.com/perl6/nqp/commit/afab417317 MoarVM fix: github.com/MoarVM/MoarVM/commit/9258acaffd |
15:07 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130686 | ||
pmurias | brrt: sorry, the test was wrong | 15:14 | |
brrt | which test what | 15:25 | |
oh, np | |||
pmurias | brrt: the qast test I broke | ||
brrt | :-) | ||
i figured | |||
it happens | |||
pmurias | it should be fixed now | ||
travis-ci | Rakudo build passed. Zoffix Znet 'Fix infix:<before>/infix:<after> for Complex | 15:27 | |
travis-ci.org/rakudo/rakudo/builds/197514867 github.com/rakudo/rakudo/compare/7...3162c1275f | |||
brokenchicken | FWIW, I've not restarted SourceBaby/Undercover for a couple of months (I think?) and they were in just 600-700MB of used RAM. Whatever's leaking in buggable has gotta be applying a regex to a huge chunk of text (entire Travis build log). | 16:05 | |
Don't think I'll have the time to golf it any time soon, but yey for other bots seemingly not leaking :) | 16:06 | ||
jnthn | brokenchicken: What Rakudo version? | 16:07 | |
A MoarVM commit almost right after the January release fixed a major release | |||
brokenchicken | SourceBaby/Undercover were running on some 2016.10-* commit. The box with buggable has 2017.01-144-gf2894d3 installed, but I'm pretty sure the last time I saw it leak it was a slightly earlier commit | 16:08 | |
like maybe a week earlier | |||
jnthn | OK | ||
Anything using Proc::Async will have got a good bit less leaky | |||
brokenchicken | I think it's something with regexes... | 16:09 | |
And well, should be easy enough to find out what it is. I just need to find time to do it. | 16:10 | ||
wooo found a fix for 130688 | 17:21 | ||
And seems $caller_dollar_slash / $SET_DOLLAR_SLASH in Str!APPLY-MATCHES are useless | 17:22 | ||
brokenchicken always gets suspicious when finding "useless" chunks of code | |||
The method's called only from .subst/.subst-mutate (and Actions for s/// / S///) but in all those cases dollar slash is already set by Str.match call, so there's no point in asking APPLY-MATCHES to set anything. In fact, it's what causing the 130688 bug | 17:24 | ||
And I don't get why does s/// S/// call .match / !APPLY-MATCHES instead of just calling .subst/.subst-mutate :\ | 17:49 | ||
:S and apparently s/// | S/// code creates $global_result just to re-bind $result to it, just before sticking it into $/ :/ | 18:14 | ||
Though I broke something by removing this stuff, so I guess I'm wrong :} | 18:18 | ||
[Coke] | how can I tell what multi is going to get called? | 18:21 | |
brokenchicken | .cando | 18:23 | |
m: &comb.cando( \("meow", 2) )[0].signature.say | |||
camelia | rakudo-moar c98b3a: OUTPUT«(Str $matcher, Cool $input, $limit = *)» | ||
brokenchicken | m: &comb.cando( \("meow", /^/) )[0].signature.say | 18:24 | |
camelia | rakudo-moar c98b3a: OUTPUT«Nil» | ||
brokenchicken | orly | ||
m: say comb "meow", /^/ | |||
camelia | rakudo-moar c98b3a: OUTPUT«Cannot resolve caller comb(Str, Regex); none of these signatures match: (Regex $matcher, Cool $input, $limit = *) (Str $matcher, Cool $input, $limit = *) (Int:D $matcher, Cool $input, $limit = *) in block <unit> at <tmp> line 1» | ||
brokenchicken | Ah, matcher goes firsr | ||
m: &comb.cando( \(42, "meow") )[0].signature.say | |||
camelia | rakudo-moar c98b3a: OUTPUT«(Int:D $matcher, Cool $input, $limit = *)» | ||
brokenchicken | m: &comb.cando( \("x", "meow") )[0].signature.say | 18:25 | |
camelia | rakudo-moar c98b3a: OUTPUT«(Str $matcher, Cool $input, $limit = *)» | ||
brokenchicken | It gives you all the matching candidates in narrowest -> widest order | ||
And IIRC for methods you need to include the invocant in the capture you give it | |||
Hm. Weird. I stuck this debug statement into actions quote:sym<s>: QAST::Op.new(:op<say>, QAST::Op.new( :op<callmethod>, :name<gist>, QAST::Var.new( :name('$/'), :scope('lexical') ) )) | 18:28 | ||
[Coke] | weird. it's finding hte method I thought it was, but then my { die "AAA" } in that sub is never invoked. | ||
brokenchicken | And it prints TWICE for each of invocation of s/// :S | ||
[Coke] | DOH. installed vs. local. | ||
yay, my patch worked. | 18:29 | ||
brokenchicken | hm, but sticking QAST::Op.new(:op<say>, QAST::SVal.new(:value<meows>)), right before that debug statement prints 'meows' just once :S | 18:37 | |
brokenchicken doesn't get this... | |||
m: "x" ~~ s/.//; $/.gist | 18:38 | ||
camelia | rakudo-moar c98b3a: OUTPUT«Cannot modify an immutable Str in block <unit> at <tmp> line 1» | ||
brokenchicken | m: ($ ="x") ~~ s/.//; $/.gist | ||
camelia | ( no output ) | ||
brokenchicken | vov | ||
And I changed it to QAST::Op.new( :op<callmethod>, :name<gist>, QAST::Var.new( :name('$/'), :scope('lexical') ) ), and now it prints it just once... waaaaaaat | 18:39 | ||
oh, I had code as `say s///` oops :P | 18:40 | ||
-_- don't get it. With my patch $_ = "a b c"; .subst-mutate: :g, / (\w) /, -> $/ { "$0$0" }; replaces with "aa bb cc" but s:g/ (\w) / $0$0/; replaces with "aa aa aa"; my debug print of APPLY-MATCHES shows both versions give the same args and $/ ends up being the same :| | 19:45 | ||
timotimo | maybe the s:g/ / / form tries to go with the lexical $/ outside of the s/// call? | 19:57 | |
brokenchicken | APPLY-MATCHES doesn't do anything with it and takes matches via an arg; I dumped it from inside APPLY-MATCHES and it's the same for both versions | 19:59 | |
brokenchicken goes to compare ASTs | 20:00 | ||
timotimo | unfortunately i don't know how that part of rakudo plays | 20:04 | |
brokenchicken | I saw the light. | 20:29 | |
And I was right... three hours ago... "* │ brokenchicken always gets suspicious when finding "useless" chunks of code" | |||
The s/// S/// forms give matches lazily and rely on $/ being swapped for each substitution, while .subst-mutate expects args to the codeblock | 20:30 | ||
At least now I have a much better knowledge of thist stuff :) | 20:31 | ||
Well, if the stresstest ends up clean I will have fixed 130688 and may even have time to commit it before I have to relocate :) | 20:41 | ||
travis-ci | Rakudo build passed. Zoffix Znet 'Revert "Fix infix:<before>/infix:<after> for Complex" | 20:43 | |
travis-ci.org/rakudo/rakudo/builds/197517075 github.com/rakudo/rakudo/compare/a...92994729f7 | |||
brokenchicken | Hm, and it's not | 20:46 | |
m: $_ = "(foo,bar,(baz))"; $_.=subst( /<-[(),]>+/, { "|$/|" }, :g ); say $_ | |||
camelia | rakudo-moar c98b3a: OUTPUT«(|foo|,|bar|,(|baz|))» | ||
brokenchicken | That now gives: (|foo bar baz|,|foo bar baz|,(|foo bar baz|)) | ||
But I'd argue the new version is correct. The block doesn't receive it's own $/; if you want to use $/ inside, block needs to be -> $/ { } | 20:47 | ||
Well, s/new version/; The only reason it ends up as anything is matches are done before replacements. | |||
Hm. Need to think about this. | 20:48 | ||
m: say 'fog'.subst: :g, /(.)/, { $0.uc } | |||
camelia | rakudo-moar c98b3a: OUTPUT«FOG» | ||
brokenchicken | And in my version that ends up as FFF | 20:49 | |
k, need a differnt fix :) | |||
s/But I'd argue//; # not having to stick -> $/ on it every time is very useful | 20:50 | ||
Gonna fix later tonight | |||
brokenchicken relocates | |||
gfldex | m: use variables :D; sub f(Str $s){ say $s }; f Str; | 22:35 | |
camelia | rakudo-moar c98b3a: OUTPUT«(Str)» | ||
gfldex | this feels wrong | ||
brokenchicken | Yeah, SmokeMachine pointed that out earlier today. Unsure if they created a ticket for it yet. | 22:50 | |
Oh wait | |||
Now I remember | |||
It's supposed to be affected by `use params` not variables, but it's not yet implemented | 22:51 | ||
m: use param :D | |||
camelia | rakudo-moar c98b3a: OUTPUT«===SORRY!===Could not find param at line 1 in: /home/camelia/.perl6 /home/camelia/rakudo-m-inst-2/share/perl6/site /home/camelia/rakudo-m-inst-2/share/perl6/vendor /home/camelia/rakudo-m-inst-2/share/perl6 CompUnit::Reposit…» | ||
brokenchicken | m: use params :D | ||
camelia | rakudo-moar c98b3a: OUTPUT«===SORRY!===Could not find params at line 1 in: /home/camelia/.perl6 /home/camelia/rakudo-m-inst-2/share/perl6/site /home/camelia/rakudo-m-inst-2/share/perl6/vendor /home/camelia/rakudo-m-inst-2/share/perl6 CompUnit::Reposi…» | ||
brokenchicken looks at backlog | |||
m: use parameters :D | |||
camelia | rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>use parameters not yet implemented. Sorry. at <tmp>:1------> 3use parameters :D7⏏5<EOL>» | ||
brokenchicken | gfldex: ^ | ||
m: use attributes :D | 22:52 | ||
camelia | ( no output ) | ||
brokenchicken | And I guess that one is for class/role attrs | ||
Geth | rakudo/nom: 98f9d8a7d6 | (Elizabeth Mattijsen)++ | src/core/Iterator.pm Remove unnecessary not_i from Iterator.push-exactly By using an until instead of a while. It's the microest of micro-opts but in a method that is used by a lot of array / list accesses. |
22:57 | |
lizmat | .tell jnthn there's a bunch of methods in core (e.g. .eager) that have a proto with (|), but never take any arguments. Making the proto have () appears to make it 4% faster. Do you see any downsides to this? | 23:36 | |
yoleaux2 | lizmat: I'll pass your message to jnthn. | ||
SmokeMachine | I didn't open any ticket... :( | 23:37 | |
brokenchicken | SmokeMachine: nah, no need. I misremembered what happened. | 23:38 | |
SmokeMachine | variables, parameters and attributes... | 23:41 | |
jnthn | lizmat: Well, it'd only mean that nobody could add a multi that did have args in a subclass | 23:43 | |
yoleaux2 | 23:36Z <lizmat> jnthn: there's a bunch of methods in core (e.g. .eager) that have a proto with (|), but never take any arguments. Making the proto have () appears to make it 4% faster. Do you see any downsides to this? | ||
jnthn | lizmat: But, for eager at least, that seems overwhelmingly unlikely :) | ||
lizmat | but wouldn't somebody just need to add their own proto if they wanted an eager with params ? | ||
jnthn | They can, but of course they'd also need to handle the zero-arg case | 23:44 | |
But it's such a hypothetical thing to want to do anyway, for eager... :) | |||
So, for that case I think no problem to change it | |||
lizmat | well, there's a bunch of them | ||
jnthn | OK, probably worth considering each of them :) | 23:45 | |
lizmat | pairup minpairs maxpairs Array List flat | ||
jnthn | Array and List are coercers | ||
lizmat | hash Hash Map | ||
jnthn | flat is like eager | ||
Those are all coercers | |||
So only pairup minpairs maxpairs warrant any particular thought | 23:46 | ||
And...I can't think of a reason why they can't have () either :) | |||
samcv | 4% faster is good :) | ||
lizmat | yeah, seems like an easy win :-) | ||
jnthn | So, no objects from me on any of those getting () | ||
*objections | |||
Hope all's well in Brussels? :) | 23:47 | ||
jnthn drank a Kwak in support of the Perl 6 folk in Brussels :) | |||
lizmat | all's well in Brussels so far | ||
the booth has been set up already, so that's a lot less work tomorrow morning :-) | 23:48 | ||
jnthn | Cool :) | ||
lizmat | the reason I asked about (|) is that I realized I had (probably inadvertently) done this with .Bool | ||
last March | 23:49 | ||
going to use that as an example in my talk :-) | |||
jnthn | :) | ||
jnthn wonders why it's more expensive... | |||
Given that after the first hit, we should be hitting the multi cache. | |||
samcv | m: say so '_' ~~ /<alpha>/ | 23:51 | |
camelia | rakudo-moar 98f9d8: OUTPUT«True» | ||
samcv | seems i found a bug in <alpha>. <:alpha> doesn't have this issue | ||
jnthn | That's by design, I believe. | 23:52 | |
samcv | really? | ||
jnthn | design.perl6.org/S05.html#Predefined_Subrules | ||
Yup | |||
Been that way for years | 23:53 | ||
samcv | gist.github.com/Whateverable/0a0c7...e560ca639a this is the full list of differences | ||
m: say '🅐' ~~ /<alpha>/ | 23:54 | ||
camelia | rakudo-moar 98f9d8: OUTPUT«Nil» | ||
samcv | m: say '🅐' ~~ /<:alpha>/ | ||
camelia | rakudo-moar 98f9d8: OUTPUT«「🅐」» | ||
samcv | it doesn't seem to be as simple as, <:alpha> plus underscores | ||
lizmat | jnthn: re Seq.iterator, should we worry about races there if two threads try to do a .iterator on the same Seq ? | ||
jnthn | No | 23:55 | |
Iterators aren't thread-safe | |||
lizmat | oki | ||
jnthn | There's a module Concurrent::Iterator though :) | ||
Geth | rakudo/nom: f799a03fcc | (Elizabeth Mattijsen)++ | src/core/Seq.pm Streamline Seq.sink No need to call .iterator when we already have it in $!iter. |
23:57 | |
samcv | ok <alpha> is not like <:alpha> it means character class alphabetic | 23:58 | |
which are different things | |||
it doesn't include Nl's or marks | 23:59 |