[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: RE: Loading chunks
- From: "Guy Davidson" <guy@...>
- Date: Fri, 17 Feb 2006 15:31:32 -0000
Thanks, that's exactly what I needed to realise. Syntactic sugar never tasted so bittersweet...
-----Original Message-----
From: lua-bounces@bazar2.conectiva.com.br
[mailto:lua-bounces@bazar2.conectiva.com.br]On Behalf Of Javier Guerra
Sent: 17 February 2006 12:52
To: Lua list
Subject: Re: Loading chunks
On Friday 17 February 2006 7:45 am, Alex Queiroz wrote:
> Hallo,
>
> On 2/17/06, Guy Davidson <guy@creative-assembly.co.uk> wrote:
> > My client C++ code calls luaL_loadfile with this filename. My stack
> > diagnostics tell me a Lua function is on the top of the stack now.
>
> Did you run this function?
i'll try to clarify Alex's suggestion: luaL_loadfile() loads the chunk and
compiles it, but it doesn't execute the chunk. remember that a code like
yours:
function foo()
-- ...
end
is just syntactic sugar for:
foo = function ()
-- ...
end
IOW, it constructs a function and then assigns it to a variable. that
assignment is what must be executed. to execute that, you have to execute
the chunk itself. the function that you got in the stack is the whole chunk
compiled and unexecuted. only after running it you'll find your function(s
and variables) in the global table
--
Javier