Closed calvis closed 10 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...
A lot of this port is done in a branch on IU's GitHub.
Now that we're using Nanopass, we're pretty committed to Chez/Petite until Nanopass supports other Schemes.
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).
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.
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.
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).
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.
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.
I try to compile Vicare on my MacBook 516 but failed. I will try next time if Vicare works.
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 .
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.