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