[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: [ANN] lglob (was: Convenient undefined variable checking script)
- From: steve donovan <steve.j.donovan@...>
- Date: Tue, 29 Jan 2013 11:11:55 +0200
Hi all,
My extended globals-checking tool has grown up and has collected many
more lines and a write-up:
https://github.com/stevedonovan/lglob
There is a test directory, just run 'lua test.lua' or 'lua52 test.lua
luac52' (if that's what your 5.2 luac is called)
It's generally coping with grown-up code like Penlight, but issues are
likely to remain. If it breaks on Lua 5.2, it's a bug.
It _does_ do multiple files now and wildcards, even on Windows.
The cool new feature is the -x flag which does local alias analysis,
both for requires and the module itself.
-- new.lua: plain-jane module style for 5.1/5.2 compatibility
-- tracks both require and module local aliases
local lfs = require 'lfs'
local new = {}
print(lfs.currentdir)
function new.one ()
return new.two()
end
function new.two ()
return 42*new.fiddle_factor
end
return new
$ lglob -x new.lua
lglob: new.lua:13: undefined get new.fiddle_factor
Still does explicit loading of modules with require(), which is less
than ideal solution. I would be interested in proposals on how to
improve on this - my thoughts are to train lglob to extract whitelists
from modules and use these when require() is found in code.
Thanks to David Manura, author of the original globalsplus.lua, Egil
Hjelmeland's inspiring and useful globals utility, and the one and
only Kein-Hong Man's No Frills Introduction to the Lua VM. And also to
Luiz who accidently let slip that 'luac -l -l' gives a _lot_ of
interesting information. My job was mostly being chief librarian and
typist.
steve d.