The UNIX way doesn't involve shared memory in that sense, unless multiple processes are modifying the same files at the same time (known to be a bad idea). Instead it's more akin to go's channels and go procs. Use text between unix processes.
In context, I believe the author means that having a build system which splits into independent, simultaneously executing processes (such as `make -j 5` or some such) tends to have an advantage over ASDF's monolithic process model which doesn't take full advantage of multiple cores/CPUs.
'Unix way' to compilation: possibly parallel compile activities by running multiple compiler instances as programs
'ASDF way' to compilation: compile multiple files in a serialized fashion using one Lisp image for compilation
To run multiple compile activities inside one Lisp image, one would require that something like the file compiler is thread safe and corresponding stuff implemented by the program in the compile-time environment is thread-safe, too.
11 comments
[ 0.19 ms ] story [ 1019 ms ] threadWhy is this true? Because parallel/shared memory access is hard to get right?
For processes, ASDF comes with UIOP which contains portable code for multiprocessing (among other things).
'Unix way' to compilation: possibly parallel compile activities by running multiple compiler instances as programs
'ASDF way' to compilation: compile multiple files in a serialized fashion using one Lisp image for compilation
To run multiple compile activities inside one Lisp image, one would require that something like the file compiler is thread safe and corresponding stuff implemented by the program in the compile-time environment is thread-safe, too.
> In the spirit of the original Lisp DEFSYSTEM, it compiles and loads software...
ASDF stands for Another System Definition Facility.