Fetching the latest programs, projects, and workspace data.
Eta is a dialect of Haskell on the Java Virtual Machine.
Showing 2 of 2 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Mriganka B R Chowdhury
<p>I propose to work on a tool that, given JVM bytecode, decides for each method, whether it performs an effectful computation (including IO, global variable mutation etc.), or it is referentially transparent, that is it yields the same result everytime it is called with same arguments. Such functions are called 'pure functions'. The tool is also supposed to provide information about whether the return type can be the special <code>null</code> value, requiring a <code>Maybe a</code> during Eta-interop. Automated analysis for such data can simplify the development process, by enabling an ffi-generator to generate bindings for Java , ideally without requiring any manual input from the developer. Since the project is mostly exploratory, the analysis is intended to be conservative, but never wrong, in the sense that it should not recommend a return type of <code>a</code> for a function that may return <code>null</code>, but may recommend <code>Maybe a</code> for a function that never returns <code>null</code>. But the aim is to, of course, minimize the number of such cases.</p>
Mentors: Student: Jitian Deng
<p>The aim of this project is to re-implement Warp with Fibers to demonstrate the effectiveness of Fibers. To complete that, the following goals need to be reached:</p> <ol> <li>Implement non-blocking I/O support for Fibers.</li> <li>Recognize the parts of code related with I/O and threads, and rewrite them with Fibers</li> <li>Write a benchmark for the performance of Warp.</li> <li>Perform a detailed analysis and tune performance.</li> </ol>