2014-11-28 9 views
15

Jak to zrobić bezpiecznie? userDefinedFunction ma być niezaufanym kodem firm trzecich. Powinien być zbudowany na szybkim, zoptymalizowanym kodzie, ale nie powinien mieć bezpośredniego dostępu do systemu.Jak mogę bezpiecznie skompilować i uruchomić fragment kodu strony trzeciej w Haskell?

Przypuszczam, że powinien on łączyć Safe Haskell i System.Eval.Haskell. Czy są jakieś projekty lub samouczki na ten temat?

+2

'mueval' został opracowany z myślą o niektórych z tych właściwości. Niestety, prawdopodobnie nie spełnia wymagań. Byłoby wspaniale mieć wiązanie llvm-nacl. –

+0

Bez wymagania wydajności można użyć czegoś takiego jak Lua. Potrzebuję kodu intensywnego matematycznie wspomaganego przez użytkownika. –

+1

@Vi., Safe Haskell pomoże (być może dużo), ale nadal musisz uważać na użycie pamięci (będziesz chciał użyć opcji GHC do ograniczenia całkowitej sterty i stosu, i/lub użyć systemu operacyjnego, aby je ograniczyć), Czas procesora (twój system operacyjny może ci pomóc) i oczywiście błędy w GHC. – dfeuer

Odpowiedz

1

Istnieje strona wiki dla dokładnie this use case Można również rzucić okiem na kod źródłowy lambdabotów.

+0

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać link do odniesienia. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. – ekad

+0

Czy lambdabot wykonuje kod w sposób efektywny? –

Powiązane problemy