* Python Front-End to GCC This is a fully ahead of time implementation of Python, built ontop of GCC for a feature rich, optimizing middle-end and backend. ** Building Building GCCPY is fairly confsing to most people who haven't built GCC before: YOU CANNOT build GCC within the same directory of the sources! #+BEGIN_SRC bash $ apt-get install bison flex build-essential #+END_SRC Then to compile: #+BEGIN_SRC bash $ git clone ... $ cd gccpy $ ./contrib/download_prerequisites # optional $ mkdir gccpy-build $ cd gccpy-build $ ../configure --prefix=/opt/gccpy \ --enable-languages=python \ --disable-multilib \ --disable-bootstrap $ make $ cd - #+END_SRC *** Usage For my development sessions i generally pass: #+BEGIN_SRC bash $ gccpy -fdump-tree-gimple -fpy-dump-dot -fpy-gen-main -fpy-optimize -O0 -g test.py -o test #+END_SRC Options: -fpy-gen-main Python has no explicit main method so we require at compile time for the user to explicitly say where the main method should be compiled in. -fpy-dump-dot Dumps out the textural output of the DOT IL -fpy-optimize Experimental optimizers for Python at the DOT IL level constant folding and propagation to some extend with data-flow analysis could be implemented. -fdump-tree-gimple Dumps the textural output of the code generated for the GCC middle-end. You can use all normal GCC options -O2 -g -mtune= -march= etc... ** Status Very must still serves as a proof of concept but most of the core principles are implemented and work fairly well ** Major Projects *** Garbage collector We need one. *** Port Python stdlib Port the python stdlib and figure out if we want to implement modules as static libraries or shared libraries. *** Multi-core Implement threading