AlexDaniel hmmm ok now I see an issue 00:08
greppable6: rakudobrew
greppable6 AlexDaniel, gist.github.com/a5f1e73df558d9085a...901d78209a
Zoffix lulz 00:09
AlexDaniel hm not that bad actually
Zoffix Yeah, 'cause it pulls latest rakudobrew 00:10
AlexDaniel but doc repo hardcodes moar in the path: github.com/perl6/doc/blob/master/....is.yml#L43
Zoffix starts on rakudo.org announce
AlexDaniel nom*
greppable6: \bnom\b
greppable6 AlexDaniel, gist.github.com/c81baa2364c37fd034...63808f4cec
AlexDaniel greppable6: \bmoar-nom\b
greppable6 AlexDaniel, gist.github.com/041e5c48b1ee6ea724...577d2d3ef0
Zoffix Why do so many emails say "[ANNOUNCE]" in the subject instead of "[ANNOUNCEMENT]" ? 00:11
|18d update all certs in rakudo.party
ZofBot Zoffix, Will remind you on 2017-11-13T20:11:36.604420-04:00 about update all certs in rakudo.party
AlexDaniel I'm just a sheeple! I send whatever is given to me by the script! 00:12
hm I guess that's not how you use the word, and I'm just a stupid sheep 00:13
Zoffix AlexDaniel: well I did the same thing. Just always wondered :) 00:14
"! [remote rejected] nom -> nom (protected branch hook declined)"
Zoffix tries to bypass
AlexDaniel I think you'll need to submit a pull request
and probably someone else will have to approve it :D
Zoffix I already committed :)
AlexDaniel :(
but I don't see any commit 00:15
Geth rakudo/nom: 1251f771c4 | (Zoffix Znet)++ | tools/build/gen-cat.nqp
Display notice that `nom` was renamed

The message is actually displayed twice: for 6.c setting and 6.d setting, but I figure that's good 'nuf and don't gotta be perfect.
Twice is good.
AlexDaniel what did you do by the way?
Zoffix ZofBot: I'm a 1337 hax0r. No protections can stop me! 00:16
ZofBot Zoffix, ' 'Sing,' said the agent
Zoffix ^_^
timotimo Zoffix: FFR, a very big portion of nqp ops are tested in the nqp repo's t folder, surely there's a test for read_fhb that makes it work 00:17
Zoffix timotimo: noted. I found the way to do it by reading src/IO file in nqp :)
timotimo what did i mean by FFR? 00:19
AlexDaniel ok, interestingly now you cannot just merge a PR into nom
because it needs a review! :) 00:20
that's not perfect but good enough
Zoffix timotimo: "For Future Reference" 00:21
timotimo ah!
i thought it should have been "for the record"
ugexe do all PRs have to be changed to target master now?
existing PRs
AlexDaniel ugexe: you just click “edit” and change nom to master 00:22
that's it
someone can go through all 46 and do that, but I can't be assed because you can't merge into nom anyway 00:23
at least not easily
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make sure we don't use nqp::clone 00:35
travis-ci.org/rakudo/rakudo/builds/293197756 github.com/rakudo/rakudo/compare/f...b576ba7054
Zoffix ⚠️⚠️⚠️⚠️⚠️⚠️⚠️ ❗❗❗❗ ❕❕❕❕ 00:36
NOTICE: Main Development Branch Renamed from “nom” to “master”: rakudo.org/2017/10/27/main-developm...to-master/
⚠️⚠️⚠️⚠️⚠️⚠️⚠️ ❗❗❗❗ ❕❕❕❕
MasterDuke Zoffix: "be means" 00:37
Zoffix Thanks. Fixed 00:38
MasterDuke Zoffix++, AlexDaniel++, samcv++
BenGoldberg m: say 1.0/998001 00:47
camelia 0.0000010
BenGoldberg m: printf '%12f', 1.0/998001
camelia 0.000001
BenGoldberg m: printf '%.12f', 1.0/998001
camelia 0.000001002003
BenGoldberg m: printf '%.80f', 1.0/998001
camelia 0.00000100200300400501000000000000000000000000000000000000000000000000000000000000
BenGoldberg m: printf '%.80f', 1.0/81 00:50
camelia 0.01234567901234570000000000000000000000000000000000000000000000000000000000000000
BenGoldberg m: printf '%.80f', 1.0/99**2
camelia 0.00010203040506070800000000000000000000000000000000000000000000000000000000000000
BenGoldberg m: printf '%.80f', FatRat.new(99**2, 1) 00:53
camelia 9801.00000000000000000000000000000000000000000000000000000000000000000000000000000000
BenGoldberg m: printf '%.80f', FatRat.new(1, 99**2)
camelia 0.00010203040506070800000000000000000000000000000000000000000000000000000000000000
BenGoldberg m: say FatRat.new(1, 99**2).base-repeating: 10
camelia (0. 000102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969799)
BenGoldberg m: say FatRat.new(1, 999**2).base-repeating: 10
camelia (0. 0000010020030040050060070080090100110120130140150160170180190200210220230240250260270280290300310320330340350360370380390400410420430440450460470480490500510520530540550560570580590600610620630640650660670680690700710720730740750760770780790800810…
BenGoldberg m: say Rat.new(1, 999**2).base-repeating: 10 00:54
camelia (0. 0000010020030040050060070080090100110120130140150160170180190200210220230240250260270280290300310320330340350360370380390400410420430440450460470480490500510520530540550560570580590600610620630640650660670680690700710720730740750760770780790800810…
BenGoldberg m: say Rat.new(1, 9999**2).base-repeating: 10
camelia (0. 0000000100020003000400050006000700080009001000110012001300140015001600170018001900200021002200230024002500260027002800290030003100320033003400350036003700380039004000410042004300440045004600470048004900500051005200530054005500560057005800590060006…
BenGoldberg m: say Rat.new(1, 5**2).base-repeating: 5 00:55
camelia (0.01 )
BenGoldberg m: say Rat.new(1, 5**2).base-repeating: 6
camelia (0. 01235)
BenGoldberg m: say Rat.new(1, 10**2).base-repeating: 11 00:56
camelia (0. 012345678A)
BenGoldberg m: say Rat.new(1, 0xFF**2).base-repeating: 16 00:57
camelia (0. 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7…
tbrowder hi, i just saw the note about rakudo rename of main branch nom to master. i am deep into work on a pod PR branch off of nom. what should i do when it’s ready for a PR? do i need to do anything special now since i rebuild often on my PR branch? 01:32
AlexDaniel tbrowder: chances are there's nothing you should do 01:37
tbrowder: you PR will be from your nom to rakudo's master 01:38
yeah, that's it. When you click “pull request” you'll just choose master 01:41
you can choose nom and we will change it to master ourselves.
(this is what we'll do for existing PRs anyway)
the change is so minor that I'm really surprised that we got to it now and not earlier 01:42
the only issue right now is people using rakudobrew with hardcoded moar-nom path 01:55
well, and also that all devs have to adapt
tbrowder thank you 01:59
AlexDaniel ===SORRY!=== Object of type IO in QAST::WVal, but not in SC 02:12
ಠ_ಠ
Zoffix AlexDaniel: what's that from? 02:13
AlexDaniel my 260 line script, right now not sure what exactly causes it 02:14
Zoffix Ah ok
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Turns out we can nqp::clone after all 02:17
travis-ci.org/rakudo/rakudo/builds/293203502 github.com/rakudo/rakudo/compare/6...aa32c961e1
AlexDaniel :| 02:21
hehe, the NOTICE is shown 5 times I think 02:27
Zoffix Should be just twice
It's shown when a settings is generated 02:28
AlexDaniel well, I just had to press enter five times for five notices… :)
ok now again
yeah, two times, and around 5 times before that 02:29
Zoffix You got a bug in your rakudo and it keeps recompiling and fails and tries again
(guessing)
AlexDaniel succeeded just fine
Zoffix cra[
when `rakudobrew`ing, the notice just slides through. It doesn't pause 02:30
AlexDaniel that was from rakudobrew
Zoffix Ok, I think it stopped to wait a second time (newline char hanging around from ENTER from running `rakudobrew build blah` for the first one?) 02:31
Ah, OK, I see that script is used for Other Things too
to build nqp
AlexDaniel let's not ask to press ENTER maybe?
that's probably too early 02:32
Zoffix Then what's the point of showing the message?
AlexDaniel meh… good point 02:33
ugexe maybe not all tooling is ready to deal with interaction required
Zoffix Interaction isn't required. Anything that uses nom shouldn't be using it. 02:34
ugexe thats what deprecation messages usually point out yes 02:35
AlexDaniel I was thinking that if something is still using nom then it'll just get a good stable version
ugexe for instance: travis is backed by rakudobrew
AlexDaniel and once people notice they'll switch
Zoffix yes, and failures will actually alert users to fix their stuff 02:36
ugexe users usually want notice if its possible 02:37
AlexDaniel fuck. I think something is broken 02:38
alright, let's see if someone else can reproduce it
use Image::Magick:from<Perl5>; sub MAIN(IO $foo) {} 02:39
MasterDuke nice. converting Int.new to use my new nqp::fromI_I passes spectest
AlexDaniel for that you need ‘libimage-magick-perl’ package if you're using debian
or whatever, you can install Image::Magick perl5 module any way you like
so I get: 02:40
===SORRY!===
Object of type IO in QAST::WVal, but not in SC
and that was working just fine right before the release?
Zoffix ugexe: we got keys to both travis perl6 setup and rakudobrew. I think we can sneak in some env var to disable notice's blockage (I'm adding a switch right now) 02:41
ugexe yes, thats certainly one way. it would have been nice if we had thought this through more is my point. 02:42
Zoffix yeah :) 02:43
AlexDaniel the message that requires user input should be thought through, the branch switch by itself is harmless…
ugexe we don't know this. it ignores any automation anyone has setup that we don't know about 02:44
Geth rakudo/nom: 4fca947436 | (Zoffix Znet)++ | tools/build/gen-cat.nqp
Revert "Display notice that `nom` was renamed"

This reverts commit 1251f771c4085557bccf3dc4c0b33458e74b0c79.
  irclog.perlgeek.de/perl6-dev/2017-...i_15360592
02:45
AlexDaniel I don't get it. If you have nom hardcoded, then you'll be using nom. The only way it can break is if you use the default branch and blindly assume that it is “nom” 02:46
Zoffix goes to bed
ugexe yes everything is probably fine, but if we aren't aware that it -could- have been problematic then i'd say we jumped the gun
AlexDaniel argh…
no we did the right thing. If we start thinking about improbable chances then it will go on for several extra years 02:48
ugexe breaking build systems is a sure fire ticket to piss off developers
care should be taken around these things 02:49
AlexDaniel facepalms
the only difference is the default branch you get
which affects nothing
oh, that you get when you clone *initially* 02:50
so in order for it to break you'd have to be cloning stuff from scratch regularly, *and* having “nom” hardcoded in some impossible way 02:51
ugexe my initial thought is switching for 6.d would have made more sense, but i havent given this much thought beyond the last 30 minutes
AlexDaniel /o\ 02:52
how is the language version related to the default branch of a freaking compiler 02:53
ok enough.
Zoffix .hug ZofBot
huggable hugs ZofBot
ugexe ok enough what?
AlexDaniel enough nonsense
Zoffix For 6.d: we could intitute a policy about things like these. 02:54
Geth 6.d-prep: 69c81dfee2 | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/README.md
TODO: Define More Concrete Policies For Deprecations/Changes with Large Impact
02:57
AlexDaniel fwiw how exactly rakudobrew is supposed to adapt is a good question 02:59
and that can be given some thought while the rest is already switching 03:00
Geth nqp: MasterDuke17++ created pull request #378:
Add the new coerce_II op as fromI_I
03:19
rakudo: MasterDuke17++ created pull request #1217:
Use the new nqp::fromI_I in Int.new
03:22
travis-ci Rakudo build passed. Aleks-Daniel Jakimenko-Aleksejev '[release] Bump VERSION to 2017.10' 03:23
travis-ci.org/rakudo/rakudo/builds/293402644 github.com/rakudo/rakudo/compare/2...c6ed2b5b40
AlexDaniel hmm it seems that “Object of type IO in QAST::WVal, but not in SC” issue is not that new 03:30
anyway, good * everyone, here's something to play with: perl6 -e 'use JSON:from<Perl5>; sub foo(IO $foo) {}' 03:32
ugexe `use JSON:from<Perl5>; sub foo(IO::Path $foo) { }` ===SORRY!=== Error while compiling -e Invalid typename 'IO::Path' in parameter declaration. at -e:1 03:43
m: use JSON:from<Perl5>; sub foo(IO::Path $a) { } 03:49
camelia 5===SORRY!5=== Error while compiling <tmp>
Invalid typename 'IO::Path' in parameter declaration.
at <tmp>:1
------> 3use JSON:from<Perl5>; sub foo(IO::Path7⏏5 $a) { }
AlexDaniel star: use JSON:from<Perl5>; sub foo(IO::Path $a) { } 03:50
camelia ===SORRY!===
Please install Inline::Perl5 for Perl 5 support.
ugexe i wonder if a perl5 IO / IO::Path namespace is escaping its proper scope 03:56
m: use JSON:from<Perl5>; sub foo(Channel $a) { }
camelia ( no output )
ugexe nine: ^ might be of interest 04:00
travis-ci Rakudo build passed. Zoffix Znet 'Merge pull request #1215 from rakudo/zoffer-post-release 04:38
travis-ci.org/rakudo/rakudo/builds/293409356 github.com/rakudo/rakudo/compare/e...7e7b1d0ffc
Rakudo build passed. Aleks-Daniel Jakimenko-Aleksejev '⚠ “nom” → “master” 05:27
travis-ci.org/rakudo/rakudo/builds/293419389 github.com/rakudo/rakudo/compare/b...0babb81e6b
Rakudo build errored. Zoffix Znet 'Display notice that `nom` was renamed 06:04
travis-ci.org/rakudo/rakudo/builds/293432299 github.com/rakudo/rakudo/compare/b...51f771c408
buggable [travis build above] ✓ All failures are due to: timeout (3 failures).
[Tux] Rakudo version 2017.10-4-g4fca94743 - MoarVM version 2017.10-1-g213fc774
csv-ip5xs1.247 - 1.330
csv-ip5xs-2014.197 - 14.714
csv-parser11.960 - 12.558
csv-test-xs-200.437 - 0.471
test12.185 - 12.314
test-t3.159 - 3.199
test-t-2059.614 - 61.442
test-t-20 --race20.596 - 21.681
06:41
stmuk TAP::Harness fails tests for me now 07:59
Geth rakudo: c15e80de19 | (Elizabeth Mattijsen)++ | src/core/IterationBuffer.pm
Streamline IterationBuffer a bit

  - .elems and .push are no longer multis
  - give AT-POS its own proto just like BIND-POS
   - no other AT-POS will work anyway
  - make sure AT-POS/BIND-POS only take definite Ints
08:20
lizmat . 08:32
hmmm... I can t/spec/S17-lowlevel/cas-loop-int.t to segfault quite reliable in test 4 when run in conjunction with a spectest 08:48
*reliably
abut 1/4 times 08:49
Geth rakudo: b849622ee2 | (Elizabeth Mattijsen)++ | src/core/native_array.pm
Make .sum on native num arrays about 11x faster

  - on a 5 element num array
  - could not do that for native int arrays, as ints can overflow
  - should make the ThreadPoolScheduler supervisor leaner
   - as it calls .sum on a native num array about 100x / sec
stmuk TAP::Harness seems OK in the release .. odd 08:53
tbrowder hi, in my upcoming table pod PR i will add a pod table debug capability to Pod.nqp to be turned on by an environment variable. i will advertise it to users in the docs. my choice at the moment is either NQP_POD_TABLE_DEBUG or RAKUDO*. any thoughts? 09:19
Geth rakudo: e513f19dfe | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
Streamline ThreadPoolScheduler!total-workers

  - make sure we don't box/unbox unneccesarily
  - add "is raw" so that we don't box/unbox on return
   - this appears to make the return from sub about 20% faster
   - when assigning to a native
09:23
lizmat the last two commits appear to shave off about 2.5 msecs / second of the supervisor loop
*off of
which, on my machine, is now at 37 msecs / second (when not doing anything specifically) 09:28
jnthn lizmat: PLEASE do not nqp::-op concurrency code
lizmat jnthn: why ? 09:29
jnthn Because I find it a lot harder to follow
And concurrency code is already hard enough
lizmat so revert e513f19dfe ? 09:30
jnthn Well, I guess that one isn't so bad as it's just adding numbers together 09:31
nine By now lizmat++ probably reads nqp ops better than plain English. But that's not true for the rest of us :)
lizmat nine: yeah, you got a point there :-)
jnthn But some of the queue selection stuff elsewhere...
lizmat yeah, gotcha 09:32
jnthn: would it be ok to replace the loop { } in XWorker by an nqp::while(1,...) ?\ 09:38
that shouldn't affect readability
and it looks like the overhead of loop { } is quite significant
$ 6 'my int $a; use nqp; loop { nqp::if(nqp::iseq_i(($a = nqp::add_i($a,1)),1000000), exit) }' 09:39
real0m0.322s
$ 6 'my int $a; use nqp; nqp::while(1,nqp::if(nqp::iseq_i(($a = nqp::add_i($a,1)),1000000), exit))'
real0m0.169s
also the superviser loop btw
nine So what does loop {} do, that nqp::while(1, ...) doesn't that makes it so slow? 09:41
lizmat I have no idea
nine Maybe phaser handling? 09:42
lizmat looks like sinking 09:43
nine Yeah, because apart from that it literally compiles to an nqp::while(1, ...) 09:44
lizmat looks like I won't be able to do it on the supervisor loop, as it has a CATCH block in it 09:45
stmuk whats the status of non-blocking IO? 09:46
nine Oh, I think it's actually invocation of the loop's block that eats the time there. 09:51
I guess we could get away with throwing away a QAST::Block and use it's contents directly in cases when there are no lexicals in the block and &?BLOCK is not accessed 09:53
lizmat --profile shows sink taking 18% of CPU in the loop case, and none in the nqp::while case 09:54
jnthn stmuk: Non-blocking IO - we've non-blocking sockets and processes, which is the main places you'd want to have it. 10:00
stmuk OK thanks I'll update star README to that effect 10:01
Zoffix tbrowder: is the env var going into rakudo's repo? Then RAKUDO_* makes more sense as that's what all our other non-PERL6_ env vars have: docs.perl6.org/programs/00-running 10:10
lizmat jnthn: changing the loop in the workers from loop { self!run-one } to nqp::while(1, self!run-one ) shaves off about 2% of the test-t-20 race benchmark 10:14
jnthn Cool. Let's improve loop { } code-gen then. 10:15
tbrowder yes, it’s in rakudo’s repo, so RAKUDO* it shall be...thanks. btw, thanks for the doc ref. i keep looking a “debugging” to find the list of env vars and can’t find them...i’ll fix that.
lizmat afk& 10:16
stmuk pretends to himself that S11-modules/nested.t always passes 10:45
Zoffix |15d What happened with? www.reddit.com/r/perl6/comments/78...l/doydt90/ 10:48
ZofBot Zoffix, Will remind you on 2017-11-11T06:48:00.016652-04:00 about What happened with? www.reddit.com/r/perl6/comments/78...l/doydt90/
Zoffix New funding opportunity 😄😄
stmuk isn't there a better unicode version of ++? 10:50
;)
Zoffix :)
lizmat expects chromatic to be the scorned lover to make sure that the donation will not happen 10:51
tadzik m: our $name = "Perl"; $name++; say $name 11:01
camelia Perm
yoleaux 00:39Z <AlexDaniel> tadzik: plz github.com/tadzik/rakudobrew/pull/127
tadzik Perm. It's here to stay.
AlexDaniel`: cheers
lizmat tadzik o/ 11:03
jnthn nine: I assume I need to look at github.com/rakudo/rakudo/blob/mast....nqp#L1943 ??
tadzik lizmat: o/
nine lizmat: that's what I'd do
lizmat do we have some type of AST dump facility in nqp ?? apart from --target=ast ? 11:06
nine lizmat: QAST nodes do have a dump method
returns a string
lizmat ok
jnthn Note that --target=optimize (what we get after the optimizer worked at it) is also worth a look 11:08
lizmat pretty sure we should be able to handle that at codegen time, no ? 11:11
jnthn Which "that"? 11:16
lizmat finding out whether we can get rid of the sink at codegen time, rather than at optimize time 11:21
ah, ok I see what you mean 11:22
jnthn oops, I forgot lunch 11:23
bbiab
lizmat m: class A { method sink { die } }; loop { A.new }
camelia Died
in method sink at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat ok, so how *do* we figure out that we can drop the sink in 'loop {}' if a class could have its own sink with side-effects ? 11:25
I mean, generally
afk again& 11:27
AlexDaniel nine: where should I report 「use JSON:from<Perl5>; sub foo(Channel $a) { }」? Is it a problem of Inline::Perl5 or rakudo? 12:06
oops not that one 12:07
m: use JSON:from<Perl5>; sub foo(IO::Path $foo) { }
camelia 5===SORRY!5=== Error while compiling <tmp>
Invalid typename 'IO::Path' in parameter declaration.
at <tmp>:1
------> 3use JSON:from<Perl5>; sub foo(IO::Path7⏏5 $foo) { }
AlexDaniel this ↑
Zoffix I think it's already reported 12:12
This one: rt.perl.org/Ticket/Display.html?id...et-history 12:13
Or maybe another one in the similar vein
$ cat Foo.pm 12:15
package IO; 1;
$ perl6 -e 'use lib:from<Perl5> <.>; use Foo; say IO::Path'
Could not find symbol '&Path'
in block <unit> at -e line 1
c: HEAD BEGIN "/tmp/zzzzzzzz".IO.mkdir.add("Foo.pm6").spurt: 「class IO {}」; use lib "/tmp/zzzzzzzz"; use Foo; say IO::Path 12:17
committable6 Zoffix, ¦HEAD(e513f19): «(Path)»
Zoffix OK, nm. Looks like rakudo's issues when one of core namespaces is used is differen
m: $*TMPDIR.add("Foo.pm").spurt: 「package IO; 1」; use lib:from<Perl5> $*TMPDIR.absolute; say IO::Path 12:29
camelia Could not find symbol '&Path'
in block <unit> at <tmp> line 1
Zoffix "one file" golf :) 12:30
m: use lib:from<Perl5> $*TMPDIR # another LTAness; it don't like IO::Path while Rakudo's `use lib` likes it 12:31
camelia ===SORRY!===
Operation "eq": no method found,
left argument in overloaded package Perl6::Object,
right argument has no overloaded magic at /usr/lib/perl5/5.18.2/x86_64-linux-thread-multi/lib.pm line 24.
AlexDaniel is going crazy 12:41
I'm 100% sure that I was using IO() in a parameter with some inline::perl5 previously and it worked fine 12:42
because it was working 1 day ago
but I tested on 2017.09 and I get exactly the same behavior
hurr 12:43
Geth synopsebot: 30bec48d43 | (Zoffix Znet)++ (committed using GitHub Web editor) | lib/SB/Plugin/GitHub.pm6
Watch for `#foo` issue references from commit messages
12:54
roast: 67d9ffecee | (Zoffix Znet)++ (committed using GitHub Web editor) | README.md
s/experimental/proposed/;

