|
github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today Set by moderator on 16 July 2013. |
|||
| jnthn | OK, I'm tired | 00:09 | |
| Will be about tomorrow if there's more | 00:10 | ||
| 'night | |||
| diakopter | 'night | 00:12 | |
|
00:20
colomon joined
01:34
FROGGS_ joined
01:36
benabik joined
05:17
colomon joined
07:39
cognominal joined
08:23
jnthn_ joined
08:27
pmichaud_ joined
08:51
PerlPilot joined,
jnthn joined,
ggoebel2 joined,
cognominal__ joined,
rblackwe joined,
pmichaud_ joined,
colomon joined,
prammer joined,
tadzik joined,
PerlJam joined,
Util joined,
dalek joined,
flussence joined,
eternaleye joined,
__sri joined,
BinGOs joined,
felher joined,
harrow` joined,
arnsholt joined,
timotimo joined,
JimmyZ joined,
Tene joined,
hoelzro joined,
chipdude_ joined,
ChanServ joined,
TimToady joined,
itz joined,
jlaire joined,
lizmat joined,
patspam joined,
sorear joined,
diakopter joined,
tokuhirom_ joined,
`patch` joined
09:14
_ilbot joined
|
|||
| moderator | github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today | ||
|
09:27
rblackwe joined
11:03
nwc10 joined,
`patch` joined
13:34
birdwindupbird joined
16:08
lizmat joined
16:09
mst joined
16:23
birdwindupbird joined
|
|||
| diakopter | jnthn: ahoy | 17:28 | |
| other parts of the long-term p5interop plan: | 17:29 | ||
| 1. build moarvm as a library (libmoarvm?) to be loaded by moarvm(.exe) *or* an installable p5 extension Rakudo::MoarVM that is one provider that can be loaded by p5's Embedded::Perl6, which is a dependency of p6::DBI (which would be Perl 6's DBI loaded and accessible from perl5), where p6::DBI would be a *real* p5 extension on CPAN that is simply a stub to load the proper dependency via the embedded p6 provider. | 17:34 | ||
| 2. same as above, for node, cpython, jvm, clr | 17:35 | ||
| 3. packaging tools to build the *in p5* CPAN edition of packages for Perl 6 modules for #2, IN THE SAME TARBALL as the same perl 6 extension built to be loaded by perl6, so there doesn't have to be two tarballs for every Perl 6 module on CPAN that wanted to be used by both Perl 5 and 6 transparently | 17:38 | ||
| mst | I can possibly help with the p5 toolchain part | 17:46 | |
| diakopter | awesome | 17:47 | |
| did you see the design discussion yesterday [sorry everybody that the first half was incoherent.. :/ ] | 17:48 | ||
| much more controversial portions of it: | 17:56 | ||
| mst | no, I only joined a couple hours back | 17:57 | |
| diakopter | 4. if the person's perl installation didn't include a libperl, use perlbrew to try to build a libperl identical in configuration/patches to the installed one using the same compiler/etc. , and install it "locally" to the moarvm installation | ||
| (or simply mention they need to build a libperl) | 17:58 | ||
| 5. if the person is installing Rakudo::MoarVM from perl5's cpan/cpanm, install it to the site tree or whichever tree, not necessarily separately, as "just another place" it could be installed. 5a. if it's installed there, install a moarvm executable .oO( or just perl6 executable?? ) in the site bin dir that loads via perl5 (or not; doesn't matter really) | 18:01 | ||
| .. | 18:06 | ||
| once those things are in place, then I think we'd finally be at the right place to discuss the pure-p6 extension tree | |||
| but before then I think it's premature | 18:07 | ||
| eh | |||
| s/think/suspect/ | |||
| I'm certainly not certain | |||
| mst: I'll need to refactor ::CallAsOp quite a bit (mostly to make it re-entrant and introspectable by callstack traversers) .. rafl has said he's willing to help.. should we fork it to another cpan extension or try to keep it backward compatible with the existing one | 18:16 | ||
| mst | no idea, ask somebody who's good at XS | ||
| diakopter | my guess is it's a better idea to fork it | ||
| ok | |||
| mst | I might be a toolchain bunny buy I'm not a C programmer, and I don't honestly get a lot of the core | 18:17 | |
| I can read the code and usually guess at what'll happen in perl space | |||
| but that's not the same thing as being capable of having an opinion :) | |||
| diakopter | other random long-term desires not necessarily related: | 18:23 | |
| 25. assuming it's faster, *another* layer of disk caching in front of serialization and module loading similar to perl4's dump/undump | 18:25 | ||
| (discussed a bit here (or was it another channel) previousliy) | |||
| 26. a system-wide daemon able to provide pre-warmed caches of N MB of MRU extensions using shared memory or something | 18:28 | ||
| [including p6 core/setting] | |||
| [again, assuming it provides any benefit at all; just an idea to experiment with] | 18:29 | ||
| the goal of course being sub millisecond startup times to parsing Perl 6 | |||
| (on fast chips, obviously) | 18:30 | ||
| slow chips, 10-100 ms won't be beatable | |||
| 27. a lock-free malloc co-aware of the GC allocator; in order to enable nested allocations | 18:34 | ||
| enabling all kinds of nifty caching layers | 18:35 | ||
| 27 would also begin to enable migrating all the internal malloc'd structs to self-describing structures like p6opaques (along with the other 6model reprs too).. to facilitate the JIT | 18:37 | ||
| (if they're self-describing, their optimization is much more automatable) | 18:38 | ||
| (and of course then the entire VM could theoretically be translatable to high level code) | 18:39 | ||
| (a silly goal in and of itself, except for the possible benefits of writing at least some of it in HLL) | |||
| [this is of course assuming the optimizer gets anywhere near professional/industry-grade by that time [quite some years] | 18:40 | ||
| ] | |||
| actually... writing it in HLL (such as p6) does in fact open up more optimization opportunities, as you're no longer hindered (?) by the C calling conventions, necessarily | 18:42 | ||
| okay, enough manic fantasizing | |||
.oO( if you admit it's manic fantasizing, does it make it any less so? ) |
18:43 | ||
| dalek | arVM/dyncall: 489e916 | diakopter++ | src/6model/reprs/ (5 files): little bit of progress |
19:05 | |
| Heuristic branch merge: pushed 50 commits to MoarVM/dyncall by diakopter | 19:11 | ||
| diakopter | merged master to dyncall.. | ||
| erm, when did we get a preprocessor in nqp | 19:12 | ||
| jnthn | We don't, it's done by a Perl 5 script that concatenates files together | ||
|
19:59
cognominal joined
|
|||
| diakopter decides to use Perl_sv_setref_pv for truly evil purposes | 20:41 | ||
| lizmat: ^ :> | 20:43 | ||
| lizmat | like mst, I'm not a Jenga person | ||
| sorry, it sounds evil, but I have no idea how evil | 20:44 | ||
| jnthn | So long as we keep the jenga in soundproofed room off to the side of MoarVM rather than tangled up all over it, we're good :) | 20:45 | |
| diakopter | iiuc, I can store an arbitrary pointer as the PV in a blessed SV as long as its content masquerades as a zero-length nul-terminated string | ||
| er, blessed RV | |||
| diakopter waits for TimToady to start throwing things | |||
| (storing the pointer in the RV's referent SV has just as many allocations as using a magic | 20:46 | ||
| ) | |||
| er, or less | 20:47 | ||
| *fewer | |||
| mwahaha | |||
| jnthn | .oO( Less and less people know when to use fewer ) |
20:49 | |
| diakopter | what I'm not sure of is if Perl still tries to free the PV pointer when the SV is released if you manually set the PV pointer like that... | ||
| jnthn | If you've the choice of a safe thing and a fragile thing, why not go for the safe one? :) | ||
| diakopter | oh wait. | 20:50 | |
| lolz. | |||
| it just does the same trick I was going to do anyway | |||
| (stores the pointer as the integer value) | 20:51 | ||
| heh. | |||
| diakopter giggles maniacally | |||
| lizmat | .oO( great minds think alike, do we have to worry? ) |
20:52 | |
| diakopter | .oO( I wonder why I've never read about this technique ... ) |
20:54 | |
| diakopter wonders what's stored in the IV of an RV | 20:56 | ||
| lizmat suggests looking at cpansearch.perl.org/src/RURBAN/illg...dex-8.html ? | 21:00 | ||
| diakopter | ah yes | 21:01 | |
| thx | |||
| lizmat | it's only up to date until 5.16 though | ||
| diakopter | jnthn: lol; it appears this *is* the safe way! :D | 21:09 | |
| (it doesn't need to masquerade as empty string) | |||
| it's just an opaque pointer | |||
| it's just a supported way to store pointers in integer scalar ... refs | |||
| (which happens to be exactly what I was looking for) | 21:10 | ||
| lizmat | ;-) | 21:11 | |
| diakopter | er actually... apparently I don't even need the ref. | 21:14 | |
| heh, okay. | |||
| er, wait. | 21:17 | ||
| the documentation is wrong | |||
| nice | |||
| well, maybe not wrong... imprecise/misleading perhaps | 21:18 | ||
| lizmat | maybe nwc10 would be able to help you more | 21:21 | |
| diakopter | the next thing, yeah. this one, I've nailed | ||
|
21:44
yoleaux joined
23:58
colomon joined
|
|||