Get NumPy to Compile

Things needed to get NumPy to compile


Cython


Debug this Cython assertion. NumPy needs Cython to generate mtrand.c from mtrand.pyx and we can't just use the regular Cython because we need to apply Marius' patch (if we don't, mtrand.c won't compile.)

```
python: ../../src/asm_writing/rewriter.cpp:1617: assembler::Register pyston::Rewriter::allocReg(pyston::Location, pyston::Location): Assertion `vars_by_location.count(best_reg) == 
0' failed.
Traceback (most recent call last):
  File "/mnt/rudi/numpy/tools/cythonize.py", line 199, in <module>:
    main()
  File "/mnt/rudi/numpy/tools/cythonize.py", line 195, in main:
    find_process_files(root_dir)
  File "/mnt/rudi/numpy/tools/cythonize.py", line 187, in find_process_files:
    process(cur_dir, fromfile, tofile, function, hash_db)
  File "/mnt/rudi/numpy/tools/cythonize.py", line 161, in process:
    processor_function(fromfile, tofile)
  File "/mnt/rudi/numpy/tools/cythonize.py", line 81, in process_pyx:
    raise Exception('Cython failed')
Exception: Cython failed
Traceback (most recent call last):
  File "../numpy/setup.py", line 252, in <module>:
    setup_package()
  File "../numpy/setup.py", line 240, in setup_package:
    generate_cython()
  File "../numpy/setup.py", line 191, in generate_cython:
    raise RuntimeError("Running cythonize failed!")
RuntimeError: Running cythonize failed!
```

PyStringObject and PyStringScalarObject

Need to access the fields of PyStringObject directly and do sizeof(PyStringScalarObject) which is just a typedef for PyStringObject, currently just forward declared. More specifically, fields include ob_shash and ob_sstate.

Descriptors

NumPy looks at the PyDescr_ objects in descrobject.h

Compiler Crash

Why is this crashing the compiler? (ufunc_object.c)

fail:                                                        
  // Causes compiler error wtf                             
  for (i = ufunc->nin; i < ufunc->nargs; i++) {
    Py_XDECREF(mps[i])
  }
  return NULL;
}

Misc

Need to define SIZEOF_SHORT