Python is a modern, simple, and very versatile language, which has a huge audience and is widely used in several projects, even of big multinationals like Google, IBM, Intel, etc..
Porting it to AROS not only brings a lot of software, but it allows to quickly create new ones too, and to better manage the system, since Python versatility goes from fast GUI applications prototyping to system administration, from testing to astronomical big data analysis, and so on. Python can be considered the Swiss knife of computer science.
the big effort required for the port, this bounty is the first of a series of 5 that will bring this language/platform to AROS. In fact, the port is ideally split in the following 5 parts:
- Python 2.7 core;
- PyZune (a complete Python binding for the Zune library);
- Python 2.7 external libs (bzip2, Berkeley db, openssl, sqlite3);
- Python 2.7 external libs (tcl, tk). This is optional or with a very low priority, since Tcl/Tk is used to build application with GUI, but for AROS the priority is making the same, albeit using Zune as natural and native replacement;
- Python 3.5.
For the bounty to be considered succeeded, Python 2.7 should run on at least 386 and x64 native builds of AROS, and all Python tests in the standard library (Lib/test/) must pass. Tests for different platforms/o.ses (Windows, Linux, etc.) should not necessarily pass, of course (if some passes, it's OK/welcome).
Python sources changes must be released when the bounty is completed. Python's PSF license must be used.
All new Python code must follow the PEP8 guideline. Only the AROS-specific code (not part of CPython) should follow the AROS coding style, and it should be released with the APL or a compatible license.
The last Python 2.7 version is 2.7.11, but if a new Python version is released then the bounty is considered to be updated with it. The Python version that should be implemented is "frozen" only after that the bounty is assigned.
There are already other old Python ports:
however they are old, or for a different platform (the last is for MorphOS).
Albeit it's not required to start or use one of them for this AROS port, it is highly desirable to have only one port shared with MorphOS (last link), because the two operating systems are very similar and most of the code can be shared.
Integration of this Python port with the AROS build system is warmly appreciated, but it is not required by the bounty.