Introducing MLFE: ML-Flavoured Erlang
noisycode.com
noisycode.com
It's an extremely exciting proposition and I both hope and think it will become a force to be reckoned with in the erlang community.
(The name is currently not well accepted on the erlang mailing list, by the way, but is yet to be commented on by j14159)
BTW, there have been at least two other ML on BEAM attempts before. One experimental in the open and another unpublished one.
That said, I think the theory was that dialyzer's success typing was the most industrially pragmatically acceptable type system available at the time -- the one that you could actually get people to use -- and given all that, it's not half bad. Certainly better than nothing.
Yeah, Dialyzer is better than nothing. I guess I get saddened by the lack of parametric polymorphism due to being spoiled by Rust and Haskell, and have been sceptical due to noticing that type inference sometimes falls back to the top type without me realizing. Kind of hard to trust a type system to have your back after that.
(does one pronounce MLFE as "milfy"?)
The only thing needed is support for dynamic loading and unloading of modules.
The biggest problem, which dynamic systems also suffer from, is how to smoothly perform the updates with inflight requests.
Unload all the modules and reload them again.
In Cedar, or ETHZ Oberon for that matter, all executables are dynamically loaded and can be either used by other modules or exposed to the user as commands.
Loading a new version means unloading the module and its dependencies.
When it gets re-loaded it has a the new interface available.
Of course, there is the issue to solve any possible compilation errors before the module can be loaded again.
A similar approach can be done in Java and .NET via classloaders and app domains respectively.