This naturally means that there are some differences between IronPython and CPython. The most significant differences being:
- IronPython uses the underlying .NET basic types. Strings are therefore Unicode by default, as they will be in Python 3.
- IronPython compiles Python code to .NET assemblies, and uses neither Python stack frames nor bytecode.
- CPython extensions written in C, using the CPython C API, don't work with IronPython (at least not until Ironclad is completed).
The IronPython team have written up the differences between the two implementations and have now put them up on wiki pages: