1 \section{Extension {\tt declare\_globals}: mandatory declaration of global
3 There is a {\tt strict} library in Lua, also provided by metalua, which
4 complains when one tries to access a global variable which hasn't been
5 initialized, and when a global variable is initialized anywhere but at the
6 program's top-level. This catches many errors, especially typos on variable
9 However, with a macro-enabled language, we can do slightly better: we add a {\tt
10 global} keyword, which works as {\tt local}, allows to declare global
11 variables, which can subsequently be used freely. Undeclared global variables
12 cause an error when one tries to read or write them.
14 FIXME: need a ``global function ...'' syntax; interactions with sub-modules is