]> git.lizzy.rs Git - metalua.git/blobdiff - doc/manual/declare-globals-ref.tex
manual: document some standard exts and libs
[metalua.git] / doc / manual / declare-globals-ref.tex
diff --git a/doc/manual/declare-globals-ref.tex b/doc/manual/declare-globals-ref.tex
new file mode 100644 (file)
index 0000000..f60e3b8
--- /dev/null
@@ -0,0 +1,15 @@
+\section{Extension {\tt declare\_globals}: mandatory declaration of global\r
+  variables}\r
+There is a {\tt strict} library in Lua, also provided by metalua, which\r
+complains when one tries to access a global variable which hasn't been\r
+initialized, and when a global variable is initialized anywhere but at the\r
+program's top-level. This catches many errors, especially typos on variable\r
+names. \r
+\r
+However, with a macro-enabled language, we can do slightly better: we add a {\tt\r
+  global} keyword, which works as {\tt local}, allows to declare global\r
+variables, which can subsequently be used freely. Undeclared global variables\r
+cause an error when one tries to read or write them.\r
+\r
+FIXME: need a ``global function ...'' syntax; interactions with sub-modules is\r
+not tested correctly.\r