[luatex] luatex manpage not quite the status quo

Dirk Laurie dirk.laurie at gmail.com
Sun Mar 8 13:33:43 CET 2015


2015-03-08 13:09 GMT+02:00 luigi scarso <luigi.scarso at gmail.com>:
>

>> The behaviour is as if the lines of `myfile.lua` were entered one
>> by one in interactive mode. That is to say, the scope of all local
>> variables ends at the end of the line they are defined on, unless
>> they are inside an unclosed block. This causes a perfectly valid
>> Lua script to fail when run by texlua.
>
> hm, could be...can you give an example ?

This was the example:

package.path = "./?.lua"
local msg, apl = pcall(require, "gnuapl")
print( msg,apl)

print(apl.what(_G))
print(apl.what(package.loaded))

which produced the following output

$ texlua xxx.lua
true    table: 0x276c3c0
./gnuapl.lua:157: attempt to index global 'apl' (a nil value)

Removing `local` makes it work.

However, staring at the above made me realize that the error
arises because a global variable `apl` inside the module is not
defined in time, but since the call defines it globally, by the
time `what` is called, it is defined in the second case. So
texlua is absolved.

Sorry for the noise.

Dirk

However


More information about the luatex mailing list