Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-07-20

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

All times shown according to UTC.

Time Nick Message
00:09 jnthn OK, I'm tired
00:10 jnthn Will be about tomorrow if there's more
00:10 jnthn 'night
00:12 diakopter 'night
00:20 colomon joined #moarvm
01:34 FROGGS_ joined #moarvm
01:36 benabik joined #moarvm
05:17 colomon joined #moarvm
07:39 cognominal joined #moarvm
08:23 jnthn_ joined #moarvm
08:27 pmichaud_ joined #moarvm
08:51 PerlPilot joined #moarvm
08:51 jnthn joined #moarvm
08:51 ggoebel2 joined #moarvm
08:51 cognominal__ joined #moarvm
08:51 rblackwe joined #moarvm
08:51 pmichaud_ joined #moarvm
08:51 colomon joined #moarvm
08:51 prammer joined #moarvm
08:51 tadzik joined #moarvm
08:51 PerlJam joined #moarvm
08:51 Util joined #moarvm
08:51 dalek joined #moarvm
08:51 flussence joined #moarvm
08:51 eternaleye joined #moarvm
08:51 __sri joined #moarvm
08:51 BinGOs joined #moarvm
08:51 felher joined #moarvm
08:51 harrow` joined #moarvm
08:51 arnsholt joined #moarvm
08:51 timotimo joined #moarvm
08:51 JimmyZ joined #moarvm
08:51 Tene joined #moarvm
08:51 hoelzro joined #moarvm
08:51 chipdude_ joined #moarvm
08:51 ChanServ joined #moarvm
08:51 TimToady joined #moarvm
08:51 itz joined #moarvm
08:51 jlaire joined #moarvm
08:51 lizmat joined #moarvm
08:51 patspam joined #moarvm
08:51 sorear joined #moarvm
08:51 diakopter joined #moarvm
08:51 tokuhirom_ joined #moarvm
08:51 `patch` joined #moarvm
09:14 _ilbot joined #moarvm
09:14 Topic for #moarvm is now https://github.com/moarvm/moarvm | IRC logs at  http://irclog.perlgeek.de/moarvm/today
09:27 rblackwe joined #moarvm
11:03 nwc10 joined #moarvm
11:03 `patch` joined #moarvm
13:34 birdwindupbird joined #moarvm
16:08 lizmat joined #moarvm
16:09 mst joined #moarvm
16:23 birdwindupbird joined #moarvm
17:28 diakopter jnthn: ahoy
17:29 diakopter other parts of the long-term p5interop plan:
17:34 diakopter 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:35 diakopter 2. same as above, for node, cpython, jvm, clr
17:38 diakopter 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:46 mst I can possibly help with the p5 toolchain part
17:47 diakopter awesome
17:48 diakopter did you see the design discussion yesterday [sorry everybody that the first half was incoherent.. :/ ]
17:56 diakopter much more controversial portions of it:
17:57 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
17:58 diakopter (or simply mention they need to build a libperl)
18:01 diakopter 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:06 diakopter ..
18:06 diakopter once those things are in place, then I think we'd finally be at the right place to discuss the pure-p6 extension tree
18:07 diakopter but before then I think it's premature
18:07 diakopter eh
18:07 diakopter s/think/suspect/
18:07 diakopter I'm certainly not certain
18:16 diakopter 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
18:16 diakopter my guess is it's a better idea to fork it
18:16 diakopter ok
18:17 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 mst I can read the code and usually guess at what'll happen in perl space
18:17 mst but that's not the same thing as being capable of having an opinion :)
18:23 diakopter other random long-term desires not necessarily related:
18:25 diakopter 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 diakopter (discussed a bit here (or was it another channel) previousliy)
18:28 diakopter 26. a system-wide daemon able to provide pre-warmed caches of N MB of MRU extensions using shared memory or something
18:28 diakopter [including p6 core/setting]
18:29 diakopter [again, assuming it provides any benefit at all; just an idea to experiment with]
18:29 diakopter the goal of course being sub millisecond startup times to parsing Perl 6
18:30 diakopter (on fast chips, obviously)
18:30 diakopter slow chips, 10-100 ms won't be beatable
18:34 diakopter 27. a lock-free malloc co-aware of the GC allocator; in order to enable nested allocations
18:35 diakopter enabling all kinds of nifty caching layers
18:37 diakopter 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:38 diakopter (if they're self-describing, their optimization is much more automatable)
18:39 diakopter (and of course then the entire VM could theoretically be translatable to high level code)
18:39 diakopter (a silly goal in and of itself, except for the possible benefits of writing at least some of it in HLL)
18:40 diakopter [this is of course assuming the optimizer gets anywhere near professional/industry-grade by that time [quite some years]
18:40 diakopter ]
18:42 diakopter 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 diakopter okay, enough manic fantasizing
18:43 diakopter .oO( if you admit it's manic fantasizing, does it make it any less so? )
19:05 dalek MoarVM/dyncall: 489e916 | diakopter++ | src/6model/reprs/ (5 files):
19:05 dalek MoarVM/dyncall: little bit of progress
19:05 dalek MoarVM/dyncall: review: https://github.com/MoarVM/MoarVM/commit/489e916386
19:11 dalek Heuristic branch merge: pushed 50 commits to MoarVM/dyncall by diakopter
19:11 diakopter merged master to dyncall..
19:12 diakopter 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 #moarvm
20:41 * diakopter decides to use Perl_sv_setref_pv for truly evil purposes
20:43 diakopter lizmat: ^ :>
20:43 lizmat like mst, I'm not a Jenga person
20:44 lizmat sorry, it sounds evil, but I have no idea how evil
20:45 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
20:45 diakopter er, blessed RV
20:45 * diakopter waits for TimToady to start throwing things
20:46 diakopter (storing the pointer in the RV's referent SV has just as many allocations as using a magic
20:46 diakopter )
20:47 diakopter er, or less
20:47 diakopter *fewer
20:47 diakopter mwahaha
20:49 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...
20:49 jnthn If you've the choice of a safe thing and a fragile thing, why not go for the safe one? :)
20:50 diakopter oh wait.
20:50 diakopter lolz.
20:50 diakopter it just does the same trick I was going to do anyway
20:51 diakopter (stores the pointer as the integer value)
20:51 diakopter heh.
20:51 * diakopter giggles maniacally
20:52 lizmat .oO( great minds think alike, do we have to worry? )
20:54 diakopter .oO( I wonder why I've never read about this technique ... )
20:56 * diakopter wonders what's stored in the IV of an RV
21:00 * lizmat suggests looking at http://cpansearch.perl.org/src/R​URBAN/illguts-0.42/index-8.html ?
21:01 diakopter ah yes
21:01 diakopter thx
21:01 lizmat it's only up to date until 5.16 though
21:09 diakopter jnthn: lol; it appears this *is* the safe way! :D
21:09 diakopter (it doesn't need to masquerade as empty string)
21:09 diakopter it's just an opaque pointer
21:09 diakopter it's just a supported way to store pointers in integer scalar ... refs
21:10 diakopter (which happens to be exactly what I was looking for)
21:11 lizmat ;-)
21:14 diakopter er actually... apparently I don't even need the ref.
21:14 diakopter heh, okay.
21:17 diakopter er, wait.
21:17 diakopter the documentation is wrong
21:17 diakopter nice
21:18 diakopter well, maybe not wrong... imprecise/misleading perhaps
21:21 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 #moarvm
23:58 colomon joined #moarvm

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