pymite /

Filename Size Date modified Message
docs
src
17.6 KB
1.2 KB
5.7 KB
======
PyMite
======

:Author:    Dean Hall
:Copyright: Copyright 2002 Dean Hall.
            See `License`_ for details.
:Release:   03
:Site:      http://pymite.python-hosting.com/
:Id:        $Id: README 116 2006-08-24 13:42:09Z dwhall $

Purpose
-------

PyMite is a flyweight Python interpreter written from scratch
to execute on 8-bit microcontrollers.  PyMite supports a subset
of the Python 2.0 syntax and can execute a subset of the
Python 2.0 bytecodes.  PyMite can be compiled, tested and
executed on a desktop computer and also targeted for 8-bit
embedded systems with resources as limited as 64 KiB of
program memory (flash) and 4 KiB of RAM.

License
-------

All of the source code for PyMite is licensed under the GNU General
Public License v2.  A copy of the license is in the file ``LICENSE``.

    Copyright 2002 Dean Hall.

    This program is free software; you can redistribute it and/or
    modify it under the terms of version 2 of the GNU General
    Public License as published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public
    License along with this program; if not, write to the Free
    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    Boston, MA  02110-1301, USA

All of the documentation and the images contained therein are
licensed under the GNU Free Documentation License.

    Copyright 2006 Dean Hall

    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.2
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
    Texts.  A copy of the license is in the file ``docs/LICENSE``.

Build
-----

Perform the following steps to build PyMite and the included
system tests on the desktop:

    1. In the project root, run ``make`` to create ``libpmvm.a``
    2. In the project root, run ``make check`` to build and run
       the tests ``src/tests/t0??.*``

To build for AVR targets like the ATmega103 (refer to the Makefile for others):

    1. In the project root, run ``make clean; make check TARGET=AVR``
       to make an executable for ``src/tests/t003.*``

The development system should have installed the GNU Compiler
Collection version 3.4 or later and Python 2.0 or later.
The author also uses avr-gcc to target Atmel AVR
microcontrollers.

PyMite is developed on Mac OS X 10.4 and should also compile on
GNU/Linux and Cygwin operating systems.  Since PyMite is so
deeply embedded, it does not rely on many libraries.
When compiling for the AVR, it will need avr-libc.

PyMite builds as an archive.  The user should then build his
own main() function following given examples and link in
``libpymvm.a`` and the appropriate PyMite native libraries.

Discussion
----------

Please review the `PyMite Trac`_ project management space
space for up-to-date information about PyMite.
Please join the `PyMite maillist`_ for all communications concerning PyMite.
This will ensure that FAQs can be found in the list archives and
all issues are captured and available for public inspection.

.. _`PyMite Trac`: http://pymite.python-hosting.com/
.. _`PyMite maillist`: http://groups.google.com/group/pymite

Thanks
------

My personal thanks go out to these people for their contribution to PyMite:

    - Philipp Adelt: Enhancements to pmImgCreator.py, issues and fixes.
    - www.webfaction.com: for providing quality, free project hosting on
      www.python-hosting.com

Release Notes
-------------

This is PyMite release 03

* Release 03, 2006/09/17

    - #30:  Created Release 03 package
    - #4:   Enabled compiler warnings as errors
    - #7:   Unified licensing and copyright info in all files
    - #16:  Created pm_init() that does the initial housekeeping
    - #29:  Corrected function call in mmb.py's sleepms()
    - #28:  Fixed loader to modules with root-level __NATIVE__ docstring load
    - #2:   Separated stdlib from user app
    - #27:  Made S16/U16 really be 16-bits on DESKTOP
    - #20:  Added support for the assert statement
    - #25:  Created slide-compatible illustration for build process
    - #24:  Removed consts[0] == docstring assumption from pmImgCreator
    - #3:   Made src/tests/Makefile clean better
    - #23:  Removed absolute paths to allow building with WinAVR
    - #18:  Removed "-ansi" compiler option from AVR builds
    - #19:  Broadened target from ATMEGA103 to AVR
    - #11:  Made src/tests/ build module images as C files, not header files
    - #9:   Fixed BINARY_SUBSCR for case stringobj[intobj]
    - #14:  Documented the development process
    - #6:   Made pmImgCreator append a null terminator to image list
    - #8:   Removed leftover uses of ``HOST_``
    - #12:  Made mem_* funcs always use RAM memspace when target is DESKTOP
    - #15:  All mem_*() funcs and pointers in the vm should use unsigned not
      signed or void
    - #1:   Transfered PyMite repository to http://pymite.python-hosting.com

* Release 02, 2006/08/11

    - N/A:  Create Release v 02 package.
    - N/A:  VM funcs modified so that return objects are by
      reference and funcs return a PyReturn_t for internal
      error checking.  Library modules are broken until they
      are modified similarly.
    - N/A:  The pmImgCreator.py script was modified to work via
      the command line. pmImgCreator GUI is deprecated.
    - N/A:  Converted many files' EOLs to Unix.

* Release 01, 2003/03/18

    - N/A:  Initial release made for PyCon 2003.
    - N/A:  Compiles for desktop and Atmel ATmega103.

.. :mode=rest:
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.