Я бы отговорил вас от пробных регионов. Проблема в том, что для обеспечения безопасности регионов вам нужна очень сложная система типов - я уверен, что вы просмотрели статьи Тофте и Талпина, и у вас есть представление о сложностях, с которыми это связано. Даже если регионы работают успешно, очень высока вероятность того, что вашей программе потребуется тот, чье время жизни - время жизни программы - и этот регион, по крайней мере, нужно собирать мусором. (Вот почему у Циклона есть регионы и GC.)
Поскольку вы только начинаете, я бы посоветовал вам заняться сборкой мусора. Современные сборщики мусора могут быть сделаны довольно быстро без особых усилий. Основная проблема заключается в выделении из смежного свободного пространства, чтобы выделение было быстрым. Это помогает ориентироваться на AMD64 или другую машину с резервными регистрами, поэтому вы можете использовать аппаратный регистр в качестве указателя распределения.
Есть много хороших идей для адаптации; Один из самых простых в реализации - это сборщик на основе страниц, такой как сборщик копий Джоэла Бартлетта, в котором идея заключается в том, что вы выделяете только из полностью пустых страниц.
Если вы хотите изучить существующие сборщики мусора, Lua имеет довольно сложный инкрементный сборщик мусора (поэтому нет видимых времен паузы), а реализация занимает всего 700 строк. Он достаточно быстр, чтобы его можно было использовать во многих играх, где важна производительность.