The GUI `RouteUI::verify_new_route_name` checks for colons.
This left the session vulnerable, from calling set_name
from other places (e.g. ctrl surfaces).
It seems that a `Glib::ConvertError` is thrown, and then the
function that catches the error causes another ConvertError in
`err.what()` (which presumably include the filename that
causes the error).
relevant part of the backtrace (macOS Crashdump):
```
Glib::ConvertError::throw_func(_GError*) + 56
Glib::Error::throw_exception(_GError*) + 292
Glib::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, Glib::ustring const&) + 131
StringPrivate::Composition& StringPrivate::Composition::arg<Glib::ustring>(Glib::ustring const&) + 25
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > string_compose<Glib::ustring> (...) + 81
PBD::run_functor_for_paths(...) + 1313
```
We simply ignore the direct out sends from trax.
Note `DEFINE_ENUM_CONVERT` for Role is defined in delivery.cc
so we need a static method to directly read the send's role.
This fixes a crash when SSL's channelstrip calls set-selection
early on during session load, during Session::load_routes.
Session::add_routes_inner calls calls ARDOUR::GUIIdle() which
can trigger a SSL Native Channel Strip 2" VST3 to call
VST3PI::setContextInfoValue, which in turn emits a
CoreSelection::send_selection_change before the session is
fully loaded.
This also handles various edge cases where a given AC may
not [yet] exist.
* increase memory pool (bindings alone require 1.5 MB), and all session
scripts have a shared memory pool.
* use TLSF (like Lua DSP processors) - this fixes an issue with atomics
(notably int62_t, temporal) on macOS and ARM, which need to be
aligned.
On Windows, variables defined as having thread storage can have a different address in different threads and as such, they aren't allowed to be imported or exported from a DLL.
This likely won't make much difference on modern systems,
since it requires a kernel based I/O scheduler. which is
disabled (set to "none" for NVMe and SSDs).