[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: [Job] Consultancy on Lua's C implementation
- From: Ian Millington <idmillington@...>
- Date: Mon, 2 May 2011 19:22:55 +0100
Yes, By working at the C level, I mean I need a C implemented version
for numbers. In the same way that +,- etc are implemented via C
macros. I'd rather not be generating code to translate it into a
variation of + and =, there are gotchas in there involving hygenic
translations and scoping. I also need a proper metamethod version. So,
yes, as Peter says, a new opcode is the way.
The multiple evaluation of the left-hand-side is a common issue,
because the easiest way to implement a+=b is as syntactic sugar for a
= a + b, which it isn't not equivalent to. Even if you get that right,
there are further issues when you have a metamethod type language
(same in python). Because you have to cope with
a[b] += c
where a[b] is calculated with some metamethod, and a[b] = c is
assigned with a potentially different metamethod. Both of which can
have side effects.
Still, a couple of the folks who've responded to me got the semantic
issue here, so I'm happy.
I like what you've done with MetaLua, Fabian. But in this project it
isn't for me. I'll do some playing with it over the next few months.
I have some knowledge of the Lua implementation and how it works, and
I have an excellent understanding of Lua itself. And I need to
leverage both of those. Learning MetaLua (even to the extent of
finding out in detail how it works), or any other flavour of Lua was
too high a burden. Given that a whole bunch of what I had to do with
the language was taking it away from the Lua syntax anyway. You're
right that compile time is only minimally important to me.