2014-11-28 10 views
15

Come fare in modo sicuro? userDefinedFunction si suppone che sia un codice di terze parti non attendibile. Dovrebbe essere costruito per codice veloce e ottimizzato, ma non dovrebbe essere in grado di accedere direttamente al sistema.Come posso compilare ed eseguire snippet di codice di terze parti in Haskell in modo sicuro?

Suppongo che dovrebbe combinare Safe Haskell e System.Eval.Haskell. Ci sono progetti o tutorial che trattano questo?

+2

'mueval' è stato sviluppato tenendo presenti alcune di queste proprietà. Purtroppo, probabilmente non è all'altezza delle prestazioni. Sarebbe bello avere qualche binding di llvm-nacl. –

+0

Senza requisiti di prestazioni, è possibile utilizzare qualcosa come Lua. Voglio un codice per l'utilizzo intensivo della matematica fornito dagli utenti. –

+1

@Vi., Safe Haskell ti aiuterà (forse molto), ma devi ancora stare attento all'uso della memoria (ti consigliamo di utilizzare le opzioni di GHC per limitare l'heap e lo stack totali e/o utilizzare il tuo sistema operativo per limitarli), Tempo di CPU (il tuo sistema operativo potrebbe essere in grado di aiutare) e, naturalmente, bug in GHC. – dfeuer

risposta

1

C'è una pagina wiki per esattamente this use case Si potrebbe anche dare un'occhiata al codice sorgente lambdabots.

+0

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. – ekad

+0

Fa lambdabot eseguire il codice in modo performante? –

Problemi correlati