On 21/10/15 15:30, Martin Lucina wrote:
I still care very much about a tool to facilitate quick iteration for
developers (and more). In fact, I think it's absolutely essential for wider
adoption of rumprun by developers or sysadmins who do not necessarily have
systems programming experience.

With "quick" interation:
1) vi open in one terminal.  edit + save
2) <up-arrow results in:>rumplaunch -c configs $some-copypasted-params<enter>

Without "quick" iteration:
1) vi open in one terminal.  edit + save
2) <up-arrow results in:>rumpbundle configs; $some-copypasted-params<enter>

So the difference is that phase 2 takes half a second longer, usage otherwise 100% same.

Not sure why systems programming experience would be a concern there.

However, it is now clear to me (and your "Rise and Fall of the OS" article
helped with that) that any such tool involves introducing policy of some
kind (e.g. "convention over configuration", "autoconfigure everything",
...) and that such policy should be implemented at a higher layer built on
top of (and possibly developed independently from) the rumprun stack, not
as part of it.

It follows from the above is that config.c should be an optional,
swappable, component, but I take it that's not controversial in any way?

Dunno, hadn't thought about a pluggable config.c. Can you give a concrete example of when replacing the config.c would be necessary? Autoconfigure everything sound like a particular config, not your own config.c implementation. Doing some custom, unsupported-by-config networking configurations sounds either like a multibaked binary and params for it, or an __attribute__((constructor)). I can't quite think of a situation where pluggability to config.c would be needed.

My initial reaction is that if people need to start by "la la la writing my own config module in C", the one we provide sucks too much (see also the argument you made about non-programmers). Plus, as usual, opening up the necessary interfaces to the public requires the typical 10-100x effort in figuring out what they should look like (which is why we keep having these arduous threads).

On one hand, Lampson writes "don't hide power", and on the other hand he writes "keep secrets". It's not always obvious where the division goes. So, like I said, I hadn't thought about optional config modules, and therefore I'll lean toward the simplicity of "keep secrets".

I don't think it's controversial if someone demonstrates a clear need. However, what I think we should be shooting for now is people being able to impose that upper layer config tool *without* having to start rewriting the lower-layer bits. After all, that's what an OS-like component should provide.

Reply via email to