Geth nqp: 1f0a598e37 | (Samantha McVey)++ | tools/build/MOAR_REVISION
Bump MoarVM to get uniname fixes

Adds hex digits to end of non-unique Unicode names, and returns noncharacter property for noncharacters as well as not returning
  <illegal> except for codepoints that are less than 0.
Changes: 2017.09.1-32-g9749b0f..2017.09.1-46-g27d3d01e ... (6 more lines)
00:11
¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...-g27d3d01e
rakudo/nom: 9dba498f7f | (Samantha McVey)++ | tools/build/NQP_REVISION
Bump NQP/Moar for uniname fixes

Adds hex digits to end of non-unique Unicode names, and returns noncharacter property for noncharacters as well as not returning
  <illegal> except for codepoints that are less than 0.
NQP changes: 2017.09-18-g59612c4..2017.09-36-g1f0a598e3 ... (26 more lines)
00:13
¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....g1f0a598e3
roast: 8e4e510408 | (Samantha McVey)++ | S15-unicode-information/uniname.t
Update uniname tests to test hex after non-unique's

Instead of just testing <Control-0000> we also test for CJK Ideographs like <CJK Ideograph-XXXX>. All names starting with a
  '<' and ending with '>' are inherently nonunique names, so we
give them names similar to how they are refered to within the Unicode dataset.
Also test that noncharacters return <noncharacter-XXXX> rather than illegal or reserved. Check that we get reserved instead of illegal back for characters that are non-illegal but under 0x10FFFF
00:21
roast: 0b471ac100 | (Samantha McVey)++ | S32-str/utf8-c8.t
Add UTF8-C8 tests for values > 0x10FFFF as well as Surrogates

These tests also now pass due to recent fixes in MoarVM's UTF8-C8 generating code.
travis-ci NQP build failed. Samantha McVey 'Bump MoarVM to get uniname fixes 00:26
travis-ci.org/perl6/nqp/builds/280210547 github.com/perl6/nqp/compare/8e780...0a598e37af
BenGoldberg m: (-42).uniname 00:44
camelia ( no output )
BenGoldberg m: (-42).uniname.say
camelia <illegal>
Zoffix grrr fudger doesn't fudge subtests right >_< 00:50
skids timotimo: oh yay I was wrong, :sym stuff works fine. 00:52
Geth roast: 44937e865e | (Zoffix Znet)++ | S05-metasyntax/regex.t
Add fudged tests for Range quantifiers in regexes
00:53
travis-ci Rakudo build passed. Zoffix Znet 'Fix infinilop in .^roles of class that does Rational 01:35
travis-ci.org/rakudo/rakudo/builds/280107431 github.com/rakudo/rakudo/compare/6...61abe8fff0
AlexDaniel .tell skids “Any obvious repo in which to plop this?” – maybe github.com/rakudo/rakudo/wiki 07:51
yoleaux AlexDaniel: I'll pass your message to skids.
AlexDaniel squashable6: status 07:55
squashable6 AlexDaniel, Next SQUASHathon in 9 days and ≈2 hours (2017-10-07 UTC-12⌁UTC+14)
AlexDaniel :O
DrForr On a split network, noone can hear you /say. 08:03
nine_ :) 08:13
AlexDaniel
.oO( split network? )
08:29
.oO( did somebody just think that whateverables rejoining is a network split? Or did I miss the actual split? )
08:30
nine_ AlexDaniel: you missed the split 08:32
AlexDaniel ah ok
teatime Netsplit *.net <-> *.split quits: astj, nine, BooK, teatime, jdv79 08:34
granted I don't know much about irc, but hth can I see myself split
am I like Thomas Riker now, and there's another me, out there, somewhere... 08:35
lizmat in QAST, I want to flatten an nqp::hash into a call, basically the |%attrinit 09:24
is the only way really to call FLATTENABLE_HASH on the HLL version of it?
feels very wasteful to me
jnthn timotimo moritz ^^^ 09:25
feels I should only need to add a :flat in there somehow 09:26
and possibly a :named
moritz you can iterate over the hash and add :named arg for each element 09:33
lizmat ok, I see that 09:36
but I probably don't want to encode that in QAST for each BUILDALL, right ? 09:38
pmurias jnthn: what does fles mean? attributes get that 09:44
jnthn If it's an NQP hash you just put :flat(1), :named(1) 09:45
moritz ah, nice
jnthn That's actually what | compiles into also 09:46
It just first calls .FLATTENABLE_HASH to extract the nqp hash inside of it
moritz pmurias: it's "self" reversed
jnthn m: "fles".flip.say :)
camelia 5===SORRY!5=== Error while compiling <tmp>
Unexpected closing bracket
at <tmp>:1
------> 3"fles".flip.say :7⏏5)
jnthn m: "fles".flip.say # :)
camelia self
moritz pmurias: and seems to be used in locations where 'self' can't be used, because it's reserved, or bootstrapping doesn't like it 09:47
jnthn Yeah, it's that, I think 'cus the other self was needed in that context too or some such :-)
moritz might be clearer to call it SELF
jnthn bah, the reason my patch last night didn't work is 'cus I inverted the very conditions I meant to add 09:56
lizmat hehe
If in QAST I want to return from a sub, do I just call 'return' ? or is there a better way ?
jnthn Are you in the outermost scope of it? 09:58
lizmat no
this is basically for the case that BUILD or TWEAK return a Failure 09:59
we want that returned immediately
jnthn I mean, you're in the QAST::Op you want to return from? 10:01
lizmat this is what I need to rewrite in QAST: github.com/rakudo/rakudo/blob/nom/...Mu.pm#L159 10:02
jnthn gah, I meant QAST::Block that you want to return from 10:03
lizmat yeah, that I am :-)
jnthn Ok, I think then just QAST::Op.new( :op('return'), ...lookup the thing to return here... )
Will be the best way 10:04
lizmat ok, that's what I did
Zoffix No [Tux] timings yet? I had a dream my optimizer fix made things .3s slower :D
jnthn If you want to call the Perl 6 return sub you'd need to set up a return handler also
lizmat: Does it work, or not? :) 10:05
lizmat well, building takes about 1.5 minutes each time :-)
jnthn ah :)
lizmat and now I'm looking at some wrongly positioned parens or something 10:06
jnthn Hm, what a bizzare failure mode I now get...
[TuxCM] $work interfered and I forgot. running now 10:08
Zoffix \o/ 10:11
[TuxCM] This is Rakudo version 2017.09-100-g9dba498f7 built on MoarVM version 2017.09.1-46-g27d3d01e 10:16
csv-ip5xs 1.299 - 1.320
test 9.353 - 9.637
test-t 3.314 - 3.429
csv-parser 12.023 - 12.046
Zoffix buggable: speed 6 :4 10:18
buggable Zoffix, dates: 2017-09-25–2017-09-27
Zoffix, ▃▇ ▇ range: 3.314s–3.556s
Zoffix, ██▄█▄ speed: 6% faster
Zoffix, █████▁
Zoffix buggable: speed 100 :4 10:19
buggable Zoffix, ▇▆▅↑↑↑▇▇▆▇▇↑↑↑█↑ ▃ dates: 2017-08-08–2017-09-27
Zoffix, ████████████████ ▄ ▇ █ range: 3.314s–4.925s
Zoffix, ████████████████▄█▆▆▂█ ▂ ▂ ▇▃ ▇ ▇▃█▁ ▂ ▃ ██ speed: 8% faster
Zoffix, ███████████████████████▅▆█▆▆██▆▅▄▃██▄▅▄▆▅▄▅▃▄▄█▇▅▅▇████▅▆▆▅█▅▆▃▃▇██▇██▆▇▅▆▄▃▄▅▄▅▃▃▅▄▃▇▄▄▃▃▃▄▄▄▆▇▄▇▄▁
Zoffix Progress
jnthn yay :) 10:21
Wondered how async changes had managed to make a Rat test hang :P 10:22
Turns out I just needed to pull latest changes :)
lizmat jnthn: No registered operation handler for 'return' :( 10:30
grrr
I need to call 'return', right
jnthn Hmmmm 10:32
Yeah but that needs to wrap a return exception handler too
But it's the most expedient way for now
Geth rakudo/nom: bd530108c4 | (Jonathan Worthington)++ | src/core/CurrentThreadScheduler.pm
Fix CurrentThreadScheduler error handling

It is used as a type object rather than an instance in quite some tests, and so very possibly in the wild too. So make sure that it doesn't explode due to trying to look up an error handler from a type object.
10:33
lizmat jnthn: any prior art that could enlighten me re wrapping an exception handler ?
now I get: Attempt to return outside of any Routine :) 10:34
jnthn yeah, that's 'cus you're missing the handler 10:35
lizmat also: could that be set up conditionally upon receiving of a failure ? or does it need to be set always?
jnthn in Actions.pm there's a wrap_return_handler
Setting it us is free anyway
lizmat looks
jnthn It just makes a compile-time entry into a table of handlers 10:36
You only pay for throwing the return control exception
oh also 10:38
you need something simpler than wrap_return_handler
lizmat well, perhaps, I'm not seeing it yet :-)
jnthn You don't need wrap_return_type_check nor the decontrv thing
sub wrap_return_handler($past) { 10:39
Is where I'm looking
The important bits you need are
QAST::Op.new(
:op<handlepayload>,
After that you put a QAST::Stmts holding your generated stuff 10:40
Then after it
'RETURN',
QAST::Op.new( :op<lastexpayload> )
)
And you're done
Then calling return will work :)
lizmat ok, lemme see if I can get that together :-)
jnthn tests++ # keeping me from regressing error reporting on await 10:46
Zoffix ZOFVM: Files=1280, Tests=152198, 151 wallclock secs (21.91 usr 3.46 sys + 3149.98 cusr 269.45 csys = 3444.80 CPU) 10:54
And strangeley the failing sock test file passed :|
The one about IPv6 10:55
lizmat jnthn: shouldn't it be the QAST::Block that I should wrap ? 10:56
jnthn No
Second QAST::Stmts that you put into the QAST::Block
lizmat $stmts := QAST::Op.new( :op<handlepayload>,
$stmts,
'RETURN',
QAST::Op.new( :op<lastexpayload> )
);
yeah, that's what I did, no? 10:57
jnthn That looks ok
Seems so, if that's what $stmts is :)
You push $stmts into the QAST::Block after this, I presume?
lizmat yes, that's what $stmts is
aaaaahhhh :-) spot on
whee! BUILD and TWEAK support now in 11:01
jnthn \o/ 11:02
lizmat++
lizmat now those pesky other cases :-)
jnthn Hurrah, it looks like I've managed to unregress all that I broke in my supply internals refactor 11:03
lizmat jnthn++
Geth rakudo/nom: 9af5607d52 | (Jonathan Worthington)++ | 2 files
Start using $*AWAITER in `await` in 6.c

