Hi
I am using the numba just in time compiler (version 0.16) for speeding up
numerical calculations under python.
For testing it I have slightly modified the standard web2py welcome
application such that the index controller function calls a tiny function
numba_add which
adds 2 numbers.
from numba import *
#@jit
def numba_add(x,y):
z=x+y
return z
def index():
"""
example action using the internationalization operator T and flash
rendered by views/default/index.html or views/generic.html
if you need a simple wiki simply replace the two lines below with:
return auth.wiki()
"""
response.flash = T("7+4={}".format(numba_add(7.0,4.0)))
return dict(message=T('Hello World {}'.format(numba_add(7.0,4.0))))
When running it, numba is imported and if I comment out the @jit decorator
the application works well. However if I use the @jit decorator to compile
it I get the error ticket below.
Does anyone have a clue what could be wrong. I have now idea what the error
message means.
Leo Haimberger
Error ticket for "welcome"Ticket ID
131.130.157.11.2015-01-15.10-57-59.c400457e-a478-49cf-b014-acde33d01266
<type 'exceptions.KeyError'> "Failed at object mode
backend\n'__restricted__'"Versionweb2py™Version
2.9.11-stable+timestamp.2014.09.15.23.35.11Traceback
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Traceback (most recent call last):
File "/fio/srvx7/leo/python/web2py/gluon/restricted.py", line 224, in
restricted
exec ccode in environment
File
"/fio/srvx7/leo/python/web2py/applications/welcome/controllers/default.py"
<http://localhost:8000/admin/default/edit/welcome/controllers/default.py>, line
79, in <module>
File "/fio/srvx7/leo/python/web2py/gluon/globals.py", line 392, in <lambda>
self._caller = lambda f: f()
File
"/fio/srvx7/leo/python/web2py/applications/welcome/controllers/default.py"
<http://localhost:8000/admin/default/edit/welcome/controllers/default.py>, line
26, in index
response.flash = T("7+4={}".format(numba_add(7.0,4.0)))
File
"/opt/anaconda/lib/python2.7/site-packages/numba-0.16.0-py2.7-linux-x86_64.egg/numba/dispatcher.py",
line 153, in _compile_for_args
return self.jit(sig)
File
"/opt/anaconda/lib/python2.7/site-packages/numba-0.16.0-py2.7-linux-x86_64.egg/numba/dispatcher.py",
line 144, in jit
return self.compile(sig, **kws)
File
"/opt/anaconda/lib/python2.7/site-packages/numba-0.16.0-py2.7-linux-x86_64.egg/numba/dispatcher.py",
line 279, in compile
flags=flags, locals=locs)
File
"/opt/anaconda/lib/python2.7/site-packages/numba-0.16.0-py2.7-linux-x86_64.egg/numba/compiler.py",
line 552, in compile_extra
return pipeline.compile_extra(func)
File
"/opt/anaconda/lib/python2.7/site-packages/numba-0.16.0-py2.7-linux-x86_64.egg/numba/compiler.py",
line 263, in compile_extra
return self.compile_bytecode(res.result, func_attr=self.func_attr)
File
"/opt/anaconda/lib/python2.7/site-packages/numba-0.16.0-py2.7-linux-x86_64.egg/numba/compiler.py",
line 275, in compile_bytecode
return self._compile_bytecode()
File
"/opt/anaconda/lib/python2.7/site-packages/numba-0.16.0-py2.7-linux-x86_64.egg/numba/compiler.py",
line 501, in _compile_bytecode
return self._run_pipeline(pipelines)
File
"/opt/anaconda/lib/python2.7/site-packages/numba-0.16.0-py2.7-linux-x86_64.egg/numba/compiler.py",
line 526, in _run_pipeline
raise _raise_error(msg, res.exception)
KeyError: "Failed at object mode backend\n'__restricted__'"
In file:
/fio/srvx7/leo/python/web2py/applications/welcome/controllers/default.py
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
# -*- coding: utf-8 -*-
# this file is released under public domain and you can use without limitations
#########################################################################
## This is a sample controller
## - index is the default action of any application
## - user is required for authentication and authorization
## - download is for downloading files uploaded in the db (does streaming)
## - api is an example of Hypermedia API support and access control
#########################################################################
from numba import *
@jit
def numba_add(x,y):
z=x+y
return z
def index():
"""
example action using the internationalization operator T and flash
rendered by views/default/index.html or views/generic.html
if you need a simple wiki simply replace the two lines below with:
return auth.wiki()
"""
response <http://localhost:8000/examples/global/vars/response>.flash = T
<http://localhost:8000/examples/global/vars/T>("7+4={}".format(numba_add(7.0,4.0)))
return dict(message=T <http://localhost:8000/examples/global/vars/T>('Hello
World {}'.format(numba_add(7.0,4.0))))
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.