Also: bot test #123
12:56
AlexDaniel Zoffix: that's pretty cool 12:59
Geth synopsebot: 122dc184a5 | (Zoffix Znet)++ (committed using GitHub Web editor) | lib/SB/Plugin/RT.pm6
Handle 404 RT ticket pages gracefuler
13:06
synopsebot: 5fb72da145 | (Zoffix Znet)++ (committed using GitHub Web editor) | lib/SB/Plugin/GitHub.pm6
Fix Issue regex

Also disallow space before '#' in "R #foo" style
13:17
Geth_ ¦ rakudo: Fixes #123 and RT#123465 13:18
synopsebot RT#123465 [open]: rt.perl.org/Ticket/Display.html?id=123465 [BUG] /+/ is invalid as a literal regex, but causes an infinite loop when passed in as an indirect subrule call in Rakudo 13:19
RAKUDO#123 [closed]: github.com/rakudo/rakudo/pull/123 For infix:<ne>, use nqp::isne_s instead of !eq
Geth_ :)
Zoffix m: if "1" ~~ /(\d)/ -> $ (Str() $_) {.say} 13:21
camelia Cannot find method 'say': no method cache and no .^find_method
in block <unit> at <tmp> line 1
[Coke] #123 closed - it was closed in 2013... 13:36
Zoffix m: 「2013」.comb.grep(?+*).sort.join.say 13:51
camelia 123
Zoffix \o\ \o/ /o/
patrickz For a module I'm creating at the moment I have a tester.p6 script for manual testing. In what folder should that go? both /bin and /t seem wrong. /resources? 13:52
DrForr patrickz: If it's something only you will really need, I'd look at xt/ 13:53
[Coke] examples/ ?
patrickz Ah, examples sounds good! 13:54
oh, wrong channel btw....
DrForr Shouldn't matter, given traffic levels ATM. 14:20
Zoffix m: 「2013」.comb.Array.rotate.[1,3,2].join.say 14:57
camelia 123
Zoffix m: .[.grep: ?+*].join.say with 「2013」.comb.List.rotate 14:59
camelia 123
Zoffix ZofBot: coincidence? I think not!
ZofBot Zoffix, OK, then the solution I suggested will probably do it
Zoffix Ok, I'll use your solution then.
AlexDaniel: so your PR made `rakudobrew build moar` build `master` branch is that correct? Just wanted to ensure whether to update the notice on rakudo.org the default is `master` now 15:34
AlexDaniel Zoffix: ah yes 15:35
github.com/tadzik/rakudobrew/commi...c457747a18 15:36
Zoffix Also, I don't get it… there are TWO PRs with the same changes that say "merged" on both: github.com/tadzik/rakudobrew/pull/128/files and github.com/tadzik/rakudobrew/pull/127/files
AlexDaniel so it does, indeed, build master by default, so you get “moar-master”
it looks like you can merge same changes :)
nine AlexDaniel: that's already reported as github.com/niner/Inline-Perl5/issues/99
AlexDaniel nine: ah-ha! OK, thanks! 15:37
Geth star/master: 10 commits pushed by (Steve Mynott)++
review: github.com/rakudo/star/compare/f1a...9bd2678ef9
15:56
stmuk pl6anet.org/drop/rakudo-star-2017.10-RC0.tar.gz 15:58
Zoffix w00t 16:08
I notice `perl6` executable sometimes doesn't get created. Looks like happens when you got a compilation error, then fix ti 16:11
(compilation error in rakudo sauce I mean)
And I'm talking about our build process; not the RC candiate :D 16:12
ugexe ive gotten into a strange situation where I did not have perl6 built, and I could not do any make commands as they failed running a perl6 command for deleting leftover files 16:16
Zoffix looks at irclog.perlgeek.de/perl6/2017-10-27#i_15363232 16:17
We really should fix it 'cause otherwise "safe call" op ain't that safe.
And I'll take a messy "Nil" guts over "broken" any day. Make a generator script that just picks all the Cool, Any, Mu methods 16:18
m: say Mu.can: 'Str'
camelia (Str)
Zoffix Also `.?Str` is kinda pointless since Mu provides it
Also, `.?` remains not-quite safe since it doesn't guarantee you can actually call the method. I don't really care whether the object CAN do a method, I care about whether I can call it with my args and not have anything explode :/ So IMO `dispatch:<.?>` should be doing `.cando` check too 16:19
(in which case the `Nil` won't need to be messy 'cause that won't be needed anymore)
Geth 6.d-prep: 17bccb9d3b | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/FEATURES.md
Remove buffer size change

This was already done in 6.c
16:24
6.d-prep: 949c520f4a | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/FEATURES.md
Remove "Really implement hyper/race on Iterables"

Already done in 6.c
16:25
6.d-prep: 931a3b3afb | (Zoffix Znet)++ (committed using GitHub Web editor) | TODO/FEATURES.md
TODO: Make `.?` safecall actually safe
16:31
Zoffix .tell TimToady FWIW there's proposal for 6.d to make `.?` op perform `.cando` check to it'd also check if args can be used. github.com/perl6/6.d-prep/blob/mas...ually-safe 16:32
yoleaux Zoffix: I'll pass your message to TimToady.
stmuk wonders why he has bought a book on BCPL 16:41
Geth rakudo: c9360203eb | (Zoffix Znet)++ | 2 files
Improve X::ControlFlow::Return error

Don't say we're outside of "any routine" when we're inside of one and the error is 'cause we're out of dyn scope.
Fixes #1216
16:49
synopsebot RAKUDO#1216 [closed]: github.com/rakudo/rakudo/issues/1216 [LTA] Improve "Return outside of routine" error
Zoffix This is handy… You can close issues and link tests from commit messages
This is unhandy… I didn't yet commit tests but github closed the issue via commit message having what could be just descriptive text 16:50
Another downfail: roast references reference *an* implementation's tracker 16:51
Geth roast: f9fb8c9ac2 | (Zoffix Znet)++ | S04-statements/return.t
Test `return` out of dyn scope show useful error

  github.com/rakudo/rakudo/issues/1216
16:55
AlexDaniel I knew about that, but couldn't really decide if it's good or not 16:56
I think it also understands “resolves #…” a few other words
ilmari help.github.com/articles/closing-i...-keywords/
AlexDaniel it might encourage people to write tests, or at least make them not claim that the issue is resolved when really it's not :) 16:57
but sometimes it's really annoying, yeah 16:58
Zoffix wow there's a ton of services in "service" settings. They even got an IRC service 16:59
You can even close Rakudo issues from Roast commits. Would be sweet if you could disable closage from Rakudo commits and yet still have it from roast commits :D 17:03
.oO( have a bot auto-reopen such closures )
AlexDaniel Zoffix: alright, so what should we do this time for the squashathon? Roast issues? 17:27
or were there any better ideas
squashable6: next 17:28
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in 6 days and ≈16 hours (2017-11-04 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
Geth rakudo: 6ac53e4276 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
Mark all subs/methods not returning anything

  - hopefully allowing optimizers to do their thing
17:36
Zoffix AlexDaniel: docs 18:19
AlexDaniel again? :S we had it two months ago 18:20
Zoffix So?
It was good. People liked it. It's easy to do. Nice entry point for beginners. People could do roast issues last month for all the TESTNEEDED tickets but weren't that keen to. 18:21
AlexDaniel can't argue with that, it was awesome
but I was thinking we could go with at least 3 different things without repeating… but that's kinda arbitrary 18:22
Geth rakudo: 2cd568f989 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
Get some more mileage out of push-worker()

  - should improve readability
18:38
rakudo: 6bf5892125 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
Only tweak-workers if there's something to tweak

  - tweak-workers should now only be called if there's something in the queue
  - by moving the test outside, we don't need to call tweak-workers
  - makes test-t 20 race about 3% faster
19:12
jnthn lizmat++ # 6bf5892125 is a nice, clean, win :) 19:48
lizmat :-) 19:49
jnthn Will have some tuits for moar Perl 6 stuff next week. 19:51
lizmat Cool! :-)
jnthn If that qqx hang thingy ain't resolved, will look at that
Then maybe will see if I can get .race.reduce implemented, as it's probably one of the most valuable missing ones
lizmat jnthn : re loop { } optimization, I don't see how we can know that we don't need to sink in the general case :-(
at least not without deep introspection 19:52
jnthn Is the sink the only significant difference?
jnthn was assuming there might be others, but maybe not...
lizmat yes
jnthn Did the profile show the sink call as being inlined?
lizmat JIIted yes, not OSR'd 19:53
if that's what you mean
jnthn No, I mean inlined, though I think that info only shows up on the callsites tab
uh, call stack tab
lizmat NaN (NaN%) 19:54
timotimo it'd have an entry on the far right side in the caller's piece
lizmat JIT compiled: 99.45%
that's what I said: NaN% inlined calls 19:55
SETTING::src/core/Mu.pm:11
timotimo can youg ive me the code you're profiling? 19:56
lizmat my int $a; use nqp; loop { nqp::if(nqp::iseq_i(($a = nqp::add_i($a,1)),1000000), exit) } 19:57
Geth rakudo: 6de66df719 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
Don't shift/push the samples array

  - just index % 5 into it since we have a fixed size array
  - rename LAST_UTILS_NUM to NUM_SAMPLES for more readability
19:58
lizmat shave another 1.5% off of test-t 20 race 20:00
timotimo oh? shifting and pushing shouldn't be very bad performance-wise 20:05
i would have expected % 5 to be more expensive tbh :)
lizmat well, if we increase the sample array to 8, we could just mask 20:06
or reduce to 4
timotimo not sure if that's actually any faster though :D 20:18
lizmat timotimo: a separate benchmark shows that you're right 20:19
now why am I seeing better results in test-t then ? 20:20
ah, found it: 20:21
m: my num @a = 42e0 xx 5; my num $a = 42e0; for ^1000000 { @a.shift; @a.push($a) }; say now - INIT now 20:22
camelia 0.84355598
lizmat m: my num @a = 42e0 xx 5; my int $i; my num $a = 42e0; for ^1000000 { @a[++$i % 5] = $a }; say now - INIT now
camelia 0.4188883
lizmat that's about 2x as fast
timotimo wow
AlexDaniel pretty cool 20:23
lizmat oddly enough, if I do .push(42e0), the shift/push case is faster
so I assume there's some wonkiness with @a.push($a)
perhaps boxing/unboxing ?
for the parameter? 20:24
timotimo possible
boxing/unboxing would be visible as "lots more gc runs" in the profiler
lizmat yup: 84 / 29 garbage collections 20:25
timotimo can you try nqp::push and nqp::shift?
well, with _n 20:26
lizmat difference in allocations is 1M Num + 1M NumLexRef vs 2M Num
m: my num @a = 42e0 xx 5; my num $a = 42e0; use nqp; for ^1000000 { nqp::shift_n(@a); nqp::push_n(@a,$a) }; say now - INIT now 20:28
camelia 0.1178767
lizmat quite a bit faster
timotimo bleh :)
lizmat but jnthn specifically asked me to not use nqp codes
timotimo to further your intuition of arrays and shifting/pushing, our arrays are implemented as an array of storage slots and a "what's the first element" and "how many elements are used" numbers 20:29
when you shift and push you end up just wiggling those two numbers forwards until it hits the current "end of allocated array" at which point it moves all data to the front and continues there 20:30
lizmat ok, fair enough
timotimo if you make the array a noticable bit bigger than how many slots you're using, it'll do the copying less often
lizmat timotimo: but that's just it: this runs 100x second 20:31
timotimo but with a 5 element array it's probably not noticable anyway
like, that still fits into a single cache line :)
lizmat how about pop / push ?
wouldn't that not increase the size? 20:32
ah, but then we wouldn't have a running average
timotimo hm, not entirely sure
yes, indeed
that'd only change the last measurement over and over
lizmat so, if a process is running for 20 seconds, then this array will have grown to 2K elems in memory 20:33
will still showing nqp::elems == 5 20:34
timotimo oh no it doesn't grow
lizmat ah?
timotimo when it hits the end it moves the stuff to the beginning
then there's space again
aha 20:35
lizmat hmmm... a simple nqp::setelems(200)/nqp::setelems(5)
timotimo unshift will make 8 slots of space in the beginning if the "start of array" is at 0
but shift and push will just move the storage stuff further and further away from 0 until it hits the end, then it goes back to the beginning
i'd not make it too big
lizmat hmmm.. is that moving thread safe ? 20:36
timotimo nope
none of the push/pop/shift/unshift ops ever are
lizmat no, I mean when it hits the end and it starts moving stuff internally 20:37
the storage stuff
timotimo it's safer than resizing is
i.e. while it's moving stuff over another accessing code won't be accessing invalid memory
lizmat ah, the queues are ConcBlockingQueue 20:38
timotimo of course :)
Zoffix fwiw doesn't look like $per-core-util is used for anything other than storing a value that isn't a per-core util but a rescaled number. perhaps it'd make sense to just move the computation directly where it's being assigned into the array? 20:42
oops
Zoffix was scrolled up 20:43
Geth rakudo: 6aa150db03 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
Use shift/push again

  - but as nqp::shift/nqp::push, timotimo++ for pointing out
  - don't think it suffers too much in readability from the original shift/push
  - indexing solution was about 2x as fast as the original shift/push
  - this is again 4x faster than the indexing solution
  - shaves off about 1% of test-t 20 race
