* problem with package.path @ 2010-05-04 8:28 Peter Münster 2010-05-04 9:20 ` Peter Münster 2010-05-06 20:12 ` Hans Hagen 0 siblings, 2 replies; 8+ messages in thread From: Peter Münster @ 2010-05-04 8:28 UTC (permalink / raw) To: ConTeXt list Hello, I need to include lua-modules from different directories, but package.path does not seem to work: \startbuffer[test] bla = nil \stopbuffer \savebuffer[test][../mytest.lua] \starttext \startluacode package.path = "../?.lua;;" require("mytest") \stopluacode \stoptext Error message: ! LuaTeX error <main ctx instance>:3: module 'mytest' not found: TIA for any help! Cheer, Peter -- Contact information: http://pmrb.free.fr/contact/ ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with package.path 2010-05-04 8:28 problem with package.path Peter Münster @ 2010-05-04 9:20 ` Peter Münster 2010-05-06 20:12 ` Hans Hagen 1 sibling, 0 replies; 8+ messages in thread From: Peter Münster @ 2010-05-04 9:20 UTC (permalink / raw) To: ConTeXt list On Tue, May 04 2010, Peter Münster wrote: > package.path = "../?.lua;;" Ok, I see, the paths must be separated by colons: package.path = "path1/?.lua:path2/?.lua" But it's not very comfortable, since some of my luafiles are processed by lua¹ *and* by context². ¹ To generate code. ² To generate documentation. But ok, shouldn't be a too big problem... ;) Cheers, Peter -- Contact information: http://pmrb.free.fr/contact/ ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with package.path 2010-05-04 8:28 problem with package.path Peter Münster 2010-05-04 9:20 ` Peter Münster @ 2010-05-06 20:12 ` Hans Hagen 2010-05-07 7:15 ` Peter Münster 1 sibling, 1 reply; 8+ messages in thread From: Hans Hagen @ 2010-05-06 20:12 UTC (permalink / raw) To: ConTeXt list On 4-5-2010 10:28, Peter Münster wrote: > Hello, > > I need to include lua-modules from different directories, but package.path > does not seem to work: > > \startbuffer[test] > bla = nil > \stopbuffer > \savebuffer[test][../mytest.lua] > \starttext > \startluacode > package.path = "../?.lua;;" > require("mytest") > \stopluacode > \stoptext dofile "../mytest.lua" ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with package.path 2010-05-06 20:12 ` Hans Hagen @ 2010-05-07 7:15 ` Peter Münster 2010-05-07 7:31 ` Hans Hagen 2010-05-07 8:52 ` Taco Hoekwater 0 siblings, 2 replies; 8+ messages in thread From: Peter Münster @ 2010-05-07 7:15 UTC (permalink / raw) To: mailing list for ConTeXt users On Thu, May 06 2010, Hans Hagen wrote: >> \startbuffer[test] >> bla = nil >> \stopbuffer >> \savebuffer[test][../mytest.lua] >> \starttext >> \startluacode >> package.path = "../?.lua;;" >> require("mytest") >> \stopluacode >> \stoptext > > dofile "../mytest.lua" Bad example... mytest.lua is a module, so it must be loaded with require: \startbuffer[test] module(...) \stopbuffer \savebuffer[test][../mytest.lua] \starttext \startluacode package.path = "../?.lua;;" require("mytest") -- dofile("../mytest.lua") -- this does not work \stopluacode \stoptext Cheers, Peter -- Contact information: http://pmrb.free.fr/contact/ ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with package.path 2010-05-07 7:15 ` Peter Münster @ 2010-05-07 7:31 ` Hans Hagen 2010-05-07 8:52 ` Taco Hoekwater 1 sibling, 0 replies; 8+ messages in thread From: Hans Hagen @ 2010-05-07 7:31 UTC (permalink / raw) To: mailing list for ConTeXt users On 7-5-2010 9:15, Peter Münster wrote: > On Thu, May 06 2010, Hans Hagen wrote: > >>> \startbuffer[test] >>> bla = nil >>> \stopbuffer >>> \savebuffer[test][../mytest.lua] >>> \starttext >>> \startluacode >>> package.path = "../?.lua;;" >>> require("mytest") >>> \stopluacode >>> \stoptext >> >> dofile "../mytest.lua" > > Bad example... > > mytest.lua is a module, so it must be loaded with require: > > \startbuffer[test] > module(...) > \stopbuffer > \savebuffer[test][../mytest.lua] > \starttext > \startluacode > package.path = "../?.lua;;" > require("mytest") > -- dofile("../mytest.lua") -- this does not work > \stopluacode > \stoptext package.append_libpath(...) ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with package.path 2010-05-07 7:15 ` Peter Münster 2010-05-07 7:31 ` Hans Hagen @ 2010-05-07 8:52 ` Taco Hoekwater 2010-05-07 9:12 ` Hans Hagen 1 sibling, 1 reply; 8+ messages in thread From: Taco Hoekwater @ 2010-05-07 8:52 UTC (permalink / raw) To: mailing list for ConTeXt users Peter Münster wrote: > On Thu, May 06 2010, Hans Hagen wrote: > >>> \startbuffer[test] >>> bla = nil >>> \stopbuffer >>> \savebuffer[test][../mytest.lua] >>> \starttext >>> \startluacode >>> package.path = "../?.lua;;" >>> require("mytest") >>> \stopluacode >>> \stoptext >> dofile "../mytest.lua" > > Bad example... > > mytest.lua is a module, so it must be loaded with require: You cannot always replace 'require' with 'dofile', and for this reason it is important that package.path actually works as explained in the lua manual. (escrito had similar problems, and other external lua modules will run into it as well). Best wishes, Taco ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with package.path 2010-05-07 8:52 ` Taco Hoekwater @ 2010-05-07 9:12 ` Hans Hagen 2010-05-08 6:35 ` Taco Hoekwater 0 siblings, 1 reply; 8+ messages in thread From: Hans Hagen @ 2010-05-07 9:12 UTC (permalink / raw) To: mailing list for ConTeXt users; +Cc: Taco Hoekwater On 7-5-2010 10:52, Taco Hoekwater wrote: > Peter Münster wrote: >> On Thu, May 06 2010, Hans Hagen wrote: >> >>>> \startbuffer[test] >>>> bla = nil >>>> \stopbuffer >>>> \savebuffer[test][../mytest.lua] >>>> \starttext >>>> \startluacode >>>> package.path = "../?.lua;;" >>>> require("mytest") >>>> \stopluacode >>>> \stoptext >>> dofile "../mytest.lua" >> >> Bad example... >> >> mytest.lua is a module, so it must be loaded with require: > > You cannot always replace 'require' with 'dofile', and for > this reason it is important that package.path actually works > as explained in the lua manual. (escrito had similar problems, > and other external lua modules will run into it as well). well, package path is supported (as is cpath) so it's more a question of why that paths fails .. maybe we need to explicitly assume ";" instead of the platform separator (tests on my machine work ok as windows has ; as separator) you can test this with adding an explcit ";" to libpaths = file.split_path(_path_,";") in data-lua.lua Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: problem with package.path 2010-05-07 9:12 ` Hans Hagen @ 2010-05-08 6:35 ` Taco Hoekwater 0 siblings, 0 replies; 8+ messages in thread From: Taco Hoekwater @ 2010-05-08 6:35 UTC (permalink / raw) To: Hans Hagen; +Cc: mailing list for ConTeXt users [-- Attachment #1: Type: text/plain, Size: 2983 bytes --] Hans Hagen wrote: > On 7-5-2010 10:52, Taco Hoekwater wrote: >> Peter Münster wrote: >>> On Thu, May 06 2010, Hans Hagen wrote: >>> >>>>> \startbuffer[test] >>>>> bla = nil >>>>> \stopbuffer >>>>> \savebuffer[test][../mytest.lua] >>>>> \starttext >>>>> \startluacode >>>>> package.path = "../?.lua;;" >>>>> require("mytest") >>>>> \stopluacode >>>>> \stoptext >>>> dofile "../mytest.lua" >>> >>> Bad example... >>> >>> mytest.lua is a module, so it must be loaded with require: >> >> You cannot always replace 'require' with 'dofile', and for >> this reason it is important that package.path actually works >> as explained in the lua manual. (escrito had similar problems, >> and other external lua modules will run into it as well). > > well, package path is supported (as is cpath) so it's more a question of > why that paths fails .. maybe we need to explicitly assume ";" instead > of the platform separator (tests on my machine work ok as windows has ; > as separator) > > you can test this with adding an explcit ";" to > > libpaths = file.split_path(_path_,";") > > in data-lua.lua For me on linux, this change should make it work (package.path indeed contains semicolons). However, require() is still broken: ! LuaTeX error /opt/tex/texmf-local/tex/context/base/l-file.lua:133: bad argument #1 to 'gsub' (string expected, got nil) stack traceback: [C]: in function 'gsub' /opt/tex/texmf-local/tex/context/base/l-file.lua:133: in function 'split_path' /opt/tex/texmf-local/tex/context/base/data-lua.lua:36: in function 'clibpaths' /opt/tex/texmf-local/tex/context/base/data-lua.lua:97: in function </opt/tex/texmf-local/tex/context/base/data-lua.lua:79> [C]: in function 'require' <main ctx instance>:2: in main chunk. }inserted text> ...equire('testmodule') -- fails \dodostartluacode ...d \directlua \zerocount {#1}} l.5 \stopluacode Test files are attached. The definition of package.libpaths I used: function package.libpaths() print (_path_, package.path) if not _path_ or package.path ~= _path_ then _path_ = package.path libpaths = file.split_path(_path_,';') print (table.serialize(libpaths)) end return libpaths end And it prints out: nil ./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua t={ "./?.lua", "/usr/local/share/lua/5.1/?.lua", "/usr/local/share/lua/5.1/?/init.lua", "/usr/local/lib/lua/5.1/?.lua", "/usr/local/lib/lua/5.1/?/init.lua", } But it looks like mkiv is not happy with the split path, as it goes on trying clibpaths(). Also, I ran into another problem: if the module has the same name as the base input file, package.libpaths is not called at all (initially the module was called 'tryme.lua'). Best wishes, Taco [-- Attachment #2: testmodule.lua --] [-- Type: text/plain, Size: 32 bytes --] module 'testmodule' return {} [-- Attachment #3: tryme.tex --] [-- Type: application/x-tex, Size: 95 bytes --] [-- Attachment #4: Type: text/plain, Size: 486 bytes --] ___________________________________________________________________________________ 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://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-05-08 6:35 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2010-05-04 8:28 problem with package.path Peter Münster 2010-05-04 9:20 ` Peter Münster 2010-05-06 20:12 ` Hans Hagen 2010-05-07 7:15 ` Peter Münster 2010-05-07 7:31 ` Hans Hagen 2010-05-07 8:52 ` Taco Hoekwater 2010-05-07 9:12 ` Hans Hagen 2010-05-08 6:35 ` Taco Hoekwater
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).