eholk / harlan

A language for GPU computing.
Other
1.19k stars 83 forks source link

Make Harlan work with Vicare #11

Closed calvis closed 10 years ago

calvis commented 12 years ago

Vicare is a fork of Ikarus that seems to be actively maintained. If we used Vicare, it could be a submodule of Harlan, and we could remove the "Install Petite Chez Scheme" step from the install instructions.

There is currently a WIP branch for this.

eholk commented 12 years ago

The Vicare Github repo is at https://github.com/marcomaggi/vicare.

One potential downside to this is that Vicare brings in a couple of its own dependencies, like GMP. This makes the install process slightly more complicated...

eholk commented 11 years ago

A lot of this port is done in a branch on IU's GitHub.

eholk commented 11 years ago

Now that we're using Nanopass, we're pretty committed to Chez/Petite until Nanopass supports other Schemes.

akeep commented 11 years ago

Sorry to reopen a closed issue, but as of today, the nanopass framework now supports Vicare and Ikarus. (Ikarus is supported partially because it is easier to build on Mac OS X).

eholk commented 11 years ago

That's great news! Maybe this can help us overcome the high memory usage issues by precompiling languages.scm.

When I was working on this the last time, I think we got hung up on missing open-process-ports in Vicare. It wasn't clear to me how to implement it ourselves, but maybe we can add that to Vicare.

webyrd commented 11 years ago

That is so cool! :) is Clojure next?

On Oct 17, 2013, at 16:45, Andy Keep notifications@github.com wrote:

Sorry to reopen a closed issue, but as of today, the nanopass framework now supports Vicare and Ikarus. (Ikarus is supported partially because it is easier to build on Mac OS X).

— Reply to this email directly or view it on GitHub.

akeep commented 11 years ago

Probably Racket next. Baby steps. The idea is to move to the most similar systems first. Vicare and Ikarus were an obvious target, because they provide many of the same features in the same way Chez Scheme does (mostly due to the IU provenience). Racket is the next closest with a similar macro system and compile-time environment that operates a little differently. Clojure after that (and hopefully I'll find someone to help with that).

As far as open-process-ports. It looks like Ikarus has a "process" function that does pretty much the same thing. Unfortunately, Vicare seems to have dropped this in favor of exposing more of the low-level posix fork, exec, etc. You might think of starting with Ikarus. There are less features, and it is older, but my experience so far is that it is faster than Vicare, though it does lack some nice features like line and column number reporting on errors, though I've written some code to look up the extended information (though I've not exposed the parameter to use it).

eholk commented 11 years ago

It turns out we were just using open-process-ports to send the output to the C compiler over stdin and then read the compilation results. Vicare's system reports the process exit status to us, which is what we should have been doing instead of reading from stderr. I decided to just output the program to a temporary file and then we don't need to be able to write to gcc's stdout.

I was able to compile one file with Vicare, which is further than I've ever gotten before. Closing this bug the rest of the way should be pretty straightforward now. The compile time is still over a minute, and I had some trouble precompiling.

eholk commented 10 years ago

As of deb8d47b5c96673ff9e20aeba51ff7c8735fe15a, Harlan's tests pass using Vicare on Travis CI.

The regular Harlan compiler still doesn't automatically guess the right output filename, but this will be easy to add.

muyinliu commented 10 years ago

I try to compile Vicare on my MacBook 516 but failed. I will try next time if Vicare works.

eholk commented 10 years ago

Vicare is currently not supported on Mac. I'm hoping to poke at that some and I'll submit pull requests if I manage to get Vicare to build there.

On Fri, Dec 6, 2013 at 3:18 AM, muyinliu notifications@github.com wrote:

I try to compile Vicare on my MacBook 516 but failed. I will try next time if Vicare works.

— Reply to this email directly or view it on GitHubhttps://github.com/eholk/harlan/issues/11#issuecomment-29971109 .