But set an additional flag indicating that we should really block, so we still get the 6.c semantics, just in terms of the new factoring. This means that the parts of the new supply concurrency model that depend on the use of $*AWAITER will now work out with 6.c code that does an `await` in the mainline of a `supply` block. It also means that we'll from today be exercising much of the code that makes up 6.d non-blocking await, except the bit in ThreadPoolScheduler that actually does the non-blocking part of the job.
11:10
jnthn Phew. :) 11:12
lizmat jnthn++ # wow 11:13
jnthn With all these changes, using await inside of a supply/react block will now be able to do the continuation thing also, plus supplies now have a better back-pressure model 11:15
So I should be able to, in the coming weeks, put in some stuff so that if we are, say, processing lines from a Proc::Async too slowly to keep up with the rate of output, then we can stop the libuv reader for a bit, which will in turn push back on the outputing process. 11:16
Rather than them piling up in memory, as they have to date
Ditto for async sockets
Also, this now works: 11:20
my $s = supply { until my $end { emit 42 }; CLOSE { $end = True } }; react { whenever $s { .say; done if $++ == 5 } }
m: my $s = supply { until my $end { emit 42 }; CLOSE { $end = True } }; react { whenever $s { .say; done if $++ == 5 } }
camelia 42
42
42
42
42
42
jnthn c: 2017.09 my $s = supply { until my $end { emit 42 }; CLOSE { $end = True } }; react { whenever $s { .say; done if $++ == 5 } }
committable6 jnthn, ¦2017.09: ««timed out after 10 seconds» «exit signal = SIGHUP (1)»»
jnthn Which is kinda nice in that it's now possible to write supply sources in a nicer way in various case 11:21
*cases
For example: my $poll-api = supply { until my $end { emit await download-latest-stuff-from-api(); await Promise.in(10); }; CLOSE { $end = True } } 11:22
Will, in 6.d, work out without blocking a real thread anywhere, and let you write a supply source that polls an API every 10 seconds. 11:23
I'm considering whether an `emit` in an already closed block should just tear down the block also
So then folks who didn't think to write the CLOSE block won't end up in bother 11:24
Probably should do that :)
So it DWTM :)
tl;dr supply syntax is nicer for writing sources now, and back-pressues in a better way 11:25
Also I might find something to do that melts my brain slightly less after this :-) 11:28
Though I'm quite keen to get hyper/race in shape for 6.d
So will probably look at that in the not too distant future 11:29
hyper whenever and race whenever also, mebbe
We'll see :)
timotimo i haven't heard of those yet :) 11:40
lizmat suffers from melting brain as well 11:44
but is moving forward nonetheless... mostly SMOP now
Geth roast: 292e1d9f7e | (Zoffix Znet)++ | VERSION
Add version file
12:13
roast/6.c-errata: 80a7391486 | (Zoffix Znet)++ | VERSION
Add version file
12:14
nine_ jnthn: do you think I can merge jit_nativecall this week? I'll be on vacation on the first 2 weeks of October 12:26
jnthn nine_: Yes; I will try and look it over today, now that I'm finally done with the supply things and seem to me largely without headache too 12:34
nine_ \o/
jnthn git push 12:36
gah!
Geth roast: ed27a2620e | (Jonathan Worthington)++ | S17-supply/syntax.t
Test covering first part of RT #130716 solution
jnthn nine_: I'm happy with it, and approved it. I trust the Travis failures are 'cus we need to merge the NQP commits also? 12:44
nine_ jnthn: yes, we do 12:48
jnthn: thanks for looking :)
jnthn I noticed one thing from brrt about adding a comment, but one added earlier on looked related, so not sure if that's still to do or not 12:51
lizmat hmmm... how do I pass an SVal as a named parameter ? 12:52
just set :name<foo>, :named(1) ? 12:53
jnthn QAST::SVal.new( :value('omg an awesome apricot'), :named('exclamation') )
nine_ jnthn: I added the describing comments to the header files while brrt's questions were added to the code where those constants were used
lizmat oki
jnthn nine_: Alrighty :)
Then I think we can merge it :) Shall i? :)
lizmat jnthn: is there an QAST::OVal for opaque values? Or should I just use WVal for that ? 12:56
timotimo just WVal 12:57
nine_ jnthn: have to go to a meeting now. I'd be happy to let you do it :)
lizmat timotimo: thanks
Geth rakudo/multi-roast: 7d830d5c18 | (Zoffix Znet)++ | t/spectest.data.6.c
Add 6.c test file list
13:02
lizmat only one more buildplan action to go! 13:08
jnthn nine_: It's merged; NQP/Rakudo ones and bumps I'll let you or somebody else do, as got language class now :) 13:09
Zoffix pokes Geth 13:11
This thing's ded :o
travis-ci Rakudo build failed. Jonathan Worthington 'Start using $*AWAITER in `await` in 6.c
travis-ci.org/rakudo/rakudo/builds/280379881 github.com/rakudo/rakudo/compare/b...f5607d523e
jnthn Zoffix: It was a MoarVM merge I was mentioning and it was reported fwiw
buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
DrForr *whirr* *click*buzz* it's dead, Ji.
*Jim
Zoffix jnthn: I pushed github.com/rakudo/rakudo/commit/6c...b627d9091d and it didn't report it 13:12
jnthn Zoffix: ah, ok
timotimo Stage parse : MoarVM panic: Internal error: invalid thread ID 14683768 in GC work pass
ouch?!
jnthn Oops 13:13
Wonder if that's the thing nwc10 spotted a while back, but I never managed to reproduce yet...
timotimo (that's travis up there)
jnthn Really time to go; bbiab
Geth rakudo/multi-roast: 31cbdada73 | (Zoffix Znet)++ | t/harness5
Teach Harness5 to handle different roast versions
13:23
rakudo/multi-roast: 16f64182f0 | (Zoffix Znet)++ | t/harness6
Teach Harness6 to handle different roast versions
13:47
Zoffix huh 13:50
m: "blazrg".IO.open andthen 42.say orelse dd $_
camelia Empty
Zoffix not this again -_-
Ah, ok, it's per-spec. nevermind. I thought oreelse would have the Failure there 13:51
Geth nqp: 71fc322e56 | (Stefan Seifert)++ | 13 files
Map the new nativeinvoke OP

nativecallbuild now has a return value indicating whether we were able to JIT compile code for the call site
13:54
Zoffix m: +"x" orelse note "{.exception.message.uc}" 13:58
camelia CANNOT CONVERT STRING TO NUMBER: BASE-10 NUMBER MUST BEGIN WITH VALID DIGITS OR '.' IN '⏏X' (INDICATED BY ⏏)
Zoffix huh weird. On my terminal, everything before "X" is invisible
or blank rather
m: sub x { my $ver = .lines.uc with "blazr".IO.open orelse note "meow {.exception.message}" and return 42; "meow$ver" }; dd x 13:59
camelia No such method 'exception' for invocant of type 'Any'
in sub x at <tmp> line 1
in block <unit> at <tmp> line 1
Zoffix m: sub x { my $ver = .lines.uc with "blazr".IO.open orelse note "meow " ~ .exception.message and return 42; "meow$ver" }; dd x 14:00
camelia meow Failed to open file /home/camelia/blazr: No such file or directory
42
ugexe on a linux terminal im only getting a ), on osx i get the X
Geth rakudo/nom: 6 commits pushed by (Stefan Seifert)++ 14:01
nine lizmat: for the weekly, JIT compilation of native calls gives ~ 2.5x speedup in micro benchmarks and ~ 7 % speedup for csv-ip5xs (which shows there's still a lot of overhead in Inline::Perl5's Perl 6 code). 14:03
yoleaux 24 Sep 2017 20:38Z <lizmat> nine: wrt to calling BUILDALL with positionals: could we create another name for that, like BUILDALL_WITH_POSITIONALS() ?
24 Sep 2017 20:39Z <lizmat> nine: BUILDALL could then be an only method, instead of a multi
nine lizmat: but that would break installed Inline::Perl5 versions? 14:04
Zoffix \o/ 14:05
Geth rakudo/multi-roast: 50d2013de5 | (Zoffix Znet)++ | t/harness6
Report reason for failure when can't read roast version
14:07
Zoffix Reported above andthen bug as rt.perl.org/Ticket/Display.html?id=132172 14:11
.seen the-eater 14:14
yoleaux I haven't seen the-eater around.
Zoffix .seen theeater
yoleaux I haven't seen theeater around.
Zoffix .seen eater
yoleaux I saw eater 25 Sep 2017 11:05Z in #perl6-dev: <eater> Zoffix: poke me if you need help resolving it :)
Zoffix .tell eater the IPv6 sock roast failure magically disappeared :/ Perhaps it was just something with my VM 14:15
yoleaux Zoffix: I'll pass your message to eater.
Zoffix ZOFVM: Files=1280, Tests=152201, 147 wallclock secs (22.42 usr 3.36 sys + 3085.28 cusr 239.28 csys = 3350.34 CPU) 14:16
Geth rakudo: zoffixznet++ created pull request #1173:
Multi roast
14:18
rakudo/nom: 6 commits pushed by (Zoffix Znet)++
Zoffix .tell stmuk as promised, just pushed a fix so `make spectest` on 6.c-errata no longer has spurious warnings about missing files. Any warnings that appear should be assumed to be geniune. 14:20
yoleaux Zoffix: I'll pass your message to stmuk.
Zoffix Thank you, robot.
AelxDnaiel Zoffix++ 14:25
Geth roast: aa29b31f90 | (Zoffix Znet)++ | 5 files
Remove empty dummy files
14:27
rakudo/nom: f62950dcc8 | (Zoffix Znet)++ | t/spectest.data
Remove dead test files from 6.d.proposals test file list

