dalek ast: 417f454 | usev6++ | S32-num/rat.t:
Skip test for RT #128264 on JVM
04:34
[Tux] This is Rakudo version 2016.05-14-g1ab1fb6 built on MoarVM version 2016.05 07:29
test 20.456
test-t 13.220
csv-parser 34.131
masak [Tux]: what's the general trend lately? 08:13
[Tux] stable 08:18
tux.nl/Talks/CSV6/images/test-t-14.png 08:19
lizmat & me discussed the noise window yesterday and we think it is like 1.25 sec
dalek kudo/nom: 5638a13 | moritz++ | lib/Test.pm6:
Remove diag() call from subtest

this is not what diag is for, and the overall response to this has not been positive.
09:08
travis-ci Rakudo build failed. Moritz Lenz 'Remove diag() call from subtest 10:10
travis-ci.org/rakudo/rakudo/builds/133326163 github.com/rakudo/rakudo/compare/1...38a13ab46b
jnthn A slide deck on work towards cancellation of promises in the JS world: docs.google.com/presentation/d/1V4...9e470d_0_0 10:16
Borrowing a good amount from the .Net approach also 10:17
A problem we'll want to take on at some point also. 10:18
masak jnthn: I find it interesting that people (notably getify) are upset about promises getting cancelable. 11:53
jnthn masak: One reason I didn't do anything about it in Perl 6 promises so far is 'cus it's, well, a hard problem :) 12:10
And I figured we might be able to borrow things from the best solutions that show up 12:11
masak: Any good reading on what they don't like about the plans?
masak yes, as it happens. let me find the reference for you. 12:22
but the tl;dr is: it's basically a philosophical disagreement, as in "the Promise interface (as ideally envisioned) doesn't do that" 12:23
"Promises cannot be canceled -- and shouldn't be as that would destroy the external immutability trust discussed in the "Promise Uncancelable" section later in this chapter -- so they can only be silently ignored." -- github.com/getify/You-Dont-Know-JS...nce/ch3.md 12:24
dalek kudo/nom: 13ad297 | lizmat++ | src/core/List.pm:
A little List.iterator streamlining
12:25
masak "the problem is that it would let one consumer/observer of a Promise affect some other consumer's ability to observe that same Promise. This violates the future-value's trustability (external immutability)" 12:33
(ibid.)
jnthn aha 12:34
Yes, that's a good argument.
dalek kudo/nom: e0e8f30 | lizmat++ | src/core/ (2 files):
List.iterator -> Array, simplify List.iterator

Part one of some refactoring creating a better and faster Array.iterator
12:48
Woodi "the problem is that it would let one consumer/observer of a Promise affect..." - there is some strange definition of promises there, IMO... I thinked promises are just functions "backgrounded" and private like normal variables. if somethink other can observe it then it is totally other system and only in this *other* system cancelling influence other observers... 12:58
masak Woodi: promises are objects. objects have references. references can be shared across the program. therefore, different consumers can observe the same promise. 13:10
that's not a strange definition. that's how it's set up to work.
Woodi masak: ok, so sharing makes computation processes waste cpu... canceled promise can be a NULL in some shared struct. 13:17
dalek p: 1b591b3 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Revert "Revert "Merge pull request #287 from MasterDuke17/master""

This reverts commit 8e105721e877011ba317a5bed27db81949ebd4a5.
kudo/nom: 86e3e29 | (Daniel Green)++ | / (2 files):
Fix RT #128073. Also some further cleanup of IO::Path.dir to remove some VM specific code.
13:18
kudo/nom: a80414e | peschwa++ | / (2 files):
Merge pull request #772 from MasterDuke17/RT128073

Fix RT #772
Confirmed locally that the current R-J failure mode doesn't change with this and NQP PR #287.
travis-ci Rakudo build failed. Elizabeth Mattijsen 'A little List.iterator streamlining' 13:28
travis-ci.org/rakudo/rakudo/builds/133366703 github.com/rakudo/rakudo/compare/5...ad297460b7
nwc10 not sure if this is old news, or the wrong channel 13:34
but commit 86e3e2955b733e77287a0c3d4807dc0f339a875b seems to set tools/build/NQP_REVISION to a revision that's in the future.
psch nwc10: ah, right 13:35
i saw that locally, but overlooked to fix it
dalek kudo/nom: e5bd09e | peschwa++ | tools/build/NQP_REVISION:
Fix NQP_REVISION

