Geth rakudo/nom: bd4094e24b | (Elizabeth Mattijsen)++ | src/core/Junction.pm
Only actually stringify non-Str in Junction.Str

Makes it about 2x as fast if the junction already consistes of strings.
08:12
rakudo/nom: a3c71e7d39 | (Elizabeth Mattijsen)++ | src/core/Junction.pm
Concatting a Junction with an empty string is just .Str
08:24
brrt can we make a plan for killing the extops 08:51
Geth roast: 1d784096c9 | (brian d foy)++ (committed using GitHub Web editor) | S06-signature/slurpy-params.t
Minor typo
09:35
nqp: 980ea2684d | pmurias++ | src/vm/js/nqp-runtime/io.js
[js] Make nqp::readfh work on stdin

This works on linux, but needs to be tested on windows (which lacks /dev/stdin)
09:45
nine Killing extops? I'd like that. They never made sense to me considering that MoarVM was explicitly written to run rakudo :) 09:48
jnthn They're largely "things we didn't have time to design right in the VM, so exported the technical debt" :) 09:49
(Yes, I'd like to see them go. No, I don't care to do it by just moving them.)
brrt what would you recommend we'd need for them to go? 10:06
jnthn Well, step 1 is probably to re-design the stuff that underpins Scalar 10:08
Which we need to do for spesh to better understand it anyway
brrt hmmm
jnthn Once *that* is moved into MoarVM at least a few ops will go away
The p6box_i, p6box_s etc. can easily go today 10:09
Anyone can do that
We "just" need to turn them into a wval + box instruction
Or perhaps a hllboxtype_i + box
That probably just leaves a small number of things 10:10
brrt uhuh
Geth nqp: fff99261e1 | (Jonathan Worthington)++ | docs/ops.markdown
Design/document soon-to-be-added atomic ops.

