[SciPy-user] weave failures on OSX

Christopher Fonnesbeck chris at fonnesbeck.org
Fri Jun 27 11:13:51 EDT 2003


I have some inline statements that work wonderfully under Linux, but on  
OSX (python2.3 using recent CVS weave), they die the death. Note that  
weave.test() on my machine runs cleanly. Any clues would be most  
appreciated. Here is the code and the resultant errors:

code = '''
         #line 610 "ReinforcementLearning.py"

         PyObject *key, *qval, *traceval = NULL;
         Py::List keys = qfunction.keys();
         for (int i=0; i<keys.length(); i++) {
             key = PyList_GET_ITEM(keys.ptr(),i);

             /* Grab and convert current Q-value */
             qval = PyDict_GetItem(qfunction.ptr(),key);
             double qval_raw = py_to_float(qval,"qval_raw");

             /* Grab and convert current elegibility value */
             traceval = PyDict_GetItem(etrace.ptr(),key);
             double traceval_raw = py_to_float(traceval,"traceval_raw");

             /* Calculate new Q-value */
             qval_raw += alpha * delta * traceval_raw;

             /* Return new Q-value to Q-function */
             PyObject* qval_new = PyFloat_FromDouble(qval_raw);
             PyDict_SetItem( qfunction.ptr(),
               key, qval_new );

             /* Cleanup */
             Py_DECREF(qval_new);

             /* Only update nonzero e-trace values */
             if (traceval_raw>0.0) {

                 /* Only interested in sizeable values */
                 if (traceval_raw>=tolerance) {

                     /* Calculate new elegibility value */
                     traceval_raw = gamma * lamda * traceval_raw;

                     /* Return new elegibility value to trace */
                     PyObject* traceval_new =  
PyFloat_FromDouble(traceval_raw);
                     PyDict_SetItem( etrace.ptr(),
                       key, traceval_new );

                     /* Cleanup */
                     Py_DECREF(traceval_new);
                 }
                 /* Set very small values to zero */
                 else PyDict_SetItem( etrace.ptr(), key,
                   PyFloat_FromDouble(0.0) );
             }
        }
         '''

         'Call to weave'
         weave.inline(code,
                      ['qfunction',
                       'alpha','delta','etrace',
                       'gamma','lamda','tolerance'])


This results in:

ReinforcementLearning.py: In function `PyObject*  
compiled_func(PyObject*,
    PyObject*)':
ReinforcementLearning.py:612: `Py' undeclared (first use this function)
ReinforcementLearning.py:612: (Each undeclared identifier is reported  
only once
    for each function it appears in.)
ReinforcementLearning.py:612: parse error before `::' token
ReinforcementLearning.py:613: `keys' undeclared (first use this  
function)
ReinforcementLearning.py:617: no matching function for call to  
`py::dict::ptr()
    '
ReinforcementLearning.py:621: no matching function for call to  
`py::dict::ptr()
    '
ReinforcementLearning.py:629: no matching function for call to  
`py::dict::ptr()
    '
ReinforcementLearning.py:646: no matching function for call to  
`py::dict::ptr()
    '
ReinforcementLearning.py:653: no matching function for call to  
`py::dict::ptr()
    '
Traceback (most recent call last):
   File "ReinforcementLearning.py", line 931, in __call__
     s==maxsteps-1)
   File "ReinforcementLearning.py", line 678, in update_qfunction
     ['qfunction',
   File "/Users/chris/Development/python/weave/inline_tools.py", line  
335, in inline
     auto_downcast = auto_downcast,
   File "/Users/chris/Development/python/weave/inline_tools.py", line  
439, in compile_function
     verbose=verbose, **kw)
   File "/Users/chris/Development/python/weave/ext_tools.py", line 340,  
in compile
     verbose = verbose, **kw)
   File "/Users/chris/Development/python/weave/build_tools.py", line  
272, in build_extension
     setup(name = module_name, ext_modules = [ext],verbose=verb)
   File  
"/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site- 
packages/scipy_distutils/core.py", line 42, in setup
     return old_setup(**new_attr)
   File  
"/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/ 
distutils/core.py", line 166, in setup
     raise SystemExit, "error: " + str(msg)
CompileError: error: command 'gcc' failed with exit status 1
  




More information about the SciPy-User mailing list