Thanks nwc10++ for the reminder.
13:36
nwc10 thanks for the fix - past the Configure.pl stage and into testing the build... 13:37
psch it still breaks during install-core-dist.pl
nine++ says that's because the "BEGIN EVAL during precomp" fix hasn't landed for r-j yet 13:38
unfortunately i don't know what to look at to find that fix, nor how to fix it without cargo-culting the moar solution
lizmat afk for a few hours& 14:03
nwc10 it worked. building jnthn's next MoarVM iteration... 14:04
travis-ci Rakudo build failed. Elizabeth Mattijsen 'List.iterator -> Array, simplify List.iterator 14:21
travis-ci.org/rakudo/rakudo/builds/133371745 github.com/rakudo/rakudo/compare/1...e8f3010d76
masak Woodi: "waste CPU" is also not the issue. 14:45
Woodi: let's say consumers A and B are each holding a reference to the same promise. what's the *guarantee* that an unresolved promise gives? right, that it succeeds or fails. 14:46
now, let A cancel the promise. that guarantee is now broken for B.
MadcapJake But not broken, according to that presentation, it's a third state: canceled 14:53
which is why the promise api mentioned also has to be reworked to include cancel callbacks 14:54
Woodi masak: cancelling by A can result in failure for B (and A too). but main problem for me is: hey thread buddy, allow me to share this function *call* with you! :) promise result can be shared freely, but a "function call" ? 14:56
MadcapJake the "trustability" argument rings false to me because, at least according to the presentation, it would be entirely dependent on the producer handling a CancelToken, iiuc 14:57
travis-ci Rakudo build failed. peschwa 'Merge pull request #772 from MasterDuke17/RT128073 15:06
travis-ci.org/rakudo/rakudo/builds/133378699 github.com/rakudo/rakudo/compare/e...0414edc119
psch i *really* wish i knew how to fix that setcodeobj bug :( 15:08
masak I wonder how much already-written JS code that uses Promises will become wrong in the face of cancellation. 15:10
MadcapJake none, it's the last argument in all cases 15:11
travis-ci Rakudo build failed. Pepe Schwarz 'Fix NQP_REVISION 15:48
travis-ci.org/rakudo/rakudo/builds/133383717 github.com/rakudo/rakudo/compare/a...bd09e3f99c
nine psch: in short the fix is about breaking the assumption that there's a 1:1:1 relationship between compilation unit, serialization context and byte code compiler instance 17:03
psch ...i don't think that helps me understand :) 17:04
nine psch: usually the compiler has to compile one compilation unit, store the objects created during compilation into the current serialization context and have a byte code compiler serialize the result into a file. 17:05
psch: EVALs though are a compilation unit of their own. But they do not have their own file where the result could be stored. 17:06
psch: so instead we store those objects into the serialization context of the surrounding comp unit.
Sounds rather easy and straight forward conceptually, but it breaks the assumption I mentioned in several places in the whole compiler stack. 17:08
psch nine: i think i'll have to retrace this with a fresher brain than i have available right now, to even understand it 17:12
i doubt i'll come to a solution, still
fwiw, i'd still like the commit that fixed it on moar, if you still have its hash around 17:13
nine psch: github.com/perl6/nqp/commit/cbdf5b...4c9a73bd63 github.com/perl6/nqp/commit/125eb3...4af6cc0e84 github.com/rakudo/rakudo/commit/ad...934af3184c github.com/rakudo/rakudo/commit/6d...5be0ed72c4 17:17
psch nine: thanks. i'll see if i get around to digging into that, coupled with your explanation, during the weekend 17:19
nine psch: I guess that the modifications to src/vm/moar/QAST/QASTCompilerMAST.nqp the first NQP commit does are the key
psch: that would be awesome :) Will visit my parents over the weekend so will not have real coding time. And so far I've not exactly made good progress :/ 17:20
I'm a complete newbie to the JVM backend after all and it's quite different to MoarVM in places
psch nine: well, i'd really like travis to finally shutup, without having to tell it not to report r-j build failures... :)
nine: and i really just have no idea right now what is even wrong in the first place 17:21
symtomatically it's just "we hand a null value to setcodeobj", but clearly there's a lot more going on
and even if i'm somewhat familiar with nqp-j, i'm really not particularly familiar with the architecture as such
nine Could be that we share too many bits between the EVAL's compilation unit and the outer compilation unit. 17:22
or too few 17:23
psch well, my naive interpretation of the error message would be that we lose the reference to the EVAL coderef while writing the surrounding CU 17:25
but yeah, i have no idea how good a guess that is, because i don't really know what's actually going on... :) 17:26
nine That's probably quite close to the truth. Only compilcated by the fact that for code objects rakudo installs a stub (in finish_code_object) that when called finishes compilation of this code object early so it can be called during compilation. 17:30
That's how BEGIN stuff works and what we need for the EVAL in question. Because it's run as part of module loading, which usually means a "use" or "need" statement which are BEGIN time by definition. 17:31
psch so the crux of the issue probably comes down to "finish_code_object doesn't handle one specific edge case correctly"? 17:33
well, i think i have enough to go on for tomorrow right now, thanks for the explanations :) 17:34
nine More or less, yes. Thanks for having a look :) 17:38
[Coke] RT: 1299; CONC: 7; GLR: 6; JVM: 68; LHF: 1; LTA: 74; NYI: 28; OSX: 6; PERF: 15; POD: 3; PRECOMP: 3; RFC: 19; SEGV: 19; STAR: 1; TESTNEEDED: 29; TODO: 9; UNI: 5; WEIRD: 3 18:04
dalek kudo/nom: d2f6e6a | lizmat++ | src/core/Rakudo/Internals.pm:
Add EmptyIterator class

