Right now they are supported on C-like level (separate building, exported API needs manual annotation, no metadata).
Is something more advanced considered? I imagine an ability to state "modules A, B and C belong to my.exe executable, modules D and E into lib1.dll, module F into lib2.dll" and then the compiler would scan all the sources to discover what gets used across DLL boundaries and automatically generate exported functions.
I found the nake and quite like the idea. Will it eventually make into nimrod distribution? I found no documentation for nimrod pretty.
the focus should be on making the compiler more usable as a library
What capabilities will this enable? (I know about idetools.) Are there plans to support code hot-swapping, Erlang style?
Are there plans to support code hot-swapping, Erlang style?
Implementing hot swapping at the DLL boundary level seems to be very very simple. Let's see if I can push somebody to implement it.
Demos: metadata (if that's what C# assemblies mean - I have no knowledge of those) may help to catch invalid DLL use (e.g. incompatible compiler settings). This is quite a common problem for teams. I do not like dynamic libraries per se (they make everything even more complicated) but a large Nimrod project would surely need them to compile in finite time.
For me the ideal in this direction would be full embedding of sources, building & debugging & analytical tools inside an application (where demanded), so it could be changed/debugged/recompiled on demand/verified/inspected/reasoned about anywhere and anytime.