Внедрить новые реализации скомпилированных функций в собственный исполняемый файл во время выполнения?
Я реализую Lisp-подобный язык с основной целью разработки - полной совместимостью с C. Это означает статическую типизацию, прямую поддержку всех примитивов, определенных стандартом C, арифметику указателей и низкоуровневое управление памятью. Макросы расширяются виртуальной машиной, и вся программа преобразуется в C и компилируется. Это позволяет мне компилировать целые программы, но что, если я хочу иметь возможность изменять и компилировать определенные функции в интерактивном режиме? Есть ли что-то, что я могу использовать, чтобы интегрировать их обратно в работающий исполняемый файл без ручного взлома сборки?