diff --git a/llvm/_core.c b/llvm/_core.c index 2c9579f..052ee21 100644 --- a/llvm/_core.c +++ b/llvm/_core.c @@ -36,8 +36,6 @@ // Python include #include "Python.h" -#include "numpy/ndarrayobject.h" -#include "numpy/ufuncobject.h" /* LLVM includes */ #include "llvm-c/Analysis.h" @@ -1315,53 +1313,6 @@ _wPyCObjectVoidPtrToPyLong(PyObject *self, PyObject *args) #endif -#define UNARY_LOOP\ - char *ip1 = args[0], *op1 = args[1];\ - npy_intp is1 = steps[0], os1 = steps[1];\ - npy_intp n = dimensions[0];\ - npy_intp i;\ - for(i = 0; i < n; i++, ip1 += is1, op1 += os1) - -typedef npy_cdouble cunaryfunc(npy_cdouble); - -NPY_NO_EXPORT void -MyUFunc_D_D(char **args, npy_intp *dimensions, npy_intp *steps, void *func) -{ - cunaryfunc *f = (cunaryfunc *)func; - UNARY_LOOP { - npy_cdouble in1 = *(npy_cdouble *)ip1; - npy_cdouble *out = (npy_cdouble *)op1; - *out = f(in1); - } -} - -PyUFuncGenericFunction funcs[1] = {MyUFunc_D_D}; -static char types[2] = {NPY_DOUBLE, NPY_DOUBLE}; - -static PyObject * -ufunc_from_ptr(PyObject *self, PyObject *args) -{ - - Py_ssize_t func_ptr; - char *func_name = "temp"; - void **data; - PyObject *ret; - double(*func)(double); - - /* FIXME: This will not be freed */ - data = (void **)malloc(sizeof(void **)); - - if (!PyArg_ParseTuple(args, "n|s", &func_ptr, &func_name)) return NULL; - data[0] = (void *)func_ptr; - func = data[0]; - printf("%f" , func(4.3)); - ret = PyUFunc_FromFuncAndData(funcs, data, types, 1, 1, 1, PyUFunc_None, func_name, "doc", 0); - - return ret; -} - - - static PyMethodDef core_methods[] = { /* Modules */ @@ -1845,7 +1796,6 @@ static PyMethodDef core_methods[] = { _method( LLVMLoadLibraryPermanently ) //_method( LLVMInlineFunction ) _method( PyCObjectVoidPtrToPyLong ) - {"make_ufunc", ufunc_from_ptr, METH_VARARGS}, { NULL } }; @@ -1871,9 +1821,6 @@ PyMODINIT_FUNC init_core(void) #endif { - import_array(); - import_umath(); - LLVMLinkInJIT(); LLVMLinkInInterpreter(); LLVMInitializeNativeTarget(); diff --git a/setup.py b/setup.py index 21c2425..47e94f2 100755 --- a/setup.py +++ b/setup.py @@ -31,9 +31,8 @@ import sys, os from distutils.core import setup, Extension -import numpy -LLVM_PY_VERSION = '0.7' +LLVM_PY_VERSION = '0.8' def _run(cmd): @@ -101,7 +100,7 @@ def call_setup(llvm_config): ('__STDC_CONSTANT_MACROS', None), ('__STDC_LIMIT_MACROS', None), ('_GNU_SOURCE', None)], - include_dirs = ['/usr/include', incdir, numpy.get_include()], + include_dirs = ['/usr/include', incdir], library_dirs = [libdir], libraries = std_libs + libs_core, extra_objects = objs_core,