> One interesting question I think is outstanding - from parsing the video carefully, it seems to me that devs are going to want ARM linux virtualized, vs AMD64.
Hahaha, look for a user-agent at 1:44:26 :) They use old Intel Mac for a virtualization demo.
There was a video on YouTube (in russian) where lead developer from MCST confess that they were unable to use this technology in practice. The entire software stack should be ported to strictly eliminate any usage of pointer magic in every place. They poured years on this and only succeed on porting libc and few small base libraries.
Afaik 10 years ago nvidia drivers were most stable and performant on linux. But yes they are proprietary and implemented in userspace for Xorg.
Today Linux graphics stack architecture have been significantly revamped and it requires more kernel code than before for DRM/DRI API and Wayland. nVidia just can't fit into this architecture with its proprietary/nda model without violating GPL for kernel modules.
1) This is kind of invariant failures (logic errors that should never happens) and handled by panics in the same way as C++ exceptions.
2) In most cases Result<T, E>/Optional is returned from a heavyweight operation (I/O, dictionary lookup, etc) compared to an easily predicted error checking branch.
3) Probably this is problems of a type system or design, not an error handling strategy.
4) Good luck of getting a stack trace of re-thrown (propogated) exception in C++.
Exceptions are not too bad, but they are very often misused.
We have switched to Nix as internal dependency manager for our C++ project. It is really exciting! No more "after commit XXX you need to (re)build/update YYY with ZZZ". Developers just type `nix-shell` and get sane guaranted to work environment on their local machines corresponding to git HEAD. If we need to add or patch dependency we just edit and commit nix file. And if developer need to rollback to old commit/branch it will get old/custom environment from cache without submodule rebuilds.
Awesome! And this is not just REPL. I think this software will bring up metaprogramming into a new level. We can instantiate template class at runtime (at configuration phase) and plug it into a working program. As result we get flexible runtime configuration with zero-overhead abstractions at the same time.