Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Deliver LPython MVP #1704

Closed
Closed
@certik

Description

@certik

To deliver LPython as an MVP, I think the bare minimum is:

  • Create a few useful LPython packages, upload to PyPi and get working with pip and Conda naturally and easily (Compiling Python packages with LPython #992)
  • @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
  • Website with documentation
  • Blog post(s)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions