Eric Holk

Results 81 issues of Eric Holk

A program like this one doesn't pass type inference: ``` (module (define (main) (foo 5))) (define (foo x) (println 5))) ``` The type inferencer tries to type `foo` in isolation,...

Bug

With type inference, it's sometimes surprising what types we end up with. We should add a tool that infers the types and then dumps out the types that Harlan found....

Feature

The `remove-nested-kernels` pass can't follow these nesting paths, and should. This is especially important as we rely more on libraries.

Bug

Right now you can't just use `==` on an ADT. You can get around this by writing your own equality predicate, but this is some of the most tedious code...

Feature

We're having to use while loops and `set!` a lot, which is making optimizations hard later in the compiler (for example, see #56). We should add a let loop form,...

Now that we have error reporting, we should have tests to make sure we throw errors where we are supposed to. I marked one test with the `mustfail` tag to...

Easy
Testing

It'd be nice to have some system for automatically tracking benchmark performance over time. We want to make sure we understand the performance impact of changes to the compiler. Ideally...

Infrastructure

Harlan generates some variable definitions that aren't ever referenced. Some OpenCL compilers complain about this, which is annoying. It'd be good to add a pass that removes definitions that are...

Compiling https://github.com/eholk/harlan/blob/master/test/transpose.kfc fails with these C++ compilation errors: ``` g++ -x c++ - -x none ./rt/libharlanrt.a -I./rt -o transpose -framework OpenCL Exception in g++-compile-stdin: : In function ‘int main()’: :36:...

Bug

The easiest way to do this would be to make a wrapper `main` function in the runtime that calls `harlan_main` and ignores the return value. In case main returns something...