All of these files are just empty dummies[^1] that existed only to ensure their 6.c-errata counterparts run. Now, they live in their separate t/spectest.data.6.c list
  [1] github.com/perl6/roast/commit/aa29b31f90
rakudo/nom: 85ae1c92a7 | (Zoffix Znet)++ | 2 files
Check for proposal roast versions case insensitively
14:34
rakudo/nom: dd8a610214 | (Zoffix Znet)++ | docs/roast-spectest.data-versioning.md
Document how spectest.data file versioning works
14:39
roast: 12e6a25d81 | (Zoffix Znet)++ | VERSION
Point to docs of rakudo's use of file
14:41
roast/6.c-errata: 37a4a2e5df | (Zoffix Znet)++ | VERSION
Point to docs of rakudo's use of file
rakudo/nom: 36122f158f | (Zoffix Znet)++ (committed using GitHub Web editor) | docs/roast-spectest.data-versioning.md
Document spectest.data is also used when…

  …file for specific version file isn't readable
14:47
rakudo/nom: 2a512f0c23 | (Zoffix Znet)++ | 2 files
Skip empty lines when reading roast VERSION file
14:50
eater Zoffix: :D 15:06
yoleaux 14:15Z <Zoffix> eater: the IPv6 sock roast failure magically disappeared :/ Perhaps it was just something with my VM
stmuk . 15:27
yoleaux 14:20Z <Zoffix> stmuk: as promised, just pushed a fix so `make spectest` on 6.c-errata no longer has spurious warnings about missing files. Any warnings that appear should be assumed to be geniune.
stmuk Zoffix++ 15:28
Geth rakudo/nom: f133451248 | (Zoffix Znet)++ | t/harness6
Remove Perlism
Zoffix stmuk: so what does this commit fix exactly? github.com/rakudo/rakudo/commit/06...ab89f13797 15:31
I see no ticket nor any explanation of the problem and the harness works fine for me
with TEST_JOBS=30
.ask stmuk why is t/harness6 blocked from using more than 1 test job? It works fine for me. What exactly is wrong with it? 15:40
yoleaux Zoffix: I'll pass your message to stmuk.
Zoffix c'mon people; explain why your code does things; it's programming 101
</annoyed>
:) 15:41
ZOF6VM: Files=1225, Tests=75218, 182 wallclock secs
m: say 182/142
camelia 1.281690
dogbert17 Zoffix: it was broken until leont pushed a lot of fixes the other day 15:42
Zoffix w00t it got a lot faster. Used to be 2x slower
dogbert17: so it's fixed now?
dogbert17 yes
Geth rakudo/nom: 56193b5916 | (Zoffix Znet)++ | t/harness6
Remove jobs blocker

  'cause it fixed now:
  irclog.perlgeek.de/perl6-dev/2017-...i_15224958
