3 ms·
> ...It's become an obsession to get this thing running. I know that feeling... Well, if you're just to have it running somewhere so that you could play with i
by zoomablemind 5y ago
> ...It's become an obsession to get this thing running.
I know that feeling... Well, if you're just to have it running somewhere so that you could play with it, then it's just a matter of setting up a VM with old enough build tool chain.
On the other hand, if you indeed want to "modernize" the whole thing, then instead of simply throwing the existing project at a new compiler/tool chain, I'd rather embark on code analysis first to make sense of the following:
* the project structure (it appears to be rather compact and modular)
* dependencies, both external and internal
* for the internal dependencies, figure out the main primitives used and their APIs (like string, cell, ccell, voc_entry, hash etc.). These could be exercised separately to establish the expected behavior. Maybe write some tests.
* the build system. Well, it is autotools, so possibly it should just be plug-n-play now, unless some special config was used (like for packaging)
Once the code structure is more or less clear, the primitives isolated and possibly buildable separately, I'd delve into a boring and mindful review of the core operations code with the objective to itemize the assumptions/limitations (memory model, type sizes, some funky expressions like you showed).
While in the review, I believe it'll get clearer what part of the project indeed will need the modernization. This will guide your choice of compiler options to use with the newer compiler.
Well, it's very much doable, as the project seems compact and has some tests and examples. As for the expected performance of the "ported" code, well, this may be trickier to gauge, as some of the older gains may be unrealizable under the new architecture or may need some additional review just for that.
It's a nice project, and being already in github may attract some interest/help, if you find it worthwhile to put effort into it. Good luck!
P.S. I wonder, what is a simple use-case for a language like STOICAL? How could it or a similar lang be used in a modern day?
- mikewarot 5y ago>P.S. I wonder, what is a simple use-case for a language like STOICAL? Forth can, in theory, do anything Lisp can do... except it can't in practice. A big part of that this the ability to manipulate trees and strings as native objects. STOICAL solves that issue, and thus should make it possible to build almost anything. I want to explore that idea, but first I have to get this thing running. As for the archaic vocabulary, once I can get it compiled, and grok the structure of it, I can change those words around and use anything. It becomes a matter of personal preference.