|
|
|
|
|
by horsh1
913 days ago
|
|
For a systems language execution environment there is a huge list of crucial questions: what is a library, what is a package, how does linking works, how do you interact with different build systems, how you separately compile having only interface declarations, how to manage alternative libraries for the same interface, how to tweak compilation for multiple targets, how do you ffi? The answers to all of the above will have an impact on your language features: how you import, how you declare foreign entities, what visibilities are possible, what data storage classes are theere, what is the module initialization order, what code can be executed during module initialization, what is your conditional compilation mechanisms? |
|
I'm more interested in surveying the boundary between systems and application languages, rather than exploring the design space for a systems language.
In other words, what Python, Haskell or JavaScript lack that systems languages must have?