15:43
Zoffix .tell stmuk never mind. Apparently the orignal problem was fixed already. I removed the plug that made harness die on JOBS>1 15:44
yoleaux Zoffix: I'll pass your message to stmuk.
dogbert17 Zoffix: how much slower is harness6 compared to harness5 now? 15:45
Zoffix See above. 28% 15:46
dogbert17 not too shabby :)
Zoffix Yeah 15:47
jnthn New scheduler FTW, perhaps :) 15:49
and/or maybe other supply optimizations
I don't think I yet optimized receiving stdout/stderr from an async process
As I did with sockets
So there may be some further percents in that. Hard to guess how much
ilmari only one way to find out ;) 15:50
Zoffix Gonna mod &DEPRECATED with `:lang-vers` bool attr, when specified will treat given versions as language versions 16:11
Geth roast: 5fbc8ba3fd | (Jonathan Worthington)++ | S17-supply/syntax.t
Tests to cover RT #130716
16:13
Zoffix . 16:17
yoleaux 16:12Z <Xliff> Zoffix: So in this situation, should I not RT the infiniloop? Maybe add a caveat to the docs?
timotimo Zoffix: what's coverable's health these days? 16:23
i mean the page you have that collects core setting coverage
Zoffix I see the domain's dead for it :) 16:24
And it hasn't been updated since IO Grant 16:25
coverable6: help
coverable6 Zoffix, Like this: coverable6: f583f22 grep=SETTING:: say ‘hello’; say ‘world’ # See wiki for more examples: github.com/perl6/whateverable/wiki/Coverable
Zoffix I guess the bot gives different data
timotimo it does
Zoffix .in 5h schedule perl6.wtf update and fix the domain
yoleaux Zoffix: I'll remind you at 21:25Z
timotimo i don't have a specific idea in mind 16:28
but i stumbled onto the moarvm c code coverage again 16:29
Zoffix timotimo: k, domain's back up, but the data is likely from April or something. samcv++ had more coverage somehwere 16:33
(my site used to have a link, but the page got overwritten with whatever the coverage reporter makes)
samcv moarvm.github.io/coverage/ 16:34
timotimo that's a different kind of coverage :)
samcv coverage report for the nqp tests
oh
also good morning
timotimo the rakudo travis runs already take ages, wouldn't want to add a C-coverage taking extra to it
just to get extra coverage from spec tests 16:35
Zoffix huggable: moar coverage :is: moarvm.github.io/coverage/
huggable Zoffix, Added moar coverage as moarvm.github.io/coverage/
Zoffix m: use v6.d.PREVIEW; say $*PERL.version before v6.d 16:38
camelia False
Zoffix m: use v6.d.PREVIEW; say $*PERL.version cmp v6.d
camelia Same
Zoffix tries to figure out DEPREFCATED thing 16:39
That sub could really use good docs. I struggle with it every time I reach for it
m: %*ENV<RAKUDO_NO_DEPRECATIONS> = 0; DEPRECATED "x", v2017.09 16:41
camelia Saw 1 occurrence of deprecated code.
================================================================================
Block <unit> (from unknown) seen at:
<tmp>, line 1
Deprecated since v2017.09, will be removed sometime in the future
Please …
Zoffix m: %*ENV<RAKUDO_NO_DEPRECATIONS> = 0; DEPRECATED "x", $*PERL.compiler.version
camelia ( no output )
Zoffix if it's "since", then the version itself should be deemed as being it
Zoffix tries changing that
hm, roast hanged on t/spec/S17-supply/syntax.t It happened yesterday with some file too, but I thought it might've been my VM 16:50
or maybe I don't got a rakudo commit for that last commit that went to roast 16:51
hm, no, I'm on rakudohead
timotimo hm, supply/syntax.t ought to be fixed 16:52
Zoffix jnthn: you around? t/spec/S17-supply/syntax.t now hangs for me. Does it need bleed moar or something?
Hangs after this test "ok 78 - supply block loop did not run ahead of consumer"
yeah, so it's the newly added test 16:53
$ cat nqp/tools/build/MOAR_REVISION 16:54
2017.09.1-49-gb3dd812aa
seems latest moarvm is in use
jnthn Zoffix: needs Rakudo HEAD
timotimo hm, i don't think there were actually moar or nqp changes
i mean, related to this
jnthn oh, oops, I've one more local change too
Geth rakudo/nom: 80f883bc7b | (Jonathan Worthington)++ | src/core/Supply.pm
Do not resume after emit by closed `supply` block
16:55
jnthn Sorry 'bout that :)
Zoffix :)
I' 16:56
timotimo well, that looks important :)
jnthn dinner &
Zoffix I'm happy. I get to find out how to use the "stash" thing git has
seems simple enough
git stash; git pull --rebase; git stash apply; \o/ 16:57
lizmat git stash pop even :-) 16:58
Zoffix Ah. Thanks.
dogbert2 Zoffix: is this new? 'Testing Roast version 6.d-proposals using test file list from t/spectest.data' 17:02
Zoffix dogbert2: yes
dogbert2 cool 17:03
Zoffix dogbert2: we have one t/spectest.data per language version now: github.com/rakudo/rakudo/blob/nom/...sioning.md
with `master` being the proposed version of what 6.d language will be, once released 17:04
(I know we have 6.d.PREVIEW, but I wanted the roast version to have more of a "this isn't final yet" feel to the name)
ZOFVM: Files=1275, Tests=152199, 154 wallclock secs (23.88 usr 3.63 sys + 3296.78 cusr 225.92 csys = 3550.21 CPU) 17:05
.ask nine you package some stuff so maybe you know: I want to add a helper test module to Rakudo's test suite. I heard that `make test` must not create any new test files or something, so I'm wondering, would that module need `no precompilation` so that it doesn't create any precompilation files when `make test` is run? 17:08
yoleaux Zoffix: I'll pass your message to nine.
AlexDaniel squashable6: status 17:09
squashable6 AlexDaniel, Next SQUASHathon in 8 days and ≈16 hours (2017-10-07 UTC-12⌁UTC+14)
Zoffix buggable: LHF
buggable: tag LHF
buggable Zoffix, There is 1 ticket tagged with LHF; See fail.rakudo.party/t/LHF for details
Zoffix m: Bool.enums.^name.say; 17:10
camelia Map
Zoffix That's already fixed
AlexDaniel … now I just have to figure out what to do with squashable and RT
there are no webhooks for RT, at least none that I know of 17:11
so, uh… Hm…
I guess it's easier to just wait for the email notification to come and work with that 17:14
if somebody knows any better please tell me
lizmat confirms S17-supply/syntax.t hangs on test 79 when run by itself, dies when run as part of spectest jnthn 17:17
Zoffix All the fixes would need one of core devs to merge, so I'm guessing the bot can be told to mark which which PRs got merged during squashathon and then a human can go through them and close all the RTs
I doubt there'll be a billion of them
lizmat: it got fixed for me with the last commit 80f883bc7b 17:21
lizmat ah, missed that :p-)
AlexDaniel Zoffix: well, I can just hang the bot on rakudo/rakudo repo similarly to what was happening the last time 17:22
maybe with less noise for some irrelevant events, but still
and roast too, so that we get stuff for TESTNEEDED tickets
Geth roast: b819af6fab | (Zoffix Znet)++ | S12-enums/basic.t
Test Bool.enums value type

RT#132039: rt.perl.org/Ticket/Display.html?id=132039 Rakudo fix: github.com/rakudo/rakudo/commit/e7a588060907e93
17:24
AlexDaniel but how many tickets were closed? And how many were opened? The bot wouldn't know
Zoffix You could take a snapshot of RT and then measure it later. There are no events, but there is an API
AlexDaniel hm. That's a good idea actually 17:25
Zoffix I don't know if this ever/still works: github.com/zoffixznet/perl6-RT-REST-Client
Geth rakudo/nom: 9837687d93 | (Elizabeth Mattijsen)++ | 5 files
Stage 1 of auto-generated BUILDALL methods

  - generates all necessary methods, but with _UNDER_CONSTRUCTION postfix
  - this allows care-free building of the setting
  - added a Mu.new_UNDER_CONSTRUCTION, which calls autogenerated BUILDALL
  - this also allows for easy benchmarking of old/new object build methodology
  - preliminary benchmarks indicate 1.5x faster object creation
... (7 more lines)
17:26
Zoffix But ther's a Perl version here: github.com/zoffixznet/r6/blob/mast...ST/Lazy.pm and this script will generate an SQLite database of open tickets (so you could generate before/after dbs): github.com/zoffixznet/r6/blob/mast...builder.pl
AlexDaniel how often does it let you do that? 17:28
Zoffix Don't think there's any hard limit, but that API is frail AF
really slow and sometimes doesn't work 17:29
AlexDaniel okay
.oO( again, why are we using RT? I know, I know, it's hard to move on… but still?? )
17:30
Zoffix I got used to it.
lizmat I didn't
Zoffix :D 17:31
AlexDaniel clicks on the S button 17:32
well, in a way I did too. So I've spent a bunch of time on figuring out how to make the homepage show what I need (which does not need configuration anywhere else), and then I use hidden mobile version to submit bug reports (because we never got the fucking button back). So yeah, it kinda works. 17:36
Geth rakudo/nom: bb0ebabc39 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm
Minimally invasive streamline Proc::Async.new
17:39
AlexDaniel but I die a little bit on the inside when I see somebody asking how to submit a bug report and we tell them to send an email… Being able to send a bug report by email probably does more harm than good (sure, it's a wonderful idea that you don't have to create an account, but pretty much everyone has a github account nowadays… especially given that we require it anyway if you want to contribute to any other part of perl 6)
I know, AlexDaniel is ranting again, but for how long are we planning to use this crap? :S 17:40
lizmat AlexDaniel: FWIW, I agree
and I wonder who, apart from masak and now Zoffix, is a. able to really work with RT, and b. wants to do that
Zoffix More precisely, I got used to RT + fail.rakudo.party + hidden mobile form for filing tickets :D 17:43
AlexDaniel during the last squashathon I've been splitting some tickets and creating fresh tickets from old tickets that accumulated some mold. IMO this made a lot of stuff easier to approach 17:46
but I'm thinking that, even if don't do any migration or whatever, and just start using another tracker, tickets will eventually move 17:47
or maybe not, maybe I'm wrong
lizmat which tracker were you thinking about
AlexDaniel lizmat: I think there's a good candidate: github.com/rakudo/rakudo/issues . I agree that it's not perfect, but it's *way* better than what we have now. And given that we use github for everything else, it just makes it easier for everyone 17:50
we can of course start bikeshedding it between gitlab, bitbucket, self-hosted gitlab, notabug, and so on and so forth… 17:51
Zoffix I use gitlab at $work and I kinda hate it 17:52
and gitlab.com is slow as hell
AlexDaniel but as a user I expect to see a useful bug tracker on github, even if it's not the main one 17:53
Zoffix Come to think of it, my self-hosted gitlab is slow as hell too
Geth rakudo/nom: a225e040f1 | (Zoffix Znet)++ | src/core/Deprecations.pm
Make &DEPRECATED treat $vfrom inclusively

The error message says "since blah blah", so it implies the specified version is included. Also, making the version included in the commit message makes it easier to specify restrictions, especially when testing against the language version.
17:55
rakudo/nom: 36bc8e2d95 | (Zoffix Znet)++ | 2 files
Implement language version testing in &DEPRECATED

If :lang-vers Bool param is given, assume the given $vfrom/$vto versions are language versions as opposed to compiler versions.
Zoffix s/error message/deprecation message/; 17:56
lizmat hmmm... apparently "foo = bar" is *not* the same as "nqp::assign(foo,bar)" 17:57
m: my $a; use nqp; nqp::assign($a,42); dd $a 17:58
camelia Int $a = 42
lizmat m: my @a; use nqp; nqp::assign(@a,42); dd @a
camelia Cannot assign to an immutable value
in block <unit> at <tmp> line 1
AlexDaniel anyway, I'm going to take a nap now. I really recommend everyone to think about this issue by setting a goal to make things better, instead of the “it works for me let's not change anything” thing we had last time. Things are not OK.
lizmat jnthn timotimo ^^^ this is blocking generated BUILDALL atm 17:59
Zoffix takes "I don't care stance" on it
lizmat suggestions?
timotimo for @a you have to call .STORE i believe
AlexDaniel buggable: tag RT 18:00
buggable AlexDaniel, There are 2 tickets tagged with RT; See fail.rakudo.party/t/RT for details
lizmat hmmm... the BUILDPLAN doesn't know if the attribute is a $ or a @ or a % or a&
Zoffix Yeah, younger-Zoffix wrote something there, but I no longer care about that :) 18:01
(on the RT stuff)
greppable6: \.child 18:02
greppable6 Zoffix, gist.github.com/3a9e07312dd0a37b5b...ae556d0c76
Zoffix Damn, that's a ton of use. I think the whole swapping .child to being a "secure" impl isn't feasible for 6.d. 18:04
timotimo lizmat: which buildplan opcode is this for?
Zoffix I'm gonna just deprecate it in 6.d for swapping in 6.e
lizmat initialize opaque from init hash *and* I guess setting the default
AlexDaniel Zoffix++ # all v6.d progress
Zoffix Or maybe it's fine. Since feature-wise it's not that much different, just a lot slower
I'm getting a ton of roast failures 18:05
lizmat timotimo: think I found a way
timotimo is this code number 4?
lizmat 0 and 4
Zoffix gist.github.com/zoffixznet/e6a4209...ff11d296ff
lizmat timotimo: I just realized I *do* have the full attribute name 18:06
Zoffix ZOFFLOP: t/spec/S26-documentation/wacky.t
Zoffix re-runs
lizmat so if the first char is '@' or '%', then call .STORE
timotimo how exactly do we compile = when we don't know the lhs?
nqp::p6store? 18:07
lizmat doesn't look like it 18:08
timotimo i compiled 5 = 42 and it used that
Zoffix I'm gonna move .child -> .child (secure) swap to 6.e. Too much current use + IO::Path.add is too new for module authors to be able to safely switch to it 18:09
lizmat tries
timotimo++ # that seems to be the trick 18:11
timotimo nice!
Geth 6.d-prep: 183cfcab4c | (Zoffix Znet)++ | 2 files
Postpone .child -> .child (secure) swap to 6.e

