S
Size: a a a
S
S
IS
IS
[ivan@pc host]$ pwd
/home/ivan/p/luajit/src/host
[ivan@pc host]$ gcc minilua.c -lm
IS
XCFLAGS+= -DLUAJIT_DISABLE_JITG
require"foo.bar.baz" и require"foo/bar/baz"?S
package.config. Там будет что-то подобное:> =package.configКак вспомогательное, пример содержимого
\
;
?
!
-
package.path:
"/libdir/?.lua;/libdir2/?.lua"
1. \ или / как разделитель путей ОС и простой способ детектить, под вендой ли мы, на него будут заменены все точки в пути для require.; — разделитель путей в package.path/cpath.? символ подстановки имени файла в package.path/cpath.! — символ который будет заменён путём до интерпретатора.- — специальная фигня для реквайринга сишных либ.G
require"foo/bar" не выдаст закешированный require"foo.bar"
https://github.com/lua/lua/blob/master/loadlib.c#L481-L505G
_G._LOADED == nil?S
require"foo/bar" не выдаст закешированный require"foo.bar", но должен выдать закешированный require"foo/bar".S
oldreq = require
function require(...)
local path = ...
path = path:gsub("[\\/]", ".")
return oldreq(path, select(2, ...))
end
Но это костыль для решения костыльной задачи впихивания костылей.G
S
S
G
G
S
VM
S