ICFP 2021
Sun 22 - Sat 28 August 2021
Sat 28 Aug 2021 00:00 - 00:30 at Scheme - Session B

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 Aug

Displayed time zone: Seoul change

23:30 - 01:00
Session BScheme at Scheme
23:30
30m
Talk
Adding AD to Scheme by Differentiating the Interpreter
Scheme
Mehrdad Maleki Mastercard Labs, Barak A. Pearlmutter Maynooth University, Jeffrey Mark Siskind Elmore Family School of Electrical and Computer Engineering, Purdue University
00:00
30m
Talk
A lightweight approach for accessing Python modules from Gambit Scheme (Lightning Talk)
Scheme
Marc-André Bélanger Université de Montréal, Marc Feeley Université de Montréal
00:30
30m
Talk
Graphite: A Library for Data Visualization (Lightning Talk)
Scheme
Hazel Levine Indiana University, Sam Tobin-Hochstadt Indiana University