A lightweight approach for accessing Python modules from Gambit Scheme (Lightning Talk)
Considerable effort is spent on writing and maintaining robust and useful libraries in many programming languages. The Python Package Index (PyPI) is one of the most popular with over 300,000 packages, of which NumPy, Pandas, Matplotlib, TensorFlow, Requests and Flask are a few examples.
A Scheme implementation’s Foreign Function Interface (FFI) can be used to wrap C librairies, such as some numerical libraries underpinning NumPy, but the idiosyncratic nature of FFIs implies that the integration work is tedious and is not easily ported to other systems.
Dynamic languages offer an interesting opportunity for cross-language integration: interfacing at the expression level combined with automatic type conversion. Moreover the foreign language’s evaluator allows interface code to be entered at the REPL, facilitating development.
We present a shared-memory integration of a CPython 3 runtime to Gambit Scheme. Our design rests on two components: a low-level CPython C API manipulated through Gambit’s C FFI, as well as a higher-level interface through the use of Gambit’s infix extension (SIX). This work enables immediate access to Python and PyPI packages thereby reducing work duplication and dramatically extending Gambit’s library ecosystem.
Fri 27 AugDisplayed time zone: Seoul change
23:30 - 01:00
|Adding AD to Scheme by Differentiating the Interpreter
|A lightweight approach for accessing Python modules from Gambit Scheme (Lightning Talk)
|Graphite: A Library for Data Visualization (Lightning Talk)