Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-09-11

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

All times shown according to UTC.

Time Nick Message
01:16 tokuhirom joined #moarvm
03:25 cognominal joined #moarvm
04:42 Woodi joined #moarvm
05:00 diakopter 7
05:00 diakopter tokuhirom: how goes
05:01 tokuhirom hm?
05:01 yoleaux 27 Aug 2013 04:44Z <[Coke]> tokuhirom: how do you run a perl6 program in pvip?
05:01 tokuhirom Ah
05:01 diakopter pvip
05:01 tokuhirom It's just a parser
05:01 tokuhirom library.
05:02 tokuhirom And i'm writing transpiler from perl6 to perl5(in progress). https://metacpan.org/release/Seis
05:10 diakopter well, it's an implementation then, if it can compile perl6 to 5 and then run it... so [Coke] wants to add it to the test suite
05:10 diakopter er
05:10 diakopter test stuff
05:13 JimmyZ and FROGGS compile perl5 to 6 :P
05:16 diakopter no
05:18 diakopter his software compiles p5 to qast
05:58 jnthn moarning o/
05:59 JimmyZ morning
06:07 jnthn commute...
06:36 FROGGS joined #moarvm
06:39 FROGGS .tell arnsholt And we would have an awesome name! MIR :o) http://irclog.perlgeek.de/m​oarvm/2013-09-10#i_7569896
06:39 yoleaux FROGGS: I'll pass your message to arnsholt.
06:45 jnthn beans...det goda kaffet... *slurp*
06:46 Woodi joined #moarvm
06:58 FROGGS Bohnen... der gute Kaffee?
06:59 jnthn If Bohnen means beans... :)
06:59 jnthn And not boning or something...
06:59 arnsholt FROGGS: Even better! =D
06:59 yoleaux 06:39Z <FROGGS> arnsholt: And we would have an awesome name! MIR :o) http://irclog.perlgeek.de/m​oarvm/2013-09-10#i_7569896
07:02 foo_bar_baz joined #moarvm
07:11 LWA joined #moarvm
07:29 dalek joined #moarvm
09:14 JimmyZ \o/
09:17 FROGGS \o/
09:17 FROGGS what's up?
09:18 JimmyZ nothing yet
09:21 FROGGS awww
09:25 not_gerd joined #moarvm
09:25 not_gerd o/
09:27 JimmyZ \o
09:28 not_gerd jnthn: how should containers for native types be handled?
09:28 not_gerd as I read it, using a ContainerSpec would require boxing...
09:28 jnthn Yeah, if you must have a container then you have to create an object.
09:29 jnthn Normally you don't need it.
09:29 not_gerd what's the best way to pull a native out of a CScalar (ie a pointer to a scalar C type)?
09:29 jnthn We don't need to worry about it in Moar for nwo 'cus it's not handled in any backend yet.
09:30 jnthn What's a CScalar?
09:30 jnthn You're doing far, far more with NativeCall than just porting what we need for the current state.
09:31 jnthn I don't have the tuits to care about this rgiht now. Sorry.
09:31 not_gerd ok
09:31 not_gerd (a CScalar would be a typed pointer pointing to a primitive type)
09:31 jnthn My expectation is we'll introduce a couple of REPRs (LexRef, AttrRef) that reference native leicals and native attributes.
09:32 jnthn They'll have container specs that do the right thing, but there's a bit of missing design there
09:32 jnthn And there'll be corresponding nqp:: ops for this
09:32 jnthn When Rakudo gets to support
09:32 jnthn $native-int++;
09:33 jnthn Then the optimizer needs to (a) inline it, and (b) know that the nqp::lexref and nqp::assign_i (prelim names) can collapse into a nqp::bindlex_i
09:34 * jnthn didn't get much further into the design than that, but hopes it might be enough for not_gerd to progress on what he's looking at
09:34 jnthn (by "inline it" I mean the call to postfix:<++>, just to be clear...)
09:36 jnthn For things that can't statically inline, by pushign these ops down to MoarVM level, the JIT should, after inlining, be able to perform the same style of analysis.
09:36 not_gerd sound feasible
09:36 not_gerd so I'll implement the boxing container spec and add some temporary ops for native access
09:37 jnthn OK, feel free to try and flesh it out. But this is really not Moar specific, so whatever it looks like needs to be viable elsewhere too.
09:37 jnthn I don't think that shall be too problematic, though... :)
09:38 jnthn I did the last contaienrs refactor with eventually supporting this in mind.
09:38 not_gerd well, the ops will only work with the C subsystem of the 6model type system (that I'm implementing)
09:39 not_gerd could be used for prototyping the general version, though
09:39 jnthn aye, we probably want to use the same mechanism for the general solution
09:40 not_gerd just to clarify what I'm doing - I implemented a malloc() wrapper that supports (pr is going to support) putting arbitrary C objects in that memory block
09:41 not_gerd CScalar would be a typed pointer into that block supporting container semantics
09:41 jnthn ok, I think I see
09:41 jnthn fits with what you were asking about the gc too... :)
09:42 not_gerd first, I thought it ould be possible to inline such blocks via p6opaque
09:42 not_gerd that... turned out to be unworkable as far as I can see
09:44 not_gerd hm...
09:44 not_gerd did I mean should, could or would there?
09:45 not_gerd you decide!
09:46 jnthn Well, I guess when I decided that the GC needn't support interior pointers and would move objects, I kinda did decide :P
10:08 not_gerd joined #moarvm
10:19 LWA joined #moarvm
12:22 not_gerd joined #moarvm
12:23 dalek MoarVM/nativecall2: a3c9c88 | (Gerhard R)++ | src/ (3 files):
12:23 dalek MoarVM/nativecall2: Finish ptrcast implementation
12:23 dalek MoarVM/nativecall2: review: https://github.com/MoarVM/MoarVM/commit/a3c9c88fd3
12:23 dalek MoarVM/nativecall2: d790e18 | (Gerhard R)++ | / (10 files):
12:23 dalek MoarVM/nativecall2: Implement cpointer op and stub cscalar
12:23 dalek MoarVM/nativecall2: review: https://github.com/MoarVM/MoarVM/commit/d790e187e6
12:23 dalek MoarVM/nativecall2: 177d5ba | (Gerhard R)++ | / (9 files):
12:23 dalek MoarVM/nativecall2: Rename FlexibleStruct to FlexStruct and get rid of anon structs
12:23 dalek MoarVM/nativecall2: review: https://github.com/MoarVM/MoarVM/commit/177d5ba73f
12:23 dalek MoarVM/nativecall2: bed5d41 | (Gerhard R)++ | src/native/ (2 files):
12:23 dalek MoarVM/nativecall2: Work on CScalar, partially implementing ContainerSpec
12:23 dalek MoarVM/nativecall2: review: https://github.com/MoarVM/MoarVM/commit/bed5d41417
12:23 dalek MoarVM/nativecall2: f79a8d4 | (Gerhard R)++ | / (8 files):
12:23 dalek MoarVM/nativecall2: Hack in cscalar_decont_i and int16 regs for testing
12:24 not_gerd that made https://gist.github.com/gerdr/02a79383788fb1254978 work
12:29 not_gerd bye, #moarvm
12:29 not_gerd left #moarvm
13:34 eternaleye joined #moarvm
14:08 lizmat joined #moarvm
14:26 jnap joined #moarvm
14:59 FROGGS[mobile] joined #moarvm
15:42 LWA joined #moarvm
15:57 {amon} joined #moarvm
16:01 FROGGS joined #moarvm
16:18 dalek MoarVM: 177e825 | (Tobias Leich)++ | src/core/exceptions.c:
16:18 dalek MoarVM: inrease/decrease frame refcounter
16:18 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/177e82584a
16:21 dalek MoarVM: aecc96d | (Tobias Leich)++ | src/core/exceptions.c:
16:21 dalek MoarVM: code indentation
16:21 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/aecc96dc81
16:34 LWA left #moarvm
16:38 FROGGS Q: if previously something stored a function pointer somewhere, can I check against later a given funtion pointer? is that reliable?
16:39 arnsholt Depends on what you mean by function pointer, probably
16:39 arnsholt If it's a C function pointer, the GC's not gonna mess with that. A Perl/NQP one, not so much
16:40 FROGGS arnsholt: this https://github.com/MoarVM/MoarVM/blo​b/master/src/core/exceptions.c#L164
16:40 FROGGS unwind_after_handler is declared a few lines below
16:41 arnsholt That looks like a normal C function pointer, so that's not gonna move around
16:41 FROGGS so I can do: if (unwind_after_handler == something->frame->->special_return ) ??
16:42 FROGGS well, written in valid C of course
16:42 arnsholt Yeah, I'd be surprised if that doesn't work
16:42 FROGGS (excuse my wording, I had a liter Oktoberfestbeer)
16:42 FROGGS k, awesome
16:42 FROGGS thank you
16:42 arnsholt diakopter: That sounds reasonable, right?
16:45 FROGGS well, we'll see if it assplodes :o)
16:47 FROGGS hmm, okay, seems to work fine
16:59 diakopter arnsholt: which is reasonable?
17:00 arnsholt What FROGGS asked about above
17:01 FROGGS I can paste a diff in a few minutes
17:01 arnsholt It's all pointers to functions implemented in C AFAICT, so that shouldn't be subject to GC shenanigans
17:03 FROGGS here: https://gist.github.com/FR​OGGS/d3febe484052ce8976bf
17:04 FROGGS unwind_after_handler is a function
17:06 FROGGS yeah, I guess this is safe
17:08 dalek MoarVM: 7c4ae2c | (Tobias Leich)++ | src/core/exceptions.c:
17:08 dalek MoarVM: heck for already installed handler, allocate otherwise
17:08 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/7c4ae2c6a1
17:19 lizmat joined #moarvm
17:32 jnap joined #moarvm
19:14 colomon joined #moarvm
19:38 FROGGS joined #moarvm
20:05 FROGGS joined #moarvm
20:31 tgt joined #moarvm
20:36 diakopter .ask not_gerd ping
20:36 yoleaux diakopter: I'll pass your message to not_gerd.
20:37 tgt joined #moarvm
21:02 not_gerd joined #moarvm
21:02 not_gerd o/
21:02 yoleaux 20:36Z <diakopter> not_gerd: ping
21:02 not_gerd diakopter: pong
21:02 dalek MoarVM/nativecall2: fac625f | (Gerhard R)++ | / (5 files):
21:02 dalek MoarVM/nativecall2: Remove HOW argument from cscalar op - use newtype instead
21:02 dalek MoarVM/nativecall2: review: https://github.com/MoarVM/MoarVM/commit/fac625f377
21:02 dalek MoarVM/nativecall2: 3b39712 | (Gerhard R)++ | / (10 files):
21:02 dalek MoarVM/nativecall2: Cache more native type objects and fix some bugs
21:02 dalek MoarVM/nativecall2: review: https://github.com/MoarVM/MoarVM/commit/3b39712cda
21:02 dalek MoarVM/nativecall2: cd44f90 | (Gerhard R)++ | src/native/ (4 files):
21:02 dalek MoarVM/nativecall2: Fix gc bits
21:02 dalek MoarVM/nativecall2: review: https://github.com/MoarVM/MoarVM/commit/cd44f90f7a
21:09 diakopter ] >> i % 64 & 1  // C operator precedence knowledge fail on my part
21:11 not_gerd rule of thumb: bitwise and/or have low precedence - just higher than logical and/or
21:12 not_gerd for arithmetics, it's multiplication/division, then addition/substraction, then shifts
21:19 * masak is reminded of http://blog.plover.com/prog/featurism.html
21:21 dalek MoarVM/gcorch: 5c01f0c | diakopter++ | / (6 files):
21:21 dalek MoarVM/gcorch: wip4
21:21 dalek MoarVM/gcorch: review: https://github.com/MoarVM/MoarVM/commit/5c01f0cbe2
21:22 donaldh joined #moarvm
21:23 jnap joined #moarvm
21:23 diakopter masak: well, when the manual actually does need to be that long to explain obscure feature interactions...
21:24 diakopter "we got a 2000 page manual" ... "well maybe you needed a 4000 page one"
21:24 * masak nods in the direction of the "essential complexity"/"accidental complexity" distinction
21:25 masak a bit of a cop-out, because there's no sure-fire way to distinguish a truly global minimum from merely a local one.
21:27 diakopter number of distinct macros in your source code with fewer than 9 letters in their names?
21:27 diakopter *zing*
21:27 masak :P
21:30 not_gerd well, Chuck Moore will tell you all that complexity is totally unnecessary
21:30 * not_gerd digged out the link: http://www.ultratechnology.com/1xforth.htm
21:32 jnthn .oO( You shojldn't Chuck Moore complexity in there... )
22:16 tadzik joined #moarvm
22:48 * not_gerd heads off to sleep
23:12 jnap joined #moarvm
23:33 Mouq joined #moarvm
23:51 dolmen joined #moarvm

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