Postponed until 6.e because there's a huge amount of ecosystem usage and the IO::Path.add that is the alternative is too new for module authors to reliably switch to using it.
18:13
Zoffix still a bunch of failures after re-stresstest: gist.github.com/zoffixznet/8feb84d...cf2ccc2358 18:14
Geth 6.d-prep: b57b372425 | (Zoffix Znet)++ | 2 files
Keep already-implemented features in a separate file
18:18
lizmat Zoffix: if they are S10-packages/precompilation.t / S12-introspection/methods.t integration/advent2009-day11.t 18:20
Zoffix: then they are my fault
Zoffix heh, okthen :) 18:21
lizmat well, you could consider the tests faulty, as they don't take a generated BUILDALL into account 18:22
Zoffix So is_approx from Test.pm6 is on the chopping block, but how do we go about it.
timotimo oh, wait, the generated buildplan got merged?
oh, no, that's just the signature, right?
Zoffix Like, 6.c-errata uses it 18:23
lizmat timotimo: it got merged, but it is still called BUILDALL_UNDER_CONSTRUCTION
timotimo even the procasync one?
Zoffix Its deprecation period is already expired.
lizmat the p6store trick made everything work
now running a spectest with the generated BUILDALL
timotimo hm, it wants Proc::Async.new() to throw X::Multi::NoMatch, but the new method has been turned into an only perhaps? 18:26
lizmat ah, that
hmmm.. yes, it is an only now 18:27
perhaps that one should be reverted
although from a performance point of view, we shouldn't
timotimo then the test is too specific
ugexe m: class Foo { method new (*@ [$path, *@args]) { say $path.perl; say @args.perl; say %_.perl } }; Foo.new(<a b c>, :cwd<abc>) 18:28
camelia "a"
["b", "c"]
{:cwd("abc")}
ugexe m: class Foo { method new ($path, *@args) { say $path.perl; say @args.perl; say %_.perl } }; Foo.new(<a b c>, :cwd<abc>)
camelia $("a", "b", "c")
[]
{:cwd("abc")}
ugexe re: github.com/rakudo/rakudo/commit/bb...ff115ac1fe 18:29
timotimo oh whoops
Geth rakudo/nom: 167f0f83c9 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm
Revert "Minimally invasive streamline Proc::Async.new"

This reverts commit bb0ebabc39ec0ffe8db04d6ef1b1dbff115ac1fe.
18:32
lizmat sorry for the noise
Zoffix It actually used to be that in the past, but was changed in github.com/rakudo/rakudo/commit/92...a9dba6f13e 18:33
ugexe i hope method call speed is never the bottle neck of spawning processes, but in 10 years i might have to eat those words 18:41
lizmat ugexe: fwiw, the Rakudo overhead of walking a directory and inspecting file attributes, is like 90% if I recall correctly 18:43
jnthn lizmat: See the infix:<=> impl in CORE.setting for what we compile it as 18:47
but iirc it's something like nqp::iscont(x) ?? nqp::assign(x, y) !! x.STORE(y)
In the compiler we case-anlayze the sigil 18:48
*analyze
lizmat yeah, that's the approach I took now as well
jnthn Don't you have the attribute name to hand though?
When compiling the build plan?
lizmat yes, the name
I was thinking about the Attribute object
jnthn So nqp::substr($name, 0, 1) is the sigil :)
lizmat that's *not* in the plan 18:49
yup
done that
jnthn iirc that's all that we do in the compiler :)
yup: github.com/rakudo/rakudo/blob/nom/....nqp#L6926 18:50
ohh
There's a p6store op that
does the runtime check 18:51
That's what we use if we're lacking a sigil
But an attribute will always have one; there's no sigilless attrs :)
github.com/rakudo/rakudo/blob/nom/....nqp#L6959 fwiw
lizmat so you're saying I should call .STORE directly, rather than calling nqp::p6store
?
jnthn I'd do the sigil analysis 18:55
And call .STORE for @ an %, use assign for $ and &, and then if you for robustness (people constructing objects my hand? other weird) have p6store fallback
p6store is the worst case for runtime
spesh can usually rip out the branch
But it's still nice to not have to :) 18:56
lizmat ok, gotcha 19:01
argh, due to the BUILDALL(@positional...) business, I need to make the generated BUILDALL's multis 19:07
jnthn timotimo: is there something more I should do than just .add_multi_method ?
jnthn Ummm...outside of the setting no, inside of it you'd need to install a proto method 19:09
Do you really need to make them multis? :)
Or better: why do you need to?
Ah, time for walk here before shop closes :)
bbi20-30
lizmat github.com/rakudo/rakudo/blob/nom/...Mu.pm#L152 # the reason jnthn 19:10
Geth rakudo/nom: 4c337e8ef9 | (Zoffix Znet)++ | 3 files
Deprecate dummy arg on .Rat/.FatRat…

For Rat, FatRat, and Int types
19:18
6.d-prep: bb6eb35c64 | (Zoffix Znet)++ | 2 files
Mark dummy .Rat/.FatRat params as completed

