In Erlang/OTP there is support for loading modules via another Erlang node acting as boot-server and file-server.
This feature has been there for a very long time and it complicates the startup, the file module and the code server (erl_prim_loader).
This functionality might have been very useful and motivated 20 years ago when running on small memory restricted and disk less systems, but I suspect that there in no usage or interest for this functionality now.
The boot server (and remote file server) is activated with the -loader inet and -hosts Hosts flags to the erl command.
I have been working with Erlang for +20 years and have never used this.
We in the OTP team want to remove this functionality , but first I want to ask if someone really is using this. I would be really surprised if that is the case.
Are you using another E-node as boot-server and file-server?
Yes (or you intend to)
No (or you don’t intend to or don’t mind it being removed)
We have been using it and would continue to do so if its there: its useful for small embedded nodes without local storage: We can run the GRiSP executable directly in NOR flash (which is usually too small for storing all the BEAM files) and load the modules from a neighbor node. It would be cool if we can keep using that or have it built in optionally
Does the code server need to load code from another node, or can it be replaced with something that (say) loads from not-a-filesystem?
To clarify: we’ve talked about persuading k8s pods running the BEAM to load code modules on demand from things that aren’t filesystems. I know that’s vague; we’ve got nothing more concrete than that. And most things you’d want to load from (e.g. S3) can be mounted as filesystems anyway.