Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-07-09

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

All times shown according to UTC.

Time Nick Message
01:33 eternaleye joined #moarvm
01:40 eternaleye joined #moarvm
01:56 FROGGS_ joined #moarvm
02:01 eternaleye joined #moarvm
04:24 benabik joined #moarvm
04:59 birdwindupbird joined #moarvm
05:50 ggoebel2 joined #moarvm
06:39 FROGGS_ joined #moarvm
09:06 pmichaud_ joined #moarvm
09:13 diakopter joined #moarvm
09:15 Tene joined #moarvm
09:15 itz joined #moarvm
09:15 patspam joined #moarvm
09:15 rblackwe joined #moarvm
09:15 tokuhirom_ joined #moarvm
09:15 jnthn joined #moarvm
09:15 chipdude joined #moarvm
09:15 `patch` joined #moarvm
09:59 eternaleye joined #moarvm
10:53 eternaleye joined #moarvm
11:28 eternaleye joined #moarvm
11:33 FROGGS joined #moarvm
11:57 prammer joined #moarvm
16:07 FROGGS joined #moarvm
16:12 FROGGS jnthn: do you think there is something I could already do vor MoarVM?
16:12 FROGGS for*
16:13 FROGGS damn it, I can't type today
16:13 jnthn You can't type, but you want to hack on a VM??? :P
16:13 FROGGS :P
16:13 FROGGS well
16:14 FROGGS compilers usually tell me about typos :o)
16:15 jnthn Anyway, yes, there's surely things to do. Are you decent in C?
16:15 jnthn Though to be honest, talented but indecent in C is fine too...
16:16 FROGGS well, I know a bit about C and did things in PerlXS
16:16 FROGGS any LHF that is good as a start?
16:18 Tene joined #moarvm
16:18 jnthn FROGGS: Well, NQPLHLL.nqp has various nqp:: things commented out.
16:19 jnthn Some of those may well be LHF.
16:21 FROGGS cool, will have a look
16:22 FROGGS jnthn: thanks
16:40 diakopter FROGGS: also, if you'd like, you could help realize the extops branch
16:41 diakopter jnthn: <nudge>
16:46 colomon joined #moarvm
16:54 FROGGS diakopter: extops is about p5interop I guess?
17:00 diakopter FROGGS: well, not directly
17:00 FROGGS diakopter: what is it? (in short)
17:00 diakopter it's about enabling native extensions
17:00 diakopter (and adding extension ops to access them)
17:01 diakopter in the extops branch see docs/extops.markdown
17:02 FROGGS okay, will do
17:02 diakopter I expect jnthn to rubberstamp it since it's essentially identical to what we already talked through
17:02 diakopter one or two tiny changes/additions that aren't really binding/consequential
17:02 FROGGS k
18:09 ssutch joined #moarvm
18:13 diakopter ssutch: hi :)
18:13 ssutch hello!
18:14 diakopter FROGGS: let me know what you think of that
18:14 diakopter jnthn: ping
18:46 jnthn diakopter: pong
18:56 diakopter jnthn: just wanted to point out what I added to that markdown that we didnt' talk about before
19:00 eternaleye joined #moarvm
19:51 lizmat_ joined #moarvm
19:54 FROGGS_ joined #moarvm
19:57 nwc10_ joined #moarvm
20:06 tadzik joined #moarvm
20:08 diakopter jnthn: did you want to hear it?
20:11 jnthn diakopter: yes, go ahead, just been writing up $dayjob stuff today in case somebody needs to support what I did while I'm away on vacation :)
20:11 jnthn Done that now, so can look at your thingy :)
20:11 diakopter really the only difference was allocating the opcodes
20:12 diakopter 0-4095 for built-ins, 4096-32767 for extension ops, the rest for JIT hooks
20:12 diakopter seem okay?
20:13 diakopter (32768-65535 for JIT hooks)
20:15 tadzik1 joined #moarvm
20:18 diakopter so, 16 banks for built-ins
20:32 jnthn Sorry, got phone call...
20:32 jnthn diakopter: JIT hooks?
20:33 * jnthn reads
20:34 diakopter jnthn: well, I was just thinking about how to inject JIT calls
20:34 diakopter jnthn: er, calls into JITted things
20:35 diakopter jnthn: I mean, for times that not the entire routine is JITted
20:35 jnthn Under "#### Representing Extension Op Calls on Disk and in Memory", while we're probably both thinking it, it may be worth making it explicit we expect the table to be dense, not having any holes...
20:36 diakopter k
20:36 jnthn oh, it's kinda stated in the next section...maybe still good to clarify up front though
20:38 jnthn "throw a bytecode validation exception" - again, obvious, but error should contain the name of the op and the signature...
20:38 diakopter k
20:38 jnthn (only noting this 'cus there's a proposed error text taht doesn't inlcude 'em :))
20:38 diakopter "something went wrong with your face. try again."
20:39 jnthn The validator copies
20:39 jnthn the function pointer from the process-wide registry into the in-memory record
20:39 jnthn of the extop call in that compunit, and invokes it.
20:39 jnthn ...and invokes it? :)
20:39 jnthn I'm guessing it's invoked during execution time? :)
20:39 diakopter oh yes. :D
20:40 colomon joined #moarvm
20:40 jnthn I'm not sure I follow the JIT extensions idea yet, but I'm fine with reserving > 32768
20:40 diakopter >=
20:40 jlaire joined #moarvm
20:42 jnthn yes :)
20:42 jnthn In MVM_bytecode_extop_install I'm getting a slight sense of confusion over what there can be 28672 of.
20:43 jnthn The document so far implies that this is the maximum number *per compunit*.
20:43 jnthn But MVM_bytecode_extop_install seems to be trying to assign global numbers?
20:43 jnthn Whereas in reality we only care about names globally, and numbers are entirely per-compunit?
20:44 diakopter if MVM_bytecode_extop_install is doing that it's a fossil
20:44 jnthn I'm not seeing that we need a global number, so it feels like we're doing more work than needed to enforce a restriction we needn't. ;)
20:44 jnthn OK :)
20:45 diakopter .. I thought I cleaned all that
20:45 jnthn MVMuint16 opidx = tc->instance->nextcustomop++;
20:45 jnthn if (opidx == MAX_EXTOPS)
20:45 jnthn MVM_panic(tc, "too many custom ops!");
20:45 jnthn That's the bit I'm referring too, fwiw
20:45 diakopter oh yes. forgot to remove that.
20:45 TimToady well, hey, there's a long tradition of VMs assuming things they shouldn't :)
20:45 jnthn ah, good
20:46 jnthn I'm trying to assume different things I shouldn't :P
20:46 diakopter it would've found that nextcustomop didn't exist pretty quickly
20:46 diakopter jnthn: oh wait.
20:46 diakopter yes there is a global thing there
20:47 diakopter because they're being stored in a table as well as a hash
20:47 jnthn I'm not entirely clear on the proposed world interaction, but I'm comfortable enough with the overall design/approach that I think the exact factoring will fall out nicely as we work on this.
20:47 diakopter so while it does need an opidx, it doesn't need a limit/max
20:47 jnthn ok
20:47 jnthn Well, just make it bigger enough I guess :)
20:48 diakopter jnthn: I can't remember how much I've talked through the p5interop design/thoughts with you yet
20:49 jnthn Not much, and doing so will be "interesting" given my general ignorance of P5 on the inside ;)
20:49 diakopter but... blizkost?
20:49 jnthn *mumble*
20:49 jnthn sorear++ did the hard work ;)
20:49 jnthn I think I suppressed the rest ;)
20:50 jnthn #define REGI(idx) REG((idx)).i
20:50 jnthn Any reason these macros look different from the way we have 'em in interp.c?
20:50 jnthn I for one would rather not remember two syntaxes for one thing :)
20:50 jnthn Mentioned things aside, I find nothing disagreeable in here.
20:50 diakopter fine I'll remove them :P
20:51 diakopter REG(3).i is fine
20:51 jnthn So it can be untentativized some :)
20:53 diakopter ok
20:53 diakopter thanks
21:44 diakopter jnthn: there are plenty of optimization opportunities/ideas I've thought of, but I didn't include them there simply to keep it simple
21:44 diakopter but I wanted to let you know I'd thought about bunches of potential optimizations
22:29 FROGGS_ "QAST::Var with scope 'lexcial' NYI" >.<
22:29 diakopter hee
22:31 jnthn um...wat...
22:31 FROGGS_ $ nqp nqp-moar-cc.nqp -e 'my $fh := nqp::open("test.txt", "w"); say($fh.REPR)'
22:31 FROGGS_ MVMOSHandle
22:31 FROGGS_ \o/
22:31 diakopter heh.
22:31 FROGGS_ jnthn: just my way of typing today
23:30 eternaleye joined #moarvm
23:42 nwc10 joined #moarvm
23:46 jnthn joined #moarvm

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