Skip to content
This repository has been archived by the owner on Nov 20, 2020. It is now read-only.

Commit

Permalink
release notes update
Browse files Browse the repository at this point in the history
  • Loading branch information
Fabien Fleutot committed Feb 6, 2009
1 parent 3af46a3 commit c371a79
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 85 deletions.
102 changes: 23 additions & 79 deletions INSTALL.TXT
Original file line number Diff line number Diff line change
Expand Up @@ -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" <right-click> "Properties" <click>
"Adanced settings" <click> "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
Expand Down
58 changes: 52 additions & 6 deletions README.TXT
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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...

0 comments on commit c371a79

Please sign in to comment.