pyvm 1.2 review

Download
by rbytes.net on

pyvm is new a python virtual machine implementation which can run Python 2.4 bytecode and most of the times produce the expected outp

License: LGPL (GNU Lesser General Public License)
File size: 1072K
Developer: Stelios Xanthakis
0 stars award from rbytes.net

pyvm is new a python virtual machine implementation which can run Python 2.4 bytecode and most of the times produce the expected output.

The vm is pretty stable but very incomplete: there are missing opcodes, builtin
methods, types and libraries. We're only implementing what we need.

pyvm can execute the bytecode of the pyc compiler and therefore with a simple
bootstrapping procedure it can compile and run python source code. However this
is just one possible, optional frontend to the VM. The pyc compiler is very stable.

Python is also the batteries. pyvm can use python's standard library and additionaly includes some batteries of its own. There is support for Tkinter, OpenGL and the twilight GUI wrapper. These are pretty stable. There are also implementations of pygame (the C-part of pygame is rewritten in python) and pygtk, but they are very unstable and were not included in the distribution.

If you've installed pyvm you can:

- go to Lib/pyc and type "python test_bootstrap.py", to see if that works
- you can run "pyvm test_libsize.pyc" vs. "python test_libsize.pyc" to see which is faster.
- go to Stuff/Benchmarks and type "./Dejavu.py" which will compare pyvm vs. python on the collection of benchmarks. (the cooked-bench suite)
- If you have a graphics display you can try out the openGL tests from Stuff/gltests.
- go to Stuff/wiki/example and type "pyvm site.py 9000". Then open the file to_the_wiki.html with a web browser!

pyvm does not have an interactive shell yet. It can be easilly emulated with raw_input(), but for readline functionality we'd rather rewrite readline in python instead of wrapping the GNU readline library.

Requirements:
Python 2.4 or 2.3

What's New in This Release:
Major feature enhancements

pyvm 1.2 keywords