Needed for List/Array.iterator streamlining
21:33
kudo/nom: 1b13351 | lizmat++ | src/core/Hash.pm:
Bring Hash.keyof up to date, dogbert17++
kudo/nom: 1135805 | lizmat++ | src/core/Hash.pm:
Revert "Bring Hash.keyof up to date, dogbert17++"

This reverts commit 1b13351eacf7ebc1a460151301180705c269b50a.
Will look at this later
21:36
kudo/nom: be4e439 | jnthn++ | src/Perl6/Metamodel/CoercionHOW.nqp:
Implement shortname method in CoercionHOW.
21:41
jnthn m: use Test; is Str(Any).gist, 'Str(Any)', 'Can gist a coercion type'; 21:44
camelia rakudo-moar e5bd09: OUTPUT«Method 'shortname' not found for invocant of class 'Perl6::Metamodel::CoercionHOW'␤ in block <unit> at /tmp/ONwb9iR_vD line 1␤␤»
dalek ast: de11e00 | jnthn++ | S12-coercion/coercion-types.t:
Add test for coercion type .gist.
21:45
jnthn lizmat: That bit's fixed, at least :)
lizmat jnthn: if we're iterated over a list once, should be expect all elements to be reified ? 22:02
*we've
*we
*sigh*
I guess I have more jetlag than I thought
jnthn lizmat: Well, if we completed the iteration, yes 22:03
lizmat ok, I guess we're not resetting $!todo in the List.iterator 22:04
so any subsequent iteration will take the slow path
jnthn $!todo should be cleared after the list is fully reified.
lizmat ack
jnthn iirc anyway :)
sleep time & 22:09
timotimo rest well, jnthn :)
lizmat good night, jnthn 22:10
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Bring Hash.keyof up to date, dogbert17++' 22:34
travis-ci.org/rakudo/rakudo/builds/133495837 github.com/rakudo/rakudo/compare/e...13351eacf7
timotimo looks like it's just java interop and nativecall on the jvm backend b0rking 22:37
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Revert "Bring Hash.keyof up to date, dogbert17++" 23:27
travis-ci.org/rakudo/rakudo/builds/133496504 github.com/rakudo/rakudo/compare/1...3580583895