You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@lpython decorator (Interface with Python (CPython) #703): get it working for arrays and simple types, and allow importing other LPython compiled packages from within it
Add the @pythoncall decorator to create an "interface" for any Python function (in some Python module), similar how @ccall works, but for Python: Interface with Python (CPython) #703 (comment), Interface with Python (CPython) #703 (comment); this will be implemented by creating BindPython ABI (next to BindC), and then in the backends we implement the conversion; I would start with the C backend, where you add logic for BindPython (in FunctionCall ASR node) and generate C code that calls the Python C/API to import a given module, find the function, convert all arguments and call it
Add @pythoncallable decorator which exposes an LPython function to CPython (similar to @ccallable)
The demo using @lpython will be faster than other Python compilers (lists, dicts, some basic things like arrays and loops), this must be done via the C backend
some LLVM backend demos: lists, dicts and arrays, anything where we are fast
Add demo of using @pythoncall and @pythoncallable, via the C backend
To deliver LPython as an MVP, I think the bare minimum is:
@lpythondecorator (Interface with Python (CPython) #703): get it working for arrays and simple types, and allow importing other LPython compiled packages from within it@pythoncalldecorator to create an "interface" for any Python function (in some Python module), similar how@ccallworks, but for Python: Interface with Python (CPython) #703 (comment), Interface with Python (CPython) #703 (comment); this will be implemented by creatingBindPythonABI (next to BindC), and then in the backends we implement the conversion; I would start with the C backend, where you add logic forBindPython(in FunctionCall ASR node) and generate C code that calls the Python C/API to import a given module, find the function, convert all arguments and call it@pythoncallabledecorator which exposes an LPython function to CPython (similar to@ccallable)@lpythonwill be faster than other Python compilers (lists, dicts, some basic things like arrays and loops), this must be done via the C backend@pythoncalland@pythoncallable, via the C backend