Done in github.com/rakudo/rakudo/commit/4c337e8ef9
19:21
Zoffix AlexDaniel, I'm assuming all interested parties by now seen all the changes that are listed in perl6/6.d-prep repo. There's a huge amount of bikeshedding about .flatmap on the doc issue #1428. A lot of it seems to be about performance gained by saving one method call, which I don't find relevant, so I quite honestly didn't bother reading all of it. I'm marking .flatmap as deprecated in 6.d for removal in 19:29
6.e and will close RT#130520. If I missed some pertinent detail, feel free to revert and re-open
.tell AlexDaniel irclog.perlgeek.de/perl6-dev/2017-...i_15226307 19:30
yoleaux Zoffix: I'll pass your message to AlexDaniel.
jnthn lizmat: oh, in that case the add_multi_method should suffice, in that the proto comes from Mu and will be cloned from it :) 19:31
lizmat: So ignore my comment about the setting
lizmat I also needed to move self.incorporate_multi_candidates($obj); 19:32
but it looks like I need to do that twice atm
jnthn Oh?
We really should only do it once
lizmat just moving it after the BUILDALL generation makes the build fail
jnthn Maybe it's BUILDALL generation that's gotta move... 19:33
lizmat could be :-)
jnthn But yeah, the order in there needs a good bit of care :)
lizmat looking at github.com/rakudo/rakudo/blob/nom/...assHOW.nqp , do you think it could move to before self.incorporate_multi_candidates($obj); ? 19:34
jnthn Hmmm 19:35
It probably has to be after compose_attributes
lizmat ok 19:36
jnthn How did the build fail?
lizmat Cannot have a multi candidate for 'WHICH' when an only method is also in the package 'CompUnit::Repository::FileSystem' 19:38
Zoffix m: «"foo "bar"» # more on the missing quotes topic 19:39
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in double quotes; couldn't find final '"'
at <tmp>:1
------> 3r"» # more on the missing quotes topic7⏏5<EOL>
expecting any of:
double quotes
Zoffix oh
jnthn Oh...I wonder if that's 'cus attribute composition might generate a multi
Zoffix m: «"$*EXECUTABLE -e "print 'test passed'"»
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in double quotes; couldn't find final '"'
at <tmp>:1
------> 3«"$*EXECUTABLE -e "print 'test passed'"»7⏏5<EOL>
expecting any of:
double quotes
Zoffix Weird, locally I get "Unable to parse expression in shell-quote words; couldn't find final '»'" 19:40
.tell AlexDaniel commitable isn't getting new versions anymore. Last commit from 5 hours ago.... Now that I think of it, I killed some moar process when I was debugging ded bots and it might've been whatever the updater is... 19:46
yoleaux Zoffix: I'll pass your message to AlexDaniel.
lizmat hmmm... somehow the signature doesn't make it to the method :-(
Geth roast: 59b4c8556b | (Zoffix Znet)++ | S17-procasync/basic.t
Test Proc::Async.new can take cmd+args via single Iterable
19:48
lizmat actually, the whole signature appears to be awol 19:50
grrr
jnthn timotimo: could it be I need to handle the signature differently with multi methods? 19:56
jnthn How are you attaching the signature at the moment?
lizmat if I make the generated BUILDALL method an only method, the signature arrives fine
$!w.create_code_object($block, 'Method', $sig);
actually: $!w.create_code_object($block, 'Submethod', $sig) 19:57
jnthn Oh
And how are you introspecting the signature?
If you install it as a multi then .^lookup of .^find_method will give back a proto 19:58
And you'd need to .candiates[0]
lizmat class A { has $.a }; dd A.can("BUILDALL_UNDER_CONSTRUCTION")[0].signature'
invocant_type = A:D
:(A:D $: ;; %init, *%_)
"invocant_type = A:D" was debugging info
jnthn That looks right?
Oh, or you mean the ;; is there 19:59
lizmat indeed, but this is the method case
if I make it a multi, I get
jnthn Ah, right
lizmat method BUILDALL_UNDER_CONSTRUCTION (Mu $: | is raw) { #`(Method|140291808297056) ... })
jnthn That looks like the proto 20:00
lizmat the whole list:
(method BUILDALL_UNDER_CONSTRUCTION (A:D $: ;; %init, *%_) { #`(Method|140291827101656) ... }, method BUILDALL_UNDER_CONSTRUCTION (Mu $: | is raw) { #`(Method|140291808297056) ... })
oops, no 20:01
hhmmm
jnthn Did you call .candidates like i noted?
lizmat do you need that for .can ? 20:02
on what should I call .candidates ?
No such method 'candidates' for invocant of type 'List' 20:03
jnthn Yes
.can('...')[0].candidates[0].signature
lizmat ack
$ 6 'class A { has $.a }; dd A.can("BUILDALL_UNDER_CONSTRUCTION")[0].candidates[0].signature' 20:04
:(A:D $: ;; %init, *%_)
ok, *phew*
jnthn :)
lizmat ok, gotten a bit further 20:11
the Mu.BUILDALL masks the class's BUILDALL
so it's still getting called 20:12
however, if I remove it, the compiling the setting dies with: Cannot call BUILDALL; no signatures match
jnthn: I think this is the problem: (A:D $: ;; %init, *%_) versus (Mu:D $: %attrinit, *%_) 20:23
jnthn Yes
lizmat aka, the %init in the generated BUILDALL is after the ;;
jnthn Where are you building the sig? 20:24
uh, what's the code like?
I bet it's a missing :multi_invocant(1) or something
lizmat ah, lemme see
jnthn Seems you're already setting :invocant(1) or so on the first parameter 20:25
So that'd need to go on all of 'em
lizmat all of them ?
jnthn: like this? nqp::hash('variable_name','%init','multi_invocant',1) 20:26
jnthn yes :) 20:27
I think that's what it's called
nope 20:28
is_multi_invocant
lizmat justi multi I think ?
jnthn git grep <3
afk for a bit
jdv79_ my conc heavy app still stalls out and eats cpu 20:30
travis-ci Rakudo build failed. Zoffix Znet 'Remove dead test files from 6.d.proposals test file list 20:31
travis-ci.org/rakudo/rakudo/builds/280457303 github.com/rakudo/rakudo/compare/e...2950dcc87d
buggable [travis build above] ✓ All failures are due to: GitHub connectivity (1 failure).
jdv79_ i was hoping the new supply work would fix that
dogbert2 # expected: 'bark|name' 20:36
# got: 'BUILDALL_UNDER_CONSTRUCTION|bark|name'
lizmat: 20:37
lizmat yeah
that test is faulty
dogbert2 ok
lizmat it doesn't expect a auto-generated BUILDALL to appear in the class
(which is for now called BUILDALL_UNDER_CONSTRUCTION) 20:38
[Coke] is it 'prove6' or 'p6prove' ? 20:39
timotimo jdv79_: aye, it should figure out that it might need more threads and add more, but it's not doing that in your case? 20:40
travis-ci Rakudo build errored. Stefan Seifert 'Remove unnecessary creation of an extra serialization context 20:42
travis-ci.org/rakudo/rakudo/builds/280445160 github.com/rakudo/rakudo/compare/9...9fe7dbbd7b
buggable [travis build above] ✓ All failures are due to: missing build log (1 failure).
lizmat jnthn: current state 20:44
class A { has $.a }; say $_.perl for A.can("BUILDALL")[0].candidates
method BUILDALL (Mu:D $: @positional, %attrinit, *%_) { #`(Method|140428415732240) ... }
method BUILDALL (Mu:D $: %attrinit, *%_) { #`(Method|140428415732392) ... }
submethod BUILDALL (A:D $: %init, *%_) { #`(Submethod|140428461458232) ... }
[Coke] .seen tadzik 20:45
yoleaux I saw tadzik 19 Sep 2017 13:58Z in #perl6: <tadzik> oh, 18 is some black magic then
lizmat If I change the submethod to a method, then building core.d hangs
[Coke] .ask tadzik if p6prove is busted with "replace this Array is copy logic"
yoleaux [Coke]: I'll pass your message to tadzik.
lizmat jnthn: probably because an error occurs in the dispatch, and it all goes into lala land 20:46
with these candidates, it calls the Mu.BUILDALL candidate
[Coke] (RT) I am ok with a switch to github issues, but I would recommend doing it lazily: new stuff goes there. Link to old tickets as duplications happen or we need history. 20:47
(RT) maybe find out if we can leave the queue but prevent new issues from being opened and leave it there for historic RT# lookups. (If not, then given the large # of refs in roast, maybe we can't be lazy and have to actively convert tickets over) 20:48
Zoffix Was gonna ask, perhaps the new buildall stuff should be moved to a branch until the tests are fixed? It's hard to tell whether the breakage is due to the changes I'm introducing or not 20:57
lizmat well, lemme put it this way: the tests are a bit bogus to begin with, as they assume nothing will ever get auto-generated into a class 21:01
so I guess I will fix the tests
Zoffix Sure, but if I make a change and see 12 failures, I've no idea if my change is crap or not 21:02
m: sub foo {}; unit class Foo;
camelia ( no output )
lizmat fixing tests now 21:03
Zoffix I recall talk that `use v6.d.PREVIEW` needs to be the same as `unit` thing and die if it's too late. Should it be even sooner though? Since above the sub would be parsed using 6.c lang for example
m: say $*PERL.version; use v6.d.PREVIEW; 21:04
camelia v6.d
Zoffix m: BEGIN say $*PERL.version; use v6.d.PREVIEW;
camelia v6.c
Zoffix ...wonder how much code has `use v6;` not as a first line :/ 21:05
greppable6: use\ v6
greppable6 Zoffix, gist.github.com/54116362ad46da23ea...6172b43517
Zoffix
.oO( would be cool to get that output in JSON instead... )
21:06
$ perl6 -e '"result.md".IO.lines.grep(/":*" <-[123]> "*:"/).elems.say' 21:08
108
108 matches for when `use` line is not on 1st, 2nd, 3rd lines (though still might be as the first line of code)
Hm, I'm actually not totally following how the setting switch happens. From what I can see P6::World.loading_and_symbol_setup loads the setting at the start of P6::Grammar parsing, but then a `use v6.d.PREVIEW` parse does World.load_setting. So what exactly is the point when it's too late to load a new setting? 21:23
And can you load more and more, like: parse some stuff with 6.c, load 6.d, parse more stuff, load 6.e. And can you downgrade after doing that?
This is about this BTW: github.com/perl6/6.d-prep/blob/mas...s-to-throw 21:24
Zoffix dinners &
yoleaux Zoffix: schedule perl6.wtf update and fix the domain 21:25
Zoffix Thanks. 21:26
jnthn lizmat: --ll-exception maybe? 21:35
Though probably you tried that
lizmat --ll-exception during the setting build ? 21:36
jnthn Yeah but maybe we've got that on already
Was just thinking of avoiding the exception loop 21:37
But then realized that maybe the loop is in building the exception objects :P
lizmat yeah, got that already
yeah, probably :-)
thoughts about the candidates ?
jnthn The candidates look sensible
lizmat do they look good to you
ok
now, I wonder if I could eject the Mu.BUILDALL from the list is one is generated 21:38
jnthn As in, I'd expect the generated one to be typically picked
lizmat or: take its place ?
jnthn (unless there was an @foo arg too) 21:39
No, that's not needed
All multi-dispatch lists look like this
That is, contain the parents shadowed by the children too
lizmat m: class A { multi method a(Mu:D:) { "Mu" }; multi method a(A:D:) { "A" } }; A.a
camelia Cannot resolve caller a(A: ); none of these signatures match:
(Mu:D $: *%_)
(A:D $: *%_)
in block <unit> at <tmp> line 1
jnthn So that's totally normal
lizmat m: class A { multi method a(Mu:D:) { "Mu" }; multi method a(A:D:) { "A" } }; A.new.a 21:40
camelia ( no output )
lizmat m: class A { multi method a(Mu:D:) { "Mu" }; multi method a(A:D:) { "A" } }; dd A.new.a
camelia "A"
lizmat hmmm
m: class A { multi method a(Mu:D:) { "Mu" }; multi submethod a(A:D:) { "A" } }; dd A.new.a
camelia "A"
lizmat m: class A { multi method a(Mu:D:) { "Mu" }; multi submethod a(A:D:) { "A" } }; dd A.can("a").candidates[0]
camelia No such method 'candidates' for invocant of type 'List'
in block <unit> at <tmp> line 1
lizmat m: class A { multi method a(Mu:D:) { "Mu" }; multi submethod a(A:D:) { "A" } }; dd A.can("a")[0].candidates 21:41
camelia (method a (Mu:D $: *%_) { #`(Method|79805352) ... }, submethod a (A:D $: *%_) { #`(Submethod|79805504) ... })
Geth rakudo/nom: 63cf246fd4 | (Elizabeth Mattijsen)++ | 3 files
Stage 2 of auto-generated BUILDALL methods

  - the _UNDER_CONSTRUCTION postfix is removed
  - they've become multi's
  - it *should* be possible to remove the Mu.BUILDALL candidate
   but it breaks the core setting build
  - and somehow the Mu.BUILDALL shadows all auto-generated BUILDALLs
  - so no speed improvement yet :-(
22:02
lizmat to bad we can't make BUILDALL an only :-(
jnthn Why can't we?
I thought it used to be 22:03
And taking a throwaway arg should be pretty cheap
lizmat so you're saying we should take a slurpy list ? 22:04
jnthn I thought it was a single positional? 22:05
Oh....
The callers are inconsistent :S
lizmat github.com/rakudo/rakudo/blob/nom/...Mu.pm#L141
it's needed for Inline::Perl5 somehow :-( 22:06
jnthn I was sure that once we had it as an only method that always took two args?
lizmat well, that was long ago... apparently ?
I only know of the multi BUILDALL
Geth roast: 031b9cecdd | (Elizabeth Mattijsen)++ | S10-packages/precompilation.t
Make sure we ignore BUILDALL
22:07
jnthn github.com/rakudo/rakudo/commit/41...babceaca55 :P 22:08
Year and a bit ago
It used to be only
lizmat ok, I guess I did that 22:09
1.8x faster :-)
jnthn Could undo it ;)
Surely mostly from the .bless change though
Could just pass Empty or some other constant empty list to BUILDALL
Rather than slurping 22:10
I bet the cost was over 90% for the slurply in bless, not for the extra arg to BUILDALL
lizmat still, it feels like a waste 22:11
:-(
will look at that tomorrow
jnthn Are you grabbing it into a local?
If so, spesh will toss out the parameter receiving code anyway
lizmat what? the hash >
?
jnthn Yeah
Oh, that was confused
Geth roast/6.c-errata: 35b4b43b22 | (Elizabeth Mattijsen)++ | S10-packages/precompilation.t
Make sure we ignore BUILDALL
22:12
jnthn Better put: if you grab it into a local, not a lexical, then don't use it, then spesh will toss out the parameter receiving code anyway :)
lizmat QAST::Var.new(:decl<param>, :scope<local>, :name('%init'))
so already a local
ok, will do this tomorrow 22:13
getting some sleep first :-) 22:14
good night, #perl6-dev!
jnthn 'night, lizmat++
Zoffix timotimo: trying running coverage report but all tests bail out. Tried a few tests on their own and they work. I suspect cover script is broken. Won't try to fix it right now, unless someone really needs an updated coverage report than on what's cover.rakudo.party 22:19
timotimo oof
OK, thanks, i'll look at what's wrong locally
Zoffix I mean my coverage-generating script 22:20
Which is this: gist.github.com/zoffixznet/eff5c8f...ab8a94d7e2
jnthn sleep time o/
Zoffix \o 22:21
AlexDaniel did committable just segfault? :-/ 22:24
yoleaux 19:30Z <Zoffix> AlexDaniel: irclog.perlgeek.de/perl6-dev/2017-...i_15226307
19:46Z <Zoffix> AlexDaniel: commitable isn't getting new versions anymore. Last commit from 5 hours ago.... Now that I think of it, I killed some moar process when I was debugging ded bots and it might've been whatever the updater is...
timotimo i'll go to sleep soon enough, too
AlexDaniel Zoffix: ah ok, thanks
c: HEAD say 42 22:25
committable6 AlexDaniel, ¦HEAD(36122f1): «42»
AlexDaniel Zoffix: it was a build lock left behind. It may have been a build process that you killed, I've seen that happen before. But I'm always wondering why this does not fire in these cases: github.com/perl6/whateverable/blob...ild.p6#L61 22:29
greppable6: flatmap 22:30
greppable6 AlexDaniel, gist.github.com/0b6a13973d31ee817c...994a4a4765
AlexDaniel Zoffix: so the libssl issue was exactly this: github.com/perl6/6.d-prep/blob/mas...id-library ? 22:34
the version was precompiled and then I updated the library? 22:35
am I reading it right?
Zoffix no idea. jnthn++ told me he fixed something in SSL sock and I updated the module and it worked 22:36
AlexDaniel ah, okay
Zoffix a ton of those flatmap usages look to be just people flattening everything several times for no reason just because they don't know what flattens and when 22:37
timotimo ctrl-f "timo", phew. 22:38
AlexDaniel timotimo: haha
Zoffix: when I realized that flatmap used to do something different in pre-glr I lost any motivation to justify its usage in existing modules 22:40
c: pre-glr say ((1, 2), <a b>).map(&uc).join('|'); 22:41
committable6 AlexDaniel, ¦pre-glr: «1 2|A B»
AlexDaniel c: pre-glr say ((1, 2), <a b>).flatmap(&uc).join('|');
committable6 AlexDaniel, ¦pre-glr: «1|2|A|B»
AlexDaniel c: HEAD say ((1, 2), <a b>).map(&uc).join('|');
committable6 AlexDaniel, ¦HEAD(36122f1): «1 2|A B»
AlexDaniel c: HEAD say ((1, 2), <a b>).flatmap(&uc).join('|');
committable6 AlexDaniel, ¦HEAD(36122f1): «1 2|A B»
timotimo c: HEAD say ((1, 2), <a b>).flatmap({ $_, $_ }).join("|") 22:42
committable6 timotimo, ¦HEAD(36122f1): «1|2|1|2|a|b|a|b»
timotimo c: HEAD say ((1, 2), <a b>).map({ $_, $_ }).join("|")
committable6 timotimo, ¦HEAD(36122f1): «1 2 1 2|a b a b»
timotimo c: HEAD say ((1, 2), <a b>).map({ $_, $_ }).flat.join("|")
committable6 timotimo, ¦HEAD(36122f1): «1|2|1|2|a|b|a|b»
timotimo not sure what he wanted to do there 22:43
AlexDaniel c: pre-glr say ((1, 2), <foo bar>).flatmap(&tc).join('|');
committable6 AlexDaniel, ¦pre-glr: «1|2|Foo|Bar»
AlexDaniel c: HEAD say ((1, 2), <foo bar>).flatmap(&tc).join('|');
committable6 AlexDaniel, ¦HEAD(36122f1): «1 2|Foo bar»
AlexDaniel hmmm how do I get this behavior on HEAD…
c: HEAD say ((1, 2), <foo bar>).deepmap(&tc).join('|'); 22:44
committable6 AlexDaniel, ¦HEAD(36122f1): «1 2|Foo Bar»
Zoffix .flat.map
AlexDaniel or that, yeah
AlexDaniel is reading 6.d-prep docs 22:47
Zoffix: fwiw, have you seen TimToady's answer for the naming question on one of the recent conferences? It was like “things can have multiple names at the same time and it's ok” 22:48
Zoffix: maybe that can be used as an answer to this part: “Executive decision on whether the name extension can be officially made”
timotimo but aliasing prevents a lot of optimizations!
Zoffix AlexDaniel: no, didn't see any answers. 22:49
AlexDaniel fwiw, looking at Go/golang I find “6lang” as a very achievable alternative branding. And if we feel extra fancy, we can pronounce it as “slang” 22:51
but I didn't really think this through, so feel free to call this idea moronic 22:52
Zoffix I like 6lang 22:53
And even those that don't know an alternate name for "Perl 6" can fill in the dots and figure out what it is 22:54
AlexDaniel Zoffix++ for making me recognize the need for alternative name. For a long time I was against
and honestly, I can start using something like 6lang right away. “Rakudo Perl 6” is infringing on language/compiler distinction so I'm feeling reluctant 22:58
Zoffix OK, I'll too start using 6lang 23:01
Zoffix is now a proud owner of 6lang.party :D 23:03
timotimo wow 23:04
AlexDaniel that was quick
this was the actual answer: youtu.be/E5t8qaAGw9w?t=4886 23:10
Zoffix hehe :) Nice 23:13
AlexDaniel c: HEAD say 42
committable6 AlexDaniel, ¦HEAD(63cf246): «42»
AlexDaniel m: say 42 23:14
camelia 42
Zoffix TIL Perl is in oxford dict: en.oxforddictionaries.com/definition/perl
AlexDaniel uhh 23:19
u: U+FD3E
unicodable6 AlexDaniel, U+FD3E ORNATE LEFT PARENTHESIS [Pe] (﴾)
AlexDaniel greppable: ﴾
greppable6 AlexDaniel, Found nothing!
AlexDaniel quotable6: ﴾ 23:21
quotable6 AlexDaniel, gist.github.com/92cb23faf4207e312a...b10fa614fe
AlexDaniel quotable6: ‘﴾’
quotable6 AlexDaniel, gist.github.com/b2949b262f5278820d...c437e94b00 23:22
AlexDaniel .tell samcv IMO the issue with ornate parens is clearly a mistake that arguably could've been fixed within v6.c, so I think you should feel free to go ahead and drop them in v6.d. 23:26
yoleaux AlexDaniel: I'll pass your message to samcv.
samcv yes i plan to drop in 6.d. the problem is there were roast tests for it 23:27
yoleaux 23:26Z <AlexDaniel> samcv: IMO the issue with ornate parens is clearly a mistake that arguably could've been fixed within v6.c, so I think you should feel free to go ahead and drop them in v6.d.
samcv i fixed a few parens being the wrong order, so it wanted the end paren at the start and the start at the end. but the ornate need to be removed
AlexDaniel right, so we still have to treat them the old way within “use v6.c”… :S 23:28
samcv well if people think i should just remove them I will
as long as other devs are okay with it
AlexDaniel I'm OK with it. If there's one person who was using these parens in real code I can send them an apology letter :) 23:30
Zoffix :D
samcv greppable6, ﴾
greppable6 samcv, Found nothing!
samcv greppable6, «
greppable works for random symbols yes or no?
AlexDaniel greppable6, «
greppable6 AlexDaniel, gist.github.com/eb41060509502bf3b5...e6c8a0d61c 23:31
AlexDaniel that was a SEGV too, I think
I'll try to reproduce it here
samcv greppable6, ﴾ 23:32
greppable6 samcv, Found nothing!
AlexDaniel gcan't reprduce 23:33
samcv: yes, unless it blows up due to random segfault or whatever 23:34
samcv ok. so Zoffix is ok with me changing 6.c-errata then?
also 6lang i kind of like as a name. the only question becomes how branding would go
Geth rakudo/nom: 6d2adb20f2 | (Zoffix Znet)++ | 3 files
[6.d] Deprecate IO::Path.chdir
23:35
samcv a brand doesn't work if it has no recognition
Zoffix We build it 23:36
AlexDaniel adds “6lang” tag to whateverable repo
Zoffix samcv: I wasn't following… if the test is wrong or tests incorrectly implemented behaviour, then sure, we can change 6.c-errata 23:37
samcv well it'd be removing ornate parenthesis. i mean it really depends how you define it. but it is wrong. and nobody is using it which i think i guess is a big thing
it's only real thing for keeping it, is that it's in 6.c-errata
timotimo the perl6 peeps must be crazy thinking they can build reputation for a whole new name out of thin air :) 23:38
samcv but unicode properties do not consider them a bracket
Geth 6.d-prep: 71d057c49c | (Zoffix Znet)++ | 2 files
Mark IO::Path.chdir deprecation as completed

Done in github.com/rakudo/rakudo/commit/6d2adb20f2
AlexDaniel timotimo: you mean 6lang peeps? 23:41
timotimo :)
Zoffix \o/
MasterDuke timotimo: btw, figure out that MVM_string_equal (or was it something to do with ?CLASS) business? 23:42
samcv: could you look at jnthn
's last comment on github.com/MoarVM/MoarVM/pull/705 ?
samcv about nfg stable? 23:43
MasterDuke that's why i was asking about combiners, but everything i tried seemed to work
yeah
timotimo haven't figured it out
AlexDaniel greppable6: slurp-rest
greppable6 AlexDaniel, gist.github.com/c72b21a180067cff69...7d3a54b46e
AlexDaniel Zoffix: is correct that I can just s/slurp-rest/slurp/ in all of my code? 23:44
timotimo m: say $*IN.slurp
camelia »Wann treffen wir drei wieder zusamm?«
»Um die siebente Stund‘, am Brückendamm.«
»Am Mittelpfeiler.«
»Ich lösche die Flamm.«
»Ich mit«

