About loading C libraries (again)
Hi. I've just read in the LuaMetaTeX manual that --permitloadlib allows
loading compiled (.so/.dll) libraries. However, when I try it using ConTeXt
I have an error message (example below):
%hello.tex
\starttext
\startluacode
local hello = require"hellolib" -- hellolib.so
context(hello.helloworld())
\stopluacode
\stoptext
%hello.c
#include
On 11/4/2020 11:01 AM, Jairo A. del Rio wrote:
Hi. I've just read in the LuaMetaTeX manual that --permitloadlib allows loading compiled (.so/.dll) libraries. However, when I try it using ConTeXt I have an error message (example below):
%hello.tex
\starttext
\startluacode
local hello = require"hellolib" -- hellolib.so
context(hello.helloworld())
\stopluacode
\stoptext
%hello.c #include
#include static int helloworld (lua_State *L) { char hello[] = "Hello world!"; lua_pushstring(L, hello); return 1; }
static const struct luaL_Reg hellolib [] = { {"helloworld", helloworld}, {NULL, NULL} };
int luaopen_hellolib (lua_State *L){ luaL_newlib(L, hellolib); return 1; }
error (lua loadlib): you can only load external libraries when --permitloadlib is given
On the other hand, manually calling LuaMetaTeX with the ConTeXt format and --permitloadlib gives the expected result (in this case, a "Hello world!").
How is the correct way to load those libraries? Thank you very much and sorry if my question seems to be weird. i should add a --permitloadlib option to the context runner then
Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Hi again. I grepped the new release and I see permitloadlib is already included in mtxrun. Just out of curiosity, is --permitloadlib called via context or should I use it from mtxrun? context --permitloadlib file.tex still doesn't have any effect. Best wishes, Jairo :) El mié., 4 de nov. de 2020 a la(s) 06:44, Hans Hagen (j.hagen@xs4all.nl) escribió:
On 11/4/2020 11:01 AM, Jairo A. del Rio wrote:
Hi. I've just read in the LuaMetaTeX manual that --permitloadlib allows loading compiled (.so/.dll) libraries. However, when I try it using ConTeXt I have an error message (example below):
%hello.tex
\starttext
\startluacode
local hello = require"hellolib" -- hellolib.so
context(hello.helloworld())
\stopluacode
\stoptext
%hello.c #include
#include static int helloworld (lua_State *L) { char hello[] = "Hello world!"; lua_pushstring(L, hello); return 1; }
static const struct luaL_Reg hellolib [] = { {"helloworld", helloworld}, {NULL, NULL} };
int luaopen_hellolib (lua_State *L){ luaL_newlib(L, hellolib); return 1; }
error (lua loadlib): you can only load external libraries when --permitloadlib is given
On the other hand, manually calling LuaMetaTeX with the ConTeXt format and --permitloadlib gives the expected result (in this case, a "Hello world!").
How is the correct way to load those libraries? Thank you very much and sorry if my question seems to be weird. i should add a --permitloadlib option to the context runner then
Hans
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
On 11/5/2020 3:42 AM, Jairo A. del Rio wrote:
Hi again. I grepped the new release and I see permitloadlib is already included in mtxrun. Just out of curiosity, is --permitloadlib called via context or should I use it from mtxrun? context --permitloadlib file.tex still doesn't have any effect. It does here (not that i have a lib to test) so maybe check your path:
.../tex-context/tex/texmf-win64/bin/lib/luametatex/foo/libfoo.dll (put the file there and run mtxrun --generate) The lua versions should match and there shopuld be the initialer function. \enabletrackers[*lib*] gives some info. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
participants (2)
-
Hans Hagen
-
Jairo A. del Rio