From: Fabien Fleutot Date: Fri, 6 Feb 2009 15:12:12 +0000 (+0100) Subject: release notes update X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=c371a79ea4da4a28bccab103f8ccf5fc053c08a5;p=metalua.git release notes update --- diff --git a/INSTALL.TXT b/INSTALL.TXT index 6f0c512..f16f0ba 100644 --- a/INSTALL.TXT +++ b/INSTALL.TXT @@ -9,94 +9,38 @@ THEM, TO AVOID THEM TO FUTURE USERS. mailto:metalua@gmail.com Prerequisites ------------- -- a 32 bits, little endian CPU - (or the willingness to tweak the bytecode dumper by yourself) -- a C compiler -- Under Unix-like OSes, GNU/Make. -- Under MS-Windows, Microsoft Visual Studio -- optionally, your own Lua VM -- optionally, the readline library +- under MS-Windows, ability to type a couple of commands in a DOS command window +- under POSIX OSes, lua and luac executables in your path, in versions >=5.1 MS-Windows ---------- -You need to: -- edit metalua\src\win32\make-win32-msvc.bat, and set the - user configuration: - * The directory where you want to put your libs and executables, - MUALIB_TARGET. - * The directory where the compiler and linker are, - MSVCDIR. - -- open a DOS shell in metalua\src, and run the batch file above: - d:\fabien\src\metalua\src> win32\make-win32-msvc - -- Set your environment variables. A script metalua\src\mlua_setenv.bat - must have been generated, which contains the appropriate - settings. If you want to commit these setting permanently, you'll - have to set them in "My Computer" "Properties" - "Adanced settings" "Environment variables". - -Mingw ------ -There is also a migw port, which hasn't been tested for a while and is -likely to be broken. I'd be grateful if someone provided a patch for -this. I've never tried to compile it under cygwin either, patches are -welcome. - -Un*x +- get the sources +- cd metalua\src +- edit make.bat to set your variables: + * DISTRIB_BIN: where you want to put executables metalua.bat, lua.exe, luac.exe. + This directory should be referenced in your PATH environment variable. + * DISTRIB_LIB: where you want to put your Lua libraries. It shouldn't mess up + an existing Lua libraries directory. This folder should be referrenced in your + LUA_PATH environment variable. +- run make.bat + +Unix ---- -Set your configuration in metalua/src/config: - -- PLATFORM is the name of the target platform for the Lua VM. You need - a platform which supports dynamic library loading, i.e. posix is not - OK. The most likely choices are linux, macosx, mingw, freebsd, - openbsd. - -- TARGET_LUA_PATH is the place where Lua libraries will be - installed. It points to a temporary directory by default. - -- TARGET_LUA_CPATH is the target directory for C libraries. Unless - you've got a special reason not to, it's a good idea to use the same - directory as for TARGET_LUA_PATH - -- TARGET_BIN_PATH is the place where binary executables will be put. - -Other settings should probably not be touched unless you know what -you're doing. - -After the `make`, the system should be installed; the environment -variables required to make it work are set in the generated script -setenv.sh. To install them, either do `. setenv.sh`, or recopy them in -your .bashrc file. - -Troubleshooting: ----------------- - -* No Readline * -Under Linux, if you don't have readline and don't want to install it -(e.g. you rely on rlwrap or ledit), you'll have to remove -lreadline -from lua/Makefile, and to remove the #define LUA_USE_READLINE from -lua/luaconf.h - -* Custom VM * -If you use your own Lua VM, depending on your OS, you might have -problems with unexported symbols required by Pluto. Pluto requires the -symbols prefixed with LUAI_FUNC in the VM to be exported, and they -aren't by default under Linux and Windows. This is set in luaconf.h; -you'll need to change that setting in your own Lua VM if you want to -use it. -* Pluto issues * -Alternatively, you can let metalua run without Pluto by setting the -environment variable LUA_NOSPRINGS to "true". However, this might -cause parasitic interactions when several source files are compiled -simultaneously, so you'd rather precompile each file and library one -by one. +- get the sources +- cd metalua/src +- set these variables or modify them in make.sh: + * BUILD: a directory in which metalua should be built. Must be writable by the user. + * INSTALL_BIN: where metalua will be copied + * INSTALL_LIB: where (meta)lua libs will be copied. Should be referenced in your LUA_PATH. +- run ./make.sh, under your UID +- a ./make-install.sh script should have been generated, run it. If you want to isntall it + in a directory that doesn't belong to you, you might want to run it as root. Test drive ---------- -There are some samples in metalua/samples, which can be rn simply by +There are some samples in metalua/src/samples, which can be run simply by typing in the shell `metalua samplename.mlua`. Use `metalua -h` to have an overview of interesting options. Among them, "-a" dumps the AST resulting from a compilation: that's the perfect learning tool for diff --git a/README.TXT b/README.TXT index 3086794..b9e5cc1 100644 --- a/README.TXT +++ b/README.TXT @@ -2,8 +2,9 @@ README.TXT ========== For installation matters, cf. INSTALL.TXT -Metalua 0.4.1 -============= +Metalua 0.5 +=========== + Metalua is a static metaprogramming system for Lua: a set of tools that let you alter the compilation process in arbitrary, powerful and maintainable ways. For the potential first-time users of such a @@ -113,8 +114,51 @@ Library-wise, Metalua offers a set of syntax tree manipulation tools: extensions. -Notworthy changes from 0.4 to 0.4.1 -=================================== +Noteworthy changes from 0.4.1 to 0.5 +==================================== + +Simplification of the install and structure: + +- This release is included in Lua for Windows, so it now couldn't get simpler + for MS-Windows users! + +- Metalua is written in pure Lua again, thus making it platform-independant. + No more mandatory C libraries. Pluto interface might be back, as an option, + in a future version, but it's not worth the install trouble involved by + DLL dependencies. + +- Simpler build process, just run make.sh or make.bat depending on your OS. + +- Metalua libraries are now in a separate metalua/* package. This allows to + mix them with other Lua libraries, and to use them from plain Lua programs + if you FIXME + + +Other changes: + +- new option -S in metalua: prints sources re-generated from AST, after macro + expansion. + +- compatible with more Lua VMs: 64 bits numbers, integral numbers, big endians... + +- some new extensions: xloop, xmatch, improved match. + +- ASTs now keep track of the source extract that generated them (API is not + mature though, it will be changed and broken). + +- improved table printer: support of a plain-Lua mode, alternative indentation + mode for deeply-nested tables. + +- added a generic table serializer, which handles shared and recursive + sub-tables correctly. + +- gg API has been made slightly more flexible, as a first step towards a + comprehensive syntax support for gg grammar definition. Follow the gg-syntax + branch on github for ongoing work. + + +Noteworthy changes from 0.4 to 0.4.1 +==================================== - Proper reporting of runtime errors - Interactive REPL loop @@ -343,9 +387,11 @@ samples and extensions, an adequate test suite, refactored libraries. Credits ======= + I'd like to thank the people who wrote the open source code which makes Metalua run: the Lua team, the authors of Yueliang, Pluto, Lua Rings, Bitlib; and the people whose bug reports, patches and insightful discussions dramatically improved the global design, -including John Belmonte, Olivier Gournet, Vyacheslav Egorov, David -Manura, Olivier Gournet, Eric Raible, Laurence Tratt... +including John Belmonte, Vyacheslav Egorov, David Manura, Olivier +Gournet, Eric Raible, Laurence Tratt, Alexander Gladysh, Ryan +Pusztai...