Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-06-03

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

All times shown according to UTC.

Time Nick Message
01:44 FROGGS joined #moarvm
05:07 rurban_ joined #moarvm
05:56 woosley joined #moarvm
06:25 FROGGS joined #moarvm
06:26 FROGGS o/
07:06 zakharyas joined #moarvm
07:13 ilbot3 joined #moarvm
07:13 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
07:39 woolfy joined #moarvm
08:31 donaldh joined #moarvm
08:59 brrt joined #moarvm
09:19 woolfy left #moarvm
10:31 donaldh joined #moarvm
11:10 d4l3k_ joined #moarvm
11:10 Util joined #moarvm
11:11 tadzik joined #moarvm
11:11 sergot joined #moarvm
11:12 masak joined #moarvm
11:27 synopsebot joined #moarvm
12:00 vendethiel joined #moarvm
12:01 FROGGS joined #moarvm
12:45 jnap joined #moarvm
13:24 vendethiel joined #moarvm
13:45 vendethiel joined #moarvm
13:47 btyler joined #moarvm
14:24 brrt joined #moarvm
14:43 oetiker_ joined #moarvm
14:48 oetiker__ joined #moarvm
14:53 oetiker joined #moarvm
14:53 oetiker joined #moarvm
14:55 oetiker joined #moarvm
14:58 oetiker_ joined #moarvm
14:59 oetiker joined #moarvm
15:25 cognominal joined #moarvm
15:26 japhb jnthn: Do you prefer I call the VM 'Moar' or 'MoarVM' in the architecture diagram slide of my why-perl6 talk?  I see 'MoarVM' or 'moarvm' a lot here, but $*VM.name is 'moar'.
15:26 tadzik is $*VM.name for JVM 'j'? :P
15:27 japhb tadzik: No, it's 'jvm'.  But for the Parrot VM it's 'parrot'.
15:28 japhb I currently have 'MoarVM', but I'm not certain what jnthn actually *wants* people to use, because the references I find are often historical.
15:35 * TimToady is biased towards claiming the "moar" meme pre-emptively before someone else does and confuses the market
15:36 TimToady on top of which, saves two keystrokes :)
15:36 tadzik moar will be very hard to google
15:37 TimToady so you claim both words, and use "moarvm" at least once in any page :)
15:37 tadzik :)
15:38 TimToady we also want people googling "moar fun" to end up on our page
15:52 * jnthn uses "moar" informally, but sticks to MoarVM on the website, presentations, etc.
15:53 TimToady well, and we got the executable named "moar", which is something of a claim when you start installing it
15:53 TimToady (in a system directory)
15:55 jnthn aye :)
16:01 japhb OK, so I'll stick with MoarVM for the architecture diagram, but I think I understand when to use moar.  :-)
16:32 lizmat joined #moarvm
17:54 brrt joined #moarvm
17:57 brrt hi #moarvm
17:58 FROGGS hi brrt
17:58 jnthn hi brrt
17:59 jnthn How's things?
17:59 brrt pff, tired, busy, lots of distractions
17:59 brrt :-) how are you?
17:59 brrt i had some really good ideas - i thought - and i've forgotten them
17:59 jnthn Still a bit tired from recent busy times...
17:59 jnthn But gradually recovering and starting to write code again :)
18:00 TimToady brrt: writing things down helps a little, as you get older, but then you have to remember *that*...  :)
18:01 TimToady and where you put your writings...
18:01 brrt i have a tendency to get good ideas in non-writeable situations
18:01 TimToady dictate to your phone?
18:02 TimToady otoh, when I go back and look at my notes, they're usually crap :)
18:02 brrt i have a non-dictating phone, too :-)
18:02 brrt well, yeah, that too
18:03 dalek MoarVM/spesh_nameds: d9ad0cf | (Timo Paulssen)++ | docs/bytecode.markdown:
18:03 dalek MoarVM/spesh_nameds: Spec callsites storing named argument names.
18:03 dalek MoarVM/spesh_nameds: review: https://github.com/MoarVM/MoarVM/commit/d9ad0cf391
18:04 jnthn timotimo: I'm rescuing what I can from your branch on nameds in callsites, and will work on getting that stuff in place, so we can spesh 'em...
18:05 brrt jnthn - i'm wondering, would it be better to JIT per MVMSpeshGraph or MVMSpeshBB?
18:05 jnthn The first
18:05 timotimo that would be fantastic, thanks
18:05 jnthn I can't imagine how the second would work.
18:07 TimToady any phone is a dictating phone if you call up an answering machine you own :)
18:07 brrt ... no, you're right :-)
18:08 brrt actually, compiling a graph by compiling basic blocks is probably reasonable
18:08 TimToady anyway, you planning to write the JIT JIT? :P
18:08 jnthn oh yeah, you may end up with a jit_bb
18:08 jnthn Though will need a fixup table of back-jumps :)
18:09 brrt fixup table?
18:09 cognominal__ joined #moarvm
18:09 brrt dasm can handle (dynamic) labels, by the way
18:09 jnthn Ah...then it may do that for you :)
18:11 brrt hmm yes, i'll have to create 'some' structure, but as dynamic labels are really numbers it might well be sufficient to tag the basic blocks
18:11 brrt and if  i know how many basic blocks there are i can have dasm allocate a sufficient amount
18:12 jnthn g->num_bbs
18:12 brrt but, i'm not sure if the jit graph ahs the exact same number of basic blocks as the spesh graph
18:13 jnthn Oh, point :)
18:13 jnthn Probably not :)
18:13 jnthn jg->num_bbs :D
18:13 brrt why? because some things that are ops in the spesh graph  will likely be functions in the jit graph, and function calls - iirc - form new basic block boundaries
18:13 jnthn No, function calls don't
18:13 brrt sure?
18:13 jnthn Well, they sure don't in spesh today :)
18:14 brrt hmm
18:14 brrt no
18:14 jnthn You just proceed to the next instruction after the call.
18:14 brrt you;'re right
18:14 brrt however, for the purposes of register allocations, they are a boundary
18:14 jnthn True.
18:14 jnthn JIT may want it called differently.
18:15 brrt you mean jit -> interpreted?
18:15 brrt i'm wondering how often that happens, by the way
18:15 brrt if function foo is called N times, and foo calls bar, it's likely bar will be called N times as well? unless foo must decide to cal lbar, of course
18:15 jnthn No, I just mean JIT may have reason to treat calls as a BB end.
18:16 brrt oh i see
18:16 brrt :-)
18:16 jnthn JIT -> interpreted can happen in two ways: code called conditionally that didn't get hot enough yet, and deopt.
18:16 jnthn Oh, and returning from JITted to interpreted.
18:16 jnthn Oh, and continuations I guess :)
18:17 jnthn But aside from those cases, not that much :P
18:17 brrt i find continuations very difficult to think about in this context
18:18 jnthn From the JITs perspective you can largely treat them like function calls.
18:18 brrt does moar have facilities to get (writable, executable) memory yet?
18:18 brrt ok i see
18:18 jnthn Not yet.
18:20 brrt doesn't matter, i'll place it in src/jit/ and if we ever find another use we'll move it
18:20 jnthn wfm
18:20 jnthn Well, src/platform/ is the other possible place.
18:20 brrt oh, that may be better
18:20 jnthn git why u no let me cherry-pick --no-commit 3 things...
18:22 jnthn oh, it does
18:47 brrt what configuration variable holds the processor architecture?
18:47 brrt (in Configure.pl)
18:47 cognominal joined #moarvm
18:49 jnthn brrt: I'm not sure there is one, looking at config.c
18:49 jnthn brrt: The probes so far have focused on features (like endianness) primarily I guess...
18:51 jnthn brrt: build/probe.pm in unaligned_access is doing some architecture probing, it seems
18:51 brrt ok i'll check
19:27 dalek MoarVM/spesh_nameds: acf754b | jnthn++ | src/core/callsite.h:
19:27 dalek MoarVM/spesh_nameds: Prepare MVMCallsite for storing named arg names.
19:27 dalek MoarVM/spesh_nameds: review: https://github.com/MoarVM/MoarVM/commit/acf754be4c
19:27 dalek MoarVM/spesh_nameds: 1958884 | jnthn++ | src/ (2 files):
19:27 dalek MoarVM/spesh_nameds: Start placing arg names into callsite objects.
19:27 dalek MoarVM/spesh_nameds:
19:27 dalek MoarVM/spesh_nameds: This writes them into the bytecode file and then later reads them
19:27 dalek MoarVM/spesh_nameds: back in. Not using them for anything yet; we'll be able to use them
19:27 dalek MoarVM/spesh_nameds: as part of spesh, and can gradually with time migrate to using them
19:27 dalek MoarVM/spesh_nameds: everywhere and then exclude them from actually being passed in call
19:27 dalek MoarVM/spesh_nameds: sequences.
19:27 dalek MoarVM/spesh_nameds: review: https://github.com/MoarVM/MoarVM/commit/195888420d
19:28 jnthn Patches based on timotimo++ work, but in the case of mast/compiler.c heavily re-worked to get re-use righter.
19:42 dalek MoarVM/spesh_nameds: 14b88fc | jnthn++ | src/core/bytecodedump.c:
19:42 dalek MoarVM/spesh_nameds: Update bytecode dumper to dump arg names.
19:42 dalek MoarVM/spesh_nameds: review: https://github.com/MoarVM/MoarVM/commit/14b88fc0dc
19:52 jnthn walk; bbiab to work on interning callsites with nameds...
20:17 lizmat joined #moarvm
20:18 brrt hmm jnthn, anyone else: have an idea of how to put an 'optional' part like jit into the Makefile?
20:19 brrt or rather
20:19 jnthn Just put it in there any then have the dependency on it be optional, mnaybe?
20:20 brrt yes, hmm
20:20 brrt i don't know if that will work out
20:20 jnthn OK
20:20 jnthn Well, otherwise it's just an @foo@ where foo is a multi-line thingy :)
20:20 brrt i tried that, i'm stuck in the 'solve this elegantly' trap :-)
20:21 brrt also, i need to compile some stubs for compiling on a platform without jit support
20:22 jnthn aye
20:23 jnthn In which case can you not have a @jitfiles@ that specifies the files to compile?
20:23 brrt yes
20:23 brrt thats what the platform logic seems to be doing
20:23 brrt so thats what i'll do too
20:29 brrt how should we determine where lua comes from?
20:30 brrt parameter passing?
20:33 jnthn Parameter to Configure.pl you mean? Can do...and if not specified just try a straight "lua" invocation
20:33 brrt yes, thats what i mean :-)
20:34 jnthn wfm :)
20:47 japhb_ joined #moarvm
20:51 brrt hmm, why is the generated makefile automatically removing the generated .c file (from the .dasc file)
20:56 jnthn Something stray in cleanups?
20:56 brrt not that it matters much
20:56 brrt but still
20:57 jnthn Well, it does if we're going to check it in, no?
20:57 brrt yes :-)
20:58 brrt i'm watching it build right now
20:58 brrt OT - what does anyone here think of this new 'Swift' language?
21:00 jnthn brrt: Was some discussion on #perl6 about it earlier today :)
21:01 jnthn I read through the manual this morning quickly.
21:01 jnthn Conclusion: nice language, nothing earth-shattering, but overall quite well balanced.
21:01 brrt i shall look at said discussion
21:10 brrt ugh, i'm so darned close
21:11 brrt oh, wait, i see
21:12 brrt src/jit/jit.o is linked in libmoar.so to which moar is linked, but functions in jit.o aren't actually visible to the moar executable until made 'public'
21:12 brrt how do i make a function public?
21:13 jnthn MVM_PUBLIC?
21:14 brrt yes :-)
21:14 brrt thanks
21:18 brrt hmm thats not good enough it seems
21:19 jnthn Oh?
21:19 jnthn You put it in the header?
21:20 brrt yes
21:20 brrt basically, i'm trying 'hello world' here :-)
21:20 brrt i have this function MVM_can_jit(MVMSpeshGraph *graph), and it should return 0, and in main.c i call it with a printf()
21:20 brrt but it can't seem to link to it in libmoar.so
21:21 jnthn You added yoru header file in moar.h too?
21:28 brrt yes
21:35 brrt it does appear in libmoar.so
21:35 lizmat joined #moarvm
21:37 jnthn It's not some weirdness with it finding an intalled version of the library?
21:38 jnthn (yes if "make install" fixes it)
21:39 brrt yes, its weirdness with finding an installed version of the library
21:39 brrt darnit
21:39 brrt :-)
21:39 brrt just as you were saying it
21:50 woolfy joined #moarvm
21:53 dalek MoarVM/spesh_nameds: d156625 | jnthn++ | src/core/callsite.c:
21:53 dalek MoarVM/spesh_nameds: Start interning named arg callsites.
21:53 dalek MoarVM/spesh_nameds: review: https://github.com/MoarVM/MoarVM/commit/d156625229
21:53 dalek MoarVM/spesh_nameds: 56a9b99 | jnthn++ | src/spesh/args.c:
21:53 dalek MoarVM/spesh_nameds: Make spesh survive named arg call sites.
21:53 dalek MoarVM/spesh_nameds:
21:53 dalek MoarVM/spesh_nameds: Doesn't do the named to positional bit yet, but this at least gets it
21:53 dalek MoarVM/spesh_nameds: to not do an optimization that loses named args if they're slurped.
21:53 dalek MoarVM/spesh_nameds: review: https://github.com/MoarVM/MoarVM/commit/56a9b99573
21:54 dalek MoarVM/moar-jit: b0a35b7 | (Bart Wiegmans)++ | / (9 files):
21:54 dalek MoarVM/moar-jit: Added rules to pre-process and compile DynASM files.
21:54 dalek MoarVM/moar-jit: And check for DynASM in Configure.pl
21:54 dalek MoarVM/moar-jit: review: https://github.com/MoarVM/MoarVM/commit/b0a35b77d2
21:54 jnthn Seems that's already a small win...
21:56 LLamaRider joined #moarvm
21:57 jnthn brrt++ # yay, progress
21:57 brrt small wins :-)
22:01 brrt ok, whats next
22:02 brrt oh yes
22:02 brrt i recall
22:02 brrt do you have any pointers on how to build a MAST tree and the compile it?
22:05 donaldh joined #moarvm
22:06 jnthn use MASTNodes; # gets you the nodes
22:06 jnthn my $mc := nqp::getcomp('MAST'); # gets you the compiler
22:07 jnthn And you can do $mc.assemble_and_load($mast_tree) to get it compiled and loaded.
22:08 brrt :-) ok, awesome
22:08 jnthn A MAST tree is always a MAST::CompUnit at the top, then at least one MAST::Frame; you .add_frame on the CompUnit.
22:08 jnthn And frames get instructions or instruction lists pushed onto them.
22:08 jnthn Note that you can --target=mast
22:09 jnthn To get an idea
22:12 brrt --target=mast does.. . create files with MAST nodes?
22:14 brrt oh i see
22:14 jnthn no, dumps
22:23 brrt i see.... takes a bit of time to get used to inspecting
22:30 brrt it seems like a time for sleeping for me
22:31 brrt see you tomorrow!
22:31 brrt left #moarvm
22:32 jnthn Night! o/
23:06 woolfy left #moarvm
23:23 woolfy joined #moarvm
23:54 woolfy joined #moarvm
23:59 lizmat joined #moarvm

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