PyoLogo uses a few libraries to implement its main components. The libraries were not chosen specifically for the OLPC machine as that was not the initial intention of the project. Some of the modules are large and requires its own dependencies. The performance on OLPC machines were not impressive when tested on the A tests boards. Optimization would perhaps be one of the biggest tasks for this project to become successful.
- pyGame - pyGame is a Python wrapper for the SDL graphics library. It is used to implement the main display area where turtles and other objects are drawn.
- wxPython - This is a UI framework based on wxWidgets. It is used to create the main window, menus, toolbars, the editor, and other UI components. Note that an SDL surface is embedded into a wxWidget frame.
- PLY - This is a Lex/Yacc library purely written in Python. It is used to create the Logo interpreter.
The following libraries are needed for the optional robotics module.
- python-serial - This is required to communicate with the gogoboard.
- Numarray - This library is used for the sensor processing module.
To Do List (without any new features)
- Performance boost on OLPC machines. Reducing frame rate and code optimization could perhaps help.
- UI issues under Linux. Currently the toolbars located on the side panels do not show up under Linux. The text box used for the command center also does not work properly.
- Error handling/reporting. The code base has minimal error handling in general. When things go wrong, the screen refresh thread usually dies if not the whole application.
- Logo Error handling/reporting. The Logo interpreter needs to produce better error messages for the Logo programmer.
- Thread interference. No locks are used in modules that are accessed by more than one thread. Errors occasionally happens.