3 ms·
> consistently go from source code to a binary Can you talk more about this?
by justinmeiners 6y ago
> consistently go from source code to a binary
Can you talk more about this?
- dan-robertson 6y agoLet’s say I have a big repo full of lisp. I want a program that uses some subset of this lisp. Similarly to if I had a big repo full of C programs and libraries and I wanted to build one of those programs (statically linking all the libraries it used). In CL, it is annoying and tricky to go from those files to an executable I can deploy. Typically you’d write some script to (use ASDF to) compile/load your various files and then dump the image specifying a binary. It’s a bit messy and not very portable.
- aidenn0 6y agoI will never understand how people have such a rosy view of C development. Is it just that today people think there is only GNU make, and only GCC or clang? Autotools used m4 because it was the most portable Unix tool, not because it's a good language to write your build scripts in...
- justinmeiners 6y agoI have had problems with C, but building my code was never one of them. You are right that I have only used GCC, Clang, and Visual Studio. I thought they use M4 because they were doing sophisticated preprocessing?
- aidenn0 6y agoI misremembered; M4sh (which uses m4 to generate portable bourne-ish shell scripts) is what was the lowest-common-denominator for autoconf.
- dan-robertson 6y agoPerhaps C was a poor example. I just mean “statically compiled language where files become objects and objects get linked into executables/libraries and this is done by a build system”. Perhaps rust would have been a better example as there is less variety in build systems.
- justinmeiners 6y agoMakes sense. I have noticed that deployment and compilation part of lisp isn't talked about often. The method you described is the best one I have found (load everything and dump an image.)
- flavio81 6y ago>I have noticed that deployment and compilation part of lisp isn't talked about often. Because it's trivial. Compilation is almost implicit, when loading a file. Creating an executable is only one line of code.