These will be implemented in MoarVM and used to make atomics available in Rakudo.
11:10
dogbert17_ ZOFFLOP: S03-junctions/autothreading.t, S05-modifier/ignoremark.t, S05-modifier/samemark.t, S17-promise/nonblocking-await.t, S32-io/IO-Socket-Async.t and S32-io/IO-Socket-INET.t 11:56
jnthn So I'm putting in various atomic ops and pondering exactly how we'll expose them at Perl 6 level. 13:05
A cas function is fine enough and we can overload it for Scalar and int 13:06
Question beyond that is if we'd prefer an interface like Atomic.something(...) or a more functional interface
timotimo just can't be bigint ... or immutable Int :P 13:07
jnthn Right, has to be an `int $target is rw`
m: multi m(int $target is rw) { say "int" }; multi m($x is rw) { say "reference" }; my int $test = 42; m($test); my $test2 = Mu; m($test2) 13:08
camelia int?Cannot resolve caller m(Mu); none of these signatures match:? (int $target is rw)? ($x is rw)? in block <unit> at <tmp> line 1??
jnthn oops
m: multi m(int $target is rw) { say "int" }; multi m($x is rw) { say "reference" }; my int $test = 42; m($test); my $test2 = Any; m($test2)
camelia int?reference?
jnthn m: multi m(int $target is rw) { say "int" }; multi m($x is rw) { say "reference" }; my int $test = 42; m($test); my $test2 = 42; m($test2) 13:09
camelia int?reference?
jnthn So those fall fine out of multi
The other operations on scalars are atomic load and atomic store
The other opreations on native int are atomic increment, decrement, add, load, and store
timotimo ah, scalars will also store and load actual objects 13:10
jnthn There's then an argument-less memory barrier
The boring answer is just Atomic.add($i, 42)
Atomic.full-barrier()
etc.
timotimo Atomic+ Atomic- :P
is this anything to do with making object hashes perl6-level and making them threadsafe? 13:11
or your latest secret project?
jnthn But...well yeah, we can do horrors like $x A= $obj
:P
timotimo we do have the S metaop for "sequential" or something
that's sort of what you get when you use atomic ops
jnthn No, it's to do with somebody offering me funding to implement atomics :-)
timotimo oh, cool 13:12
.o( now in theaters: Atomic Jonthe )
jnthn :P
Wait, what secret project? :P :P Just 'cus I've got my first talk in ages coming up doesn't mean there'll be a big reveal :P
timotimo :D 13:13
jnthn Or at least, it doesn't *have* to... ;-)
timotimo no pressure
jnthn I pondered some atomic-y meta-op
But it seems pretty poor generalization
timotimo very
i mean, it could be like += but instead of "assigning" it'll compare-and-swap in a loop or something?! 13:14
jnthn We'd have to pick a non-ascii char for it too
+= can't fail
There's a direct atomic add
So no implicit loop there
timotimo bad example, indeed
jnthn I think cas just wants to be a function
timotimo A.= lc
jnthn Yeah but ++ and -- are the other ones 13:15
And you can't A++ and A-- 'cus it'd have to be written $foo\A++ to not be ambiguous anyway
timotimo indeed, that'd be ugly
jnthn And then it'd only work on a native int of the right size :P
timotimo +A+ -A- *ugh*
jnthn eww :P
++A and --A and =A and +=A would work but...uh... ) 13:16
timotimo except we also have pre-increment
though i believe the increment and decrement atomic ops give you the before value already
jnthn Not natively but yeah, we can simulate it
Right
I think I'll go the boring route for now 13:17
timotimo that'll be acceptable
jnthn There are pretty special case anyway
Argubably they could just be functions
Not Atomic.blah
Since cas already is
pmurias jnthn: are $a.=repeated and $a .= repeated meant to compile differently? 14:24
jnthn: $a.=repeated has a sink when compiled while $a .= repeated doesn't 14:25
jnthn They're parsed very differently 14:30
The first is parsed as a method call, like .+ and .* are 14:31
The latter as an infix op
pmurias both are intended to have identical semantics?
jnthn Yeah
Not sure what stops the latter one getting the sink
Oh
Maybe the problem is the former does get the sink though
Yeah, it's an assignment
And assignments shouldn't be sunk 14:32
pmurias the sink is somehow called only on the JVM/JS backends 14:33
I'll debug that
jnthn pmurias++ 14:34
Geth nqp/atomics: 8fddad9170 | (Jonathan Worthington)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp
Map new atomic ops on MoarVM backend.
14:43
pmurias jnthn: it turns out that nqp::p6sink is called on MoarVM backend but it doesn't do anything because it gets a container (and nqp::p6sink deconts that container on the jvm and js) 15:21
jnthn: I assume I should fix nqp::p6sink on js & jvm and stop the nqp::p6sink being emitted for .= on all backends? 15:23
Geth rakudo/atomics: 01b6d3f56e | (Jonathan Worthington)++ | 4 files
Initial implementation of real cas on Scalars.
15:31
jnthn I guess if something's in a container we shouldn't sink it, yeah 15:32
And yes, we don't want to sink .= since it's stored
Geth roast: a42b3995b3 | (Jonathan Worthington)++ | S17-lowlevel/cas.t
Add tests for the cas function.
15:34
rakudo/atomics: 40853b4f73 | (Jonathan Worthington)++ | 2 files
Re-implement auto-looping form of cas.

