================================================================== RELEASE NOTES for Nokia Python for Series 60 Platform 1.0 ================================================================== Release Number ============== 1.0 Release Date ============ December 13, 2004 Product Description =================== Python for Series 60 platform is intended for developers looking to create programs that use the native features and resources of the Series 60 phones, using the Python programming language. Python for Series 60 has the following documentation: - 'Getting Started with Python for Series 60 Platform' contains information on how to install Python for Series 60 and how to write your first program - 'Python for Series 60 Platform API Reference' contains the API and other reference material - 'Programming with Python for Series 60 Platform' contains code examples and programming patterns for Series 60 devices that can be used as basis for programs. Installation Notes ================== Please refer to document 'Getting Started with Python for Series 60 Platform' for instructions how to install the software. Compatibility ============= This software has been tested on the following devices and SDKs: - Nokia N-Gage QD - Nokia 6600 - Nokia 7610 - Nokia 6630 - Series 60 SDK 1.2 for Symbian OS - Series 60 SDK 2.0 for Symbian OS - Series 60 SDK 2.1 for Symbian OS - Series 60 2nd Edition SDK for Symbian OS, Supporting Feature Pack 2 This software has been noted to run on the following devices: - Nokia 3650 - Sendo X - Siemens SX1 These devices, however, have not been fully tested. Known Issues ============ Installation on the terminal device ----------------------------------- - Uninstalling Python for Series 60 does not remove user-installed files from directory '\System\Apps\Python\my'. Before uninstalling Python for Series 60, you may want to delete this directory using an external file browser. (ref: 0026) - Reinstallation of 'Python for Series 60' has been noted to be sometimes problematic on a 7610 phone, if you are installing the same version again (e.g. overwriting 1.0 with 1.0). To avoid problems with reinstallation, uninstall Python for Series 60 before installing the software again. (ref: 0031) - On some terminal devices, choosing App.Manager->Options->View certificate might show: 'Root certificate not self-signed'. - On some software revisions of terminal devices, the Application Manager does not show any information on Options->View details. (ref: 0102) - Bluetooth console program writes to a log file \systems\apps\python\btconsole_conf.txt. This file is not removed during uninstallation of Python for Series 60. (ref: 0151) Python language compatibility ----------------------------- - Attributes of Python time module are not supported. (ref: 0072) - Math.exp() does not trigger an OverFlowError. No exception is raised, because the native math library implementation, in accordance with IEEE 754, gives an 'Inf' (infinity) rather than an overflow error. (ref: 0080) - The Symbian STDLIB deviates from ANSI/POSIX standard. This causes unwanted behavior in output formatting, e.g. * "%.3g" % 1.2345 results '1.2345' instead of '1.23' * "%g" % 1000000 results '1000000' instead of '1e+006' Please refer to SDK documentation (SDK Help) for further details (keyword: STDLIB). (ref: 0131) - Module import treats module names as case insensitive. Thus, 'import RAnDoM' equals to 'import random'. (ref: 0109) Extension modules ----------------- - The time values produced by e32db.format_time and e32db.format_rawtime support only one second precision. The formatted time values will be rounded down to the nearest second. The time literals produced by format_rawtime for years near 0 AD are erroneously interpreted by the database as years near 2000 AD. (ref: 0145) - Appuifw.Text does not disable the cursor when it itself becomes invisible. (ref: 0148) - If a Bluetooth connection is active when socket.bt_discover() is called, a note that says "Unable to connect. Max. number of Bluetooth connections already in use." is displayed and the exception socket.error is raised. (ref: 150) - The e32dbm module doesn't support concurrent use from different threads or processes. Unpredictable behaviour may result if this is attempted. Also, an exception is thrown if standard strings with values outside the ASCII range are given as keys or values. It is recommended to use Unicode when using non-ASCII keys or values. (ref: 0152) - The get and setdefault methods of e32dbm objects incorrectly return the key instead of the value if the key is found in the database. (ref: 0153) - Some Bluetooth specific extensions to socket module take a socket object as argument. They expect an object of the "real" socket type rather than the wrapper type defined in the standard socket module. The "real" socket object wrapped by socket 's' is 's._sock'. (ref: 0154) Symbian platform related ------------------------ - When sending an SMS with a device that can be set offline (e.g. Nokia 6630), the Python messaging module might give a misleading error message. Despite this error message, the SMS might still be sent when the phone is set online again. (ref: 0046) - Closing a Python application by the Series 60 runtime environment (e.g. closing the application from the task list) may cause a System panic, if the application does not handle exit cases. (ref: 0114) Changes to standard library modules: ==================================== - Docstrings, comments and test suites have been stripped or abbreviated in all modules to save space. - anydbm.py, whichdbm.py: Support for e32dbm has been added. - mimetools.py: Functions that are impossible to implement (like popen) or depend on nonsupported modules (like random) have been omitted. - ntpath.py: Functions that are inapplicable on the platform, such as expanduser, abspath and so on, have been omitted. - os.py: - Functions that are not supported by the platform (such as exec*, spawn*, fork, popen) have been omitted. - Function utime exists, but is a no-op stub. - quopri.py: Support for running the module as a script has been removed. - shutil.py: Several functions have been omitted to save space or because of missing platform functionality. - site.py: Simplified and customized for the platform. help() builtin support removed, because the pydoc module is not available and very few docstrings remain in the library modules. - socket.py: Adapted to work with the native sockets on the platform. - getservbyname and getaddrinfo consult a small fixed table instead of an external service map file. Only few services are supported. - socket method setblocking raises an exception, since only blocking mode is supported in this release. Support for non-blocking mode is in development and should be available in the near future. - urllib.py: Proxy settings are loaded from the environment variables, not the phone access point configuration. - urlparse.py: Only basic functionality is provided. Changes to standard library modules included in the SDK, but not in the phone installation package: - re_tests.py: test for matching "u'\N{LATIN CAPITAL LETTER A WITH DIAERESIS}'" to r'\b.\b' and r'(?u)\b.\b' omitted. - pdb.py: - support for loading the file $HOME/.pdbrc omitted. - on-line help omitted Standalone Application ==================================== Standalone Python applications generated by py2sis tool require Python for Series 60 installed on the target device. Further Info ============ http://www.forum.nokia.com/ Copyright © 2004 Nokia Corporation. All rights reserved. Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation.