Re: [NTG-context] Bug: missing Lua API in binaries
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
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
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
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 ___