Я хочу, чтобы мой языковой бэкэнд создавал функции и типы постепенно, но не загрязнял основной модуль и контекст, когда функции и типы не могут быть успешно построены (из-за проблем с пользовательским вводом).
Я задаю более ранний вопрос относительно этого.
Я могу видеть одну стратегию для этого: построить все во временном модуле и LLVMContext
, перейти на основной контекст только после успеха, но я не уверен, возможно ли это с текущим API. Например, я не знал бы, переносить ли этот контент между различными контекстами, поскольку они должны представлять собой отдельные островки функциональности LLVM, но, возможно, всегда есть альтернатива сохранить все в .bc и загрузить куда-нибудь еще?
Какие еще стратегии вы бы предложили для достижения этой цели?