»Ich komme vom Norden her.«
»Und ich vom Süden.«…
timotimo m: say $*IN.slurp-rest
camelia »Wann treffen wir drei wieder zusamm?«
»Um die siebente Stund‘, am Brückendamm.«
»Am Mittelpfeiler.«
»Ich lösche die Flamm.«
»Ich mit«

»Ich komme vom Norden her.«
»Und ich vom Süden.«…
Zoffix AlexDaniel: yes 23:45
AlexDaniel greppable6: lines.*count 23:46
greppable6 AlexDaniel, gist.github.com/212c6c503e09866c51...ac64eb1d93
AlexDaniel m: say lines(:1count); say lines(:1count) 23:47
camelia (»Wann treffen wir drei wieder zusamm?« »Um die siebente Stund‘, am Brückendamm.« »Am Mittelpfeiler.« »Ich lösche die Flamm.« »Ich mit« »Ich komme vom Norden her.« »Und ich vom Süden.« »Und…
AlexDaniel m: say lines(:1count);
camelia (»Wann treffen wir drei wieder zusamm?« »Um die siebente Stund‘, am Brückendamm.« »Am Mittelpfeiler.« »Ich lösche die Flamm.« »Ich mit« »Ich komme vom Norden her.« »Und ich vom Süden.« »Und…
samcv MasterDuke, i don't get what you're doing here 23:48
the all_strands_of_same_type variable only seems to hold whether the separator is a strand 23:49
is it just named badly?
AlexDaniel $count ?? self.lines.elems !! self.lines;
wtf :D
MasterDuke it also checks the pieces later in the code
samcv ok well what cases are being optimized here 23:50
compared to the other cases
where you're joining strands instead of flat strings?
MasterDuke just the case of all the strings (separator + list of other strings) are strands
samcv so you only are copying strands or something? 23:51
MasterDuke in that case, yeah
AlexDaniel “De-magicalize '-' in IO::Handle.open” yes, yes 23:52
samcv also
16 <= total_graphs / total_strands
MasterDuke yeah? 23:53
samcv yeah so what are you controlling for here. that's total_strands of all pieces combined? 23:54
and total_graphs of all pieces?
MasterDuke yep
a heuristic to avoid the overhead of messing around with strands instead of a flat string unless it would be helpful 23:55
AlexDaniel Zoffix: my opinion may not matter much, but I've read through v6.d-prep docs and everything makes a lot of sense 23:56
samcv so yeah you need to control for combininers
just because you haven't triggered it. i guarentee you it's there ;)
though if you want to trigger it easier you can turn on NFG_CHECK i think it's called
MasterDuke how do i trigger it? 23:57
samcv i *think* i have one of those at the end of join. though you should check
well i'd look at things which change under normalization. and also add a fprintf t o make sure you know if it's actually triggering this section of the code
MasterDuke the `STRAND_CHECK(tc, result);`?
samcv nope
AlexDaniel greppable6: write-internal
greppable6 AlexDaniel, Found nothing!
AlexDaniel greppable6: read-internal
greppable6 AlexDaniel, Found nothing!
MasterDuke samcv: so there aren't any tests in roast for that condition? 23:58
samcv in that case you should add NFG_CHECK(tc, result, "MVM_string_join")
for join? probably not
there are for concat
i would try altering those to also do it for join
give me a sec i'll find where they're generated
MasterDuke thanks 23:59
samcv also go to src/strings/ops.h
and define MVM_DEBUG_NFG and MVM_DEBUG_NFG_STRICT