jnthn | diakopter: I lied, I'm stubbing another piece... :) | 00:00 | |
.oO( approaching the balmer peak backwards... ) |
00:01 | ||
dalek | arVM: 5315ec6 | jnthn++ | src/6model/reprs/MVMContext.c: MVMContext refs frames, so mark it as such. Could fail to mark things we need to if it's the only frame referent and it gets promoted to gen2. |
00:15 | |
arVM: 84a0004 | jnthn++ | / (5 files): Add MVMContinuation REPR. Just references the top frame; this may well be all we need it to do. |
|||
arVM: 653a53a | jnthn++ | src/ (3 files): Bootstrap a BOOTContinuation. |
|||
00:33
lizmat joined
|
|||
diakopter | jnthn: heh. | 00:47 | |
dalek | arVM: b039b34 | jnthn++ | / (5 files): Partial continuation reset implementation. Does not yet persist/clear the tag, just runs the specified block. |
00:49 | |
diakopter | jnthn: is a null tag allowed? | ||
jnthn | yeah | ||
diakopter | ok | 00:50 | |
jnthn | And it seems if you control with a null tag, it means "nearest" | ||
[Coke] wonders how jnthn is still awake! | |||
diakopter too | |||
jnthn | [Coke]: Curry! Imperial stouts! | ||
diakopter | [Coke]: maybe he's actually asleep, but still coding | ||
and chatting | |||
jnthn | diakopter: afaict from the tests, we can only ever have one tag per frame...did you figure the same? | 00:51 | |
diakopter | from the tests yeah | ||
jnthn | Well, I can't see how you could get it otherwise... | ||
diakopter | if you reset/control from the same frame.. | 00:52 | |
jnthn | Since we invoke a block inside the rest... | ||
*reset | |||
But...the tag isn't valid after the reset, no? | |||
oh, wait... | 00:53 | ||
diakopter | nqp-jvm: nqp::continuationreset(0,{1}); nqp::continuationcontrol(nqp::null,nqp::null,nqp::null) | 00:54 | |
camelia | nqp-jvm: OUTPUTĀ«java.lang.NullPointerExceptionā¤ in (/tmp/JMOZkWlStD:1)ā¤ in (gen/jvm/stage2/NQPHLL.nqp:1100)ā¤ in eval (gen/jvm/stage2/NQPHLL.nqp:1086)ā¤ in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1292)ā¤ in command_eval (gen/jvm/stage2/NQPHLL.nqp:1196)ā¤ in command_lineā¦Ā» | ||
diakopter | well, there's that | ||
jnthn | But every control is in the static dynamic scope of a reset in the tests, afaict. | 00:55 | |
diakopter | nqp-jvm: nqp::continuationreset(0,{1}); nqp::continuationcontrol(4,3,{2}) | 00:56 | |
camelia | nqp-jvm: OUTPUTĀ«Exception in thread "main" java.lang.RuntimeException: control operator crossed continuation barrierā¤ at org.perl6.nqp.runtime.ExceptionHandling.dieInternal(ExceptionHandling.java:48)ā¤ at org.perl6.nqp.runtime.ExceptionHandling.dieInternal(ExceptionHandling.java:ā¦Ā» | ||
diakopter | should catch that one | 00:57 | |
(also the null pointer) | |||
diakopter waits for jnthn to sleep 300000 | 00:59 | ||
jnthn | diakopter: Yeah, gonna get some rest now :) | 01:04 | |
diakopter | any pushes to apear? | ||
jnthn | Nope :) | ||
I'm pretty sure MVMContinuation also needs a resume_addr in it, though :) | 01:05 | ||
diakopter | a bytecode pointer? | 01:06 | |
or frame? | |||
jnthn | Frame is already there | ||
Bytecode pointer | 01:07 | ||
diakopter | how to set the thing to clear the tag | ||
jnthn | special_return, special_return_data, and set the flag to mark the special return data. | ||
And clear it in the callback. | |||
Happy hacking. :) o/ | 01:10 | ||
diakopter | o/ | 01:12 | |
[Coke] | ok, new daily run is going to grab everything once up front, so no more last minute moar commits. :) | 01:18 | |
01:59
ssutch_ joined
|
|||
dalek | arVM: 166595c | jimmy++ | src/ (2 files): free filename |
02:01 | |
02:04
jnap joined
|
|||
diakopter | JimmyZ++ | 02:08 | |
02:11
sorear joined
02:30
jnap joined
02:57
FROGGS[mobile] joined
04:20
cognominal joined
04:22
jnap joined
05:10
FROGGS joined
05:23
jnap joined
07:02
FROGGS[mobile] joined
07:15
cognominal joined
07:24
jnap joined
07:52
FROGGS joined
08:25
jnap joined
08:26
FROGGS[mobile] joined
|
|||
FROGGS | I can build rakudo using -O3 again, but I get the following after compiling the setting: | 08:35 | |
./perl6-m --target=mbc --output=lib/Test.moarvm lib/Test.pm | |||
Cannot find method 'at_key': no method cache and no .^find_method | |||
here is the bt: gist.github.com/FROGGS/ec70de48a665888135cf | 08:37 | ||
08:55
odc joined
09:26
jnap joined
|
|||
nwc10 | slow testing is slow. | 09:56 | |
still not quite sure why one thing blew up with SIGBUS, but ran it overnight in gdb to find out why and it didn't | |||
not sure if that's "I'm running in gb" | |||
09:56
FROGGS[mobile] joined
|
|||
nwc10 | or simply that I updated the moar binary underneath the previous one, and actually Linux doesn't like that | 09:57 | |
FROGGS | nwc10: I had that too the it worked fine under gdb but segfaulted otherwise | 10:16 | |
nwc10 | this was SIGBUS. That's unusual. Usually means that the C stack is exhausted | 10:18 | |
10:26
jnap joined
|
|||
jnthn | oh hai o/ | 10:28 | |
FROGGS | hai jnthn | ||
I hope you got some sleep :/ | |||
jnthn | Some. Worked out better than the night before, at least... | 10:30 | |
diakopter: Can I steal back the continuation bit now? :) | 10:31 | ||
diakopter | yah | 11:03 | |
(he says to the past) :) | |||
11:27
jnap joined
12:28
jnap joined
13:13
V_S_C joined
|
|||
[Coke] | jnthn: you'll be happy today. | 13:24 | |
jnthn | [Coke]: oh? :) | 13:25 | |
[Coke] | did a run overnight to test changes to the daily test suite. | ||
(which should make it run slightly faster) | 13:26 | ||
(and caught some changes to rakudo.moar) | |||
13:29
jnap joined
|
|||
jnthn | Did we come to some conclusion on the 01-qregex.t failure in NQP? | 13:31 | |
iiuc, "Unicode changed" | |||
Does this suggest the test should also change to match latest? | 13:32 | ||
diakopter | it's hard to be more black and white than non-whitespace versus whitespace | 13:38 | |
(I say this not knowing whether the character has any markings) | |||
nwc10 | gah. the filesystem on the machine hosting my e-mail has hung | 13:39 | |
in that, ssh connections onwards from it are still trucking | |||
FROGGS | jnthn: about the qregex fail, I asked about that here on channel... | 13:44 | |
jnthn: the fix would be to strip that from a \s+ test, but this vowel separator still got matched by \h, and I don't know if that is right or not | |||
dalek | arVM: 110400d | (Tobias Leich)++ | src/6model/reprs/P6 (2 files): strip redundent checks for int/num bit size, jnthn++ |
13:46 | |
diakopter | FROGGS: re "right" it'll be hard to "fix" that if it's wrong, since all the unicode stuff is completely autogenerated from spec. | 13:47 | |
well. | |||
need to be careful with each of those last 4 words | |||
"completely" "autogenerated" "from" "spec" | 13:48 | ||
thar I fixed it | |||
masak | :P | 13:49 | |
diakopter | "careful" | ||
"4" | |||
masak | "words" | 13:50 | |
"fixed" | |||
diakopter | *gigglefit* | ||
FROGGS | diakopter: I just want to get an answer to my question before I make tests pass that might are not supposed to | ||
masak beats diakopter repeatedly with a goose feather | |||
diakopter | hopefully not a planet-sized goose feather | ||
FROGGS .oO( ... 6 geese a laying ... ) | 13:51 | ||
masak | it's not even goose-sized! | ||
diakopter | 5 golden eggs | ||
FROGGS | :o) | 13:52 | |
[Coke] | I think the tests need to know which version of unicode we're working with. | 14:01 | |
does perl 6 have a setting somewhere that indicates which unicode we mean? | 14:02 | ||
(could then key the tests off that.) | |||
FROGGS | [Coke]: I believe that this is either specced or was at loast discussed some day on #perl6 | 14:11 | |
I think TimToady++ even wanted to let the user choose the unicode version | |||
[Coke] | I don't know about choose, but at least figure out what they've got. | 14:13 | |
jnthn | I can imagine doing something like this in spectest, but the NQP tests exist to check you have a working NQP rather than checking if it has exhaustive unicode support.. | ||
[Coke] | jnthn: mmm. | 14:14 | |
FROGGS | the situation is still that we fail tests in nqp and in roast about MVS not being whitespace anymore and I don't know if it is correct to only adjust the failing test | 14:16 | |
jnthn | in roast - not sure. In NQP, I don't think our whitespace matching tests are trying all the possible whitespace chars. They're just trying a handful to see if things seem reasonably correct. If one of the handfull we'd picked was not MVS, we'd not have the issue. | 14:22 | |
So for the purposes of the NQP tests, just not using this character, which is unstable over Unicode versions, seems fair enough. | 14:23 | ||
FROGGS | k | 14:24 | |
nwc10 | jesse wanted Perl 5 to offer the choice of Unicode version based on the Perl (5) version it was delivering | 14:28 | |
but the internals of Perl 5 are so not set up to offer more than one Unicode variant | |||
let alone the SMOP that we don't even have *one* working bug free | |||
Perl 6 stands a much better chance of this | |||
but, walk before attempting running | 14:29 | ||
diakopter | nwc10: ok, but bug-free is just something without a bug tracker or submission form | ||
actually it can have a submission form :) | 14:30 | ||
jnthn | That doesn't mean it's bug free, it's just bug report free. :P | 14:31 | |
nwc10 | you didn't ask for advice, but here goes... | 14:32 | |
track current Unicode only, until 1.0 | |||
then, if it's level 3 conformant (or whatever the maxed out is called), and only then consider whether it's viable to spread out and offer more than one. | 14:33 | ||
FROGGS | I don't have an application where I'd need to choose a unicode version, but I guess this could become interesting within the next decade or so | ||
diakopter | I was making the point that there aren't any bugs until there are bug reports, and there are always spurious ug reports | ||
nwc10 | and manybe by then the Unicode consortium will have worked out what /(s)(s)/i is supposed to capture | ||
jnthn | nwc10: +1 | ||
FROGGS reports a diakopter spello report :P | |||
diakopter files a rug beport | 14:34 | ||
nwc10: sgtm | 14:35 | ||
FROGGS | bbiab | 14:37 | |
14:39
jnap joined
|
|||
dalek | arVM: 4120d32 | jnthn++ | src/ (8 files): First crack at continuationcontrol. |
15:41 | |
[Coke] | moarvm already running! | 15:42 | |
15:43
FROGGS joined
15:46
grondilu joined
|
|||
dalek | arVM: accb7ba | jnthn++ | src/ (5 files): First crack at continuationinvoke. Works for a single invocation of the continuation. |
16:11 | |
jnthn | Pass 8 out of 22 so far. | ||
diakopter | :) | ||
jnthn: the root is just a cache? | 16:14 | ||
er, shortcut? | |||
jnthn | diakopter: Mostly so we can tweak caller appropriately on it. | 16:15 | |
diakopter | jnthn: I can't remember what we decided on whether a frame could be resumed on a different thread from its original | 16:17 | |
jnthn | diakopter: For what I'm doing right now, no, but we can revisit it. | ||
Walk first, then run... :) | 16:18 | ||
diakopter | mostly I meant b/c I didn't see a check in there for that yet | ||
jnthn | Aye | ||
diakopter | I just noticed every time you alter tc->cur_frame you don't decrement the refcount, implying you're assuing you'll definiteliy switch back to it eventually.. but what if you don't | 16:19 | |
jnthn | We'll leak | 16:20 | |
diakopter | decrement the refcount of what was there before I mean | ||
jnthn | Yeah, that needs doing | ||
diakopter | I think it's safe to do that, since you're incrementing it when you refer to it from the the continuation object | ||
jnthn | Trying to figure out why the second invocation doesn't work out at the moment... | 16:21 | |
diakopter | frame marked return? | ||
returned? | |||
jnthn | Oh, maybe something along those lines... | 16:22 | |
diakopter | I was hoping that stab in the dark was approximately close... | ||
jnthn | heh, cute bug :) | 16:24 | |
diakopter | doodlebug? | ||
jnthn | If we're really lucky, it's an easy fix. | 16:26 | |
ah, it isn't that simple, though a quick workaround to check it is what you suggsted gets us passing 1..18 | 16:33 | ||
diakopter | \o/ | 16:34 | |
FROGGS | hmmm, I still got that: | 16:38 | |
./perl6-m --target=mbc --output=lib/Test.moarvm lib/Test.pm | |||
Cannot find method 'at_key': no method cache and no .^find_method | |||
is that expected? | |||
diakopter | did you realclean and reconfigure? | ||
FROGGS | reconfigure yes, realclean no | ||
I am going to try -O1 | 16:40 | ||
dalek | arVM: 69396d3 | jnthn++ | src/core/ (3 files): Unbust re-use of continuations. |
16:42 | |
jnthn | OK, 4 tests to go. Probably the hardest 4 by an order of magnitude... | 16:43 | |
FROGGS | only 4? | ||
jnthn | There's 22 continuation tests, we pass 18 so far | 16:45 | |
diakopter | jnthn: did you see I added it to t\moar in nqp? | ||
FROGGS | hmm, now it builds again | 16:51 | |
diakopter | yeah :( should've asked you to save a copy of the whole tree to do a diff | 16:52 | |
so we can identify the missing makefile dependencies | |||
FROGGS | I don't think there is a diff in makefile deps | 16:55 | |
diakopter | I mean in the generated files | 16:58 | |
there must've been a diff somewhere | |||
FROGGS | hmmm | 16:59 | |
either that or moar does weird stuff at runtime using -O3 | |||
dalek | arVM: 77a07de | jnthn++ | src/core/continuation.c: Be more careful from frame refcounts; diakopter++. |
17:06 | |
arVM: ac9b2aa | jnthn++ | src/core/continuation.c: Fix off-by-one in root frame. |
17:19 | ||
jnthn | OK, so at this point 19 blows up 'cus continuationclone is NYI | 17:20 | |
And n-queens callcc example fails for an unknown reason (just gets wrong answer) | |||
But the final two tests ("gather example works" and "take from handler works") pass | 17:21 | ||
FROGGS | yay! :o) | ||
jnthn | I'll get the callcc one is broken 'cus I didn't get protect right yet, and it's the only thing that depends on it. | 17:22 | |
*bet | |||
diakopter | remind me what protect is | 17:31 | |
jnthn | Leaves reset in place, so the handler can replace the continuation | ||
FROGGS | I still don't get it: | 17:38 | |
perl6-m -e 'use Test; nok 0 ~~ 1, ""' # ok 1 - | |||
perl6-m -e 'use Test; nok 0 ~~ 1, "a"' # not ok 1 - a | |||
brb | |||
timotimo | diakopter: were you able to find out why the unicode tests are all failing? | 17:39 | |
diakopter | I didn't know any were failing | 17:40 | |
timotimo: since I upgraded it to 6.3? | |||
jnthn | diakopter: Lots of char prop tests in Rakudo on Moar fail, but nothing worked at all before you did the upgrade, etc. :) | ||
diakopter: But there's lots of passing tests to be had if you fancy looking into it. | 17:41 | ||
timotimo | ah, ok | ||
but yeah, after the upgrade i believe. | |||
diakopter | timotimo: I also added the thing where it uses the u1name if the main name is blank or <control> | ||
(which is more than perl5, which doesn't use the u1name if the main name is blank, but does if it's <control>) | 17:43 | ||
nwc10: ^ | |||
(but I noticed there were some with u1names but blank main names) | |||
(inexplicably) | |||
timotimo | so, what can the continuation implementation do so far? | 17:58 | |
or rather: what do i have to run to play with something/anything? | 17:59 | ||
dalek | arVM: 490df17 | jnthn++ | src/core/ (5 files): First pass at continuationclone. Doesn't pass the test that depends on it yet, sadly. |
18:03 | |
jnthn | timotimo: Just grab, configure and build latest Moar and NQP, and do make test | 18:05 | |
You should see that t\moar/01-continuations.t fails 19 and 20, but passes the rest of the file | |||
18:06
V_S_C joined
|
|||
timotimo | all right | 18:06 | |
V_S_C | I just built nqp-cc | 18:09 | |
Should I put the make test/nqptest results in a gist or someplace? | |||
timotimo | t/moar/01-continuations.t ............. Failed 2/22 subtests - \o/ | ||
nqp-cc isn't necessary any more, it's not been touched in a long time | 18:10 | ||
no clue if it's still going to work | |||
V_S_C | I just followed the readme on github | 18:12 | |
timotimo | oh, let me go over the readme and fix the outdatedness | ||
the moar port has moved crazy fast | |||
V_S_C | & made adjustments for Win64 on my own whenever I got stuck | 18:13 | |
timotimo | er, what repository and branch are you on? | ||
V_S_C | okay, how do I use moar? | ||
timotimo | oh, it's in moarvm, not in nqp | ||
duh :) | |||
V_S_C | default master, I guess | ||
timotimo | grab yourself a checkout of nqp and perl Configure.pm --backend=moar --prefix=the_same_prefix_you_used_in_moarvm_configure | ||
V_S_C | okies :) thnx | 18:14 | |
timotimo | if you want to have a rakudo, too, check out the moar-support branch | ||
FROGGS | V_S_C: the best thing you can do is to get rakudo, checkout moar-support branch, and do: perl Configure.pl --backend=moar --gen-nqp=master --gen-moar=master | ||
V_S_C | yes I'll do that. | 18:15 | |
timotimo | should i remove the nqp-cc folder from git at the same time as updating the readme? | ||
i'd strike the whole nqp-cc section from the readme | |||
FROGGS | this will build rakudo, nqp and moar | ||
timotimo | and if you need the nqp-cc you can always grab it from the history | ||
jnthn | timotimo: Yes, we can toss the nqp-cc directory now too | 18:18 | |
timotimo: Its useful life has expired. | |||
[Coke] | r: say 26576 / 28453 | ||
camelia | rakudo-parrot 8a486a, rakudo-jvm 8a486a: OUTPUTĀ«0.934032ā¤Ā» | ||
V_S_C | FROGGS: I'll do it & be back with update. thnx. :) | ||
18:19
V_S_C left
|
|||
[Coke] kicks off the 'borts run. | 18:20 | ||
[Coke] uploads feather.perl6.nl/~coke/moar.out for folks until the daily run completes. | 18:21 | ||
dalek | arVM: 8561e23 | (Timo Paulssen)++ | / (173 files): toss the nqp-cc and update the REAMDE. |
18:25 | |
18:27
jnap joined
|
|||
[Coke] | Ah. looks like "Killed" is actually more common that I thought. Fixing the script... | 18:27 | |
timotimo puts a die into the GatherIter implementation to get a number of tests that rely on GatherIter and are currently using the cheating implementation | 18:34 | ||
that just causes tests to infiniloop | 18:38 | ||
timotimo grabs cokes ulimit'd perl6-m | 18:41 | ||
[Coke] | \o/ | 18:43 | |
timotimo | hum. the time limit doesn't seem to want to kill this test run | 18:49 | |
FROGGS | jnthn: can you give a hint where I could start looking into this? | 18:52 | |
perl6-m -e 'sub ok(*@a) { say @a.perl }; ok (0 ~~ 1), "1"' # Array.new("1", "1") | |||
perl6-m -e 'sub ok(*@a) { say @a.perl }; ok (0 ~~ 1), "0"' # Array.new("0", "0") | |||
hmm, that smart match result should print False btw | 18:54 | ||
[Coke] | timotimo: something os specific, meb? | 18:57 | |
FROGGS: gist.github.com/coke/8250608 updated. | |||
benabik | FROGGS: Well, it also seems to be giving you a string instead of a boolean. | ||
[Coke] | largest cause of test failures appears to be "slowness". :) | ||
FROGGS | benabik: exactly, odd is that 0 ~~ 1 alone gives a boolean | 18:58 | |
[Coke]: thank you! | |||
benabik | FROGGS: Looks like a binder problem to me. | ||
FROGGS | that was my guess too | ||
benabik | FROGGS: Still get it using distinct vars instead of a slurpy array? | ||
FROGGS | benabik: it is the same with two vars | 18:59 | |
benabik | That is not the answer I expected, I will admit. | 19:00 | |
FROGGS | :o) | ||
[Coke] | one of the Infiloops is just: '$*VM.perl' | 19:01 | |
FROGGS | I guess the way we construct the ast for a smartmatch brings this up | ||
(my problem, not the infiniloop) | |||
timotimo | i can see somet,hing | 19:02 | |
there's a $cur_pos_arg that doesn't seem to get ++'d anywhere | |||
oh, wrong | 19:03 | ||
FROGGS | ohh | ||
:/ | |||
timotimo | that's only if there's a |capture parameter | ||
FROGGS | timotimo: where are you looking ooc? | ||
[Coke] | here's another infiloop: | ||
'my @a=(1..Inf); @a[1..10002] = @a[9..10010]' | 19:04 | ||
timotimo | Perl6/Metamodel/BOOTSTRAP.nqp | 19:05 | |
[Coke] | r: my @a=(1..Inf); @a[1..10002] = @a[9..10010]; | 19:09 | |
camelia | ( no output ) | ||
..rakudo-parrot 8a486a: OUTPUTĀ«(timeout)Ā» | |||
[Coke] | go jvm! | 19:10 | |
so that's just a delay. I guess I should consider opening up the timer a bit for moarvm. | 19:11 | ||
(done, will let it go for 3m instead of 1.5 on tomorrow's run) | 19:14 | ||
19:39
ssutch joined
|
|||
jnthn | Turns out that gather/take using the continuations doesn't quite work out... | 19:42 | |
jnthn finally got it down to a small test case | 19:44 | ||
FROGGS | humm, locallifetime breaks it | 19:54 | |
haha! | 20:01 | ||
a single letter! | |||
jnthn | FROGGS: Hm, I thought we didn't do anything with locallifetime on Moar so far... | 20:02 | |
FROGGS | a bloody single letter! | ||
jnthn | FROGGS: What'd you find? | ||
FROGGS | jnthn: and that kinda is the problem | ||
jnthn | I think I figured out the continuations bug :) | ||
FROGGS | for the smart match, we give it a qast::stmt, and two other vars, one is the result var | ||
for parrot and more we just hand over the stmt to .as_mast | |||
should be a QAST::Stmts instead, ehh? :o) | 20:03 | ||
either that, or .as_mast should do something better with a QAST::Stmt | |||
jnthn | Well, QAST::Stmt is a hint about temporaries and their lifetime. | 20:04 | |
FROGGS | but but... | ||
is it supposed to return a value? | |||
jnthn | Yes | ||
FROGGS | meh | ||
:( | |||
jnthn | ooh, I just got gather.t to pass | ||
FROGGS | \o/ | 20:05 | |
jnthn++ | |||
jnthn | well, with the one skip that is skipped on every backend. | ||
FROGGS takes a look at .as_mast | |||
jnthn | Well, lemme try a spectest before we get too excited... :) | ||
FROGGS | sure | ||
[Coke] | jnthn++ | 20:06 | |
dalek | arVM: 14b36bd | jnthn++ | src/ (3 files): Fix interaction of continuations and handlers. |
20:10 | |
FROGGS | a spectest within five minutes? | ||
jnthn | no, the spectest is for pushing the Rakudo switch to use continuations for gather/take | 20:11 | |
nwc10: Don't suppose you had a moment to dig up the OSX patch? | 22:19 | ||
nwc10 | no, sorry, somewhat chaotic still | ||
jnthn | ok, np | ||
nwc10 | and in bed but really should be asleep | 22:20 | |
23:06
cognominal joined
|
|||
[Coke] | rakudo.moar,2014-01-08,93.40%,9a340b1,26576,1750,603,1440,30368,28495, | 23:09 | |
23:13
ssutch joined
23:29
krunen joined
|