This time actually doing it atomic.
16:24
rakudo/atomics: 0155358517 | (Jonathan Worthington)++ | t/spectest.data
Run new cas tests.
AlexDaniel .seen perlpilot 16:41
yoleaux I saw perlpilot 2 Aug 2017 17:52Z in #perl6: <perlpilot> Altreus: gist works
nine jnthn: functions are much easier to replace in a lexical scope, i.e. a new language version. So when in doubt about an API, functions are a less risky way. 17:59
samcv AlexDaniel, that RT is probably not caused by me. i made changes which fixed a bug in ignoremark 18:16
ignoremark used to match if the first two codepoints in the needle were a match (no matter what else was in the needle)
so 'hello' ~~ /:m hem/ would match
i will reply to the RT after i make some tea
RT if anyone curious rt.perl.org/rt3/Public/Bug/Display...?id=131881 18:17
though i maybe commited some other fixes that i will have to check 18:18
ah no i haven't made a fix another location yet. not sure if it will fix this. it is possible? i will see in a bit. 18:24
tea &
jnthn nine: Good point, though in this case I'd expect it to be relatively low-risk; this is epxosing rather well-defined primitives. :) 18:27
But yeah, I guess functions are more natural than methods always called on a type object 18:28
pmurias function calls are easier to optimize too 18:50
jnthn That also 18:54
samcv AlexDaniel, so that bug is going to be fixed, just running spectest on everything. full details on squashing in #moarvm
jnthn Don't need the speculative opt
samcv NeuralAnomaly, staus 18:56
NeuralAnomaly, status
NeuralAnomaly samcv, [?] Next release will be in 4 days and 9 hours. Since last release, there are 49 new still-open tickets (2 unreviewed and 3 blockers) and 156 unreviewed commits. See perl6.fail/release/stats for details
Geth nqp: 63d534d6ab | (Samantha McVey)++ | tools/build/MOAR_REVISION
Bump MoarVM to get ignoremark fixes and other changes

Full list of changes brought in: 712cff33 Fix a bug in index/eqat(im) and in ord_getbasechar 3e3f66ea Cleanup typos, formatting, etc in comments 7c4150f5 Cleanup typos, formatting, etc in comments 29d48d99 Cleanup typo in comments ... (16 more lines)
19:11
Ā¦ nqp: version bump brought these changes: github.com/MoarVM/MoarVM/compare/2...-g712cff33
rakudo/nom: 7b81f0f996 | (Samantha McVey)++ | tools/build/NQP_REVISION
Bump Moar/NQP for ignoremark fixes

NQP changes brought in: 63d534d6a Bump MoarVM to get ignoremark fixes and other changes fff99261e Design/document soon-to-be-added atomic ops. 980ea2684 [js] Make nqp::readfh work on stdin
... (23 more lines)
19:16
Ā¦ rakudo/nom: version bump brought these changes: github.com/perl6/nqp/compare/2017....g63d534d6a
roast: c185acc57a | (Samantha McVey)++ | S05-modifier/ignoremark.t
Add ignoremark tests to cover JSON::Tiny regression + other issue

Synthetics with decomposable base characters properly work with ignoremark
  \c[LATIN SMALL LETTER J WITH CARON, COMBINING DOT BELOW]" ~~ /:m:i j /
