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