Eta GSoC 2018 Wrap Up

Jyothsna Srinivas
Eta programming language
2 min readAug 24, 2018

--

Google Summer of Code

For the past three months the Eta team has mentored two students as part of the Google Summer of Code program. The program was a huge success and both the projects will be integrated into the main compiler soon.

1. High Performance Web Server with Fibers

GitHub Link

Goal

Implement a highly scalable web server with lightweight threads.

Description

Eta has experimental support for Fibers, a lightweight threading mechanism that lets the developer have control over when to yield the thread. A good test of their effectiveness is to write a non-trivial application — a web server. This project will re-implement the Warp web server using Eta Fibers.

Result

Jitian Deng’s Fibers-based implementation of Warp is 2x faster than the default implementation that uses heavy-weight threads.

Mentors

2. Purity & Nullability Analysis

GitHub Link & Blog Post

Goal

Develop a tool that can take a Java library as input and classify each method and field’s purity and nullability, so that we can feed that data into an FFI generator to automate highly precise bindings for Java libraries.

Description

When binding to Java libraries using Eta’s Foreign Function Interface (FFI) mechanism, the user needs to know the Java library well enough to decide whether the object in question is pure or impure (requires a pure or monadic return type) and to decide whether to wrap the return type in a Maybe, indicating that the result may be null. If the user fails to do either of these correctly, and doesn’t go with the worst-case option of making the return type monadic and wrapped in a Maybe, strange bugs can ensue.

Result

Mriganka Basu Roy Chowdhury has implemented a working purity & nullability analyzer with a fairly conservative algorithm.

Mentors

We thank GSoC for conducting a wonderful edition, the mentors for their time, the students for their hard work and the Eta community members for encouraging the students.

--

--