Pippy README


Pippy - The port of Python to the Palm OS.

VERSION: Pippy 0.7x

Copyright (c) 2001 Endeavors Technology, Inc.
All rights reserved.


WHAT'S NEW
See the file "NEWS".


NOTE

This distribution contains the source code for Pippy, the port of
Python (<http://www.python.org/>) to the PalmOS (<http://www.palm.com/>).
If you are only interested in running Pippy on a Palm hand held device,
you may download the pre-built PRC files (Pippy-0.7.tar.gz) from 
the project page at sourceforge:
<http://www.sourceforge.net/projects/pippy>.


    WARNING: Backup your Palm device before installing Pippy!


INTRODUCTION

Welcome to Pippy, the port of Python (revision 1.5.2+) to the PalmOS.
This project is a continuation of work previously released jointly
by The Aerospace Corporation and the University of California,
Irvine. <http://www.isr.uci.edu/projects/sensos/python>

Pippy runs on the PalmOS Version 3.5 and higher.  The current version of
Pippy passes a restricted subset of the standard Python regression test suite
without failures or errors.

Our primary focus in this release of Pippy is tighter integration of
Python with the PalmOS. We have also included a simple interactive interface.
Several Python extension modules have been ported or developed from
scratch specifically to support the PalmOS. A list of these modules is
provided below.  

We encourage interested developers to join our efforts to improve and
extend Pippy.


COPYRIGHT/LICENSE
License and copyright issues are discussed in the file: LICENSE


SYSTEM REQUIREMENTS

Palm Hand Held Device

Pippy was tested on POSE (PalmOS Emulator) and on a Palm IIIxe (running
PalmOS 3.5 or greater with 8M of RAM).  Pippy has also been successfully
installed on a Palm III with 2M of RAM, but memory limitations
(specifically related to the Heap size) prevents Pippy from running any
significant code (see KNOWN PROBLEMS below).

Development Platform

Any platform for which the GNU tool chain has been ported.  Additional
development tools are available as discussed in the file: TOOLS.

Pippy has been built on the following systems:
    Solaris 2.6
    Windows 95
    Linux (RedHat 6.2)


BUILDING

The following instructions are specific to Unix/Linux.

0. This version of Pippy REQUIRES A SPECIFIC VERSION OF PYTHON. Please
   see the TOOLS file for details on how to obtain and install this version.
   
1.  See the file TOOLS for instructions to install the development
tools.  You must use the tool set described in TOOLS.  Other development
tool sets, such as prc-tools-2.0 and CodeWarrior, will NOT work for this
port.

2. See the file BUILD for the Pippy build instructions. Instructions
for installing the .prc files are also included in this file.


    WARNING: Backup your Palm device before installing Pippy!


TODO

If you are interested in helping with this effort, please email us for
further explanation on one of the topics listed below.  We also welcome
suggestions for additional features.

Improve and update the Pippy User Interface.  As a starting point we have
selected the LispMe interface <http://www.lispme.de/lispme/index.html>.

Object overhead reduction
Code footprint reduction (remove longobject, fileobject, ...)
Modified import mechanism - import from Palm databases, URLs, etc
Stackless Python
Stackless marshal (recursions can overflow the stack)
Interactive interface (similar to LispMe)
Integration with Palm
Port Python library modules (usually require minor mods)
Improve startup/shutdown speed
Improve/abstract IO Stream interface
Python Resource Manager (track stack, heap, freelists, etc.)

Upgrade to Python 2.0


REMOVED PYTHON FEATURES

The following features have been removed from this port of Python:

    * float and complex objects
    * file IO (stdio and stderr are simulated)
    * documentation strings
    * parser, compile - in non-interactive environments the parser and
      compiler can be easily eliminated with a configuration switch
    * most python library modules
    * most extension modules


KNOWN PROBLEMS

Recursive Python functions can overflow the stack, possibly requiring a
hard reset.  The implementation of Stackless Python will overcome this
problem.

The dynamic heap is variable, at most 256 KB, for systems running PalmOS
version 3.5 or later.  Some applications may overflow this and raise a
MemoryError exception. However, if this happens there may not be
sufficient dynamic memory in reserve to clean up after Python
necessitating a soft reset of the Palm.

This release of Pippy runs only on PalmOS 3.5 or higher. 
There is a GUI problem with PalmOS 3.0 that we are investigating.

The current "BREAK" button implementation responds to any touch of the
screen, not just the button.  This can be easily fixed, but we just
haven't had the time.


LINKS AND CONTACT INFORMATION

    Pippy Development Home
    <http://pippy.sourceforge.net/>

    Palm Developers Site
    <http://www.palmos.com/dev/>


AUTHORS

    Jeffery D. Collins <tokeneater at users.sourceforge.net>



© 2001 Endeavors Technology, Inc., All Rights Reserved.