github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
Set by moderator on 7 June 2013.
jnthn diakopter: I suspect a binary dist of Rakudo * will do so 00:00
diakopter interesting, okay 00:01
jnthn (not saying that's the only case, it's just the immediate obvious example) 00:02
diakopter jnthn: have you thought about the rules of when to look for a .moarvm instead of looking for a .pm ? 00:03
alternatively, do you want to not integrate that, and just have an opcode to load bytecode files only? 00:04
(and have all that logic in HLL)
sorear um, if you don't, how will you bootstrap nqp?
or is .moarvm something different from the bootstrap format 00:05
jnthn diakopter: ModuleLoader in NQP and Rakudo is already written in NQP
diakopter sorear: gimme a break; I'm slow sometimes :P
jnthn sorear: Good point :P
r: say 13 % -4 00:06
diakopter jnthn: maybe I should know something about ModuleLoader
jnthn: .oO( if an extension wants to install more than 64k opcodes, in can do its own dispatch with constants..... ) 00:10
;)
well, 62k or however many are left 00:12
jnthn diakopter: Initially I'd been thinking of reserving the first 128 banks 00:13
and extension ones go above that
diakopter wfm
jnthn: ahhhhhhh, the design is congealing nicely 00:19
jnthn: O 00:25
jnthn: M
jnthn: G
sorear ? 00:31
diakopter just exclaiming at my design, ish
jnthn What? :)
diakopter should be nice.
masak diakopter: your explanation is not commensurate with your exclamation. 00:34
diakopter :D
01:07 tgt joined 01:23 FROGGS joined 01:33 colomon joined 02:10 benabik joined
diakopter makes a macro system so the C preprocessor of moar extension C code injects type checking that should be optimized away 02:54
benabik: ping 03:18
benabik diakopter: pong
diakopter gist.github.com/diakopter/dda1151cf3c28c763d02
benabik: ^ any comments? 03:20
(also, anyone)
there's another couple ways to do the type-checking compile-time-ish 03:21
benabik diakopter: The initial code snippet is a little confusing. $native_lib var vs function, $prefix arg and local. $package_name unused.
diakopter oopsie.
benabik (Still reading, may be a little slow as it's late and I've been short of sleep. 03:22
diakopter benabik: fixed
(and fixed again) 03:23
benabik The first bit of [pseudo-]code is always the hardest since you never quite know how the rest will turn out. ;-) 03:24
Is it deliberate that you call the sss op with is? 03:25
diakopter line no.?
oh
yes
benabik Just wanted to be sure. :-)
diakopter to point out that since the compiler has the type information, it knows to auto-coerce
(same as on parrot) 03:26
(without type checking at runtime)
(same as on parrot)
benabik Looks good. I like ops being macro rather than parsed. (ops2c has been a bit of a pain.) 03:27
diakopter this is like an OMGULTRA-slimmed-down XS of sorts, 'cept mostly done much more high-level, and compiler-aware
benabik Might make sense to make the fact that it's a function less hidden in macro though, unless you think it might be different someday. Have a CUSTOM_OP_SETUP(tc, frame, arty, types) 03:29
But I guess that's more bikeshedding. :-)
diakopter nah
yes it would be nice for tc and arity to appear
haha 03:30
hahahahaha
I kill me.
pass thru dummy macro args whose value is the same as the macro param name
benabik It would be nice if the register types could be checked at compile, rather than runtime. But no simple way is coming to mind at the momen.t 03:31
diakopter ah, but they should be 03:32
optimized away
by a smart compiler
03:32 JimmyZ joined
benabik The checks should be optimized away, but the explosions still happen at runtime 03:32
diakopter (would be interesting to see if they actually are)
yes explosions at runtime
(meh)
benabik Type systems exist to help prevent you from writing invalid code. ;-) 03:33
diakopter ("what, you installed this code into production without ever exercising this code path by calling this function ever even once?")
benabik Fail fast.
diakopter that's pretty fast :P
besides, it's a convenience anyway 03:34
it doesn't actually protect anything
since the coder can provide inconsistent regtypes and $names_sigs
decommute& 03:36
JimmyZ .moarvm or .mbc or .mar? :P 03:43
benabik .mvm? 03:46
.oO( Speaking of bike shedding... )
diakopter I think either .moarvm or .mvm is good 03:53
benabik Probably .moarvm, given that we're not on FAT anymore. 03:54
diakopter .mbc is a tad redundant or overspecific since there won't be another format for a moarvm file other than bytecode
.mar is cute, but you store java in a jar and moar in a mar? You're a mar. 03:56
JimmyZ s/MVM_CUSTOM_OP/MVM_ADD_OP :D 04:04
diakopter benabik: this demonstrates that installing custom ops is simply an optimization of using NativeCall normally
benabik diakopter: Albiet one that gets access to the thread context and frame 04:05
diakopter (same as Inline::C to xsubs
JimmyZ thinks .moarvm is a bit long 04:06
diakopter benabik: excellent point
(and via thread context can do insane control flow things) 04:07
along with completely unsafe ones
benabik It's more like NATIVE_CALL than NativeCall. ;) 04:08
diakopter wiring up the World to DTRT is trivial 04:09
once it's bootstrapped...
oh wait.
benabik
.oO( All you have to do is throw yourself at the ground and miss... 0
diakopter well yeah an nqp::op can fake it until then
yeah so it's currently handwaving a lot 04:25
eternaleye diakopter: I'd say that .moarvm works pretty well, and .mar could be a zip of .moarvms - that could open up something like how Java jar/class files work out.
diakopter (that's the real work of solving it)
eternaleye Plus, that way you really do store moar and moar and moar in a mar. 04:26
:P
JimmyZ I see --target=mbc in nqp-cc-moar.nqp
:D
diakopter bah 04:29
04:54 JimmyZ joined 05:30 tomyan joined 06:27 ssutch joined 07:43 JimmyZ joined
diakopter JimmyZ: how goes the container branch 08:15
hm, seems dalek doesn't want to report I pushed a branch
o_O nor does it appear in the web UI
... probably b/c it has no new commits
JimmyZ diakopter: needs jnthn++'s review
diakopter JimmyZ: does he know you're waiting on him? 08:16
JimmyZ diakopter: maynot, I don't want to bother him, since he is busy on rakudo jvm 08:18
diakopter he wouldn't be bothered :) just create an issue and assign it to him; he'll prioritize it appropriately 08:19
sorear diakopter: dalek never reports brand-new branches. I consider this a bug, but I never figured out how to fix it.
diakopter (or simply .ask him here via yoleaux)
sorear diakopter: so I push empty branches, and then push the initial commits, if I want it to show up. :D
JimmyZ I'm curious, why dalek won't be killed in #parrot 08:20
diakopter sorear: .oO( I guess I need to make [some content for] a new commit.. )
JimmyZ: if they ask..
JimmyZ diakopter: I meant by commit flood
sorear JimmyZ: different servers, different rules 08:22
JimmyZ sorear: ok, I tought it's the same server
sorear freenode seems to be a much bigger target for spammers
JimmyZ oh yes, different irc server
diakopter: diakopter created branch extops at MoarVM/MoarVM 12 minutes ago 08:26
I see it :P 08:27
diakopter oh :)
08:58 jlaire joined 09:12 tgt joined
diakopter sorear: gist.github.com/diakopter/40b893c4776d6766f1b4 10:50
(the disassemble of QRegex.moarvm) 10:51
sorear diakopter: I have no idea why you're showing me this 10:53
diakopter sorear: in case you're interested 11:19
11:37 JimmyZ joined 13:29 birdwindupbird joined 14:00 FROGGS joined
nwc10 jnthn: on the subject of sockets, MoarVM tests that assume that you can open a socket and connect to port 80 on webservers hang and then fail on a machine that is firewalled 14:01
(oh, I'm told it's time to go out)
that's a "note for future perfection", not a "OMG, must fix now"
generally, trying to test anything non-locally is not a >99% reliable idea
jnthn *nod* 14:05
FROGGS network testing is never reliable tbh
15:13 _ilbot joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
moritz joined
nwc10 presumably "reliable network" is going to be an xemacs release name at some point 15:13
masak :) 15:14
15:44 _ilbot joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
16:08 tomyan joined 17:16 _ilbot joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
17:24 _ilbot joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
17:32 _ilbot joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
17:48 _ilbot joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
17:50 ssutch joined
diakopter BinGOs: can I try the cherry-pick method? I've never done it. 17:50
BinGOs knock yourself out 17:52
diakopter tried.. 17:53
hrm
oh
duh, hafta actually switch to the branch into which I want to pull it
FROGGS right, same like when you apply a patch from file and want to commit it 17:55
18:48 _ilbot joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today
masak BinGOs++ 18:48
dalek arVM: a5f01ed | (Chris 'BinGOs' Williams)++ | build/Config/BuildEnvironment.pm:
Use clang if there gcc isn't found and clang is
arVM: 4a2a946 | (Matthew Wilson)++ | build/Config/BuildEnvironment.pm:
Merge pull request #32 from bingos/master

Use clang if gcc isn't found and clang is
diakopter argh; I wish there was a checkbox on github's web UI of pull requests: "skip merge commit" 18:49
dalek arVM: 6e563cd | benabik++ | build/Config/BuildEnvironment.pm:
Fix OS X build by removing -Bstatic/dynamic

This introduces an ugly hack to the fairly pretty build system, but hopefully operating system specific compiler hacks are rare.
18:50
arVM: ff522d3 | (Matthew Wilson)++ | build/Config/BuildEnvironment.pm:
Merge pull request #30 from Benabik/osx-llibs

Fix OS X build by removing -Bstatic/dynamic
20:46 _ilbot joined
moderator github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today