Hello to the list,
I have an idea for Python that is non-traditional in that it doesn’t extend or
modify existing Python language structure.
The idea uses Python to translate Python, entirely under program control,
directly to optimized assembly language .dll or .so files, called “extensions.”
Extensions are called from Python using Python’s ctypes interface. The ctypes
wrapper for each extension is created automatically.
The goal of this idea is for Python to perform as fast or faster than C or C++,
without leaving Python.
Details:
1. Large project – now 23,556 lines of Python.
2. Evolved from a project that automatically translated APL to assembly
language dlls -- more than 30,000 hours of development in APL and assembly
language.
3. Solves the tremendous problem of coding assembly by hand.
4. Point-and-click interface.
5. Ahead-of-time compilation.
6. Python translated directly to assembly language – no third-party
compiler (GCC, LLVM, Clang, etc.) or intermediate representation.
7. Advanced assembly language optimizations: registers, SIMD, multicore,
loop fusion, loop unrolling, etc., custom-fitted to Python.
8. No Global Interpreter Lock issues – ctypes releases the GIL.
Extensions have full use of all threads and cores.
9. NumPy and SciPy functions, as well as Python built-in functions and
built-in library functions, translated directly to optimized assembly language
to avoid expensive Python callbacks.
10. Memory safe:
a. controls buffer access and frees every memory pointer when the
extension returns from assembly to Python
b. handles bounds checking on variables and arrays passed into the
extension by ctypes
c. extensions will not encounter errors such as buffer overflows,
buffer over-reads, or memory race conditions
d. handles recursive programs with its own stack, thus avoiding
stack exhaustion for recursive programs
More details at https://PysoniQ.com:
A video demonstration
Try out the point-and-click interface at the “Try PysoniQ” link
A detailed Project Overview
Technical FAQs
Blog and speed metric links for deeper analysis of the technologies
Downloadable PDFs – see the Resources link
Any comments from the Python community on this project would be most
appreciated!
Thank you.
Mark
[email protected]
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/H43LXLJY6RMWDLUFXTSBPQVFKUQADFAU/
Code of Conduct: http://python.org/psf/codeofconduct/