jnthn 'night 00:12
brokenchicken night
MasterDuke brokenchicken: FWIW, grepping in perl6-all-module shows ~150 cases of `~~ 'foo'`, ~50 of `~~ "foo"`, and ~50 of `~~ \d` 00:15
brokenchicken Hehe, not what expected :D 00:16
*what I
MasterDuke more than i expected also 00:17
Geth kudo: MasterDuke17++ created pull request #1005:
Fix typo in AST comment
00:46
brokenchicken I guess everyone's away now? 01:20
I need to change 6.c-errata here: github.com/perl6/roast/blob/6.c-er...isc.t#L132 01:22
It now throws X::Syntax::Reserved instead of X::Syntax::Extension::Category, because :sym<> is now marked as reserved per TimToady irclog.perlgeek.de/perl6/2017-01-25#i_13988093
Is it OK to make that change? 01:23
jnthn lizmat TimToady [Coke] ping
Or should that part wait for 6.d
And the change would be to remove the 'sym' part; so it'd end up as throws-like 'sub postbla:<foo>() { }', X::Syntax::Extension::Category, category => 'postbla'; 01:26
Eh, screw it. I'll leave it to 6.d. It's bad to change 6.c-errata 01:29
Geth kudo/nom: 48abeeef26 | (Zoffix Znet)++ | src/Perl6/Grammar.nqp
Improve colonpair-extended names on subroutines

Per discussion: irclog.perlgeek.de/perl6/2017-01-25#i_13988088
  - sub foo:bar<ber> {} no longer throws and is a valid extended sub name
   - this also fixes inconsistency where this form threw *except* in cases
   when sub was some_exiting_token_in_Perl6_Grammar:sym<some_exiting> {}
... (8 more lines)
02:00
ast: 53d6e8491d | (Zoffix Znet)++ | S06-operator-overloading/sub.t
Test colonpair-extended subroutine names

Rakudo impl: github.com/rakudo/rakudo/commit/48abeeef26
Two tests are fudged as 6.c-errata expects those forms to throw X::Syntax::Extension::Category exception instead. So leave that until 6.d language.
02:01
brokenchicken :( 02:09
Looks like I need to make it log its terminal output to some file... 02:10
Second time some event crashed it
MasterDuke heh, merging my PR crashed it? 02:13
brokenchicken Looks like it.
Geth ast: 7851e7a710 | (Stefan Seifert)++ | 2 files
Fix return value of CompUnit::Handle::globalish-package

globalish-package was meant to return the package stash. That's apparent in that every single caller immediately called .WHO on its result. Just returning a stash also makes it easier to create CompUnit::Handles representing code written in other languages.
Note that the tests doesn't even test globalish-package itself but are about symbol merging and precompilation. The authors just copied rakudo's code.
09:34
ast/6.c-errata: e73bb67f64 | (Stefan Seifert)++ | S11-repository/curli-install.t
Fix return value of CompUnit::Handle::globalish-package

globalish-package was meant to return the package stash. That's apparent in that every single caller immediately called .WHO on its result. Just returning a stash also makes it easier to create CompUnit::Handles representing code written in other languages.
Note that the test doesn't even test globalish-package itself but is about symbol merging. The author just copied rakudo's code.
kudo/nom: 960a78900d | (Stefan Seifert)++ | 5 files
Have CompUnitHandle::globalish-package return the actual Stash

Instead of requiring every caller to call .WHO on the return value, do it in globalish-package itself. This makes it easier for an alternative implementation to replace CompUnit::Handle
pmurias when compiling method foo($foo = $default_value+1) {...} the block created for '$default_value+1' is created as a QAST::Block with blocktype set to '' 12:07
how is the lexical scope set on that block
?
in cases where bind_sig is used 12:09
Geth kudo/nom: 9d0a6c00f7 | (Elizabeth Mattijsen)++ | src/core/Str.pm
Add comment as to the reason of 36

And no, it's not 6 less than 42 :-)
12:20
jnthn brokenchicken: Note that you can compile/throw differently based upon current language version in effect, which would let you get the new behavior now in 6.d.PREVIEW but keep the original in 6.c 12:52
Geth kudo/nom: 00e60d9480 | (Elizabeth Mattijsen)++ | src/core/Seq.pm
Make Seq.InfiniteLoopIter about 6% faster

Unfortunately, this iterator only gets called directly from roast, but there does not appear to be a way to actually run this code in any other way. One would expect "do loop { ... }" to do this, but that takes the WhileLoopIter variant. Something with codegen in Actions.nqp around line 128.
13:23
MasterDuke m: use nqp; say nqp::isbig_I(.5) 13:24
camelia rakudo-moar 9d0a6c: OUTPUT«P6opaque: get_boxed_ref could not unbox for the representation '20' of type Rat␤ in block <unit> at <tmp> line 1␤␤»
MasterDuke ^^^ is that a bug?
lizmat m: use nqp; say nqp::isbig_I(5)
camelia rakudo-moar 9d0a6c: OUTPUT«0␤»
lizmat MasterDuke: .5 is not an int / Int so not a bug I would say
isbig_I assumes it is given some sort of int 13:25
MasterDuke github.com/perl6/nqp/blob/master/d...down#isbig
should that doc be changed then?
lizmat m: use nqp; say nqp::isbig_I(59999999999999999999999999999999) 13:26
camelia rakudo-moar 9d0a6c: OUTPUT«1␤»
lizmat MasterDuke: not sure, jnthn should know :-)
MasterDuke jnthn: ^^^? 13:27
jnthn Not a bug 13:37
If you use nqp:: ops you must give them what they expect.
lizmat jnthn 13:38
jnthn In the box/unbox case we'll handle it for you
lizmat so the doc needs changing ?
jnthn Yeah, should not say Mu in the signautre there
lizmat MasterDuke: ^^^ :-)
jnthn Should say Int 13:39
Looking at the descritpion up top
MasterDuke k, that's a simple fix
Geth kudo/nom: 4d8fc05ba8 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Introducing R:It.Loop

