Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:00 lizmat joined, p6bannerbot sets mode: +v lizmat 00:06 cognominal-p6 left 00:14 leont left 00:18 lizmat left 00:25 commavir_ left 00:30 cognominal-p6 joined 00:31 cognominal-p6 left, cognominal-p6 joined 00:32 p6bannerbot sets mode: +v cognominal-p6 00:34 commavir joined 00:35 p6bannerbot sets mode: +v commavir 00:56 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 01:04 fake_space_whale joined 01:05 p6bannerbot sets mode: +v fake_space_whale 01:07 Kaiepi left, Kaiepi joined 01:08 p6bannerbot sets mode: +v Kaiepi 01:47 Ven` joined, p6bannerbot sets mode: +v Ven` 01:50 donaldh left 01:51 donaldh_ joined, Ven` left, p6bannerbot sets mode: +v donaldh_ 02:10 ufobat_ joined, p6bannerbot sets mode: +v ufobat_ 02:13 ufobat left 02:35 j3nnn1 left
Geth rakudo/gh-2320-placeholder-method-error: 7549415b8e | (Rob Hoelz)++ | src/Perl6/Actions.nqp
Offer kinder suggestions for placeholder slurpies

  ...when users try to use them in a method. *@_ is perfectly acceptable
as a slurpy parameter name, and is often what the user would want to use
03:04
03:33 MasterDuke left 04:38 Ven` joined 04:39 p6bannerbot sets mode: +v Ven` 04:42 Ven` left 05:40 Ven` joined 05:41 p6bannerbot sets mode: +v Ven` 05:45 Ven` left 05:48 a3f_ joined 05:49 p6bannerbot sets mode: +v a3f_ 05:50 TimToady_ joined, [Coke]_ joined, [Coke]_ left, [Coke]_ joined 05:51 p6bannerbot sets mode: +v [Coke]_, commavir_ joined, p6bannerbot sets mode: +v TimToady_, p6bannerbot sets mode: +v [Coke]_, p6bannerbot sets mode: +v commavir_ 05:55 samcv_ joined, p6bannerbot sets mode: +v samcv_, commavir left, TimToady left, camelia left, SqrtNegInf left, a3f left, samcv left, [Coke] left 06:06 camelia joined, samcv_ is now known as samcv 06:07 p6bannerbot sets mode: +v camelia 06:28 fake_space_whale left 06:30 TimToady_ is now known as TimToady, TimToady left, TimToady joined, livingstone.freenode.net sets mode: +v TimToady, p6bannerbot sets mode: +v TimToady 06:33 ufobat_ is now known as ufobat 06:47 [Tux] left 06:53 robertle joined, [Tux] joined, p6bannerbot sets mode: +v robertle 06:54 p6bannerbot sets mode: +v [Tux] 08:01 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix releasable6: status 08:01
releasable6 Zoffix, Next release will happen when it's ready. 1 blocker. 492 out of 511 commits logged
Zoffix, Details: gist.github.com/e2354ef8af529bf468...c5480b5827
Zoffix Any word/tips for that blocker?
Zoffix is starting to worry a non-6.d Rakudo release will coincide with 6.d language release announcements seeding lots of confusion
08:07 donaldh_ left, donaldh joined 08:08 p6bannerbot sets mode: +v donaldh 08:09 lizmat joined, p6bannerbot sets mode: +v lizmat
Zoffix I guess if 2018.10 Star is being cut, then it certainly will heh :P) 08:13
08:20 donaldh left, donaldh_ joined 08:21 p6bannerbot sets mode: +v donaldh_
lizmat weekly: opensource.com/article/18/10/how-p...ork-perl-6 08:24
notable6 lizmat, Noted!
lizmat moritz: ^^^ ping
moritz twweeeeeted 08:26
lizmat moritz++ :) 08:32
08:35 robertle left 08:37 robertle joined 08:38 p6bannerbot sets mode: +v robertle
Zoffix Hm. Changelogging Roast is promising to be interestingā€¦ Like, should something like this be logged as "Set/SetHash can be smartmatched against Seq now" github.com/perl6/roast/commit/b774bcc5c 08:53
08:54 robertle left
Zoffix I guess I'm gonna largely skip the bug-fix type of tests. 08:54
moritz +1 08:55
Zoffix 'cause this will be for mostly users to know new things they can use now rather than to have a milelong changelog with every minute change in it
08:56 robertle joined 08:57 p6bannerbot sets mode: +v robertle 09:07 pmurias joined, p6bannerbot sets mode: +v pmurias
pmurias hmm, I'm working on hooking up loading (precompiled and to be precompiled) modules to parcel and I'm not sure what would be a good model to hook it up to CompUnit::* stuff 09:09
what I think I want to do is to take a p6 script with some use statements and get back a bunch of compiled code 09:11
nine What's parcel?
pmurias a js module bundler
parceljs.org/ 09:12
nine: it takes a bunch of assets (files which are treated differently depending on extensions) and then builds a single .js file + .css + whatever you hook into it 09:13
nine Sounds like the job for a new CompUnit::Repository implementation accompanied by an alternative to CompUnit::PrecompilationStore::File
pmurias so the new CompUnit::Reposity would record stuff that's being found in other repositories? 09:19
nine: or did you mean for teaching Rakudo to be able to load stuff from parcel? 09:21
nine Both. An in-memory CompUnit::PrecompilationStore is easy to implement and saves you from having to find the generated precomp files. It will also help with loading precomped code from however parcel manages files. 09:26
09:39 cognominal-p6 left
Zoffix .ask jnthn what do you think of post-poning $_ un-dynamification to 6.e? We're 11 days from 6.d release, so it's cutting it kinda close, with 6.e we get more time to play with it to see if it's a good idea. And putting it under 6.e.PREVIEW also gives us motivation to cut 6.e sonner than in 3-years, like with 6.d :) 10:05
yoleaux Zoffix: I'll pass your message to jnthn.
jnthn Zoffix: Well, from a 6.d perepsective, "all" we need to do is eliminate tests that expect CALLER::<$_> to work 10:08
yoleaux 10:05Z <Zoffix> jnthn: what do you think of post-poning $_ un-dynamification to 6.e? We're 11 days from 6.d release, so it's cutting it kinda close, with 6.e we get more time to play with it to see if it's a good idea. And putting it under 6.e.PREVIEW also gives us motivation to cut 6.e sonner than in 3-years, like with 6.d :)
jnthn That's sufficient, I think, to give us the freedom to introduce the change later in the implementation
Zoffix Alright, I'll look for those 10:11
10:19 cognominal-p6 joined 10:20 p6bannerbot sets mode: +v cognominal-p6 10:22 cognominal-p6 left, cognominal-p6 joined 10:23 p6bannerbot sets mode: +v cognominal-p6 10:36 AlexDaniel left 10:37 leont joined, p6bannerbot sets mode: +v leont
Geth rakudo: zoffixznet++ created pull request #2429:
Revert Enum:D ACCEPTSing Enum:U
10:41
rakudo: adfa86746c | (Zoffix Znet)++ | src/core/Enumeration.pm6
Revert Enum:D ACCEPTSing Enum:U

That's what elements of an enumeration really are, the :D's and the enumeration itself is a :U. For :D's to be accepting :U's it makes as little sence as an Int:D constraint accepting an `Int`
This is part of fixing github.com/rakudo/rakudo/issues/2073 A more complete fix might involve banning the use of Enum:D's in the same place as other types and instead requiring the use of
  `where` clauses for such use.
rakudo: 0383075dd4 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/core/Enumeration.pm6
Merge pull request #2429 from rakudo/post-release-2018.10

Revert Enum:D ACCEPTSing Enum:U
roast: zoffixznet++ created pull request #491:
Spec Enum:D does NOT accept Enum:U
roast: 3d279598cd | (Zoffix Znet)++ | S12-enums/misc.t
Spec Enum:D does NOT accept Enum:U

Per github.com/rakudo/rakudo/issues/2073
roast: a5d495aa04 | (Zoffix Znet)++ (committed using GitHub Web editor) | S12-enums/misc.t
Merge pull request #491 from perl6/post-release-2018.10

Spec Enum:D does NOT accept Enum:U
roast: 5485affa47 | (Zoffix Znet)++ | S32-list/seq.t
Revert "Test for ZEN-POS on Seq"

This reverts commit 7d23fbc74c6d8e724f4afca7e294b2b58187594a.
This attempt at fixing an inconsistency introes another inconsistency in that `[]` caches but `<>` doesn't and both and especially the latter are likely used as a "decont operator"
10:44
rakudo: 2efffc2b43 | (Zoffix Znet)++ | src/core/Sequence.pm6
Revert "Make .[] cache the Seq. Closes #2383"

This reverts commit 1954121d619613118784df6c6eb63b186d0361e8.
This attempt at fixing an inconsistency introes another inconsistency in that `[]` caches but `<>` doesn't and both and especially the latter are likely used as a "decont operator"
10:53
synopsebot RAKUDO#2383 [closed]: github.com/rakudo/rakudo/issues/2383 [consistency][testneeded] .[] doesn't cache a Seq
roast: a1a805d0f5 | (Zoffix Znet)++ | S32-list/seq.t
Fix plan
roast: f5f9ce0083 | (Zoffix Znet)++ | S32-list/seq.t
Spec ZEN slices don't cache Seqs
10:54
pmurias how should I install my custom CompUnit::Repository? 11:01
RAKUDO_PRECOMP_WITH?
nine pmurias: have a look at tools/build/install-core-dist.pl6 11:03
tools/install-dist.pl6 may also help
11:13 Zoffix left
Geth 6.d-prep: 4c60752276 | (Zoffix Znet)++ | ChangeLog.md
[CL] Log up to 5c4dafa3ab026a1e08
11:13
lizmat Zoffix: s/numerious/numerous/ ? 11:30
11:37 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
Geth 6.d-prep: 133781348a | (Zoffix Znet)++ (committed using GitHub Web editor) | ChangeLog.md
Fix typo; lizmat++
11:56
roast: 84da3210c1 | (Zoffix Znet)++ | S32-list/seq.t
Reword ZEN Seq non-cache tests

Explicitly take .iterator instead of implicitly relying on .sink to consume our Seqs pre-testing.
12:07
rakudo: e0633a0de9 | (Tom Browder)++ (committed using GitHub Web editor) | docs/rakudo-nqp-and-pod-notes.md
add info, start table
12:08
12:14 cognominal-p6 left 12:16 atroxaper joined 12:17 p6bannerbot sets mode: +v atroxaper 12:26 pmurias left 12:27 pmurias joined, p6bannerbot sets mode: +v pmurias 12:28 cognominal-p6 joined 12:29 p6bannerbot sets mode: +v cognominal-p6 12:49 SqrtNegI_ joined 12:50 p6bannerbot sets mode: +v SqrtNegI_ 12:55 cognominal-p6 left, cognominal-p6 joined 12:56 p6bannerbot sets mode: +v cognominal-p6 13:00 cognominal-p6 left 14:07 cognominal-p6 joined, cognominal-p6 left, cognominal-p6 joined 14:08 p6bannerbot sets mode: +v cognominal-p6 14:31 cognominal-p6 left 14:44 lizmat left 14:51 cognominal-p6 joined 14:52 p6bannerbot sets mode: +v cognominal-p6 14:59 fake_space_whale joined 15:00 p6bannerbot sets mode: +v fake_space_whale 15:04 cognominal-p6 left 15:05 cognominal-p6 joined, p6bannerbot sets mode: +v cognominal-p6 15:21 cognominal-p6 left 15:26 Zoffix joined, p6bannerbot sets mode: +v Zoffix
|Tux| Rakudo version 2018.09-515-ge0633a0de - MoarVM version 2018.09-139-g8b4d58c7a
csv-ip5xs0.927 - 0.927
csv-ip5xs-207.249 - 7.437
csv-parser20.437 - 20.834
csv-test-xs-200.416 - 0.423
test8.149 - 8.158
test-t1.742 - 1.747
test-t --race0.785 - 0.803
test-t-2028.907 - 29.276
test-t-20 --race10.498 - 10.854
15:26
Zoffix jnthn: are you looking at R#2400 today/this weekend? If not, do you have any tips for what it could be? I did a bit of digging 3 days ago: github.com/rakudo/rakudo/issues/24...-432359601 15:28
synopsebot R#2400 [open]: github.com/rakudo/rakudo/issues/2400 [fudged tests committed][regression][āš  blocker āš ] Module Crane is failing tests on HEAD
jnthn Zoffix: Been looking at it for last hour or two 15:29
Zoffix \o/
jnthn It's *really* odd
In that even if I instrument the type check failure exception to spit out the .WHICH of the two things it's comparing, they match exactly
Zoffix weird 15:30
jnthn So now I wonder if it could somehow be the type check cache or something
15:40 cognominal-p6 joined 15:41 p6bannerbot sets mode: +v cognominal-p6 15:44 cognominal-p6 left, cognominal-p6 joined 15:45 p6bannerbot sets mode: +v cognominal-p6 15:55 robertle left
jnthn Yeah, confirm that the mro contains something wrong 15:56
16:03 fake_space_whale left 16:16 Tux__ joined, |Tux| left 16:17 p6bannerbot sets mode: +v Tux__
Zoffix .ask AlexDaniel just wanted to confirm before I do it: am I safe to bump default lang version in Rakudo to 6.d or should I wait until after release? 16:35
yoleaux Zoffix: I'll pass your message to AlexDaniel.
16:37 patrickb joined, p6bannerbot sets mode: +v patrickb 16:43 robertle joined 16:44 p6bannerbot sets mode: +v robertle 16:54 AlexDaniel left
jnthn Still not got to the bottom of it yet. So far it looks like the MRO contains the right thing and the thing Array[Mu] ends up referring to in Foo is the wrong one, but I can't figure out what on earth it is 16:55
Will give up for today. I left a hacky patch on the issue that works around the problem, but isn't a real solution. 16:58
timotimo dang.
Zoffix feels better about not being able to fix it not :) 16:59
s/not/now/;
jnthn Hmm 17:02
It seems like we're somehow getting duplicate type objects
o.O 17:03
timotimo some kind of repossession issue?
shouldn't be, since nothing is modifying the original type objects
hum.
jnthn No, I don't think it's that
There is repossession happening because of that set_name but commenting that out changes nothing. 17:04
(and I verified there's no repossession going on)
timotimo OK 17:05
jnthn Um, no further repo, once I commented that out
AlexDaniel` Zoffix: you can do it 17:13
jnthn omg, I found it
AlexDaniel` \o/
jnthn spectests 17:14
AlexDaniel` got on his phone at the right moment :)
Zoffix OMG \o/ 17:16
timotimo whoooo 17:18
aaaaa
hhhhh
samcv hello
Zoffix \o
samcv are people having a party here :)
Zoffix Yeah :) 17:19
Zoffix passes the bong
samcv: looks like the last release blocker just got fixed :)
samcv \o/
stmuk_ don't bogart that release! 17:21
Zoffix stmuk_: you had a robo message on one of your nicks
stmuk_: I was asking if there were gonna be a 2018.10 R* and if yes, would there also be a 2018.11 R* (that will be a 6.d relase). I need to know what to mention in 6.d announcement, for people to know when to get their 6.d deliverables 17:22
Geth rakudo: 7b0c5364fe | (Jonathan Worthington)++ | src/Perl6/World.nqp
Don't unconditionally add parameterizations to SC

