Я ищу способ безопасного запуска произвольного кода на Haskell (или отказываюсь запускать небезопасный код).
Должно иметь:
- модуль / белый список функций
- тайм-аут на исполнение
- ограничение использования памяти
Возможности Я бы хотел бы увидеть:
- способность убить нить
- компиляция модулей в нативный код
- кэширование скомпилированного кода
- одновременный запуск нескольких переводчиков
- сложный тип данных для ошибок компилятора (вместо простого сообщения в строке)
С такой функциональностью можно было бы реализовать плагин для браузера, способный выполнять произвольный код на Haskell, что я и имею в виду.
РЕДАКТИРОВАТЬ: У меня есть два ответа, оба отлично. Спасибо! Грустная часть в том, что, похоже, нет готовой библиотеки, просто похожая программа. Это полезный ресурс, хотя. В любом случае, я думаю, что подожду выпуска 7.2.1 и попытаюсь использовать SafeHaskell в моей собственной программе.