I found at least 9 Arc Lisp implementations on the GitHub, some of them seems outdated, but probably this is just because there is small codebase and all obvious bugs are already cleared.
Here is the list, sorted by update time:
* https://github.com/smihica/arc-js - Arc version in Javascript, to run in a browser (last update 3 days ago).
* https://github.com/arclanguage/anarki - community managed fork of the Arc3.1 (5 days).
* https://github.com/akkartik/arc - evolving fork of Arc3.1, with keyword arguments and generic functions (2 months).
* https://github.com/arclanguage/arc-nu - attempt to completely rewrite Arc3.1 in racket (3 months)
* https://github.com/awwx/ar - attempt to create a framework for languages like Arc (1 year)
* https://github.com/smihica/glaze - Arc version, written in C++ (2 years).
* https://github.com/arclanguage/rainbow-js - another attempt to write Arc in Javascript to run in the browser (2 years)
* https://github.com/conanite/rainbow - version of Arc, written in Java (3 years)
* https://github.com/evanrmurphy/lava-script - abandoned attempt to make a compiler from Arc to JavaScript (3 years)
Right now I only tried an Anarky and Arc-nu, trying to write a simple web crawler. And was surprised that Arc-nu not only hasn't a simple http client but even no way to connect to the socket.
By the way, I discovered it with my tool, which I'm writing in Arc to learn this language. This tool crawls GitHub starting from Anarki repository, to find other interesting projects, written in Arc.
I think all the errors you're seeing are due to running out of heap. How much memory do you have? Is there some per-process limit, perhaps to RLIMIT_AS?
Edit 35 minutes later. I can reproduce that it dies for me at the precise same iteration as you. And RLIMIT_AS is infinity, so that's not the issue. I've pinged the author for comment.
Thank you. But now I think it would be wise not to complain about the issue on the forum, but rather to create an issue on the project's github. Will do it now.
Well, thanks for the bug report. Well, I'll look into it when I have the time: the work which pays my bills has caught up with me once again and I don't have a lot of time to do hobby development. :)
The assertion error is a stack overflow. :) At present Arcueid makes use of a fixed-size stack within its virtual machine, and since the compiler still can't properly optimise tail recursion, your code overflows the stack.
That was what I thought :) Is there a place where I can increase the size of the fixed stack? I looked for the limit in the code, but couldn't find it.
Does it make sense to resize it on the fly when we discover we've overflowed the stack? Or are there potentially continuation pointers into the stack that would be non-trivial to track down?
Well, I haven't tried to run crawler with large depth setting yet. I discovered, that it have strange problems with threading and almost unable to process in parallel. Then I tried to investigate why. Will make a separate post on it, when will get some valuable information.
I don't know how to answer it :) There's a lot of code in the world. I can help answer questions on some of it, but I have no idea what's most promising.
I upvoted you because I was happy to see the list, and I'd be interested in other people's answers.
Well, probably I should ask another question, addressed to the different implementations' authors: "Why do you started to write your own implementation instead of making efforts to improve Anarki?" :)