Basically Seq.InfiniteLoopIter, abstracted in R:It
kudo/nom: b1afc13a3c | (Elizabeth Mattijsen)++ | src/core/Seq.pm
Use R:It.Loop for the loop case
p: 9357194067 | (Daniel Green)++ | docs/ops.markdown
Fix signature of isbig_I

It expects an Int, not just any Mu object.
  irclog.perlgeek.de/perl6-dev/2017-...i_14003276
13:43
MasterDuke i got really confused earlier this morning when i saw a parse time of 0.12s for a rakudo compile. it took until after coffee to realize it was for m-CORE.d.setting 13:49
lizmat yeah, that would have been *really* nice
but would cut into my reading of HN /. and the like :-) 13:50
MasterDuke we can dream 13:52
Geth kudo: MasterDuke17++ created pull request #1006:
Remove the old style 'm-' prefix on CORE.d.setting
13:57
kudo/nom: 7c26985c6c | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Introducing R:It.RepeatLoop

Basically the functionality of do repeat { foo } while bar. Taken from Seq::WhileLoopIter, without the dependence on a $repeat flag.
14:42
kudo/nom: a832944d6c | (Elizabeth Mattijsen)++ | src/core/Seq.pm
Make do repeat while use R:It.RepeatLoop

Makes it about 3% faster. Not a lot, but could help in hot code paths outside of the setting.
RabidGravy "aggregation of marginal gains" 14:43
lizmat RabidGravy: hopefully 14:44
Geth kudo/nom: f0b92349ee | (Daniel Green)++ | tools/build/Makefile-Moar.in
Remove the old style 'm-' prefix on CORE.d.setting
15:02
kudo/nom: a256ef24e1 | (Zoffix Znet)++ | tools/build/Makefile-Moar.in
Merge pull request #1006 from MasterDuke17/nom

