3 ms·
Shell scripts just slap commands together. You could just be a human interpreter reading the source and get the job done. C is a much more fundamental requireme
by Sir_Cmpwn 8y ago
Shell scripts just slap commands together. You could just be a human interpreter reading the source and get the job done. C is a much more fundamental requirement of SBCL. Much more so than in the way SCBL depends on Python, for example (e.g. it doesn't).
Listen, I get that in the ivory tower of lisp you don't like looking at the little C bricks at the bottom, but the fact is that they exist and C is a hugely important language upon which the entire modern world of computing is built.
- phoe-krk 8y agoSure, all of us execute stuff on kernels that are written in either C or C++ or C# or Objective-C, utilizing runtimes that are written in the same languages and calling APIs that are defined by the C application binary interface. That family of languages isn't going anywhere and choosing C instead of raw assembly is often chosen out of practical reasons, such as code maintainability. Still, I find it hard to put an equality sign between "X has a runtime written in C" and "X is written in C".
- Sir_Cmpwn 8y agoI said "implemented" in C. I'd argue that the runtime == the implementation.
- phoe-krk 8y agoThis doesn't really sound sane to me. In this particular case, it would mean that if you throw away SBCL's compiler, SBCL's standard library, SBCL's extensions, and replace them with something completely different, you still get the same Lisp implementation because all of the aforementioned elements aren't a part of what you call the implementation.
- aidenn0 8y agoThe runtime for sbcl is just the garbage collector and parts of the OS interface. It's not like the JVM (or e.g. GNU clisp) where the runtime is interpreting code. The OS interface for any program that is targeted at *nix is likely to be written at least partly in C, because POSIX is very hostile to non-C languages, which leaves us with the garbage collector. If the GC's implementation language is the most important thing for an implementation then every language implemented mostly in C++, but using bdwgc for garbage collection is actually implemented in C and assembly.
- pjmlp 8y agoFunny you say that, because Windows libc is actually implemented in C++ with extern "C" {} for the ISO C entry points.