Since letter j with caron is one codepoint. It used to not decompose it.
With latest MoarVM changes this is fixed, as well as the JSON::Tiny regression.
19:19
samcv moritz, the JSON::Tiny bug should be fixed now 19:31
moritz samcv: thanks!
lizmat FWIW, I will fix t/spec/S03-junctions/autothreading.t issues tomorrow 19:33
samcv you're very welcome moritz
Geth roast: 8e1f6718ab | pmurias++ | S04-statements/sink.t
Test that we don't sink things in containers
20:05
pmurias hmm, how can I add a sink method to a Proxy (or any other container) and still have it remain usable as a container 20:22
lizmat but role { method sink { } } 20:24
AlexDaniel releasable6: status 20:54
releasable6 AlexDaniel, Next release in 4 days and ?22 hours. 3 blockers. Changelog for this release was not started yet
AlexDaniel, Details: gist.github.com/03d0c3bbcd3b966773...2056b27da3
AlexDaniel kinda like this
perlpilot AlexDaniel: what's up? 21:04
yoleaux 7 Aug 2017 21:08Z <AlexDaniel> perlpilot: github.com/perlpilot/p6-sake/pull/6 plz
perlpilot ah 21:05
AlexDaniel :)
perlpilot though, I'm clearly behind the curve a little bit in what's going on :)
EVALFILE doesn't require some MONKEY-THING? 21:07
AlexDaniel perlpilot: hm, that's an interesting question, but nope
perlpilot: there's one more pull request that I'd love to see merged, btw :) 21:12
perlpilot AlexDaniel++ 21:14
AlexDaniel thanks! 21:15
samcv releasable6, status 21:24
releasable6 samcv, Next release in 4 days and ?21 hours. 3 blockers. Changelog for this release was not started yet
samcv, Details: gist.github.com/eb9a23d677af0303c7...2287e8dc5b
samcv hm wonder how long it takes to update. i just closed one of the blockers 21:25
AlexDaniel samcv: blockers are taken from perl6.fail/ and the list is maintained manually there 21:26
samcv: I'll do something about it, maybe, but later
samcv: by the way, any tests for that ticket? 21:27
samcv yes
:) 21:28
AlexDaniel ah, I see already
samcv: great, thanks!
releasable6, status
releasable6 AlexDaniel, Next release in 4 days and ?21 hours. 1 blocker. Changelog for this release was not started yet
AlexDaniel, Details: gist.github.com/19ebdeca33f069a41e...046dd0924c
samcv nice so do we have all blockers resolvd then? 21:30
AlexDaniel samcv: I misclickedā€¦ :) 21:31
releasable6: status
releasable6 AlexDaniel, Next release in 4 days and ?21 hours. 2 blockers. Changelog for this release was not started yet
AlexDaniel, Details: gist.github.com/99392a3652831427fa...a2e55672b4
AlexDaniel this one is right
the memory issue thingā€¦ I just tested it. It got better, but it's still leaking
let's see if I can reproduce the leak with the provided exampleā€¦ 21:32
yeah, I can. But it's less severe 21:35
samcv is it a really bad memory leak? (is/was?)
AlexDaniel it was horrible, yes. Currently not that much 21:36
in fact, I'm not sure if it was perfectly clean before it got worse 21:37
samcv hm 21:41
jnthn AlexDaniel: I'll try and take care of rt.perl.org/Public/Bug/Display.html?id=131857 this week 22:02
AlexDaniel jnthn: ok! Thanks 22:03
jnthn: regarding RT #131879, I just reverted my commits that increased timeouts for bot tests (which is how I initially noticed the issue), everything is fine 22:04
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131879
AlexDaniel jnthn: so it is still leaking, noticeably but not too significantly, so I don't think that many people will notice it. Therefore, it's OK
jnthn OK, guess that'll do for now then :)
AlexDaniel releasable6: status 22:06
releasable6 AlexDaniel, Next release in 4 days and ?20 hours. 1 blocker. Changelog for this release was not started yet
AlexDaniel, Details: gist.github.com/ee20b024b14c5c6491...6d9ddae0d8
AlexDaniel alright
lizmat AlexDaniel++ # welcome to the core team 22:12
AlexDaniel: shouldn't you be in CREDITS now ??
AlexDaniel lizmat: \o/ thanks 22:13
lizmat: I never wondered what's the criteria for inclusion there 22:16
lizmat well, having a commit bit definitely means you should be in there :-)
AlexDaniel alright I'll add myself then
Geth rakudo/nom: 29e41b45fa | (Aleks-Daniel Jakimenko-Aleksejev)++ | CREDITS
Add myself to CREDITS
22:22
lizmat AlexDaniel++ :-) 22:26
AlexDaniel by the way, the release process will be a little bit different this time. Still automated and awesome, but different 22:34
I'm doing some tests right now, so more info on that later
Geth rakudo/nom: 231cb3f5fe | (Jonathan Worthington)++ | src/core/IO/Path.pm
Fix bad assumption about methods being closures.

They're not, since they're looked up via a table in the meta-object. Thus this could cause data races when paths were being manipulated from different threads.
22:53
jnthn That caused some pretty weird errors :P 22:54
lizmat and another issue of the Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/08/14/...in-review/ 23:02
good night, #perl6-dev! 23:05
Zoffix lizmat++ # good weekly 23:10
TimToady waves from mountain view 23:15
timotimo waves views from wave mountain 23:22