A parameterization of a type may not create a new type, but instead return an already produced type. Thus, it may already belong to the SC of another compilation unit. Placing it into ours results in a duplicate of the object - in this case a type object - existing after deserialization. ... (7 more lines)
Zoffix jnthn++ 17:23
jnthn That took some finding.
stmuk_ yes to 2018.10 R* but probably not .11 (unless someone else wants to do one) 17:24
Zoffix Noted. Thanks.
jnthn I should go home, eat, etc. Appreciated if somebody could verify that fixes Crane as well as the golf in the ticket. 17:25
o/
stmuk_ whats actually happening with 6.d (I'm out of touch)? will .10 still have 6.d-preview and .11 6.d? 17:26
timotimo phew.
Zoffix stmuk_: I don't think we can just break `use v6.d.PREVIEW` willi-nilli, because there are modules using it (at least one of mine does) and also module authors would want to support at least a couple of recent Rakudo versions, so my thinking is `use v6.d.PREVIEW` on .11 will be equivalent to `use v6.d` which will be equivalent to no `use` at all and `use v6.c` will load 6.c language. Whereas on .10, no 17:28
`use` loads `v6.c` and `use v6.d` is a compiler error
m: use v6.d.
m: use v6.d
camelia Cannot allocate memory
Zoffix shiet
m: use v6.d
camelia Cannot allocate memory
Zoffix c: HEAD use v6.d
committable6 Zoffix, Ā¦HEAD(7b0c536): Ā«04===SORRY!04=== Error while compiling /tmp/L5dSE7wCPrā¤No compiler available for Perl v6.dā¤at /tmp/L5dSE7wCPr:1ā¤------> 03use v6.d08ā04<EOL>ā¤ Ā«exit code = 1Ā»Ā»
Zoffix m: use v6.d 17:30
camelia 5===SORRY!5=== Error while compiling <tmp>
No compiler available for Perl v6.d
at <tmp>:1
------> 3use v6.d7ā5<EOL>
Zoffix on .11 that will work
And well, that'll start working on master in ~6hr, actually.
stmuk_ will "use v6" also default to "use v6.d"? 17:32
TimToady any time you don't specify a dot level it should default to the newest 17:40
Zoffix stmuk_: and the rest of what's happening is 6.d The Spec is being released in some timezone between November 6-7 (the Diwali holiday) and rakudo compiler will follow it's regular release schedule 17:42
its too 17:43
timotimo if the release doesn't happen fast enough, we claim a small plot of land to be an independent country and get our own time zone that's more than 24h away from the surrounding territories 17:44
Zoffix Sounds like a plan!
timotimo time zones are amazing, it's a different time all around the world! for example, in some parts of the U.S, it's still 1950 17:45
stmuk_ sea-stead Cameliania!
or whatever The New Alias is :)
TimToady maybe set up a government-in-exile for a martian colony, since our clocks naturally drift there compared to earthlings 17:46
timotimo that's an old joke, so it's not related to any current politics
TimToady nah, those parts of the country have moved on from 1950 all the way to 1938 or so 17:50
timotimo it's progress if you turn your head 180 degrees and squint 17:51
to the side 180 degrees*
TimToady Is that to the right side or the left side? --Socrates 17:54
17:56 Zoffix left 17:58 stmuk joined
Geth roast: cc378eca07 | (Zoffix Znet)++ | MISC/bug-coverage.t
Unfudge now-passing test
17:58
17:58 p6bannerbot sets mode: +v stmuk 18:00 stmuk_ left 18:34 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel 19:01 pmurias left 19:05 pmurias joined, p6bannerbot sets mode: +v pmurias 19:16 lizmat joined, p6bannerbot sets mode: +v lizmat 19:32 atroxaper left 20:13 cognominal-p6 left, cognominal-p6 joined 20:14 p6bannerbot sets mode: +v cognominal-p6 20:47 cognominal-p6 left, cognominal-p6 joined 20:48 p6bannerbot sets mode: +v cognominal-p6
lizmat m: my $a = 0; my $b = 42 / $a; dd $b, $b + $b # not sure this is worth an issue, but it feels wrong 20:50
camelia Rat $b = <1/0>
<0/0>
geekosaur looks like normalization missed a special case 20:54
masak agree it looks wrong
tbrowder___ rakudo nqp question, please: i notice sometimes dynamic vars values are assigned lika a regular var, and other times the var is assigned via the nqp::*lex* ops. is that a holdover from the early days, or is it something that should be ā€œconsistifyedā€, or is it imporatant in some way i donā€™t yet understand? thanks! 21:06
lizmat would like to see an answer to that one as well :-) jnthn timotimo ? 21:09
timotimo assigned to or accessed? 21:11
lizmat assigned, apparently
"other times the var is assigned via the nqp::*lex* ops" 21:12
timotimo i'd probably need to look at some examples to figure that out
21:13 pmurias left 21:15 pmurias joined, p6bannerbot sets mode: +v pmurias 21:19 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke
tbrowder___ i notice many (if not all) the cases with regular assignment use :my $*var inside the calling block, so maybe that establishes the calling place so the lexdyne method is not necessary. 21:33
timotimo we often have to do some gymnastics so that we refer not to the just-defined dynamic variable, but to whatever came before it
not sure if that's what you're looking at 21:34
tbrowder___ eel
*well, iā€™m all over the place but zeoring in...the vars iā€™m interested in are defined in the grammar and affect pod block handling, and most places (but i canā€™t say all) have the :my construct in the block that wants to change the value during complete contruction of the class associated with the block. and the code child path goes back and forth between grammar, actions, and pod. 21:38
i may need that ā€œjust beforeā€ value before i finish... 21:39
samcv we shouldn't be using hardly any cpu during a `prompt` right? 21:41
timotimo yeah 21:42
hopefully we can wait for input without polling
there are cases where we get incredible cpu load when doing nothing, like when our process is piped to a pager :( 21:43
samcv hmm that could have happened too
err actually. no not that. it ran a pager as a launched process
timotimo can't immediately reproduce, so maybe it got fixed since i last tried
though of course when i kill the pager it'll give a nasty exception and error output :) 21:44
21:44 Zoffix joined, p6bannerbot sets mode: +v Zoffix
lizmat FWF, prompt uses 0 CPU for me 21:44
*FWIW
Zoffix lizmat: there's sorta an issue for that already R#1354 21:45
synopsebot R#1354 [open]: github.com/rakudo/rakudo/issues/1354 Some operations with zero-denominator Rationals are broken
Zoffix Basically all the math with ZDRs is broken :)
lizmat so no need to add another issue then :-) 21:46
samcv not sure what i'm doing but i get two processes each using 33% cpu
tbrowder___ one more question: when an nqp object is used in the $*W.add_constant method, does that create a QAST node? i havenā€™t tested it yet, but looking at various nqp code it seems like that is what is happening.
samcv with MoarVM/tools/update-changelog.p6 i noticed yesterday
timotimo oh? i thought add_constant just makes the object available in the serialization context, so that it can be used inside WVal and such 21:47
though i don't think you have to do that manually any more?
not entirely sure
maybe it's also about re-using constant values?
samcv hmm it seems to be using cpu when not in prompt as well 21:49
timotimo you could "perf record" to get some data of what it's doing, or "perf top" to see what kinds of things are using cpu time 21:51
jnthn tbrowder___: iirc, the op to do a lookup starts in the *caller* frame, not the current one, so some of them do things like `token blah($*foo = nqp::getlexdyn('$*foo')) { }` or whatever and are looking up the caller one.
About assigning them, no idea :)
tbrowder___ is serialization step for an object the same as boxing? 21:52
21:52 pmurias left
jnthn No 21:52
Serialization is about making stuff survive the compilation boundary
samcv timotimo: on it 21:53
jnthn Boxing is sticking a native value into an object
tbrowder___ then all that stuff happens in compilation i guess 21:54
samcv hmm the kernel is using 27% of cpu time in read_hpet 21:55
not sure if that's related
tbrowder___ timotimo: thanks 21:56
jnthn: thanks
samcv ok when i use the callgraph i get __clone from libc taking up 60% of the cpu inclusive 21:59
jnthn
.oO( What the fork? )
22:00
samcv ok scratch that. so read_put seems to be getting called due to MVM_platform_sleep and MVM_platform_now
22:00 patrickb left
Zoffix Alright. I'm doing the version bumpā€¦ 22:04
ā€¦the language version bump \o/ 22:05
samcv \o/
22:05 ufobat left 22:06 ggoebel left
jnthn Non-blocking `await` and `react` by default! \o/ 22:07
samcv jnthn: printf "%f" seems to show it starts sleeping for 0.000000 seconds repeatedly? 22:16
jnthn samcv: Hm, no idea...where's that happening? 22:18
samcv where as in in moarvm? i'm not sure it just has ??? for what the caller of MVM_platform_sleep
jnthn If gdb you might be able to try p MVM_dump_backtrace(tc) 22:20
samcv ok
22:20 cognominal-p6 left
jnthn ??? for caller usually means "jitted code"; you can MVM_JIT_DISABLE=1 to get a better backtrace in that case 22:20
samcv yeah 22:21
well it says no tc in current context. what do i do now (trying to do p MVM_dump_backtrace(tc))
jnthn: with JIT disabled it never sleeps for 0 seconds 22:22
but still uses lots of cpu. no clue why that would be.. 22:23
jnthn Maybe `where` and then look for a frame with a tc and then frame n and then try it 22:24
samcv uh still getting no symbol "tc" 22:27
"frame X"; "p MVM_dump_backtrace(tc)" and it says no "tc" in like MVM_io_reaad_bytes
though that seems to be where it is when i pause it and check 22:28
jnthn Odd. Do you have a build with debug symbols or and --optimize=0?
(Sometimes gdb can't recover things properly when there's enough opt) 22:29
samcv ah silly me for some reason i didn't built with debug symbols!
jnthn: here we go gist.github.com/5f00b0c63d09578a7b...7a2b1bd23a 22:32
jnthn Odd, and it's being run at the console (e.g. stdin would be a tty)? 22:33
samcv yah it's on console 22:34
Zoffix decides to postpone the bump until tomorrow morning
It's a bit harder than changing a letter, since at some point during parsing we must determine that we must upgrade to 6.d and make any later version switches throw
samcv and weirdly it starts sleeping for 0.01 secs, then sleeps for 1.504436s and then starts sleeping for 0 s
but with no jit it sleeps for 0.01s consistently 22:35
both seem to use about the same amount of cpu
jnthn Hm, but what does ths sleep?
It can loop at github.com/MoarVM/MoarVM/blob/mast...ile.c#L146 22:36
But only if it's getting back EINTR
samcv jnthn: that doesnt seem to be where it's looping at L146 22:40
i added a print and am not getting any repeated prints
or at least. it isn't looping.. or something 22:41
jnthn is confused :)
Zoffix <GeorgeTakei> Ohh, myyy! 22:56
samcv jnthn: does this backtrace make sense? gist.github.com/samcv/444a6690a401...2f4cf7c389 22:58
i set a breakpoint for MVM_platform_sleep
jnthn Is that MVM_fixed_size_free really true? 22:59
jnthn finds it very unlikely
I suspect it's just confused
Can you frame 6 and p MVM_dump_backtrace(tc) ? 23:00
samcv ok it seems to be confused i ran it again and it's showing the right order i suppose? 23:04
anyway i get this now gist.github.com/c11ec6ec27e322f226...de7d9a1245 23:05
jnthn I'm pretty sure it's the fixed_size_free is just confusion, but the 0 looks legit. Hmm. 23:08
samcv yeah it seems very confused. it won't let me print out MVM_dump_backtrace 23:09
jnthn Hm, even at frame 6?
samcv The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received
jnthn oops
Hm
samcv oh it seems to have moved, but i have no output
and if i continue mvm segfaults
jnthn I'd wonder if the JIT of sleep is wrong and causing a bogus 0 there but I think you said the JIT being disabled doesn't remove the problem you're seeing? 23:10
The JIT code looks fairly legit too
Oh, though...
samcv yeah it doesn't remove it. though the bogus 0 is maybe an issue too
i mean maybe it was worse... it sleeps a LOT when it's trying to sleep 0 seconds again and again 23:11
jnthn sleep takes a dobule
*double 23:12
samcv uh seems to be in ThreadPoolSchduler.pm6
SETTING::src/core/ThreadPoolScheduler.pm6:624 where it's sleeping
i was able to run it when i disabled JIT
jnthn And the JIT seems to be indicating the argument is KaliÅ”nickĆ”
hah
Zoffix :) 23:13
jnthn MVM_JIT_REG_VAL
But I think it should be MVM_JIT_REG_VAL_F
Here: github.com/MoarVM/MoarVM/blob/mast...ph.c#L3271
I think as it stands sleep gets a junk value 23:14
samcv i will try changing that 23:15
well that fixes that issue! 23:16
at least with the bogus sleep times
timotimo i see the prolem with sleep
Zoffix Hm.... "Stage parse : Missing or wrong version of dependency 'gen/moar/Perl6-Grammar.nqp' (from 'gen/moar/CORE.d.setting')"
timotimo ah, jnthn also finds it 23:17
Zoffix Had that in 6.c setting, but I stuck ! $*COMPILING_CORE_SETTING into the default lang set up and now it dies in 6 setting :(
samcv hmm maybe i was doing something wrong. because i'm testing again and moarvm is using hardly any cpu now
\o/
jnthn \o/ 23:18
samcv so that seems to have done it
Zoffix \o/
samcv glad we could find this bug and fix it. my laptop's battery life thanks you
Zoffix $*COMPILING_CORE_SETTING ain't set when doing CORE.d 23:20
jnthn Zoffix: I think it goes on whether --setting=NULL or whatever 23:21
Zoffix Thanks. Found it 23:22
jnthn (Can't remember exactly what we pass)
samcv cool. fix commited :) 23:24
i'm guessing this should affect other workloads too 23:25
jnthn Indeed...very glad to have that fixed 23:26
samcv++
samcv seems to be more responsive too
jnthn Wonder if that was the cause of an unexplained performance drop-off on one of my customer's heavily threaded apps
(Wasn't a big enough drop-off to be a priority to dig into) 23:27
timotimo today i watched the stream from react conf and there's been like five talks already that were valuable to moarperf <3
jnthn Nice :) 23:28
Zoffix timotimo: maybe that bug we were trying to fix is also fixed? 23:30
M#986 R#2395 23:31
synopsebot M#986 [closed]: github.com/MoarVM/MoarVM/pull/986 Comment out problematic case in speshing deconting of _n
R#2395 [open]: github.com/rakudo/rakudo/issues/2395 [perf] t/spec/S32-io/io-cathandle.t is now 2x-8x slower without precomp
jnthn ooh, that's entirely possible, if it turned an unjittable into a jittable... 23:32
timotimo hm, not so sure about that
jnthn (And so rendered the frame with the sleep jittable when it wasn't before)
timotimo huh, a sleep could have been in there?
Zoffix It was even around a line of code with `sleep .6` there
timotimo i did not realize!
jnthn will probably drop by reactiveconf.com/ a bit next week, given it's just a tram ride away 23:33
Zoffix "Stage optimize : Optimizer couldn't find Sub in SETTING"
:) fun 23:34
jnthn W...what? :)
Zoffix hehe
timotimo it probably doesn't know to look past the first setting it sees?
in find_in_setting?
jnthn ah, maybe 23:36
jnthn goes for rest
'night o/
timotimo gnite jnthn! 23:37
Zoffix \o 23:38
23:50 Zoffix left