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] |
|
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 |