21:34
lizmat hope jnthn will forgive me
timotimo: I just noted that nqp::getrusage is not getting JITted 21:50
that would be a great win, as that is being called 100x per second
shouldn't be too hard to JIT, as it only generates a 4 element nqp::list_i 21:51
Geth rakudo: 09e038cd88 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm
Make getrusage-total a sub

  - we only need it in the supervisor loop
  - and it doesn't do anything with self
  - more for readability and scoping than anything else
22:00
jnthn lizmat: fwiw, it's control flow (instead of loop, while, if, etc.) being rewritten in nqp:: ops that I find hard to follow 22:07
Individual ops (shift, push, etc.) are fine enough
yoleaux 22:07Z <lizmat> jnthn: 'time while perl6 -e 'my $a = 0; await start { for ^10000 -> $i { cas $a, -> $b { $b + $i } } } xx 4'; do :; done' segfaults for me within the second generally when run in conjunction with a "TEST_JOBS=8 make spectest"
lizmat so I think there's still a gremlin in cas() and or atomicints in general 22:08
dogbert17 suspects the SEGV is triggered here: github.com/MoarVM/MoarVM/blob/mast...on.c#L2746 22:24
jnthn dogbert2: Was just patched; see #moarvm :) 22:25
lizmat is about to bump nqp/rakudo
dogbert17
.oO(I'm way too slow)
Geth nqp: 8b21489dee | (Elizabeth Mattijsen)++ | tools/build/MOAR_REVISION
Bump Moar to get GC fix, jnthn++
22:26
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...3-g9ad1f5f
dogbert17 this explains why the line number in the src didn't quite match with gdb :)
Geth rakudo: 322dcc9795 | (Elizabeth Mattijsen)++ | tools/build/NQP_REVISION
Bump NQP to get GC fix in Moar

  - related to cas() issues under stress, but no definite fix yet :-(
  - also seems to stability of GH #1202 code
22:37
synopsebot RAKUDO#1202 [open]: github.com/rakudo/rakudo/issues/1202 [severe] Async qqx sometimes hangs or dies ( await (^5).map({start { say qqx{… …} } }) )
lizmat calls it a day 22:45
dogbert17 good night lizmat