Python Built with Open Watcom

Lightning Python

What's Different?

Lightning Python is a series of patches to mainline Python to fix some build issues under Open Watcom. Most of the patches are rather simple and small. For example, there are a number of locations where preprocessor directives catch Open Watcom as the compiler prior to detecting if the platform is Windows erroneously. The patches address these minor inconsistencies along with a few assumptions that assume the platform Windows implies the Microsoft compiler toolchain.

From a more technical standpoint, Open Watcom conforms to the Windows binary interface standards, so there shouldn't be any issues using Python extensions built by MSVC and for MSVC Python with Lightning Python. The major difference between the interpreters is that Lightning Python uses the Open Watcom C runtime, which is not the Microsoft C runtime (msvcrt). This detail means that, in theory, Lightning Python can run on much older versions of Windows (probably back to Win2k) while standard Python will need more recent versions of the operating system. It also introduces the issue that extensions compiled for standard Python might not work on these older Windows versions because, of course, they are built against Microsoft's runtime.

What's Missing?

Right now, Lightning Python is missing a few standard library modules:

Additionally Lightning Python is built for Python 3.4.0 or newer. There are currently no plans to provide a patch or distribution for earlier versions.

Is It Faster?

Right now, no, it is actually considerably slower. The reasons for this haven't yet been investigated.

Do You Provide Source Code?

The layout of Lightning Python is less than ideal. If you examine the BitBucket repository, you'll see in master a simple pair of directories. The "Patches" folder contains patches for modifying stock Python to build with Open Watcom. The "OWbuild" directory contains the necessary Open Watcom project and targets.

The more interesting place to start would be inside one of the branches. Any major release supported should have a branch associated with it. These branches will include a full pre-patched Python source code tree that should be directly buildable.

Is It Buggy?

Generally, no, Lightning Python isn't particularly buggy. However, a number of tests fail or completely crash when testing the standard library. There are a number of reasons for these failures which is why this is considered "in progress." Debugging is further complicated by the fact that Open Watcom's version 2.0 fork is also being developed simultaneously. Some bugs are going to occur simply because Open Watcom's runtime isn't in a stable condition at the moment. That said, Lightning Python should be alright for most Python tasks.

What's Up with the "Logo Removed" Picture?

Lightning Python had a pretty snazzy little logo. However, following a lightning talk at PyCon 2014, the primary maintainer of this project was notified by the Python Software Foundation's trademark committee that it was "an improperly dilutive version of the Python 'two snakes' logo," and it had to go. Our new logo is a black square explaining this for now.

If you'd like to design a new one for the project, please feel free! However, we won't accept anything featuring snakes just in case...