Zoffix | Ah, k, think I see what's up with the hang | 00:01 | |||||||||||||||||||||||||||||||||
timotimo | i can't go completely without | 00:04 | |||||||||||||||||||||||||||||||||
i also can't read books, that also hurts, for example | |||||||||||||||||||||||||||||||||||
but i've reduced my keyboard/mouse time significantly. will try to decrease even more | |||||||||||||||||||||||||||||||||||
bedtime now. seeya! | |||||||||||||||||||||||||||||||||||
Zoffix | \o | ||||||||||||||||||||||||||||||||||
On 2017.09 t/spec/S17-channel/stress.t takes 7s | 00:14 | ||||||||||||||||||||||||||||||||||
On HEAD it basically hangs and eats all RAM on 4-core/4GB box. With my patch it takes 29s | |||||||||||||||||||||||||||||||||||
Ohhh.. yeah, now I see what it's doing | 00:15 | ||||||||||||||||||||||||||||||||||
(the test) | 00:16 | ||||||||||||||||||||||||||||||||||
interesting... stage parse was from 100s all day but now it's consistently mid-80s | 00:18 | ||||||||||||||||||||||||||||||||||
solved half the problem on channel/stress test | 00:20 | ||||||||||||||||||||||||||||||||||
Gotta go to bed. Slept like 8hr in the past 48hr | 00:21 | ||||||||||||||||||||||||||||||||||
ZOFFLOP: t/spec/MISC/bug-coverage-stress.t | 00:33 | ||||||||||||||||||||||||||||||||||
(test 1) | |||||||||||||||||||||||||||||||||||
Geth | rakudo/nom: e95eb42c91 | (Zoffix Znet)++ | src/core/ThreadPoolScheduler.pm Test for deadlock heuristic more Check for deadlock even if we have some completed jobs but still have a ton of total uncompleted ones. t/spec/S17-channel/stress.t on 4-core/4GB RAM VM takes: - On 2017.09, 7s to run ... (8 more lines) |
00:44 | |||||||||||||||||||||||||||||||||
Zoffix | .tell jnthn S17-channel/stress.t was hanging on HEAD when run on its own (and box doesn't have load). I fixed that with github.com/rakudo/rakudo/commit/e95eb42c91 if you wanted to check it. The first half of S17-channel/stress.t is still 3x slower than what it were on 2017.09. I looked but don't really see any problems and it might be just how it works with the new scheduler. Here's the code: | 00:47 | |||||||||||||||||||||||||||||||||
yoleaux | Zoffix: I'll pass your message to jnthn. | ||||||||||||||||||||||||||||||||||
Zoffix | gist.github.com/zoffixznet/70cb09f...1755575459 you can use committable to see timing diff: c: HEAD,2017.09 gist.githubusercontent.com/zoffixz...a25d/p6.p6 | ||||||||||||||||||||||||||||||||||
.tell jnthn gist.github.com/zoffixznet/70cb09f...1755575459 you can use committable to see timing diff: c: HEAD,2017.09 gist.githubusercontent.com/zoffixz...a25d/p6.p6 | |||||||||||||||||||||||||||||||||||
yoleaux | Zoffix: I'll pass your message to jnthn. | ||||||||||||||||||||||||||||||||||
Zoffix | Well, looks like we're release-ready to me. | 00:48 | |||||||||||||||||||||||||||||||||
Zoffix drops to bed | |||||||||||||||||||||||||||||||||||
FWIW, native_array.pm is largely a generated file: github.com/rakudo/rakudo/blob/nom/...#L338-L357 | 01:41 | ||||||||||||||||||||||||||||||||||
ZOFFLOP: t/spec/S17-procasync/kill.t | 02:00 | ||||||||||||||||||||||||||||||||||
ZOFVM: Files=1283, Tests=152771, 150 wallclock secs (21.29 usr 3.24 sys + 3217.30 cusr 165.19 csys = 3407.02 CPU) | 02:01 | ||||||||||||||||||||||||||||||||||
Geth | rakudo/nom: f3b497c85e | (Zoffix Znet)++ | 2 files Fix accidentally-edited auto-generated part The auto-generated part was accidentallyu edited[^1] directly. Propagate the change to generator script. I'm only assuming the same change was needed (or at least is not detrimental) to other types that are now included. [1] github.com/rakudo/rakudo/commit/71...ea889ab144 |
02:04 | |||||||||||||||||||||||||||||||||
Zoffix | .ask timotimo you commited the original commit. Would you double check that the change propagated to other native array types is OK and doesn't harm anything: github.com/rakudo/rakudo/commit/f3b497c85e | 02:05 | |||||||||||||||||||||||||||||||||
yoleaux | Zoffix: I'll pass your message to timotimo. | ||||||||||||||||||||||||||||||||||
Geth | rakudo/nom: a85c8d486c | (Zoffix Znet)++ | 2 files Fix .STORE leaving behind elements on native arrays - Occurs when non-Iterable value is assigned - Occurs when native-Iterable is assigned |
02:07 | |||||||||||||||||||||||||||||||||
roast: ab9668d5e7 | (Zoffix Znet)++ | S09-typed-arrays/native.t Test .STORE on native arrays Rakudo fix: github.com/rakudo/rakudo/commit/a85c8d486c |
02:08 | ||||||||||||||||||||||||||||||||||
Zoffix | man, that's been broken for year and a half :S people don't use native arrays much it seems | ||||||||||||||||||||||||||||||||||
Zoffix re-drops to bed | |||||||||||||||||||||||||||||||||||
Geth | rakudo/ugexe-patch-1: 5a5482e77d | (Nick Logan)++ (committed using GitHub Web editor) | src/core/CompUnit/RepositoryRegistry.pm Fix multiple options passed to include specs Previously passing multiple options would result in the first option set (in %options) containing all the values for all the keys. |
03:07 | |||||||||||||||||||||||||||||||||
rakudo: ugexe++ created pull request #1213: Fix multiple options passed to include specs |
03:08 | ||||||||||||||||||||||||||||||||||
pmurias | to we want to specific/unify across backends the exact way floating point numbers are stringified? | 08:01 | |||||||||||||||||||||||||||||||||
yoleaux | 01:54Z <MasterDuke> pmurias: are you planning to implement nqp::eqatim and nqp::eqaticim for js and jmv? that would be great if so, then this block (repeated a couple times later) could be removed: github.com/rakudo/rakudo/blob/nom/...#L355-L395 | ||||||||||||||||||||||||||||||||||
pmurias | moar takes 15 digits of precision (and chops of trailing zeros) | 08:03 | |||||||||||||||||||||||||||||||||
lizmat | Files=1229, Tests=75749, 315 wallclock secs (14.77 usr 5.40 sys + 2181.34 cusr 211.85 csys = 2413.36 CPU) | 08:13 | |||||||||||||||||||||||||||||||||
Geth | nqp: ff9b9ff1f7 | pmurias++ | src/vm/js/nqp-runtime/container-specs.js [js] Coerce native refs to string more correctly |
08:20 | |||||||||||||||||||||||||||||||||
nqp: 119826e200 | pmurias++ | src/vm/js/nqp-runtime/coercions.js [js] Coerce num to strings more like MoarVM does |
|||||||||||||||||||||||||||||||||||
pmurias | MasterDuke: I think I'll have to implement those ops too | 08:21 | |||||||||||||||||||||||||||||||||
MasterDuke: I think if we are going that to have all the backends coexisting properly we need to minimize the amount of backend specific #ifdefs | 08:22 | ||||||||||||||||||||||||||||||||||
AlexDaniel` | good * everyone | 08:42 | |||||||||||||||||||||||||||||||||
lizmat | AlexDaniel` o/ | 08:43 | |||||||||||||||||||||||||||||||||
looks like perl6book.com needs an update again | 08:48 | ||||||||||||||||||||||||||||||||||
www.springer.com/in/book/9781484232279 | |||||||||||||||||||||||||||||||||||
deeptext.media/using-perl6 | 08:49 | ||||||||||||||||||||||||||||||||||
Geth | rakudo/nom: 2c4868b859 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm Remove one division from supervisor loop Since the number of elements sampled is now always constant, we can factor that into the per-core calculation at compile time, so that we only need to sum it at runtime. |
08:50 | |||||||||||||||||||||||||||||||||
lizmat | afk for a few hours& | 08:55 | |||||||||||||||||||||||||||||||||
|Tux| | This is Rakudo version 2017.09-513-g2c4868b85 built on MoarVM version 2017.09.1-622-g6e9e89ee | 09:08 | |||||||||||||||||||||||||||||||||
csv-ip5xs 1.141 - 1.165 | |||||||||||||||||||||||||||||||||||
test 11.469 - 11.557 | |||||||||||||||||||||||||||||||||||
test-t 3.064 - 3.078 | |||||||||||||||||||||||||||||||||||
csv-parser 11.653 - 11.662 | |||||||||||||||||||||||||||||||||||
AlexDaniel` | this looks better, why? | 09:12 | |||||||||||||||||||||||||||||||||
anyway, so I'll kick off the toaster in a few moments, and hopefully we'll get somewhere soon :) | |||||||||||||||||||||||||||||||||||
please report any critical problems if you see anything | 09:13 | ||||||||||||||||||||||||||||||||||
|Tux| | Second run | ||||||||||||||||||||||||||||||||||
test-t 3.097 - 3.099 | |||||||||||||||||||||||||||||||||||
AlexDaniel` | oh. That's getting noisy :) | 09:14 | |||||||||||||||||||||||||||||||||
|Tux| | you don't want the timings posted here anymore? | ||||||||||||||||||||||||||||||||||
AlexDaniel` | |Tux|: of course | 09:17 | |||||||||||||||||||||||||||||||||
|Tux|: but any chance of increasing the input size? Like test-t-big or something? | 09:18 | ||||||||||||||||||||||||||||||||||
or is that what other numbers are for? :) | |||||||||||||||||||||||||||||||||||
|Tux| | oké, I'll add a new test once we get under 3 :P | 09:20 | |||||||||||||||||||||||||||||||||
AlexDaniel` | deal | 09:21 | |||||||||||||||||||||||||||||||||
:) | |||||||||||||||||||||||||||||||||||
|Tux| | my reason to stick to 10000 rows is to have the graphs make sense. If I up the counts, the time will rise | ||||||||||||||||||||||||||||||||||
AlexDaniel` | sure, but keep this test and just add another one | 09:22 | |||||||||||||||||||||||||||||||||
|Tux| | doing so right now | ||||||||||||||||||||||||||||||||||
AlexDaniel` | |Tux|++ | ||||||||||||||||||||||||||||||||||
lizmat | [Tux]: could you also show the result of --race ? | 09:35 | |||||||||||||||||||||||||||||||||
aka, start a test-t-race column ? | |||||||||||||||||||||||||||||||||||
nine | A larger input size would make sense for csv-ip5xs, too. There's a lot of startup in that second. | 09:37 | |||||||||||||||||||||||||||||||||
|Tux| | lizmat, I'll try | 09:39 | |||||||||||||||||||||||||||||||||
Zoffix | pmurias: FWIW IIRC moar is missing one digit of precision. There are several bug reports involving that. And yeah, IMO we should have unified stringification of nums across backends. One reason is the strignification is used in .WHICH, which affects stuff like sets (and Moar's chopping currently introes a bug into sets with nums that differ by small amount) | 10:06 | |||||||||||||||||||||||||||||||||
s/one digit/some/; # I didn't check if it's just one | 10:07 | ||||||||||||||||||||||||||||||||||
m: my ($a, $b) = set(1e0), set(1e0 + 4e-15); say $a ~~ $b, $a.keys »≅« $b.keys; say 1e0.WHICH; say (1e0 + 4e-15).WHICH | 10:09 | ||||||||||||||||||||||||||||||||||
camelia | True(False) Num|1 Num|1 |
||||||||||||||||||||||||||||||||||
Zoffix | From here: rt.perl.org/Ticket/Display.html?id...xn-1501046 | ||||||||||||||||||||||||||||||||||
MasterDuke: so what's the plan for Int.new with yor MoarVM patch? :) | 10:10 | ||||||||||||||||||||||||||||||||||
Also, I'm not seeing any Int.new's in S02-types/set.t FWIW :/ | 10:13 | ||||||||||||||||||||||||||||||||||
ilmari | m: int.new.say | ||||||||||||||||||||||||||||||||||
camelia | Cannot find method 'perl' on object of type NQPMu in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||
ilmari | m: Int.new.say | 10:14 | |||||||||||||||||||||||||||||||||
camelia | 0 | ||||||||||||||||||||||||||||||||||
Zoffix | oops | ||||||||||||||||||||||||||||||||||
m: int32.new.say | |||||||||||||||||||||||||||||||||||
camelia | Cannot find method 'perl' on object of type NQPMu in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||
Zoffix | m: int32.new | 10:15 | |||||||||||||||||||||||||||||||||
camelia | Cannot find method 'perl' on object of type NQPMu in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||
Zoffix | m: int32.new(42) | ||||||||||||||||||||||||||||||||||
camelia | ( no output ) | ||||||||||||||||||||||||||||||||||
Zoffix | did I break it | ||||||||||||||||||||||||||||||||||
bisect: int32.new | |||||||||||||||||||||||||||||||||||
bisectable6 | Zoffix, Bisecting by output (old=2015.12 new=2c4868b) because on both starting points the exit code is 1 | ||||||||||||||||||||||||||||||||||
Zoffix, bisect log: gist.github.com/959c50f6319ebe5bda...ee07fbfbfe | |||||||||||||||||||||||||||||||||||
Zoffix, (2016-09-27) github.com/rakudo/rakudo/commit/22...0f14b9c05c | |||||||||||||||||||||||||||||||||||
Zoffix | bisect: old=2017.09,new=HEAD int32.new | ||||||||||||||||||||||||||||||||||
bisectable6 | Zoffix, Bisecting by output (old=2017.09 new=2c4868b) because on both starting points the exit code is 1 | ||||||||||||||||||||||||||||||||||
Zoffix, bisect log: gist.github.com/9860493594aae4bfd0...5c3c7ab83c | 10:16 | ||||||||||||||||||||||||||||||||||
Zoffix, (2017-10-14) github.com/rakudo/rakudo/commit/9d...457fb442cf | |||||||||||||||||||||||||||||||||||
Zoffix | c: 2017.09 int32.new | ||||||||||||||||||||||||||||||||||
committable6 | Zoffix, ¦2017.09: «No such method 'BUILDALLPLAN' for invocant of type 'Perl6::Metamodel::NativeHOW' in block <unit> at /tmp/CJOeuqa3Pb line 1 «exit code = 1»» | ||||||||||||||||||||||||||||||||||
pmurias | bartolin: when I find bugs in rakudo.js that have the same cause in rakudo.jvm should I write them down somewhere? | 10:17 | |||||||||||||||||||||||||||||||||
AlexDaniel | c: 2017.09..HEAD int32.new.say | ||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, Too many commits (514) in range, you're only allowed 500 | ||||||||||||||||||||||||||||||||||
AlexDaniel | c: 2017.09..HEAD~14 int32.new.say | ||||||||||||||||||||||||||||||||||
Zoffix | ah, k, easy fix | ||||||||||||||||||||||||||||||||||
(for those watching: it's currently emitting deprecation warning; the fix would be just to make it work right until deprecation expires and we make .new throw) | 10:19 | ||||||||||||||||||||||||||||||||||
The bot just has deprecations turned off | |||||||||||||||||||||||||||||||||||
committable6 | AlexDaniel, «hit the total time limit of 180 seconds» | 10:20 | |||||||||||||||||||||||||||||||||
AlexDaniel slaps committable6 | |||||||||||||||||||||||||||||||||||
Zoffix | ZOFVM: Files=1283, Tests=152776, 161 wallclock secs (23.05 usr 3.48 sys + 3475.94 cusr 178.61 csys = 3681.08 CPU) | 10:32 | |||||||||||||||||||||||||||||||||
AlexDaniel | oops. Touching the dates in the release guide ahead of time is a bad idea. releasable6 thinks that the next release is in 23 days :D | 10:35 | |||||||||||||||||||||||||||||||||
buggable | New CPAN upload: Sparrowdo-0.0.35.tar.gz by MELEZHIK cpan.metacpan.org/authors/id/M/ME/....35.tar.gz | 10:36 | |||||||||||||||||||||||||||||||||
Geth | rakudo/nom: 9554a97c50 | (Zoffix Znet)++ | 2 files Throw useful error with .new with no args on natives This form never worked, so we don't need to bother passing it via deprecation period. Just start throwing same error all forms will be throwing once deprecation period expires. |
10:38 | |||||||||||||||||||||||||||||||||
pmurias | shouldn't cpan uploads be on #perl6 instead of #perl6-dev? | 10:48 | |||||||||||||||||||||||||||||||||
Zoffix | pmurias: they're there: irclog.perlgeek.de/perl6/2017-10-26#i_15356066 | 10:52 | |||||||||||||||||||||||||||||||||
|Tux| | extended run: gist.github.com/Tux/c6d0bd1f1c0a13...ce065d9661 | 10:53 | |||||||||||||||||||||||||||||||||
Geth | rakudo/nom: 5d4ca586b0 | (Aleks-Daniel Jakimenko-Aleksejev)++ | docs/ChangeLog Remaining ChangeLog entries Deliberately not logged: 7277aa54 d10d6977 3f595acf 50be159f 76017036 50324bb0 b19e352e eb1febd5 ce7e5444 794235a3 f3b497c8 |
10:54 | |||||||||||||||||||||||||||||||||
|Tux| | the -20 extension means 20 times as big | ||||||||||||||||||||||||||||||||||
Zoffix | buggable: speed 100 :2 | 10:56 | |||||||||||||||||||||||||||||||||
buggable | Zoffix, ▃▅▂▄↑▃ ▂ ▂▃▄▂▁ ▅▄ ▃ ↑ ▁ ▇ ▂ ▄▂ ▄↑ ↑▅▂▃▃▇ ↑█ dates: 2017-10-01–2017-10-26 | ||||||||||||||||||||||||||||||||||
Zoffix, ██████▆▅▇▇██████████▇█▆▅▇▅▆▆█▇▃▅▃▅▂▂▂▃▂▃█▇█▆▆▆█▃▁▃▃▄██▃▃▅▅██▆▇██████▆▄▇▇██▃▅▂▂▃▃▃▃▂▃▆▃▂▃▄▃▃▂▅▃▃▃▃▅▂▃ range: 3.044s–3.631s; speed: 6% faster (widths: 10/3) | |||||||||||||||||||||||||||||||||||
|Tux| |
|
||||||||||||||||||||||||||||||||||
Zoffix | neat | ||||||||||||||||||||||||||||||||||
Zoffix | |Tux|++ | ||||||||||||||||||||||||||||||||||
|Tux| | that will be the new report | ||||||||||||||||||||||||||||||||||
AlexDaniel | awesome | ||||||||||||||||||||||||||||||||||
Zoffix | m: say 56.192/20 | ||||||||||||||||||||||||||||||||||
camelia | 2.8096 | ||||||||||||||||||||||||||||||||||
|Tux| | so, all -20's have been added | ||||||||||||||||||||||||||||||||||
AlexDaniel | |Tux|: will we have a graph for it also? like tux.nl/Talks/CSV6/speed4.html | 10:57 | |||||||||||||||||||||||||||||||||
|Tux| | which includes csv-test-xs-20 which is perl5 + Text::CSV_XS | ||||||||||||||||||||||||||||||||||
No graph (yet). That will need a new log, a new cron job and time to automate this | 10:58 | ||||||||||||||||||||||||||||||||||
and $work is pulling | |||||||||||||||||||||||||||||||||||
pmurias | Zoffix, MasterDuke: re div_I optimization shouldn't that also check if the type is the same? | ||||||||||||||||||||||||||||||||||
AlexDaniel | kk | ||||||||||||||||||||||||||||||||||
|Tux| | the new list is ordered by run-time of the first run | ||||||||||||||||||||||||||||||||||
Zoffix | pmurias: good point | 11:01 | |||||||||||||||||||||||||||||||||
m: use nqp; class Meow is Int {}; dd nqp::div_I(<42>, 1, Meow).^name | |||||||||||||||||||||||||||||||||||
camelia | "Meow" | ||||||||||||||||||||||||||||||||||
pmurias | nqp-m: say(nqp::eqaddr(1, 1)); say(nqp::eqaddr(20, 20)); | 11:06 | |||||||||||||||||||||||||||||||||
camelia | 1 0 |
||||||||||||||||||||||||||||||||||
pmurias | btw. rakudo actually depends on 1 and 0 being cached for parameterizing Foo:U to work properly | ||||||||||||||||||||||||||||||||||
jnthn | That sounds fragile... | 11:12 | |||||||||||||||||||||||||||||||||
yoleaux | 00:47Z <Zoffix> jnthn: S17-channel/stress.t was hanging on HEAD when run on its own (and box doesn't have load). I fixed that with github.com/rakudo/rakudo/commit/e95eb42c91 if you wanted to check it. The first half of S17-channel/stress.t is still 3x slower than what it were on 2017.09. I looked but don't really see any problems and it might be just how it works with the new scheduler. Here's the code: | ||||||||||||||||||||||||||||||||||
00:47Z <Zoffix> jnthn: gist.github.com/zoffixznet/70cb09f...1755575459 you can use committable to see timing diff: c: HEAD,2017.09 gist.githubusercontent.com/zoffixz...a25d/p6.p6 | |||||||||||||||||||||||||||||||||||
jnthn | It should probably declare a couple of symbols | 11:14 | |||||||||||||||||||||||||||||||||
Instead of using 0/1 | |||||||||||||||||||||||||||||||||||
lunch & | 11:15 | ||||||||||||||||||||||||||||||||||
pmurias | jnthn: maybe it should just use True and False instead of 1 and 0? | 11:41 | |||||||||||||||||||||||||||||||||
ahh it's nqp not perl6 | 11:42 | ||||||||||||||||||||||||||||||||||
Geth | rakudo/nom: 5f73579b23 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files Generated announcement and fixed date |
11:58 | |||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: did you do anything special to contributors list? | 12:03 | |||||||||||||||||||||||||||||||||
I don't see my special treatment applied despite code still being there... wondering if it's a bug in rakudo somewhere. | |||||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix: actually yes, it looked weird that your name is last so I put it first, is it wrong? | 12:04 | |||||||||||||||||||||||||||||||||
haha | |||||||||||||||||||||||||||||||||||
Zoffix | lol | ||||||||||||||||||||||||||||||||||
timotimo | m) | ||||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: doesn't matter anymore | ||||||||||||||||||||||||||||||||||
But when I was release manager, I placed myself last if I were first, so people wouldn't think I put myself first on purpose while releasing or something :) | |||||||||||||||||||||||||||||||||||
Geth | rakudo/nom: 10e7af0091 | (Zoffix Znet)++ (committed using GitHub Web editor) | tools/contributors.pl6 Zoffix isn't speshul anymore |
12:05 | |||||||||||||||||||||||||||||||||
AlexDaniel | today I received an email with subject “why delay ?” | 12:10 | |||||||||||||||||||||||||||||||||
there was no body | |||||||||||||||||||||||||||||||||||
Zoffix | heh | 12:11 | |||||||||||||||||||||||||||||||||
Geth | rakudo/nom: 4b60df8f84 | pmurias++ | src/Perl6/Metamodel/DefiniteHOW.nqp Parameterize using type objects instead of native ints Native int pointer equality in parameterization depends on int caches and as such is fragile. |
12:12 | |||||||||||||||||||||||||||||||||
AlexDaniel | obviously that ↑ won't be toasted :) | 12:13 | |||||||||||||||||||||||||||||||||
Zoffix | m: my int $orig = 2; my int $new = Int.new: 2; $new does role Meows {}; say $orig.^name | 12:14 | |||||||||||||||||||||||||||||||||
camelia | Int+{Meows} | ||||||||||||||||||||||||||||||||||
Zoffix | so even with div_I hack don't look like it fully fixes this action-at-a-distance thing | 12:15 | |||||||||||||||||||||||||||||||||
timotimo | well, there you have a native int | ||||||||||||||||||||||||||||||||||
the moment you call the "does" it'll box that into an Int object which it gets from the int cache | 12:16 | ||||||||||||||||||||||||||||||||||
you'll see that $new won't actually have changed at all after that | |||||||||||||||||||||||||||||||||||
Zoffix | Ah ok | ||||||||||||||||||||||||||||||||||
"So I've been away from the Perl 6 scene partly because y'all can't stop fighting about it. One thing I've noticed after reading through these comments: there seems to be more optimism about Perl 6 (yes, name and all) outside the Perl community than what y'all got going on. So smarten up, call it Whatever, something marketable, don't listen to you-know-who and press on. PLEASE." | 12:28 | ||||||||||||||||||||||||||||||||||
+1 :) | |||||||||||||||||||||||||||||||||||
That's from www.reddit.com/r/perl/comments/78l...amed_perl/ | 12:29 | ||||||||||||||||||||||||||||||||||
Zoffix & for $n hours | 12:31 | ||||||||||||||||||||||||||||||||||
ugexe | I like this quote myself: | 12:54 | |||||||||||||||||||||||||||||||||
“BIP: What’s the level of interest for Perl 6 in the Brazil Perl community?” | |||||||||||||||||||||||||||||||||||
“Garu: Quite a lot, actually! We are super excited at the current stage of Perl 6 and what we can achieve with it today. So much so that we have even seen brazilians get into our local Perl community *through* Perl 6, instead of the other way around.” | 12:55 | ||||||||||||||||||||||||||||||||||
DrForr | ugexe: Nod. It looked very positive. | 12:58 | |||||||||||||||||||||||||||||||||
AlexDaniel | errr, there's a segfault in BSON module | 13:00 | |||||||||||||||||||||||||||||||||
it was there since forever I think | |||||||||||||||||||||||||||||||||||
but I can't get it locally for some reason | |||||||||||||||||||||||||||||||||||
toaster catches it two times, once when instlaling BSON and once when installing MongoDB | 13:01 | ||||||||||||||||||||||||||||||||||
RT#132316 is probably exactly about that | 13:02 | ||||||||||||||||||||||||||||||||||
synopsebot | RT#132316 [open]: rt.perl.org/Ticket/Display.html?id=132316 [SEGV] Crash while running program (MongoDB module) | 13:03 | |||||||||||||||||||||||||||||||||
Zoffix | Looks like there's a bunch of branches that likely were recently merged already and can be deleted: github.com/rakudo/rakudo/branches/active | 13:28 | |||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix: feel free to clean it up | 13:31 | |||||||||||||||||||||||||||||||||
Zoffix | I was thinking more: the authors of the branches who already know whether their work was merged can deleted them. | 13:33 | |||||||||||||||||||||||||||||||||
Much easier than me trying to guess. | |||||||||||||||||||||||||||||||||||
travis-ci | Rakudo build failed. Aleks-Daniel Jakimenko-Aleksejev 'Remaining ChangeLog entries | ||||||||||||||||||||||||||||||||||
travis-ci.org/rakudo/rakudo/builds/293088961 github.com/rakudo/rakudo/compare/9...4ca586b0a3 | |||||||||||||||||||||||||||||||||||
buggable | [travis build above] ✓ All failures are due to: GitHub connectivity (1 failure). | ||||||||||||||||||||||||||||||||||
Zoffix | reproed BSON SEGV on HEAD. After second `zef test .` run in the checkout | 13:34 | |||||||||||||||||||||||||||||||||
AlexDaniel | it's not a HEAD issue, it was there since 2017.09 at least | 13:35 | |||||||||||||||||||||||||||||||||
and I'm pretty sure it's even older than that | |||||||||||||||||||||||||||||||||||
Zoffix | ok | ||||||||||||||||||||||||||||||||||
"MoarVM panic: Internal error: invalid thread ID 133073 in GC work pass" | 13:38 | ||||||||||||||||||||||||||||||||||
with while perl6 -Ilib t/300-document.t; do true; done in BSON checkout | |||||||||||||||||||||||||||||||||||
AlexDaniel has hopes that maybe eventually one of the fixes for this kind of issues will sidefix RT#131003 | 13:40 | ||||||||||||||||||||||||||||||||||
synopsebot | RT#131003 [open]: rt.perl.org/Ticket/Display.html?id=131003 [SEVERE][SEGV] Heap corruption when using Gumbo | ||||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix: what did you do to repro it? Does it need extra CPU load? | 13:42 | |||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: nothing special. | 13:43 | |||||||||||||||||||||||||||||||||
I golfed it now to this: gist.github.com/zoffixznet/6d2e8ea...f3103c6b9a The crash seems to happen in "subtest "Big, wide and deep nesting"; strangely, if I remove previous tests, I get errors about doing stuff with `Any` despite not really seeing previous tests making anything the "deep nesting" test needs | 13:45 | ||||||||||||||||||||||||||||||||||
An eagle-eye's view tells me that module is just doing thread-unsafe things. I see a bunch of stuff like `Promise.start( { @!values[$idx] = ` | 13:51 | ||||||||||||||||||||||||||||||||||
AlexDaniel | ahhhhh | 13:52 | |||||||||||||||||||||||||||||||||
Zoffix | Maybe it's fine, but I just see Promises all over the place, so I wouldn't be surprised if it's a problem in the module and not rakudo | ||||||||||||||||||||||||||||||||||
AlexDaniel | that could be it, yeah | ||||||||||||||||||||||||||||||||||
toaster looks clean, appveyor is green, travis was green some time ago and should be ok now | 14:04 | ||||||||||||||||||||||||||||||||||
Zoffix | \o\ \o/ /o/ | 14:05 | |||||||||||||||||||||||||||||||||
AlexDaniel | releasable is doing the local release now, and I'm not expecting to see any issues there (spectests should be fine) | ||||||||||||||||||||||||||||||||||
so I'll just wait for s_a_m_c_v and we'll get the thing going | |||||||||||||||||||||||||||||||||||
jdv79 | Zoffix: thanks! i think you fixed my bug. at least my golf can run for 10 mins now.. i'll try the real app in situ before i close out my ticket. | ||||||||||||||||||||||||||||||||||
Zoffix | w00t cool :) | 14:06 | |||||||||||||||||||||||||||||||||
AlexDaniel | what bug is that by the way? | ||||||||||||||||||||||||||||||||||
jdv79 | i would like to understand the exact issue. i have yet to examine your commits though. | ||||||||||||||||||||||||||||||||||
AlexDaniel | ticket id? | 14:07 | |||||||||||||||||||||||||||||||||
Zoffix | jdv79: which ticket is it? | ||||||||||||||||||||||||||||||||||
jdv79 | AlexDaniel: RT#132287 i think | ||||||||||||||||||||||||||||||||||
synopsebot | RT#132287 [open]: rt.perl.org/Ticket/Display.html?id=132287 [REGRESSION][CONC] stall/block in async heavy code | ||||||||||||||||||||||||||||||||||
jdv79 | yup | ||||||||||||||||||||||||||||||||||
which got morphed into GH#1202 i think | |||||||||||||||||||||||||||||||||||
AlexDaniel | huh! | ||||||||||||||||||||||||||||||||||
synopsebot | GH#1202 [open]: github.com/rakudo/rakudo/issues/1202 [severe] Async qqx sometimes hangs or dies ( await (^5).map({start { say qqx{… …} } }) ) | ||||||||||||||||||||||||||||||||||
jdv79 | anyway, have to repark for the second time today. nyc and cars don't mix:( | ||||||||||||||||||||||||||||||||||
AlexDaniel | well, 1202 still hangs here | 14:08 | |||||||||||||||||||||||||||||||||
m: say 42 | |||||||||||||||||||||||||||||||||||
camelia | 42 | ||||||||||||||||||||||||||||||||||
lizmat | 1202 is still not fixed 100% | ||||||||||||||||||||||||||||||||||
I only managed to cover the race conditions in Perl 6 code | |||||||||||||||||||||||||||||||||||
(I think) | |||||||||||||||||||||||||||||||||||
I'm still not sure about: nqp::clone being threadsafe, and nqp::elems | 14:09 | ||||||||||||||||||||||||||||||||||
if nqp::clone is not, some more tuning of the ThreadPoolScheduler is needed | |||||||||||||||||||||||||||||||||||
(which I could do relatively quickly) | |||||||||||||||||||||||||||||||||||
Zoffix | jdv79: my fixes might've fixed hangs, but I see some comments about crashes and I don't rember fixing anything about crashes | ||||||||||||||||||||||||||||||||||
timotimo | clone is unlikely to be threadsafe | 14:10 | |||||||||||||||||||||||||||||||||
i'd flat-out say it's not | |||||||||||||||||||||||||||||||||||
lizmat | I'll take that as my cue then :-) | ||||||||||||||||||||||||||||||||||
timotimo | if another thread changes its size while clone is going on, bad things happen | ||||||||||||||||||||||||||||||||||
lizmat | but nqp::elems should be ok ? | ||||||||||||||||||||||||||||||||||
timotimo | yes, but whether or not the result is still correct on the next instruction is up to luck | ||||||||||||||||||||||||||||||||||
AlexDaniel | jdv79: indeed, so far no hang here | ||||||||||||||||||||||||||||||||||
lizmat | actually, all the nqp::clones are protected blocks, as are the pushes | 14:11 | |||||||||||||||||||||||||||||||||
hmnmm... | |||||||||||||||||||||||||||||||||||
brb | |||||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix: well, it was bisected to better-sched merge, so that particular part of the issue seems to be resolved indeed | ||||||||||||||||||||||||||||||||||
GH#1202 provides a better way to reproduce the rest of problem I think | 14:12 | ||||||||||||||||||||||||||||||||||
Zoffix | Nothing hangs or crashes for me with `while perl6 -e 'await (^5).map({start { say qqx{echo -n foo $_} } })'; do :; done` even while running spectest on the same box. | 14:25 | |||||||||||||||||||||||||||||||||
AlexDaniel | :( why am I the only one seeing the hang | 14:26 | |||||||||||||||||||||||||||||||||
Zoffix | k, it hung almost right away on my 24-core box | 14:28 | |||||||||||||||||||||||||||||||||
Zoffix tries 64-core :} | |||||||||||||||||||||||||||||||||||
on 24-core: hung once, but doesn't seem to want to hang again | 14:29 | ||||||||||||||||||||||||||||||||||
AlexDaniel | fwiw it hangs within 15 seconds on my 2 core old laptop | 14:30 | |||||||||||||||||||||||||||||||||
Zoffix | 3x hangs. I see a new data point :} | 14:31 | |||||||||||||||||||||||||||||||||
"[SCHEDULER] Supervisor thinks there are 64 CPU cores" i.imgur.com/vztc6Bw.gif :P | 14:34 | ||||||||||||||||||||||||||||||||||
64-core stresstest: Files=1270, Tests=152681, 82 wallclock secs (22.96 usr 3.63 sys + 3710.80 cusr 232.80 csys = 3970.19 CPU) | 14:40 | ||||||||||||||||||||||||||||||||||
t/fudgeandrun ................................... ===SORRY!=== | 14:41 | ||||||||||||||||||||||||||||||||||
Could not find warnings | |||||||||||||||||||||||||||||||||||
huh? | |||||||||||||||||||||||||||||||||||
oh, nm, bad command | |||||||||||||||||||||||||||||||||||
ZOFFLOP: on 64-core: t/spec/S17-procasync/kill.t t/spec/S10-packages/precompilation.t t/spec/S32-io/IO-Socket-Async-UDP.t | 14:42 | ||||||||||||||||||||||||||||||||||
hung on 64 too. Though I bumped await to await (^50) | 14:45 | ||||||||||||||||||||||||||||||||||
ugexe | anyone see an issue with github.com/rakudo/rakudo/pull/1213 ? if i write an advent post on CUR it would require this, otherwise Star would not be able to run the code | 14:48 | |||||||||||||||||||||||||||||||||
Zoffix has no knowledge of that part of code base and has no comments | |||||||||||||||||||||||||||||||||||
ugexe | nine: lizmat: ^ | ||||||||||||||||||||||||||||||||||
although im not sure why it was getting the wrong result to begin with | 14:49 | ||||||||||||||||||||||||||||||||||
%options contains all the right keys, but all the values are associated with a single key | |||||||||||||||||||||||||||||||||||
Geth | rakudo/nom: 5a5482e77d | (Nick Logan)++ (committed using GitHub Web editor) | src/core/CompUnit/RepositoryRegistry.pm Fix multiple options passed to include specs Previously passing multiple options would result in the first option set (in %options) containing all the values for all the keys. |
||||||||||||||||||||||||||||||||||
rakudo/nom: fa69e4a3c5 | lizmat++ (committed using GitHub Web editor) | src/core/CompUnit/RepositoryRegistry.pm Merge pull request #1213 from rakudo/ugexe-patch-1 Fix multiple options passed to include specs |
|||||||||||||||||||||||||||||||||||
lizmat | ugexe: is that an answer :-) (although I was just going by your description of before/after, not necessarily looking at the code) | 14:50 | |||||||||||||||||||||||||||||||||
dogbert2 | Zoffix: wrt t/spec/S17-procasync/kill.t, it's seems to be test #8 which is failing from time to time | ||||||||||||||||||||||||||||||||||
ugexe | lizmat: the best kind of answer | ||||||||||||||||||||||||||||||||||
lizmat | ugexe: you could also consider getting a commit bit ? | 14:52 | |||||||||||||||||||||||||||||||||
:-) | |||||||||||||||||||||||||||||||||||
Zoffix | ugexehas it :) | ||||||||||||||||||||||||||||||||||
ugexe | i have one, but i didn't want to shove that in at the last second myself | ||||||||||||||||||||||||||||||||||
AlexDaniel | good | ||||||||||||||||||||||||||||||||||
:) | |||||||||||||||||||||||||||||||||||
Zoffix | hm, looks like t/spec/S17-supply/syntax.t hang on my buntu box and almost ate all the resources :P killed it in a nick of time after noticing mouse lagging | 14:53 | |||||||||||||||||||||||||||||||||
lizmat is testing a ThreadPoolScheduler without nqp::clone | 14:54 | ||||||||||||||||||||||||||||||||||
so far, it doesn't seem to fix GH #1202 :-( | |||||||||||||||||||||||||||||||||||
synopsebot | GH#1202 [open]: github.com/rakudo/rakudo/issues/1202 [severe] Async qqx sometimes hangs or dies ( await (^5).map({start { say qqx{… …} } }) ) | ||||||||||||||||||||||||||||||||||
jnthn | ...without nqp::clone? | 14:55 | |||||||||||||||||||||||||||||||||
Zoffix | lizmat: does it hang or crash for you? I haven't seen any crashes. Currently tailing the hang issue | ||||||||||||||||||||||||||||||||||
lizmat | crash | ||||||||||||||||||||||||||||||||||
MoarVM panic: Heap corruption detected: pointer 0x10d0fa1e0 to past fromspace | |||||||||||||||||||||||||||||||||||
jnthn | o.O | ||||||||||||||||||||||||||||||||||
Zoffix | Hangs for me here: github.com/rakudo/rakudo/blob/nom/...nc.pm#L338 | ||||||||||||||||||||||||||||||||||
lizmat | note: I'm doing this while a spectest is running | ||||||||||||||||||||||||||||||||||
Zoffix | debug prints in affinity worker makage show it just completing and debug prints after that line never turn up (when it hangs) | 14:56 | |||||||||||||||||||||||||||||||||
lizmat | Zoffix: fwiw, I've seen print / say interfere with multi-threaded issues | 14:58 | |||||||||||||||||||||||||||||||||
nine | Ah lizmat++ beat me to merging that PR | ||||||||||||||||||||||||||||||||||
Geth | rakudo/nom: 6eb576ba70 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm Make sure we don't use nqp::clone - as that's guaranteed to not be threadsafe after all - instead, introduce a "push-worker" sub - which copies the workers safely *and* adds the given worker |
15:03 | |||||||||||||||||||||||||||||||||
jnthn | huh, nqp::clone does exactly that o.O | 15:05 | |||||||||||||||||||||||||||||||||
lizmat | ah? so it *is* threadsafe ?? | ||||||||||||||||||||||||||||||||||
timotimo | jnthn: does clone ask for the elems over and over again? | ||||||||||||||||||||||||||||||||||
jnthn | timotimo: No, but doing that isn't threadsafe either | 15:06 | |||||||||||||||||||||||||||||||||
But worker lists are NEVER meant to be changed | |||||||||||||||||||||||||||||||||||
lizmat | so 6eb576ba70 is unnecessary ? | ||||||||||||||||||||||||||||||||||
jnthn | We only ever install a new one | ||||||||||||||||||||||||||||||||||
Yeah, or at least, if it is, something odd is going on | |||||||||||||||||||||||||||||||||||
lizmat | well, it doesn't fix MoarVM panic: Heap corruption detected: pointer 0x11284eb20 to past fromspace errors | 15:07 | |||||||||||||||||||||||||||||||||
jnthn | Yeah, I'd expect it to make no difference | ||||||||||||||||||||||||||||||||||
lizmat | the code I run: time while perl6 --ll-exception -e 'await (^5).map({start { qqx{echo -n foo $_} } })'; do :; done | ||||||||||||||||||||||||||||||||||
MoarVM panic: Internal error: zeroed target thread ID in work pass # rare one | 15:09 | ||||||||||||||||||||||||||||||||||
Zoffix | For me that code hangs on nqp::spawnprocasync op. And based on my extra debug prints, looks to hang when 2 threads reach for it at the same time | ||||||||||||||||||||||||||||||||||
Geth | rakudo/nom: 2aaa32c961 | (Elizabeth Mattijsen)++ | src/core/ThreadPoolScheduler.pm Turns out we can nqp::clone after all - but keep the nice helper function :-) |
15:13 | |||||||||||||||||||||||||||||||||
ilmari | presumably that does fork+exec, which needs to be _very_ careful with what it does between the two in the child in multi-threaded programs | ||||||||||||||||||||||||||||||||||
calling any non-async-signal-safe function is undefined behaviour | 15:14 | ||||||||||||||||||||||||||||||||||
timotimo | so having a process-wide lock for that seems like a good idea? | 15:16 | |||||||||||||||||||||||||||||||||
lizmat | and something that kills the worker queues ? | 15:17 | |||||||||||||||||||||||||||||||||
(in the child) | |||||||||||||||||||||||||||||||||||
ilmari | that's not really going to help, since anything another thread is doing could deadlock (taking the malloc() lock is a prime example) | ||||||||||||||||||||||||||||||||||
timotimo | we could force a gc before we fork, but that seems expensive and shitty | 15:18 | |||||||||||||||||||||||||||||||||
of course if i had built that "gc-syncup-but-without-gc" mechanism i had been desiring ... :) | 15:20 | ||||||||||||||||||||||||||||||||||
ilmari | I see moarvm uses uv_spawn, which _should_ take care of it | 15:21 | |||||||||||||||||||||||||||||||||
timotimo | can it do everything that's necessary? | 15:22 | |||||||||||||||||||||||||||||||||
ilmari | it does the forking and execing and everything inbetween | ||||||||||||||||||||||||||||||||||
libuv 1.11 has «unix: use async-signal safe functions between fork and exec» in the changelog | |||||||||||||||||||||||||||||||||||
timotimo | oh i thought you said all other threads have to cooperate, too | 15:24 | |||||||||||||||||||||||||||||||||
anyway, bbl | |||||||||||||||||||||||||||||||||||
ilmari | I was talking about the lowest-level fork+exec stuff. there might be higher-level issues as well | 15:25 | |||||||||||||||||||||||||||||||||
Geth | rakudo/nqp-spawnprocasync-debug-prints: e6d32deb17 | (Zoffix Znet)++ | 2 files Stash debug prints |
15:26 | |||||||||||||||||||||||||||||||||
Zoffix | (gonna play with it later tonight; FWIW, swapping affinity workers to general queue did nothing about fixing the hang and it hangs right after two threads print "made envh" one after another) | 15:28 | |||||||||||||||||||||||||||||||||
Zoffix & | |||||||||||||||||||||||||||||||||||
ilmari | Zoffix: at that point I'd try strace | 15:29 | |||||||||||||||||||||||||||||||||
and correlate that output with the syscalls made by uv_spawn | 15:30 | ||||||||||||||||||||||||||||||||||
AlexDaniel | does anybody want something do go in before the release? | ||||||||||||||||||||||||||||||||||
Zoffix | ilmari: thanks. I'll do that | 15:31 | |||||||||||||||||||||||||||||||||
AlexDaniel: I'm good. | |||||||||||||||||||||||||||||||||||
AlexDaniel | to* | ||||||||||||||||||||||||||||||||||
lizmat | AlexDaniel: I'm also good | 15:34 | |||||||||||||||||||||||||||||||||
afk& | 15:52 | ||||||||||||||||||||||||||||||||||
ugexe | bisect: old=2017.07 my %seen of Int is default(0 but role :: { method Str() {'NULL'} }); say Int.new(%seen<not-there>); | 16:01 | |||||||||||||||||||||||||||||||||
bisectable6 | ugexe, Bisecting by output (old=2017.07 new=2aaa32c) because on both starting points the exit code is 0 | ||||||||||||||||||||||||||||||||||
ugexe, bisect log: gist.github.com/ba628acd47123b9771...f96f47ea3f | |||||||||||||||||||||||||||||||||||
ugexe, (2017-09-19) github.com/rakudo/rakudo/commit/08...1a4f5186dd | |||||||||||||||||||||||||||||||||||
Zoffix | Int.new returns a new Int | 16:03 | |||||||||||||||||||||||||||||||||
ilmari | m: say (Int but role :: { method Str() { 'wat' } }).new(42) | 16:09 | |||||||||||||||||||||||||||||||||
camelia | wat | ||||||||||||||||||||||||||||||||||
Zoffix | Int+{whatever}.new returns a new Int+{whatever} :) | ||||||||||||||||||||||||||||||||||
ilmari | yeah | 16:10 | |||||||||||||||||||||||||||||||||
ugexe | m: my %seen of Int is default(0 but role :: { method Str() {"NULL"} }); say int.new(%seen<not-there>); # heh | 16:15 | |||||||||||||||||||||||||||||||||
camelia | NULL | ||||||||||||||||||||||||||||||||||
ilmari | m: int.new("wat").WHAT.say | 16:16 | |||||||||||||||||||||||||||||||||
camelia | (Str) | ||||||||||||||||||||||||||||||||||
ugexe | (to be fair there is a deprecation warning camelia doesn't show) | 16:17 | |||||||||||||||||||||||||||||||||
Zoffix | That's just a deprecation kludge so code relying on natives .new doesn't break. The method will throw eventually | ||||||||||||||||||||||||||||||||||
AlexDaniel | e: int.new("wat").WHAT.say | ||||||||||||||||||||||||||||||||||
evalable6 | (Str) Saw 1 occurrence of deprecated code. ===============================================… |
||||||||||||||||||||||||||||||||||
AlexDaniel, Full output: gist.github.com/4a04b1f45ca5cd1b0d...1f5f52b980 | |||||||||||||||||||||||||||||||||||
Zoffix | So it's not 100% accurate. Just enough to not break stuff | ||||||||||||||||||||||||||||||||||
(it just returns the arg as is) | |||||||||||||||||||||||||||||||||||
"Please use (my int $ = "wat") instead." hehe | 16:21 | ||||||||||||||||||||||||||||||||||
m: (my int $ = "wat") | |||||||||||||||||||||||||||||||||||
camelia | This type cannot unbox to a native integer: P6opaque, Str in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||
Zoffix | This is the code that handles this stuff, FWIW: github.com/rakudo/rakudo/blob/2aaa...#L119-L125 | 16:22 | |||||||||||||||||||||||||||||||||
[Coke] | nine: github.com/perl6/doc/issues/1631 might be up your alley. | 17:24 | |||||||||||||||||||||||||||||||||
AlexDaniel | .tell samcv let me know when you're here | 18:37 | |||||||||||||||||||||||||||||||||
yoleaux | AlexDaniel: I'll pass your message to samcv. | ||||||||||||||||||||||||||||||||||
AlexDaniel | or just cut the release, that works too :) | 18:38 | |||||||||||||||||||||||||||||||||
samcv | AlexDaniel, i'm here | 19:34 | |||||||||||||||||||||||||||||||||
AlexDaniel, will do | 19:39 | ||||||||||||||||||||||||||||||||||
AlexDaniel | cool | ||||||||||||||||||||||||||||||||||
samcv | i'm getting failing tests in t/02-rakudo/09-rakudo-module-debug.t | 20:43 | |||||||||||||||||||||||||||||||||
ugexe | what test is that? | 20:51 | |||||||||||||||||||||||||||||||||
samcv | in rakudo | 20:57 | |||||||||||||||||||||||||||||||||
ugexe | github.com/rakudo/rakudo/tree/nom/t/02-rakudo I dont see 09-rakudo-module-debug.t | 20:58 | |||||||||||||||||||||||||||||||||
samcv | hmm i have that. weird | 20:59 | |||||||||||||||||||||||||||||||||
anyway never mind then | |||||||||||||||||||||||||||||||||||
Zoffix | m: dd (<a b>, <c d e>)».uc | 21:45 | |||||||||||||||||||||||||||||||||
camelia | ($("A", "B"), $("C", "D", "E")) | ||||||||||||||||||||||||||||||||||
Zoffix | Kinda weird it's returning containerized lists | 21:46 | |||||||||||||||||||||||||||||||||
(will change that, unless it breaks tests or I forget to) | |||||||||||||||||||||||||||||||||||
samcv | MoarVm has been released | 21:49 | |||||||||||||||||||||||||||||||||
Zoffix | \o/ | ||||||||||||||||||||||||||||||||||
samcv++ | 21:50 | ||||||||||||||||||||||||||||||||||
samcv | nqp has no changelog right? | ||||||||||||||||||||||||||||||||||
Zoffix | Right | ||||||||||||||||||||||||||||||||||
samcv | ok i will release that now | 21:51 | |||||||||||||||||||||||||||||||||
MasterDuke | samcv: i think releasable6 does nqp | 21:53 | |||||||||||||||||||||||||||||||||
samcv | oh ok | ||||||||||||||||||||||||||||||||||
that's fine then | |||||||||||||||||||||||||||||||||||
Zoffix | m: dd ((1, 1), (1, (1, 1)))».squish | 21:54 | |||||||||||||||||||||||||||||||||
camelia | ((1,).Seq, (1, (1, 1)).Seq) | ||||||||||||||||||||||||||||||||||
Zoffix | nodality is sure a can of worms :/ | ||||||||||||||||||||||||||||||||||
zoffix@VirtualBox~/CPANPRC/rakudo (zoffer-post-release)$ grep -FR 'is nodal' src/core/List.pm | wc -l | |||||||||||||||||||||||||||||||||||
15 | |||||||||||||||||||||||||||||||||||
zoffix@VirtualBox~/CPANPRC/rakudo (zoffer-post-release)$ grep -FR 'is nodal' src/core/Any* | wc -l | |||||||||||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||||||||||
So we got 60 methods that are supposed to be nodal, but currently ». method op only nodalizes them if the `is nodal` method is provided by `List` | 21:55 | ||||||||||||||||||||||||||||||||||
I mean 60 extra methods (or candidates rather) are nodal in Any, but they're not working | 21:56 | ||||||||||||||||||||||||||||||||||
AlexDaniel | samcv: congratulations with your first release! | 21:58 | |||||||||||||||||||||||||||||||||
samcv | :-D | ||||||||||||||||||||||||||||||||||
u: confetti | |||||||||||||||||||||||||||||||||||
unicodable6 | samcv, U+1F38A CONFETTI BALL [So] (🎊) | ||||||||||||||||||||||||||||||||||
AlexDaniel | samcv: yeah, that's basically it, but timotimo's joke about a point release applies :D | 21:59 | |||||||||||||||||||||||||||||||||
Zoffix | m: use nqp; dd nqp::can(List.can('squish').AT-POS(0),"nodal") | 22:00 | |||||||||||||||||||||||||||||||||
camelia | 1 | ||||||||||||||||||||||||||||||||||
Zoffix | Oh nm, the 60 methods isn't the problem 'cause List is Any doh | ||||||||||||||||||||||||||||||||||
AlexDaniel | I think the release date on en.wikipedia.org/wiki/MoarVM is outdated? | 22:02 | |||||||||||||||||||||||||||||||||
Zoffix | "However, Rakudo on the Java Virtual Machine is still faster for longer running programs." really? | 22:03 | |||||||||||||||||||||||||||||||||
AlexDaniel | citation needed :S | ||||||||||||||||||||||||||||||||||
samcv | Zoffix, nope! | 22:04 | |||||||||||||||||||||||||||||||||
ugexe | i imagine their JIT warms up a bit better than ours still | ||||||||||||||||||||||||||||||||||
samcv | Zoffix, i've timed it and it's slower | ||||||||||||||||||||||||||||||||||
it may have once been true a long time ago... | 22:05 | ||||||||||||||||||||||||||||||||||
jnthn | Was probably true before spesh and such :) | 22:08 | |||||||||||||||||||||||||||||||||
It's probably still true for some artificial benchmarks | 22:09 | ||||||||||||||||||||||||||||||||||
ugexe | m: for 1..5 { KEEP " ".print; .print; } # this is a bug right? the second .print is True, but KEEP never fires | 22:20 | |||||||||||||||||||||||||||||||||
camelia | 12345 | ||||||||||||||||||||||||||||||||||
Zoffix | looks like it, yeah | 22:22 | |||||||||||||||||||||||||||||||||
m: for 1..5 { KEEP " ".print; .print; True } | |||||||||||||||||||||||||||||||||||
camelia | WARNINGS for <tmp>: 1 2 3 4 5 Useless use of constant value True in sink context (line 1) |
||||||||||||||||||||||||||||||||||
Zoffix | m: for 1..5 { KEEP " ".print; .print; $ = True } | ||||||||||||||||||||||||||||||||||
camelia | 1 2 3 4 5 | ||||||||||||||||||||||||||||||||||
jnthn | m: for (1..5).list { KEEP " ".print; .print; True } | 22:23 | |||||||||||||||||||||||||||||||||
camelia | WARNINGS for <tmp>: 1 2 3 4 5 Useless use of constant value True in sink context (line 1) |
||||||||||||||||||||||||||||||||||
ugexe | m: for 1..5 { KEEP " ".print; .print; False; } | ||||||||||||||||||||||||||||||||||
camelia | WARNINGS for <tmp>: 1 2 3 4 5 Useless use of constant value False in sink context (line 1) |
||||||||||||||||||||||||||||||||||
jnthn | m: (1..5).map: { KEEP " ".print; .print; True } | ||||||||||||||||||||||||||||||||||
camelia | 1 2 3 4 5 | ||||||||||||||||||||||||||||||||||
jnthn | Hm, actually | ||||||||||||||||||||||||||||||||||
m: for 1..5 { KEEP " ".print; say .print; } | 22:25 | ||||||||||||||||||||||||||||||||||
camelia | 1True 2True 3True 4True 5True |
||||||||||||||||||||||||||||||||||
jnthn | m: for 1..5 { KEEP " ".print; .print; } | ||||||||||||||||||||||||||||||||||
camelia | 12345 | ||||||||||||||||||||||||||||||||||
jnthn | Odd | ||||||||||||||||||||||||||||||||||
ugexe | m: for 1..5 { KEEP " ".print; .print; Nil; } | ||||||||||||||||||||||||||||||||||
camelia | 12345 | ||||||||||||||||||||||||||||||||||
Zoffix | What's a "successful block exit" again? | 22:26 | |||||||||||||||||||||||||||||||||
The docs have it plastered all over phasers page, but I'm having a hard time finding what that means | 22:27 | ||||||||||||||||||||||||||||||||||
ugexe | m: for 1..5 { KEEP print(" "); UNDO print("_"); .print; } # well, it fires UNDO | 22:29 | |||||||||||||||||||||||||||||||||
camelia | 1_2_3_4_5_ | ||||||||||||||||||||||||||||||||||
gfldex | my guess would be no (control-)exceptions fired | 22:30 | |||||||||||||||||||||||||||||||||
jnthn | Zoffix: .defined | 22:33 | |||||||||||||||||||||||||||||||||
Zoffix | ah | 22:34 | |||||||||||||||||||||||||||||||||
jnthn | KEEP/UNDO are just forms of LEAVE that are conditional on the result value | ||||||||||||||||||||||||||||||||||
m: for 1..5 { LEAVE " ".print; .print; } | 22:35 | ||||||||||||||||||||||||||||||||||
camelia | 1 2 3 4 5 | ||||||||||||||||||||||||||||||||||
Geth | nqp: ddcbaba2be | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/build/MOAR_REVISION [release] Bump MoarVM revision to 2017.10 |
22:43 | |||||||||||||||||||||||||||||||||
nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2......2017.10 488cd2fcfd | (Aleks-Daniel Jakimenko-Aleksejev)++ | VERSION |
|||||||||||||||||||||||||||||||||||
rakudo/nom: f32033e385 | (Aleks-Daniel Jakimenko-Aleksejev)++ | tools/build/NQP_REVISION [release] Bump NQP revision to 2017.10 |
|||||||||||||||||||||||||||||||||||
rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017.......2017.10 e6c6ed2b5b | (Aleks-Daniel Jakimenko-Aleksejev)++ | VERSION |
|||||||||||||||||||||||||||||||||||
Zoffix | w00t | 22:44 | |||||||||||||||||||||||||||||||||
AlexDaniel++ | |||||||||||||||||||||||||||||||||||
AlexDaniel | Zoffix++ | 22:45 | |||||||||||||||||||||||||||||||||
also (everyone who helped make this release happen)++ | |||||||||||||||||||||||||||||||||||
jnthn | \o/ | 22:47 | |||||||||||||||||||||||||||||||||
AlexDaniel++, (many others)++ :) | |||||||||||||||||||||||||||||||||||
Zoffix | ZofBot: shake it \o/ www.youtube.com/watch?v=XIf6QfdrHiM | 22:58 | |||||||||||||||||||||||||||||||||
ZofBot | Zoffix, It seems there's a kidnapper well known to the police all over the country as Dick the Snatcher | ||||||||||||||||||||||||||||||||||
Zoffix | ZofBot: what a Dick! | ||||||||||||||||||||||||||||||||||
ZofBot | Zoffix, He Moves in Society It was one of those things which are really nobody's fault | ||||||||||||||||||||||||||||||||||
Zoffix | Ah | ||||||||||||||||||||||||||||||||||
Geth | rakudo: zoffixznet++ created pull request #1215: "Do. Or do not. There is no try." |
23:02 | |||||||||||||||||||||||||||||||||
rakudo/nom: 738908be4d | (Zoffix Znet)++ | src/core/Str.pm "Do. Or do not. There is no try." Fixes RT#126721: rt.perl.org/Ticket/Display.html?id=126721 Do not silence errors when failing to assign to $/ as that introduces action-at-a-distance bugs that can be very hard to debug: ... (9 more lines) |
|||||||||||||||||||||||||||||||||||
synopsebot | RT#126721 [resolved]: rt.perl.org/Ticket/Display.html?id=126721 $/ in closure arg of subst | 23:03 | |||||||||||||||||||||||||||||||||
jnthn | 'night, all o/ | ||||||||||||||||||||||||||||||||||
Geth | rakudo/nom: b07e7b1d0f | (Zoffix Znet)++ (committed using GitHub Web editor) | src/core/Str.pm Merge pull request #1215 from rakudo/zoffer-post-release "Do. Or do not. There is no try." |
||||||||||||||||||||||||||||||||||
roast: zoffixznet++ created pull request #350: Zoffer post release |
|||||||||||||||||||||||||||||||||||
roast/master: 4 commits pushed by (Zoffix Znet)++ | |||||||||||||||||||||||||||||||||||
synopsebot | RT#71514 [resolved]: rt.perl.org/Ticket/Display.html?id=71514 Calling .subst in a reduction method destroys the effect of make() | ||||||||||||||||||||||||||||||||||
Zoffix | \o | ||||||||||||||||||||||||||||||||||
m: my $o1 = {my class Foo {method meow { say "meow" } }.new}; $o1.Foo::meow | 23:12 | ||||||||||||||||||||||||||||||||||
camelia | Cannot dispatch to method meow on Failure because it is not inherited or done by Block in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||
Zoffix | Was wondering whether this should work: | ||||||||||||||||||||||||||||||||||
m: my $o1 = {my class Foo {method meow { say "meow" } }.new}; my $o2 = {my class Foo {method meow { say "moo" } }.new}; $o1.Foo::meow; $o2.Foo::meow | |||||||||||||||||||||||||||||||||||
camelia | Cannot dispatch to method meow on Failure because it is not inherited or done by Block in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||
Zoffix | But I guess the first error kinda puts a damper on it... | 23:13 | |||||||||||||||||||||||||||||||||
m: my $o1 = {my class Foo {method meow { say "meow" } }.new}(); my $o2 = {my class Foo {method meow { say "moo" } }.new}(); $o1.Foo::meow; $o2.Foo::meow | |||||||||||||||||||||||||||||||||||
camelia | Cannot dispatch to method meow on Failure because it is not inherited or done by Foo in block <unit> at <tmp> line 1 |
||||||||||||||||||||||||||||||||||
Zoffix | This I mean | ||||||||||||||||||||||||||||||||||
Basically fixing nodality deletction for method calls other than plain ». and the ».:: dispatch is kinda tricky | 23:14 | ||||||||||||||||||||||||||||||||||
*detection | 23:15 | ||||||||||||||||||||||||||||||||||
Zoffix joins timotimo in the RSI camp | 23:18 | ||||||||||||||||||||||||||||||||||
timotimo | FFS, i took RSI so y'all don't have to | ||||||||||||||||||||||||||||||||||
Zoffix | :D | 23:19 | |||||||||||||||||||||||||||||||||
AlexDaniel | OK, so I added the master branch, and changed the default in github settings. When dealing with pull requests you can click “Edit” and change the base branch before merging | 23:22 | |||||||||||||||||||||||||||||||||
what else do we have with “nom” hardcoded? | |||||||||||||||||||||||||||||||||||
Geth | rakudo: f40babb81e | (Aleks-Daniel Jakimenko-Aleksejev)++ | 6 files ⚠ “nom” → “master” language_versions.md has a very interesting definition of “nom” and “master”, for now “master” is replaced with “some branch”. |
23:33 | |||||||||||||||||||||||||||||||||
Zoffix | AlexDaniel: so what's changing? Just s:g/nom/master/ and the rest is business as usual? | 23:35 | |||||||||||||||||||||||||||||||||
AlexDaniel | yes | ||||||||||||||||||||||||||||||||||
Zoffix | I'm guessin rakudobrew does the `nom` thing. 'cause you can specify as one of the params | 23:36 | |||||||||||||||||||||||||||||||||
AlexDaniel | right now it means that everything that was using “nom” directly will keep using 2017.10 release | ||||||||||||||||||||||||||||||||||
well, + your post-release branch :) | |||||||||||||||||||||||||||||||||||
and whatever gets into nom accidentally :) | 23:37 | ||||||||||||||||||||||||||||||||||
MasterDuke | isn't there a way to mark branches as read-only in github? | 23:39 | |||||||||||||||||||||||||||||||||
AlexDaniel | oooooooooh | ||||||||||||||||||||||||||||||||||
what a great idea | |||||||||||||||||||||||||||||||||||
done, but I don't think it's going to help much | 23:42 | ||||||||||||||||||||||||||||||||||
because it seems that you can still push given enough privs | |||||||||||||||||||||||||||||||||||
Zoffix | We need to post a notice on rakudo.org and add a message into nom branch builder as I imagine there's a ton of people who just pull and rebuild (all of my boxes except for the home one do that for example) | 23:44 | |||||||||||||||||||||||||||||||||
Zoffix does the builder message | |||||||||||||||||||||||||||||||||||
AlexDaniel | nom: say 42 | 23:46 | |||||||||||||||||||||||||||||||||
camelia | 42 | ||||||||||||||||||||||||||||||||||
AlexDaniel | m: say 42 | ||||||||||||||||||||||||||||||||||
camelia | 42 | ||||||||||||||||||||||||||||||||||
AlexDaniel | ok. Whateverable needs no change, camelia also | 23:50 | |||||||||||||||||||||||||||||||||
(I did tweak camelia anyway but it wasn't necessary) | 23:51 | ||||||||||||||||||||||||||||||||||
Zoffix | "read_fhb requires a native array of uint8 or int8" | ||||||||||||||||||||||||||||||||||
How to get one in nqp? | |||||||||||||||||||||||||||||||||||
Or alternatively, how to do `get` in nqp? I got nqp::readfh(nqp::getstdin(), @a, 1) so far | 23:52 | ||||||||||||||||||||||||||||||||||
ugexe | decoder is in rakudo, so not sure you can | 23:53 | |||||||||||||||||||||||||||||||||
Zoffix | Don't need to decode, just want to wait for user to press ENTER | 23:54 | |||||||||||||||||||||||||||||||||
Geth | roast/6.c-errata: fd286d3c45 | (Aleks-Daniel Jakimenko-Aleksejev)++ | VERSION “nom” → “master” There are many TODOs with “nom regression” comment but I won't be touching these because I don't want to make 「git blame」 harder. Doesn't really matter anyway. |
||||||||||||||||||||||||||||||||||
AlexDaniel | wait what | ||||||||||||||||||||||||||||||||||
did I just commit to… errata… :S | |||||||||||||||||||||||||||||||||||
.oO( yeah, should've applied that bashrc thingy… ) |
|||||||||||||||||||||||||||||||||||
Zoffix | fussake... how to make a native array | 23:57 | |||||||||||||||||||||||||||||||||
Geth | roast: a36e55eacd | (Aleks-Daniel Jakimenko-Aleksejev)++ | VERSION “nom” → “master” There are many TODOs with “nom regression” comment but I won't be touching these because I don't want to make 「git blame」 harder. Doesn't really matter anyway. |
||||||||||||||||||||||||||||||||||
Zoffix | hate when the most mundane of things are the biggest time waster | ||||||||||||||||||||||||||||||||||
buggable: zen whatthehellisitalready | |||||||||||||||||||||||||||||||||||
buggable | Zoffix, “This is the real secret of life -- to be completely engaged with what you are doing in the here and now. And instead of calling it work, realize it is play.” | ||||||||||||||||||||||||||||||||||
Zoffix | Good plan. | ||||||||||||||||||||||||||||||||||
Let's play "How to make a native uint8 array in nqp" | 23:58 | ||||||||||||||||||||||||||||||||||
AlexDaniel | hehe | ||||||||||||||||||||||||||||||||||
Zoffix | nqp::readfh(nqp::getstdin(), nqp::create($NQPBuf), 1) | 23:59 | |||||||||||||||||||||||||||||||||
I win the game |