Rewrite the exchange allocator to work without an active runtime