Re: [NTG-context] Bug: missing Lua API in binaries

2021-04-23 Thread luigi scarso
On Sat, Apr 24, 2021 at 1:33 AM Sylvain Hubert 
wrote:

> You're right, I just checked the symbols of luatex and they contain all
> the APIs of lua 5.3.
> So I guess the problem is specific to luametatex and the latest context.
>
> > but in any case you should compile against the luatex headers, not the
> stock lua 5.3.6.
>
> Does luatex have dedicated headers different from the ones for stock lua?
>

There are some small differences, because we had to harmonize luajit and
lua .

-- 
luigi
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] Bug: missing Lua API in binaries

2021-04-23 Thread Sylvain Hubert
You're right, I just checked the symbols of luatex and they contain all the
APIs of lua 5.3.
So I guess the problem is specific to luametatex and the latest context.

> but in any case you should compile against the luatex headers, not the
stock lua 5.3.6.

Does luatex have dedicated headers different from the ones for stock lua?

On Fri, 23 Apr 2021 at 23:53, luigi scarso  wrote:

>
>
> On Fri, Apr 23, 2021 at 10:08 PM Sylvain Hubert 
> wrote:
>
>> Dear Devs,
>>
>> Sorry if this is not the best place for reporting bugs.
>>
>> I'm trying to use the lpeglabel library written in C and delivered as
>> lpeglabel.so.
>>
>> $ ls
>> testlabel.lua lpeglabel.so
>> $ cat testlabel.lua
>> require("lpeglabel")
>>
>> The ConTeXt binary cannot load the library because it lacks certain Lua
>> API:
>>
>> $ context --forcecld --permitloadlib testlabel.lua
>> ...
>> fatal lua error:
>> registered function call [1542]:
>> ...tx/tex/texmf-context/tex/context/base/mkiv/l-package.lua:348: error
>> loading module 'lpeglabel' from file './lpeglabel.so':
>> ./lpeglabel.so: undefined symbol: lua_gettop
>>
>>
> hm, lua_gettop  is a global symbol in latest luatex, it's not undefined...
>
>
>>
>> nor does LuaTeX:
>> $ luatex -luaonly testlabel.lua
>> error loading module 'lpeglabel' from file './lpeglabel.so':
>> ./lpeglabel.so: undefined symbol: lua_getiuservalue
>>
>>
> lua_getiuservalue is in lua 5.4 API, luatex is lua 5.3.6 API
> but in any case you should compile against the luatex headers, not the
> stock lua 5.3.6.
> I don't know lpeglabel, but luatex has the lpeg embedded and perhaps it
> can clash with the library.
>
> --
> luigi
>
> ___
> If your question is of interest to others as well, please add an entry to
> the Wiki!
>
> maillist : ntg-context@ntg.nl /
> http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki : http://contextgarden.net
>
> ___
>
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


Re: [NTG-context] Bug: missing Lua API in binaries

2021-04-23 Thread luigi scarso
On Fri, Apr 23, 2021 at 10:08 PM Sylvain Hubert 
wrote:

> Dear Devs,
>
> Sorry if this is not the best place for reporting bugs.
>
> I'm trying to use the lpeglabel library written in C and delivered as
> lpeglabel.so.
>
> $ ls
> testlabel.lua lpeglabel.so
> $ cat testlabel.lua
> require("lpeglabel")
>
> The ConTeXt binary cannot load the library because it lacks certain Lua
> API:
>
> $ context --forcecld --permitloadlib testlabel.lua
> ...
> fatal lua error:
> registered function call [1542]:
> ...tx/tex/texmf-context/tex/context/base/mkiv/l-package.lua:348: error
> loading module 'lpeglabel' from file './lpeglabel.so':
> ./lpeglabel.so: undefined symbol: lua_gettop
>
>
hm, lua_gettop  is a global symbol in latest luatex, it's not undefined...


>
> nor does LuaTeX:
> $ luatex -luaonly testlabel.lua
> error loading module 'lpeglabel' from file './lpeglabel.so':
> ./lpeglabel.so: undefined symbol: lua_getiuservalue
>
>
lua_getiuservalue is in lua 5.4 API, luatex is lua 5.3.6 API
but in any case you should compile against the luatex headers, not the
stock lua 5.3.6.
I don't know lpeglabel, but luatex has the lpeg embedded and perhaps it can
clash with the library.

-- 
luigi
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___


[NTG-context] Bug: missing Lua API in binaries

2021-04-23 Thread Sylvain Hubert
Dear Devs,

Sorry if this is not the best place for reporting bugs.

I'm trying to use the lpeglabel library written in C and delivered as
lpeglabel.so.

$ ls
testlabel.lua lpeglabel.so
$ cat testlabel.lua
require("lpeglabel")

The ConTeXt binary cannot load the library because it lacks certain Lua API:

$ context --forcecld --permitloadlib testlabel.lua
...
fatal lua error:
registered function call [1542]:
...tx/tex/texmf-context/tex/context/base/mkiv/l-package.lua:348: error
loading module 'lpeglabel' from file './lpeglabel.so':
./lpeglabel.so: undefined symbol: lua_gettop
...

nor does LuaTeX:
$ luatex -luaonly testlabel.lua
error loading module 'lpeglabel' from file './lpeglabel.so':
./lpeglabel.so: undefined symbol: lua_getiuservalue

It seems that lua_gettop and others are optimized out from the `context`
binary, while lua_getiuservalue and others are missing from `luatex`.

I'm not sure if it works but I would suggest adding `__attribute__
((used))` to the `LUA_API` macro if the binaries are compiled with gcc.

Best,
Sylvain
___
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___