2010-10-21 12 views
19

Ich habe ziemlich viel Code in Erlang geschrieben, den ich in Anwendungen schreiben möchte, die in Objective-C geschrieben sind, zB auf dem iPad. Im Idealfall möchte ich ein Objekt haben, das die Erlang-Laufzeit kapselt; Dies könnte dann wie die Standard-Erlang-Shell, etwas entlang der Linien von zugegriffen werden:Erlang als ein eingebettetes System innerhalb einer Anwendung?

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

ich über die Leistung usw. nicht zu viel kümmern; Ich kann sehen, wie es funktionieren könnte, aber da ich nicht so viel darüber weiß, wie die Erlang VM implementiert ist, habe ich keine Ahnung, wie einfach oder schwierig es ist, oder ob jemand schon etwas Ähnliches getan hat. Ich weiß, dass es andere Möglichkeiten gibt, zwischen Objective-C und Erlang zu interagieren, aber sie scheinen ein unabhängig installiertes Erlang-System auf der Zielmaschine zu übernehmen. Ich würde es vorziehen, dass es wie eine Bibliothek ist, die Sie einfach mit der Anwendung verbinden.

Also meine Frage ist: ist das vergleichsweise einfach zu tun, und/oder hat jemand schon daran gearbeitet?

+2

Die Falle hier ist die "virtuelle Maschine". Während sich die Regel für das Tooling entspannt hat, gilt dies nicht für die Anforderung, den Code statisch zu verknüpfen. Jede Art von JITing/Kompilieren/VM - ERL, Flash, .NET/Mono oder anders ist verpönt. Obwohl ich mir sicher bin, dass es "machbar" ist, wenn genügend Zeit/Geld zur Verfügung steht, um eine eingebettete Version von ERL und Runtime zu erstellen, die auf iOS von Erlang-Quelle abzielt, wäre es nicht erlaubt, in AppStore irgendeinen dynamisch generierten Code einzubauen. Ich hege Zweifel darüber, ob jemand die Portierung übernommen hat. – stephbu

+0

Hmm Ich werde meine Worte ein wenig essen - scheint, dass http://sourceforge.net/projects/erlandstaticlib/ auf diesem Pfad ist ... Nicht sicher, in welchem ​​Zustand es ist. Regeln stehen immer noch dazu, dass sie im Appstore erscheinen kann nur statisch verknüpfter Code sein. – stephbu

+2

Mein Verständnis ist, dass das dynamische Generieren oder Herunterladen von Code nicht zulässig ist, während die Interpretation von vorhandenem (dh AppStore-geprüftem) eingebettetem Code in Ordnung ist. –

Antwort

Verwandte Themen