Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-10-26

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:14 FROGGS joined #moarvm
01:46 FROGGS joined #moarvm
02:02 FROGGS joined #moarvm
02:19 jnap joined #moarvm
02:28 colomon joined #moarvm
04:17 FROGGS joined #moarvm
06:39 woolfy1 left #moarvm
07:29 FROGGS .tell jnthn now it fails on linux like: Missing method cache; late-bound dispatch NYI
07:29 FROGGS scalar_attr
07:30 FROGGS so, seems to behave exactly like on windows, which is nice :o)
07:35 lue FROGGS: I don't believe yoleaux is here.
07:35 FROGGS lue: I don't believe so too :o)
07:35 FROGGS but jnthn will read this anyway
09:08 lizmat joined #moarvm
09:14 jnthn FROGGS: OK, good that Linux is caught up now :)
09:14 jnthn Well, Rakudo Moar on Linux, that is :P
09:15 FROGGS hehe, exactly *g*
09:26 dalek MoarVM: 63537d4 | (Tobias Leich)++ | Configure.pl:
09:26 dalek MoarVM: improve backslash handling on windows
09:26 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/63537d451f
10:04 camelia joined #moarvm
10:34 woolfy joined #moarvm
11:26 colomon joined #moarvm
12:10 dalek MoarVM: 330d921 | jnthn++ | src/ (6 files):
12:10 dalek MoarVM: Implement late-bound method lookup.
12:10 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/330d92101c
12:29 cognominal joined #moarvm
12:54 FROGGS[mobile] joined #moarvm
12:57 dalek MoarVM: 473c7dd | jnthn++ | src/6model/reprs/P6bigint.c:
12:57 dalek MoarVM: Add P6bigint.deserialize_stable_size.
12:57 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/473c7dd4f7
13:25 dalek MoarVM: ee86416 | (Dagur Valberg Johannsson)++ | src/mast/compiler.c:
13:25 dalek MoarVM: operands are uninitialized if we have none, check for it
13:25 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ee86416fa2
13:25 dalek MoarVM: b21f027 | jonathan++ | src/mast/compiler.c:
13:25 dalek MoarVM: Merge pull request #63 from dagurval/crash-on-no_op
13:25 dalek MoarVM:
13:25 dalek MoarVM: operands are uninitialized if we have none, check for it
13:25 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b21f0277f8
13:32 dalek MoarVM: b2a9d55 | jnthn++ | src/6model/6model.c:
13:32 dalek MoarVM: Catch a common null error.
13:32 dalek MoarVM:
13:32 dalek MoarVM: Need a more general approach, but this one is handy to catch now.
13:32 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b2a9d55f2e
14:27 lue joined #moarvm
15:26 FROGGS jnthn: the filename at src/core/loadbytecode.c:67 is somehow borken... I can't even convert it to a C string to pring it...
15:26 FROGGS print*
15:28 FROGGS hmmm, the string is 'blib/Perl6/BOOTSTRAP.moarvm', and figure_filename seems to break it
15:43 camelia joined #moarvm
15:50 FROGGS hmmm, it helps when I do:
15:50 FROGGS -result = orig
15:50 FROGGS +result = MVM_string_utf8_decode(tc, tc->instance->VMString, orig_cstr, orig_len);
16:13 FROGGS jnthn: this is the patch that helps, but I don't think it is sane https://gist.github.com/FR​OGGS/603692fde738639fc0d3
16:14 FROGGS now it segfaults here :/
16:14 FROGGS Program received signal SIGSEGV, Segmentation fault.
16:14 FROGGS 0x00007ffff79e6319 in process_worklist (tc=0x6033b0, worklist=0x29ccb40, wtp=0x7fffffffccd0, gen=0 '\000') at src/gc/collect.c:171
16:36 FROGGS no, now it does:
16:36 FROGGS Cannot invoke null object
16:36 FROGGS returnless_past
16:52 FROGGS camelia: help
16:52 camelia FROGGS: Usage: <(rakudo-jvm|nqp-jvm|star|pugs|std|niecza|p​5-to-p6|nqp-parrot|b|rakudo-parrot|nqp-moar​vm|nom|rnP|r|nPr|rPn|Prn|j|nqp-m|Pnr|nqp-mv​m|nqp-j|nr|p6|n|p56|rj|perl6|nqp|r-j|P|rn|r​akudo|r-jvm|nqp-p|nrP|p|r-p|rp)(?^::\s) $perl6_program>
16:52 FROGGS nqp: say(nqp::getcomp('qast'))
16:52 camelia nqp-moarvm: OUTPUT«Unhandled exception: Bytecode segment overflows end of stream␤»
16:52 camelia ..nqp-jvm: OUTPUT«java.lang.NullPointerException␤  in  (gen/jvm/stage2/NQPCORE.setting:672)␤  in print (gen/jvm/stage2/NQPCORE.setting:671)␤  in say (gen/jvm/stage2/NQPCORE.setting:678)␤  in  (/tmp/ihCgTevKen:1)␤  in  (gen/jvm/stage2/NQPHLL.nqp:1098)␤  in eval (gen/jvm/sta…»
16:52 camelia ..nqp-parrot: OUTPUT«Null PMC access in get_string()␤current instr.: '' pc 768 (gen/parrot/stage2/NQPCORE.setting.pir:355) (gen/parrot/stage2/NQPCORE.setting:665)␤»
16:53 FROGGS nqp: nqp::getcomp('qast')
16:53 camelia nqp-jvm, nqp-parrot: ( no output )
16:53 camelia ..nqp-moarvm: OUTPUT«Unhandled exception: Bytecode segment overflows end of stream␤»
16:58 FROGGS nqp: use QAST; say(nqp::isnull(nqp::getcomp('qast')))
16:58 camelia nqp-jvm, nqp-parrot: OUTPUT«1␤»
16:58 camelia ..nqp-moarvm: OUTPUT«Unhandled exception: Bytecode segment overflows end of stream␤»
16:59 FROGGS err
16:59 FROGGS nqp: use QAST; say(nqp::isnull(nqp::getcomp('QAST')))
16:59 camelia nqp-moarvm: OUTPUT«Unhandled exception: Bytecode segment overflows end of stream␤»
16:59 camelia ..nqp-jvm, nqp-parrot: OUTPUT«0␤»
16:59 FROGGS okay, works locally for nqp-m too
17:02 FROGGS nqp: use QAST; say(nqp::getcomp('QAST').operations.HOW​.name(nqp::getcomp('QAST').operations))
17:02 camelia nqp-parrot: OUTPUT«QAST::Operations␤»
17:02 camelia ..nqp-moarvm: OUTPUT«Unhandled exception: Bytecode segment overflows end of stream␤»
17:02 camelia ..nqp-jvm: OUTPUT«QAST::OperationsJAST␤»
17:03 FROGGS k, works locally too
17:06 FROGGS ahh, we are laking method is_inlinable
17:39 jnthn yeah, I was just gonna steal it too :)
17:39 * jnthn builds to see the next error... :)
17:39 FROGGS it calls another nonexistent method, at least that is how I understand it
17:40 FROGGS something along line 44, trait_mod:<is>
17:40 moritz are you two working on rakudo/moar-support?
17:40 FROGGS currently I try to make the msg "Cannot invoke null object" nicer, so we know the method name
17:40 FROGGS moritz: yes
17:41 jnthn FROGGS: Yes, that needs some very careful handling :)
17:41 jnthn For a simple-looking thing there's a few ways to get it wrong... :)
17:42 jnthn In the case we .^find_method we need to set up the continuation trick to check for the non-foundness, I think...
17:44 jnthn Hmmm...that redeclaration error is weird, though.
17:45 jnthn Almost like it doesn't consider that multi a multi
17:45 FROGGS I was guessing that the redeclaration is about the exception class...
17:46 benabik FROGGS: nitpick on your Configure commits:  You say "on Linux", but you really coded "not Windows" which includes OS X at the very least.  (That said, I think everything you added works on OS X.  We'll see in a minute.)
17:47 FROGGS okay, the MVM_frame_find_invokee which throws is in coerce.c around line 60 (the else block)
17:47 FROGGS benabik: you are right :/
17:48 jnthn Line 2329 is where it throws
17:48 jnthn FROGGS: Yeah, but we need to fix method lookup, I think. :)
17:49 jnthn nqp: nqp::findmethod(NQPMu, 'invalid') # does this blow?
17:49 camelia nqp-jvm: ( no output )
17:49 camelia ..nqp-moarvm: OUTPUT«Unhandled exception: Bytecode segment overflows end of stream␤»
17:49 camelia ..nqp-parrot: OUTPUT«Method 'invalid' not found for invocant of class 'NQPMu'␤current instr.: '' pc 44 ((file unknown):40504472) (/tmp/dDdqC7WTsB:1)␤»
17:49 FROGGS jnthn: no, does not throw locally
17:49 jnthn hm, nqp-jvm doesn't blow up on that, but nqp Parrot does
17:49 jnthn Right, I know it doesn't
17:49 FROGGS ahh, k
17:50 jnthn I'm saying it should, I just didn't want to do it before checking what nqp::findmethod wants
17:50 jnthn Turns out it throws
17:50 jnthn At least on Parrot, which means we're not relying it not blowing up elsewhere
17:50 jnthn So I think we make it explode on Moar too and treat nqp-jvm as the non-conformatn one.
17:51 jnthn As for the real reason we fail, I think it's because I didn't make nqp::can handle late-found calls yet
17:51 jnthn And actions.pm 2320 relies on that
17:51 FROGGS s/found/bound/ ?
17:51 moritz currently I get "Unhandled exception: failed to load library 'dynext/libperl6_ops_moar.so'" while compiling the setting
17:51 moritz is that expected?
17:51 FROGGS moritz: you compiled MOarVM with --shared?
17:52 jnthn FROGGS: yes
17:52 moritz FROGGS: no. Should I?
17:52 FROGGS moritz: yes
17:52 FROGGS dunno if we should replace the --shared by a --static option, and flip the defaults
17:52 FROGGS I guess it makes sense
17:53 moritz if the main customer needs it, it should be default.
17:53 * benabik is going to try to push those OS eq/ne 'win32' into build/setup.pm with the rest of the platform options.
17:53 benabik +1
17:54 jnthn +1
17:57 benabik undef ld == use cc for linking?
17:58 moritz it seems that 'make clean' doesn't clean 3rdparty/libuv
17:58 FROGGS realclean does
17:58 moritz which is a problem if you built without --shared, and then reconfigure with shared
17:58 FROGGS right?
17:58 dalek MoarVM: 371e714 | jonathan++ | src/6model/6model.c:
17:58 dalek MoarVM: Partial fix for method not found errors.
17:58 dalek MoarVM:
17:58 dalek MoarVM: Still need to do the late-bound case.
17:58 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/371e71467c
17:59 moritz FROGGS: at least it says it does
17:59 moritz I'll know soon
17:59 moritz yep, worked
18:00 dalek MoarVM: 495d641 | (Tobias Leich)++ | Configure.pl:
18:00 dalek MoarVM: replace --shared by --static
18:00 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/495d641d0d
18:11 FROGGS ahh
18:11 FROGGS Error while constructing error object:Cannot find method 'specialize'
18:11 FROGGS Error while compiling, type X::Redeclaration
18:11 FROGGS symbol: routine
18:11 FROGGS symbol: trait_mod:<is>
18:11 FROGGS line 44
18:11 FROGGS dinner &
18:17 dalek MoarVM: c8b5ed3 | jonathan++ | src/ (3 files):
18:17 dalek MoarVM: Refactors in prep for non-cache nqp::can handling.
18:17 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c8b5ed3b86
18:18 jnthn Descending; guess I'll have to vanish soon :)
18:18 dalek MoarVM: 8303bb3 | benabik++ | / (2 files):
18:18 dalek MoarVM: [Configure] Move rpath into platform options
18:18 dalek MoarVM:
18:18 dalek MoarVM: We hvae all these nice platform hashes in build/setup.pm.  Let's use
18:18 dalek MoarVM: those instead of a hand-coded conditional.
18:18 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8303bb3d3d
18:18 dalek MoarVM: 80f0e1a | benabik++ | / (2 files):
18:18 dalek MoarVM: [Configure] Move lib names and dir into platform config
18:18 dalek MoarVM:
18:18 dalek MoarVM: This eliminates the last `eq 'win32'` checks in the main Configure
18:18 dalek MoarVM: code.
18:18 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/80f0e1a6e9
18:19 benabik There.  Now all the platform specific stuff is in the platform configure hashes.  :-D
18:21 jnthn bah, took my earphones out and drunk guy behind me is still drunk and still singing...
18:27 dalek MoarVM: 9114651 | jonathan++ | src/6model/6model.c:
18:27 dalek MoarVM: Implement non-cache case of nqp::can.
18:27 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/91146518d4
18:29 jnthn and next up, "extension op 'p6bool' not registered"
18:29 jnthn That's LHF, but I seem to be on a LFP by now...so later :) &
18:33 moritz jnthn: maybe you should give dagurval a commit bit :-)
18:34 moritz or diakopter, or whoever hands out MoarVM commit bits
18:43 benabik joined #moarvm
18:47 benabik joined #moarvm
19:00 diakopter moritz: not I
19:13 benabik I seem to have a working nqp-m! \o/
19:13 FROGGS \o/
19:13 FROGGS \m/
19:18 benabik Actually, nqp-m is currently the only nqp that passes all the tests on my computer...
19:18 benabik Installing fails though: make: *** No rule to make target `/Users/brian/dev/perl6/nqp/tem​p/usr/local/lib/MAST/Ops.nqp', needed by `gen/moar/stage1/MASTOps.moarvm'.  Stop.
19:18 moritz benabik: nqp-p passed all its test earlier today on my machine
19:19 benabik moritz: I'm having some problem with icu4u I think.  Parrot fails a few of its tests as well.
19:19 benabik icu4c, I mean.
19:20 benabik Wait...  Why does building stage1 depend on my prefix?
19:20 benabik Oh.  Because it's looking for my moarvm install.
19:26 woolfy joined #moarvm
19:39 benabik Ah.  If $(PREFIX) includes $(DESTDIR), it's inappropriate to use in build rules.
20:36 jnthn ah, nice :)
20:37 jnthn It's warm enough to sit outside on an evening to hack and I have a beer. :)
20:37 FROGGS jnthn: btw, the multi does not find its proto
20:37 diakopter jnthn: so can I claim the continuations port task for 1.5 days?
20:38 jnthn FROGGS: I fixed that with the can patch :)
20:38 FROGGS hmmm
20:38 jnthn Oh, wait, I half fixed it. It blocks on p6bool too.
20:38 FROGGS jnthn: I stubbed p6bool
20:39 jnthn Yes but it needs to work :)
20:39 FROGGS and now the 'specialize' and redecl message popped up again
20:39 FROGGS gah
20:39 FROGGS :P
20:39 jnthn Thankfully, tha should be easy... :)
20:40 FROGGS if you say so :o)
20:40 FROGGS I don't even know how to get the argument
20:40 diakopter jnthn: ...?
20:41 jnthn diakopter: Yes, go ahead :)
20:41 jnthn We don't block on it for a while yet.
20:42 FROGGS it will be needed for gather/take, right?
20:42 jnthn Right
20:42 FROGGS k
20:42 jnthn We don't rely on gather/take to get a loadable setting afaik
20:42 jnthn At least, didn't in the JVM times :)
20:42 diakopter oh.
20:43 * diakopter is scared to search the setting for 'gather'
20:43 jnthn But think make test needs it :)
20:44 FROGGS there are a lot of 'gather's in the setting :/
20:44 FROGGS 27 times :o)
20:45 FROGGS first one is at line 5909
20:50 jnthn You don't need it to work to compile a gather/take though ;)
20:50 diakopter 'splain?
20:50 * FROGGS listens
20:51 diakopter you mean just emit NYI opcodes or something?
20:51 jnthn Well, it calls into a GATHER call
20:51 FROGGS you need it to run it I guess
20:51 jnthn You only have a problem at runtime when that GATHER call needs to do something useful ;)
20:52 FROGGS and since none of the gathers is in a BEGIN block, we are safe :o)
20:52 FROGGS until...
20:54 diakopter jnthn: what then could I do that's on the rakudo critical path
20:55 diakopter (sooner)
20:55 jnthn diakopter: tbh, making the NQP continuations tests pass is the easiest isolated thing to take on. I'm only saying "a while" 'cus I'm hedging on how fast we'll get to it being a blocker... ;)
20:56 jnthn Other bits are the container stuff, binder stuff (that needs probably me to look at it, though)...and probably loads of little pieces
20:56 jnthn [Coke]'s list of ops we're missing on Moar but have on Parrot/JVM is another good source of todos.
21:12 dalek MoarVM: 6eaf71f | jonathan++ | src/ (2 files):
21:12 dalek MoarVM: Some more additions to the public API.
21:12 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6eaf71feb5
21:13 diakopter jnthn: do you happen to know how I can find that list of todops?
21:14 jnthn diakopter: Not short of searching for coke and a gist within the last few days
21:16 diakopter heh; last I remember it was weeks ago
21:16 jnthn Feels recenter than that to me.
21:24 FROGGS diakopter: https://gist.github.com/coke/6799633
21:26 FROGGS ahh, getlexouter is next
21:29 * diakopter is tempted to suggest claiming them in the commets
21:29 diakopter comments
21:31 diakopter er, *comments
21:31 diakopter I mean
21:31 diakopter I didn't comment there yet
21:32 diakopter [Coke]: why are the continuation ones in the need docs section, but not in the "missing in moar" section?
21:32 diakopter .ask [Coke] why are the continuation ones in the need docs section, but not in the "missing in moar" section?
21:35 diakopter .. oh, b/c it's not documented? :S
21:40 diakopter jnthn: see the comment I added to that gist
21:40 diakopter FROGGS: u2 :)
21:40 jnthn sorry, got distracted doing night photos :)
21:40 jnthn but this is vacation... :)
21:41 diakopter *comment updated
21:42 diakopter hmm, seems that list is out of date some
21:42 jnthn captureexistsnamed
21:42 jnthn capturehasnameds
21:42 jnthn I did thsee two very recently
21:42 diakopter how can we not implement wval
21:42 diakopter or scgetcode
21:42 jnthn setdispatcher
21:42 jnthn takedispatcher
21:42 jnthn Those also
21:43 jnthn Here are my suggestions for those who want something to hack on:
21:43 jnthn chain
21:43 jnthn xor
21:43 jnthn srand
21:43 jnthn sprintfdirectives
21:43 jnthn getlexrel
21:43 jnthn getlexreldyn
21:43 jnthn getlexrelcaller
21:43 jnthn inf
21:43 jnthn nan
21:43 jnthn neginf
21:43 jnthn bitand_s
21:43 jnthn bitor_s
21:43 jnthn bitxor_s
21:44 jnthn Those should all be approachable, isolated, and we'll hit 'em sooner rather than later :)
21:44 diakopter yay :) thanks jnthn :D
21:44 * diakopter starts from the bottom
21:45 jnthn I suspect FROGGS will know exactly what to do with sprintfdirectives :)
21:45 diakopter *comment updated
21:45 diakopter jnthn: should we still add to the bottom of oplist?
21:45 FROGGS jnthn: already mapping it :o)
21:46 diakopter or add them all at once in one commit in decent places?
21:47 diakopter eh, I guess add them at the bottom, duh..
21:48 jnthn At the bottom
21:48 jnthn The comment at the top says so ;-)
21:49 jnthn Though I was just about to add one too
21:50 diakopter jnthn: git question: how do I kill merge commits (I seem to have several ready to push) :(
21:50 FROGGS git status shows you
21:50 FROGGS git reset HEAD <file>
21:51 jnthn diakopter: How did you get them? Pulling when you had a local commit?
21:51 diakopter git status shows me what?
21:51 diakopter jnthn: yes I guess
21:51 tadzik git rebase -i maybe
21:51 diakopter (without rebase, accidentally)
21:51 diakopter tadzik: how?
21:51 tadzik I don't know, but I know people do that :)
21:51 diakopter FROGGS: what does git status show me?
21:51 FROGGS diakopter: git status shows me how to unstage it
21:51 jnthn If you have, like, your commit <- merge <- merge, then count the merges and try get reset --hard HEAD~2 # where 2 is number of merge commits
21:51 tadzik just git rebase -i and try to play along, I guess
21:51 jnthn And then git pull --rebase
21:52 diakopter jnthn: hm, oh, but I have stashes in there too
21:52 jnthn stashes are orthogonal
21:52 jnthn Hmm, but I wonder if HEAD~2 will go weird also...
21:52 jnthn diakopter: oh, easier
21:52 jnthn If you have what I described
21:52 diakopter yes
21:52 jnthn Get the sha-1 of the last commit you made, before the merge commits
21:53 jnthn Then git reset --hard that-sha-1
21:53 jnthn And then git pull --rebase
21:55 * diakopter finds a large number of abandoned stashes
21:56 FROGGS jnthn: MVM_frame_find_lexical_by_name is almost what we need for getlexouter, right?
21:57 FROGGS the only diff I see is that getlexouter does not take the type
21:57 jnthn FROGGS: Yeah, I'm working on that one atm :)
21:58 FROGGS I thought so :o)
21:58 FROGGS (because it is missing in the todo list above)
21:58 diakopter ugh, I forgot about this; when solving conflicts from stash merges, REMOTE and LOCAL are switched, ish
21:59 diakopter FROGGS: where is it missing?
21:59 diakopter FROGGS: it's in the list
21:59 diakopter in my comment
22:00 FROGGS diakopter: it is missing in jnthn's suggestions
22:02 diakopter oh that :)
22:04 dalek MoarVM/hllprof: 2890baa | diakopter++ | build/test.txt:
22:04 dalek MoarVM/hllprof: updated test message
22:04 dalek MoarVM/hllprof: review: https://github.com/MoarVM/MoarVM/commit/2890baa84a
22:04 dalek MoarVM/hllprof: fe79f4c | diakopter++ | / (72 files):
22:04 dalek MoarVM/hllprof: Merge branch 'master' of github.com:MoarVM/MoarVM
22:04 dalek MoarVM/hllprof: review: https://github.com/MoarVM/MoarVM/commit/fe79f4c593
22:04 dalek MoarVM/hllprof: b8a1a81 | diakopter++ | / (12 files):
22:04 dalek MoarVM/hllprof: Merge branch 'master' of github.com:MoarVM/MoarVM
22:04 dalek MoarVM/hllprof: review: https://github.com/MoarVM/MoarVM/commit/b8a1a8100c
22:04 diakopter erm
22:04 dalek MoarVM/hllprof: e3565a2 | diakopter++ | / (12 files):
22:04 dalek MoarVM/hllprof: hllprof wip
22:04 diakopter oops
22:04 dalek MoarVM/hllprof: review: https://github.com/MoarVM/MoarVM/commit/e3565a22d9
22:04 diakopter well they went into that branch. argh.
22:04 FROGGS nqp: nqp::seed(42)
22:05 FROGGS -.-
22:05 diakopter hah
22:06 camelia joined #moarvm
22:07 camelia ..nqp-moarvm: OUTPUT«Can't exec "./nqp": No such file or directory at lib/EvalbotExecuter.pm line 185.␤exec (./nqp /tmp/DqklMLvlPN) failed: No such file or directory␤Server error occurred! Closing Link: host07.perl6.com (Quit: camelia)␤Lost connection to server irc.freenode.org.␤»
22:07 BinGOs joined #moarvm
22:07 tadzik wow, that was fast
22:07 * diakopter wonders if someone deleted it
22:10 diakopter evalbot control restart
22:10 camelia joined #moarvm
22:10 diakopter nqp-m: 1
22:11 camelia nqp-moarvm: ( no output )
22:11 diakopter nqp-m: say(nqp::now - nqp::now);
22:11 camelia nqp-moarvm: OUTPUT«No registered operation handler for 'now'␤compile_op␤»
22:11 diakopter nqp-m: say(nqp::now_n - nqp::now_n);
22:11 camelia nqp-moarvm: OUTPUT«No registered operation handler for 'now_n'␤compile_op␤»
22:12 diakopter nqp-m: say(nqp::time_n - nqp::time_n);
22:12 camelia nqp-moarvm: OUTPUT«-0␤»
22:12 diakopter nqp-m: say(nqp::time_n - nqp::time_n);
22:12 camelia nqp-moarvm: OUTPUT«-0␤»
22:12 diakopter nqp-m: my $a = nqp::time_n; say(nqp::time_n - $a);
22:12 camelia nqp-moarvm: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near " nqp::time"␤panic␤»
22:12 diakopter nqp-m: my $a := nqp::time_n; say(nqp::time_n - $a);
22:12 camelia nqp-moarvm: OUTPUT«0.000002␤»
22:12 diakopter ugh
22:12 diakopter ok, better
22:13 diakopter nqp: my $a := nqp::time_n; say(nqp::time_n - $a);
22:13 camelia nqp-moarvm: OUTPUT«0.000001␤»
22:13 camelia ..nqp-parrot: OUTPUT«9.5367431640625e-07␤»
22:13 camelia ..nqp-jvm: OUTPUT«0␤»
22:13 diakopter jnthn: lol ^
22:13 FROGGS Just In no Time :o)
22:14 diakopter so moar is impercipbly slower than parrot there... and infinitely slower than jvm ;)
22:14 diakopter *imperceptibly
22:16 Ulti joined #moarvm
22:16 diakopter jnthn: erm, nqp seems to be building MUCH faster than when last I looked.... o_O
22:16 dalek MoarVM: 7948d19 | (Tobias Leich)++ | / (7 files):
22:16 dalek MoarVM: s/seed/srand/
22:16 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/7948d19f4a
22:17 diakopter FROGGS: why not just map it..?
22:17 diakopter well, I guess if you don't change the order, it's fine..
22:18 FROGGS diakopter: it would be the first op where the mapping differs AFAIK
22:18 diakopter there's bunches
22:18 diakopter where they're just renames
22:19 diakopter .. unless someone cleaned them all up and I didn't notice
22:19 FROGGS hmmm, well, at least there is not one more :o)
22:25 FROGGS jnthn: can I change an op from void to return something without breaking backcompat?
22:27 diakopter oh, not if it's used in the bootstrap
22:27 diakopter but I doubt it is...
22:27 diakopter well, who knows :)
22:28 FROGGS can't be used, since I renamed the op :o)
22:28 diakopter evalbot control rebuild nqp-moarvm
22:29 jnthn FROGGS: Return something? What, ooc?
22:29 jnthn FROGGS: It's not just a case where the result is one of the arguments?
22:29 FROGGS jnthn: it is the case, yes
22:30 FROGGS srand(n) returns n
22:31 jnthn Yes, we don't change the op for that
22:31 jnthn You just add , 0 when mapping it
22:31 jnthn And it uses the 0th argument as the result
22:31 FROGGS ahh, allright
22:31 FROGGS even better :o)
22:31 BinGOs joined #moarvm
22:32 diakopter jnthn: it's really strange, I don't remember implementing that ,0 thing, but I feel I had to have been the one.... :S
22:33 diakopter jnthn: hm, why doesn't it LTO moar.dll
22:34 jnthn I think it does here...
22:34 jnthn At least, it takes ages over it :)
22:34 colomon joined #moarvm
22:34 diakopter weird
22:36 jnthn You passed, --optimize, I assume?
22:37 diakopter yeah
22:37 * diakopter tries again in case I had a seizure or something during it
22:38 diakopter oh, maybe
22:38 diakopter moar.exe is now dynamically linked to moar.dll?
22:38 FROGGS yes
22:38 diakopter wow, ok
22:41 jnthn Needed for extops
22:41 dalek MoarVM: 3442b93 | jonathan++ | / (8 files):
22:41 dalek MoarVM: Add and implement getlexouter op.
22:41 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3442b93857
22:42 jnthn No registered operation handler for 'p6bindsig'
22:42 jnthn *groan* :)
22:42 FROGGS diakopter: an you strip srand, sprintfdirectives and getlexouter from your comment? that would be sweet
22:42 FROGGS can*
22:42 diakopter oh yeah, the unimplemented rakudo ops 
22:42 BenGoldberg joined #moarvm
22:42 diakopter FROGGS ok
22:42 diakopter FROGGS: ok
22:43 FROGGS jnthn: damn, now it is not a surprise anymore :o)
22:43 diakopter *updated
22:43 * FROGGS builds anyway
22:43 jnthn :P
22:43 FROGGS diakopter++ # thanks
22:44 diakopter FROGGS: maybe I'll look at chain, unless you already are
22:44 jnthn I wonder if the need for that means we have hit the BEGIN block...
22:45 FROGGS diakopter: I'm not, I am thinking about snoring a bit like all the other lifeforms do here
22:45 diakopter "..it's just me and some lifeforms, sir."
22:45 FROGGS *g*
22:47 diakopter jnthn: how does one implement a custom rakudo op for moar
22:47 diakopter FROGGS: or you, of course
22:47 diakopter the moar-support branch I know..
22:48 diakopter ah well, I can find it
22:48 FROGGS diakopter: see rakudo/src/vm/moar/ops/perl6_ops.c
22:49 jnthn What FROGGS said and also see src/vm/moar/Perl6/Ops.nqp
22:49 jnthn But please leave p6bindsig for me
22:50 diakopter how many unimplmented ones are there there?
22:50 diakopter how many unimplmented ones are there?
22:50 diakopter (anyone know offhand?)
22:51 FROGGS se
22:51 FROGGS sec
22:52 FROGGS 48 are defined for jvm
22:52 FROGGS and three are done
22:53 jnthn "done" :)
22:53 FROGGS yeah
22:54 jnthn http://jnthn.net/tmp/by-night.jpg # ok-ish night photo of where I'm hacking from :)
22:54 FROGGS very nice
22:54 jnthn Look forward to seeing how it looks in daylight :)
22:55 diakopter jnthn: wow!
22:55 FROGGS tomorrow is hackathon?
22:56 timotimo ooooh pretty
22:56 jnthn Probably more like walkathon in the daylight hours :)
22:56 jnthn I got some nice restaurant tips too :)
22:57 jnthn But yeah, evening plan is beer and hack :)
22:57 FROGGS have fun guys, I go to bed
22:57 FROGGS o/
22:57 jnthn 'night, FROGGS
22:58 diakopter \\\\\\\
22:58 diakopter \
22:58 diakopter \
22:58 diakopter \\
22:58 diakopter argh
23:00 jnthn wtf :D
23:07 * diakopter is now working on chain
23:15 diakopter bug: rakudo's Configure.pl doesn't allow relative paths for --prefix, but nqp allows it
23:18 diakopter jnthn: when nqp-m.exe exits from an exception, I'm not sure it's setting %ERRORLEVEL%, otherwise nmake wouldn't continue
23:18 jnthn diakopter: Yeah, I've seen some oddness there...
23:19 diakopter oh, I mean
23:19 diakopter not nqp
23:19 jnthn If we exit(non-zero) all should, in theoyr, be fine...
23:19 diakopter when moar.exe is running perl6.moarvm
23:19 diakopter which I'm shocked exists already
23:19 jnthn yeah
23:19 jnthn ;-)
23:19 jnthn Darn progress
23:25 diakopter jnthn: are unhandled exceptions in child threads going to kill the vm?
23:30 diakopter (seems to me they should)
23:31 diakopter (should effectively force all exceptions to be handled)
23:35 diakopter jnthn: if more than one thread is running, and one of them calls nqp::exit(1), does it interrupt the others a la a gc run or whatever and then shutdown the vm?
23:35 diakopter shutdown gracefully?
23:38 jnthn (exceptions) yeah, seems reasonable
23:38 jnthn (exit) I don't think it does anything nice wrt threads yet.
23:38 jnthn but it should.
23:39 jnthn sleep time...'night
23:39 diakopter *sigh* I know what it does/doesn't do now.. I was asking what it should do
23:42 BenGoldberg Do we have a way to gracefully kill a thread from another thread?
23:42 timotimo that is never possible, ever :P
23:43 diakopter BenGoldberg: like notify?
23:43 BenGoldberg Probably
23:46 BenGoldberg if more than one thread is running, and one thread calls nqp::exit, then that thread should notify all of the other threads that the vm is shutting down, and then that thread should exit.  As each of the other threads receive that notification, it should shut itself down.  The last thread alive could then do additional cleanup.
23:52 diakopter a la the JVM, we would have each thread throw a Really Systemy Exception
23:57 BenGoldberg I'm not sure if throwing a System Shutting Down exception would be a good idea... something might catch it and choose not to die, or fail to catch it and accidentally not clean something up
23:59 diakopter X::FatalError

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary