...Blocks are running inside the same VM and although a wiring can switch, it cannot suddenly disappear. And we can find a lot of strategies to make this transparent to client code (including my idea of deferring actual switch which strangely had no feedback)....
Deferring, does that mean keeping the "old" block around as long as it's in use, while the "new" block is used by clients that have recently started using it?
If yes, this is (AFAIK) exactly what unix/linux has been doing for ages with executables: you can replace an executable that is already running, and processes which are already running keep using the old version.
It works very well combined with "kill" to cleanup old processes and restart them with the new version, so maybe in the case of blocks some kind of "kill" and "ps" equivalents would be needed to make this work well.
-Bertrand