Remove the old style 'm-' prefix on CORE.d.setting
[Tux] This is Rakudo version 2017.01-91-ga832944d6 built on MoarVM version 2017.01-14-g357438a9 15:09
csv-ip5xs 2.940
test 13.810
test-t 5.222
csv-parser 14.394
second run was over 6!
brokenchicken :( 15:12
damn, I wonder if it's the IO::Handle.lines thing 15:13
c: HEAD $*PERL.compiler.version.say 15:16
committable6 brokenchicken, ¦«HEAD»: v2017.01.93.ga.256.ef.2
brokenchicken c: 2017.01 $*PERL.compiler.version.say
committable6 brokenchicken, ¦«2017.01»: Cannot find this revision (did you mean “2016.01”?)
brokenchicken .ask AlexDaniel what's with the bots not finding 2017.01 release? 15:17
yoleaux2 brokenchicken: I'll pass your message to AlexDaniel.
AlexDaniel .
yoleaux2 15:17Z <brokenchicken> AlexDaniel: what's with the bots not finding 2017.01 release?
AlexDaniel c: 2017.01 $*PERL.compiler.version.say
committable6 AlexDaniel, ¦«2017.01»: v2016.12.409.g.78980.ed
pmurias jnthn: if I have: $outer := QAST::Block.new(:blocktype<declaration_static>, ..., $inner := QAST::Block.new(...)) and $inner is part of some serialised signature, does the code in inner get access to the lexicals from $outer?
brokenchicken o-oh... I hope that's not a messed up release :o 15:18
AlexDaniel brokenchicken: github.com/perl6/whateverable/issues/97 15:19
wait but… what is it then?
brokenchicken: it's either that or the bots are broken, no? 15:20
brokenchicken AlexDaniel: hm, but you don't usually need to pull tags? 2016.12 works and it's the same build script innit?
c: 2734533 for ^130 { $ = $_ for "/home/bisectable/.bash_history".IO.lines }; say now - INIT now
AlexDaniel brokenchicken: I'm not sure actually. All I know is that I had to do it a couple of times
committable6 brokenchicken, ¦«2734533»: 1.0439713
brokenchicken c: 2734533 for ^130 { $ = $_ for "/home/bisectable/.bash_history".IO.lines }; say now - INIT now
committable6 brokenchicken, ¦«2734533»: 1.0413848
brokenchicken c: HEAD for ^130 { $ = $_ for "/home/bisectable/.bash_history".IO.lines }; say now - INIT now
committable6 brokenchicken, ¦«HEAD»: 1.05831355
brokenchicken c: HEAD for ^130 { $ = $_ for "/home/bisectable/.bash_history".IO.lines }; say now - INIT now
committable6 brokenchicken, ¦«HEAD»: 1.067123
brokenchicken m: say 1.058/1.042 15:21
camelia rakudo-moar a256ef: OUTPUT«1.015355␤»
brokenchicken m: say 5.222 / 4.999
camelia rakudo-moar a256ef: OUTPUT«1.044609␤»
brokenchicken hm
MasterDuke benchable6: 2017.01,HEAD for ^130 { $ = $_ for "/home/bisectable/.bash_history".IO.lines };
benchable6 MasterDuke, starting to benchmark the 2 given commits
MasterDuke, benchmarked the given commits, now zooming in on performance differences 15:22
MasterDuke, ¦«2017.01»:1.1144␤¦«HEAD»:1.1533
AlexDaniel \o/
brokenchicken m: say 1.15/1.11
camelia rakudo-moar a256ef: OUTPUT«1.036036␤»
brokenchicken huggable: bench
huggable brokenchicken, nothing found
MasterDuke it only bisects if there's a >10% diff
AlexDaniel you can make it a >10% difference I guess 15:23
benchable6: 2017.01,HEAD for ^13000 { $ = $_ for "/home/bisectable/.bash_history".IO.lines };
benchable6 AlexDaniel, starting to benchmark the 2 given commits
AlexDaniel I guess that was a bit too much… 15:24
brokenchicken Hm, I do see a "test.pl: for lines() {" in [Tux]'s repo, so I guess my hypothesis is right about the slowdown being due to my fix
MasterDuke why would your fix be slower? you even removed a function call
brokenchicken huh? 15:25
benchable6 AlexDaniel, benchmarked the given commits, now zooming in on performance differences
AlexDaniel, ¦«2017.01»:10.0012␤¦«HEAD»:10.0009
AlexDaniel o_o
brokenchicken No, I added an isnull check for *every* pull-one of .lines
timotimo isnull should be rather cheap, though?
AlexDaniel benchable6: 2017.01,HEAD sleep 1 15:26
benchable6 AlexDaniel, starting to benchmark the 2 given commits
AlexDaniel, benchmarked the given commits, now zooming in on performance differences
AlexDaniel, ¦«2017.01»:1.1016␤¦«HEAD»:1.1035
MasterDuke ah, i thought you were talking about the subclassing fix
brokenchicken timotimo: it's nqp::if(nqp::isnull(nqp::getattr(nqp::decont($!handle), IO::Handle, '$!PIO'))
And the slowdown is 3%
AlexDaniel I'm not so sure about that 15:27
no slowdown here: ¦«2017.01»:10.0012␤¦«HEAD»:10.0009
timotimo oh
do you know we have an ifnull op?
oh, wait, i misread your parenthesis there 15:28
AlexDaniel MasterDuke: wait… but isn't it killing it after 10 seconds?
brokenchicken timotimo: yeah, but it returns the not-null thing but I want it to continue stuff
MasterDuke benchable6: 2016.12,HEAD for ^1000 { $ = $_ for "/home/bisectable/.bash_history".IO.lines };
AlexDaniel MasterDuke: so what did it measure exactly?
benchable6 MasterDuke, starting to benchmark the 2 given commits
brokenchicken and return IterationEnd if it is null
MasterDuke but i think if a commit is killed it isn't reported on 15:29
brokenchicken Well. I guess no point in mulling over this right now since IO/* stuff would see some changes anyway
benchable6 MasterDuke, benchmarked the given commits, now zooming in on performance differences
MasterDuke, ¦«2016.12»:9.0497␤¦«HEAD»:8.2722
timotimo wow, it's very fast at the "zooming in" portion of the process 15:30
but man, that's a pretty significant change
was the machine properly idle during the measurements?
MasterDuke well, it's less than 10% diff, so it didn't do any bisecting
brokenchicken FWIW in my checks above the 2734533 is the commit before my changes... 15:31
MasterDuke should i change the message to something like: "..., now bisecting by any >10% performance differences"? 15:33
AlexDaniel MasterDuke: it should not print anything if nothing is being done 15:34
( github.com/perl6/whateverable/issues/62 )
nine Huh? I cannot seem to succeed compiling 2016.12 (with MoarVM and nqp both at 2016.12): X::Multi::NoMatch exception produced no message 15:42
in block <unit> at tools/build/create-moar-runner.pl line 10
Oh, I used MoarVM and nqp master accidentally 15:44
brokenchicken AlexDaniel: I looked through the release day chat logs and it was just a normal release run. So the missing tag is likely not due to a botches release (and if it is, then all of NeuralAnomaly releases are botched :P) 15:45
mst brokenchicken: maybe this one was just ... anomalous 15:46
brokenchicken tips the waiters...
AlexDaniel brokenchicken: I'm not sure I understand
brokenchicken: the fact the tag was not pulled is an issue in the whateverable build script
but what is this:
m: 2017.01 $*PERL.compiler.version.say
camelia rakudo-moar a256ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 032017.017⏏5 $*PERL.compiler.version.say␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modifier…»
AlexDaniel c: 2017.01 $*PERL.compiler.version.say 15:47
committable6 AlexDaniel, ¦«2017.01»: v2016.12.409.g.78980.ed
AlexDaniel ?
c: 78980ed447c $*PERL.compiler.version.say
committable6 AlexDaniel, ¦«78980ed»: v2016.12.409.g.78980.ed
AlexDaniel why is it 2016.12? Am I missing something? 15:48
brokenchicken AlexDaniel: that usually happens when you just do `make install` instead of running Configure.pl again
AlexDaniel: or if the tag is missing
But in my checkout I just do `git pull` and tags get pulled. The one time they didn't get pulled is when I fucked up the release and the tag was not on the same tree as master 15:49
AlexDaniel ooooh, hmmmm
MasterDuke i believe git changed the default pull behavior sometime 15:50
AlexDaniel so all whateverable builds are wrong?
MasterDuke from not pulling tags to pulling tags, so maybe a git version difference?
AlexDaniel well, not very wrong, but just have a wrong version
m: 2016.12 $*PERL.compiler.version.say
camelia rakudo-moar a256ef: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 032016.127⏏5 $*PERL.compiler.version.say␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modifier…»
AlexDaniel c: 2016.12 $*PERL.compiler.version.say 15:51
committable6 AlexDaniel, ¦«2016.12»: v2016.11.278.gb.2.a.3441
AlexDaniel c: 2016.11 $*PERL.compiler.version.say
committable6 AlexDaniel, ¦«2016.11»: v2016.10.317.gf.66.f.8.be
AlexDaniel c: 2016.08 $*PERL.compiler.version.say
brokenchicken 0.o
committable6 AlexDaniel, ¦«2016.08»: v2016.08
AlexDaniel c: 2016.09 $*PERL.compiler.version.say
committable6 AlexDaniel, ¦«2016.09»: v2016.09
AlexDaniel c: 2016.10 $*PERL.compiler.version.say
committable6 AlexDaniel, ¦«2016.10»: v2016.10
AlexDaniel c: all $*PERL.compiler.version.say
committable6 AlexDaniel, gist.github.com/5f2ce77ed3b421ef41...159e48d5cf
brokenchicken weird 15:54
2016.09 and 2016.10 were cut by the bot too
AlexDaniel no-no, that's not your problem I'm pretty sure 15:55
I we rebuilt everything from scratch in 2016.10 or something like that
think
benchable6: HEAD,2016.12 for ^1000 { $ = $_ for "/home/bisectable/.bash_history".IO.lines }; 15:57
benchable6 AlexDaniel, starting to benchmark the 2 given commits
AlexDaniel, benchmarked the given commits, now zooming in on performance differences 15:59
AlexDaniel, ¦«HEAD»:8.0866␤¦«2016.12»:8.8798
AlexDaniel so… according to this it is now faster?
brokenchicken yeah 16:01
benchable6: HEAD,2016.12 for ^1000 { $ = $_ for "/home/bisectable/.bash_history".IO.lines };
benchable6 brokenchicken, starting to benchmark the 2 given commits
brokenchicken, benchmarked the given commits, now zooming in on performance differences 16:03
brokenchicken, ¦«HEAD»:8.2706␤¦«2016.12»:9.0929
MasterDuke benchable6: 2016.12,HEAD for ^1000 { $ = $_ for "/home/bisectable/.bash_history".IO.lines }; 16:05
benchable6 MasterDuke, starting to benchmark the 2 given commits
MasterDuke pretty sure you have to put them in order
brokenchicken Checked out 2016.11 tag on a fresh checkout and when it built reported correct version. Don't see any commits to rakudo/tools between 2016.10 and 2016.11 releases that changed anything that might've messed anything up. So looks like the glitch is not on rakudo side :) 16:06
.oO( I hope )
benchable6 MasterDuke, benchmarked the given commits, now zooming in on performance differences
MasterDuke, ¦«2016.12»:8.9363␤¦«HEAD»:8.1006
brokenchicken There's been a ton of commits since 2016.12, including improvements in MoarVM. I'm not surprised to see it faster 16:07
nine I now have version of Inline::Perl5 that work pre and post lexical_module_loading. But a version that works in both cases still eludes me.
brokenchicken :) 16:15
nine But....I since I need a small change to rakudo anyway, I can just pass a switch to Inline::Perl5::require so it knows when to use the new behavior. 16:16
Not exactly elegant, but that's the nature of backwards compatibility. 16:18
jnthn pmurias: Lexical scoping of QAST blocks is determined by nesting one within the other, though the specifics vary between immediate, declaration, etc. 16:21
pmurias: In the case of defaults in signautres, I think the slow-path (non-lowered) binder does a little trickery to make sure it invokes the default with the right outer, by doing a search on the call stack for the nearest frame that matches the static outer 16:22
pmurias: iirc there's a p6invokeunder or some similar named op involved in this 16:23
nine Ok, now it works pre-lexical_module_load, post-lexical_module_load and in the new world after my change to rakudo :) 16:30
Geth kudo/nom: 4e7ab20471 | (Stefan Seifert)++ | 2 files
Use the same mechanism for merging Perl 5 symbols as for Perl 6

Have Inline::Perl5 create a CompUnit::Handle that contains all relevant symbols and merge them like any other globals instead of relying on side effects and implementation details to get those symbols into the user's name space.
16:32
jnthn That sounds like a nice cleanup :) 16:36
nine Would be even cleaner if I could just drop support for rakudo before this ^^^ commit. But at least with both on current versions I can actually reason about how the hell those symols get to the caller ;) The previous mixture of writing to globals and &EXPORT could become quite confusing. 16:38
AlexDaniel .tell dalek Please switch this bot to Geth 16:40
yoleaux2 AlexDaniel: I'll pass your message to dalek.
nine And now that Inline::Perl5 works well again, I can finally tend to my FOSDEM talk
timotimo fantastic :) 16:46
Geth p: 3f05cfa6f2 | (Zoffix Znet)++ | docs/qast.markdown
Add an example to QAST::WAnt
16:48
mst brokenchicken: that's a weird capitalisation for a class name 17:04
brokenchicken typo
It's QAST::Want
timotimo W Ant 17:05
MasterDuke brokenchicken: not to pile on, but it looks like the rest of the examples use _ in names, you have _ and - 17:06
Geth p: 19e98e5524 | (Zoffix Znet)++ | docs/qast.markdown
Use more consistency MasterDuke++
17:08
MasterDuke brokenchicken++ 17:09
Geth pan style="color: #d55e83">geth: 5f7b13d610 | (Zoffix Znet)++ | lib/Geth/Plugin/GitHub.pm6
Fix channel selection logic

Currently the bot won't send anything if it's not in ANY of the channels the message is meant to go to.
Fix by intersecting message destination channels with channels the bot is in and sending the message to those.
17:37
brokenchicken s/if it's not in ANY/unless it's in ALL/; :) 17:45
Geth ast: e22147d272 | (Daniel Green)++ | S03-operators/repeat.t
Tests for RT #128035

Large repetition values for Str.x should not complain about negative numbers or give an empty string as the result.
Requires Rakudo PR #867 (rakudo/rakudo#867).
19:24
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128035
ast: dc8c29e778 | (Moritz Lenz)++ | S03-operators/repeat.t
Merge remote-tracking branch 'origin/pull/151'

fudge one failing test introduced by this merge request
  # Conflicts:
  #S03-operators/repeat.t
brokenchicken That test should be either made much less specific or be placed into Rakudo's test suite instead. 19:30
Geth ast: 2ce97c49c6 | LLFourn++ | S26-documentation/08-formattingcodes.t
pod FCs no longer have "" around them

a lot of tests in S26-documentation/formattingcodes.t relied on a sole
  `C<foo>` becoming `["",Pod::FormattingCode.new(...),""]`. test have been
changed reflect their absence
19:32
ast: 10ea41c6ad | LLFourn++ | S26-documentation/08-formattingcodes.t
test for FC inside <> inside another FC

  =pod B< < B<foo> > >
ast: c95ef99d37 | (Moritz Lenz)++ | S26-documentation/08-formattingcodes.t
Merge remote-tracking branch 'origin/pull/90'
brokenchicken roast specifies Perl 6 language. "because NQP limit" shouldn't be part of it. Right now it also says we're only allowed to throw a generic exception when that limit is exceeded and we're not allowed to make it work for larger repeat counts....
Oh, and we're not allowed to reword the message in any way. 19:34
moritz dammit, I've been testing the pull requests on a different machine than the one I merged 19:41
so I actually didn't them at all :(
Geth ast: b6e0c555f4 | (Moritz Lenz)++ | S26-documentation/08-formattingcodes.t
Revert "Merge remote-tracking branch 'origin/pull/90'"

I missed the "don't merge yet", and indeed, it breaks things.
19:43
brokenchicken moritz: I do get failures now 19:44
moritz brokenchicken: looking at it...
brokenchicken: in which file?
brokenchicken Bunch of perl5-integration files.... oh wait 19:45
moritz brokenchicken: not my fault :-)
brokenchicken I need to update my Inline::Perl5 I guess
Geth ast: 798d9ba6e4 | (Moritz Lenz)++ | S03-operators/repeat.t
Throw out tests for rakudo-specific behavior

those belong in the rakudo repo, if we want tests for them at all
19:46
brokenchicken Yeah, with updated Inline::Perl5 stresstest passes 19:58
Geth ast/master: 4 commits pushed by moritz++ 20:02
ast: ace6ae4c09 | (Moritz Lenz)++ | S32-io/indir.t
Basic tests for &indir; closes #204
20:07
kudo/nom: 8096da0f04 | (Moritz Lenz)++ | t/spectest.data
Run new &indir tests
20:19
kudo/nom: 072d959360 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Introducing R:It.WhileLoop

Basically the do while foo { bar } functionality. Optimized version of Seq.WhileLoopIter.
20:22
kudo/nom: af49026b35 | (Elizabeth Mattijsen)++ | src/core/Seq.pm
Make do while foo { bar } use R:It.WhileLoop

Making it about 8% faster.
lizmat I would argue that github.com/perl6/roast/blob/master...seq.t#L130 and following, should not be in roast 20:48
they're an implementation detail
brokenchicken Should be removed from docs too docs.perl6.org/routine/from-loop 20:50
lizmat brokenchicken: agree 20:51
jnthn: opinion? ^^^
m: dd do loop ( my int $a; $a < 10; $a++ ) { $a } # /me thinks the warning is incorrect in this case 21:17
camelia rakudo-moar af4902: OUTPUT«(0, 1, 2, 3, 4, 5, 6, 7, 8, 9).Seq␤»
lizmat huh?
m: do loop ( my int $a; $a < 10; $a++ ) { $a }
camelia rakudo-moar af4902: OUTPUT«WARNINGS for <tmp>:␤Useless use of $a in sink context (line 1)␤»
lizmat hmmm... I guess it's correct after all, albeit a bit at a distance 21:18
samcv gonna make radix 50% faster for Nd's shortly :) 21:19
MasterDuke samcv++ 21:21
samcv just gotta run spectest again 21:22
now that i've added some #define's for the Numeric_type's values to the unicode database generation script, so can be stable
MasterDuke ah, you can do *property_int() now? 21:23
samcv yeah 21:25
MasterDuke nice
samcv i guess i could do property_int(general_category), but i'm doing property_int(numeric_type) 21:27
the general category can be sped up when i do the rewrite. we have one enum that holds all the values of general category
what we really want is two, one for the first letter one for the second
jdv79 I'm gonna guess there's no way to up the max threads at runtime, right? 21:31
lizmat jdv79: you can instantiate your own $*SCHEDULER with a different number of threads 21:32
jdv79 o 21:33
at the default it seems my app fails to function
lizmat m: my $*SCHEDULER = ThreadPoolScheduler.new(max_threads => 64)
camelia ( no output )
jdv79 not sure why. i assume the scheduler is using a fifo.
i should probably print stuff.. 21:34
lizmat jdv79: are many threads in await state ?
jdv79 thanks lizmat
there are only 25 or so promisies
lizmat if so, you might want to do "use v6.d.PREVIEW"
jdv79 but if i duck below roughtly 16 it chugs along just fine
lizmat which has non-blocking await 21:35
jdv79 k 21:38
jnthn I'd Seq.from-loop as a fairly useful Seq factory method, along the lines of the many we have on Supply 22:25
*I'd considered
^^ lizmat
So it was certainly deliberately in roast 22:26
lizmat ok, well it felt like an internal method it being codegenned in the while/repeat related actions
jnthn: fwiw, trying to evade Cannot reference undeclared local '__lowered_lex_3225 is driving me pretty crazy 22:27
:-( 22:28
jnthn I tend to consider it a positive when stuff syntax desugars to is available in the desugared form too :) 22:29
How did you try to evade it?
Geth kudo/nom: e922275888 | (Samantha McVey)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp
More awesome errors when people try and use 'is rw' with @ or % sigils

Explain that @ and % sigil things don't need 'is rw' to be writable.
kudo/nom: 91d59822aa | (Samantha McVey)++ | src/Perl6/Metamodel/BOOTSTRAP.nqp
Remove trailing whitespace
kudo/nom: 51ebfb1c93 | (Samantha McVey)++ | tools/lib/NQP/Configure.pm
Make Configure.pl more descriptive about what version we want

If we don't have a new enough NQP version, tell the user the minimum required.
22:30
samcv gfldex++
jnthn I suspect a Optimizer.nqp patch will be needed
lizmat jnthn: atm it feels like: what didn't I try
what isn't helping is that the problem really occurs in the MAST stage 22:31
which is pretty late
jnthn Well yeah, the optimizer assumes it's dealing with well-formed Perl 6 code, and does a transform, which leads to invalid QAST
Which we won't detect until trying to process it
lizmat yeah 22:32
jnthn m: { nqp::handle(my $a := 42, 'NEXT', $a) }
camelia rakudo-moar af4902: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot use variable $a in declaration to initialize itself␤at <tmp>:1␤------> 3{ nqp::handle(my $a := 42, 'NEXT', $7⏏5a) }␤ expecting any of:␤ term␤»
jnthn m: { nqp::handle((my $a := 42), 'NEXT', $a) }
camelia rakudo-moar af4902: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Could not find nqp::handle, did you forget 'use nqp;' ?␤at <tmp>:1␤------> 3{ nqp::handle((my $a := 42), 'NEXT', $a)7⏏5 }␤»
jnthn m: use nqp; { nqp::handle((my $a := 42), 'NEXT', $a) }
camelia rakudo-moar af4902: OUTPUT«===SORRY!===␤Cannot reference undeclared local '__lowered_lex_1'␤»
jnthn It golfs pretty easily at least :)
lizmat yeah, I was very glad to have found that one :-)
it seems connected to binding 22:33
if I assign, the problem goes away, but then I get stuff inside a container and then nqp::eqaddr(...,IterationEnd) doesn't work
m: my $a = IterationEnd; use nqp; say nqp::eqaddr($a,IterationEnd) 22:34
camelia rakudo-moar af4902: OUTPUT«0␤»
lizmat m: my $a := IterationEnd; use nqp; say nqp::eqaddr($a,IterationEnd)
camelia rakudo-moar af4902: OUTPUT«1␤»
jnthn m: use nqp; my $a; { nqp::handle(($a := 42), 'NEXT', $a) }
camelia ( no output )
jnthn Just lifting the decl up a level will prevent the opt, I guess
lizmat in this case it does, more generally it doesn't :-( 22:35
m: my $a = IterationEnd; use nqp; say nqp::eqaddr(nqp::decont($a),IterationEnd)
camelia rakudo-moar af4902: OUTPUT«1␤»
lizmat I guess I could try that
jnthn Do you ever have something more complex in the handle than the variable reference itself? 22:36
In the bit after the NEXT, I mean
lizmat jnthn: yes 22:37
nqp::stmts( stuffthis, stuffthat )
jnthn OK, then there's no easy hack for Perl6::Optimizer
It's doable
But would need to add tracking of what things are seen in a handles branch 22:38
And poison the opts
lizmat feels tricky :-)
jnthn Yeah.
A little
Oh 22:39
Did you try putting a block as the thing after NEXT?
Perhaps directly invoking it?
That'd also poison it
m: use nqp; { nqp::handle((my $a := 42), 'NEXT', $a) }
camelia rakudo-moar af4902: OUTPUT«===SORRY!===␤Cannot reference undeclared local '__lowered_lex_1'␤»
jnthn m: use nqp; { nqp::handle((my $a := 42), 'NEXT', { $a }()) }
camelia ( no output )
jnthn Like that 22:40
lizmat well, putting blocks at some places helps, but comes at an enormous performance impact
so instead of winning 8%, I lose 9% :-(
anyways, I've used up my tuits for today 22:41
good night!
jnthn Yeah, I sure don't have energy to do the Perl6::Optimizer patch today either, I'm afraid... Can see what's needed though. 22:42
'night
brokenchicken night 22:55