Re:Unison: a next-generation programming platform
by orvr on Sunday May 10, 2015 @04:47AM
(#9519342)
Wrong. In CL there is a well defined distinction between read time, compile time, load time and run time.
Re:Unison: a next-generation programming platform
by white-flame on Monday May 11, 2015 @07:19AM
(#9523841)
Compile-time and load-time occur during run-time. The run-time context of anything already executed is available to subsequent compile-time and load-time contexts. Of course, these then further affect the run-time context going forward.
While these "*-time"s are distinguished, they can be invoked and interplay arbitrarily, unlike most other languages. It's all fundamentally run-time, in contrast to those, especially when considering threaded environments where compilation and run-time execution can happen simultaneously.
This is a super common paradigm in Lisp, especially when it comes to class/structure/data definitions, where support functions of any type can be generated straight from the defs. There is no "automatic" language feature there, because no definition of "automatic" covers all useful cases. It's simply easy to do because of the homoiconic nature of Lisp (code = data = code, with easy manipulation to transform between them), and no real distinction between compile time and run time.