2010-10-21 12 views
19

Ho un bel po 'di codice scritto in Erlang, che voglio includere nelle applicazioni scritte in Objective-C, ad esempio sull'iPad. Idealmente, vorrei avere un oggetto che incapsula il tempo di esecuzione di Erlang; questo potrebbe quindi essere letta come il guscio Erlang di serie, qualcosa sulla falsariga di:Erlang come sistema integrato all'interno di un'applicazione?

ErlangRT *runtime = [[ErlangRT alloc] init]; 
ErlangValue *retval = [runtime execute:@"io:format(\"hello world~n\")"]; 

non mi preoccupo troppo di prestazioni, ecc; Posso vedere come potrebbe funzionare, ma poiché non so molto sul modo in cui è implementata la VM Erlang, non ho idea di quanto sia facile o difficile da fare, o se qualcuno ha già fatto qualcosa di simile. So che ci sono altri modi di interfacciare tra Objective-C ed Erlang, ma sembrano presupporre un sistema Erlang installato in modo indipendente sulla macchina di destinazione. Preferirei che fosse come una libreria a cui ti colleghi semplicemente con l'applicazione.

Quindi la mia domanda è: è relativamente facile da fare e/o qualcuno ha già lavorato su questo?

+2

La trappola qui è la "macchina virtuale". Mentre la regola sugli strumenti è stata rilassata, l'obbligo di collegamento statico del codice non lo ha fatto. Qualsiasi tipo di JIT/compilazione/VM - ERL, Flash, .NET/Mono o altrimenti è corrucciato. Mentre sono sicuro che sia "fattibile", dato abbastanza tempo/denaro per creare una versione embedded di ERL e runtime che si rivolge a iOS dal sorgente Erlang, non ti sarà permesso di inserire in AppStore qualcosa che generi codice in modo dinamico. Con questo disincentivo dubito che qualcuno abbia intrapreso il compito di portarlo. – stephbu

+0

Hmm Mangerò un po 'le mie parole - sembra che http://sourceforge.net/projects/erlandstaticlib/ sia su quel percorso ... Non sono sicuro in che stato è. Le regole continuano a essere visualizzate nell'appstore può essere solo un codice linkato statico. – stephbu

+2

La mia comprensione è che la generazione o il download dinamico del codice è off limits, mentre l'interpretazione del codice incorporato esistente (cioè con AppStore-controllato) è OK. –

risposta

Problemi correlati