2013-05-07 8 views
5

Diese Compiler für funktionale Sprachen können jeweils eine funktionale Sprache für C-Code kompilieren. Das NaCl-SDK von Google kann C kompilieren. Ist es sinnvoll, Native-Client-Anwendungen zu erstellen, indem Sie zuerst mit einem dieser anderen Compiler kompilieren und das Ergebnis über das Native Client SDK von Google ausführen?Kann ich Gambit-C, Mlton oder Chicken Scheme mit dem Native Client von Google verwenden

Wer hat dies getan oder konkrete Informationen über Möglichkeiten, Fallstricke, Einschränkungen?

Vielen Dank!

Antwort

2

Ich kann nur aus einer Position einiger Unsicherheit über die Interna von Google NaCl beantworten, aber ich weiß ein wenig über MLton.

In der Theorie sollte es funktionieren. In Wirklichkeit verwendet MLton Speicher auf sehr spezifische Weise und erwartet, die Kontrolle über die Umgebung zu haben. Die größte Gefahr, die ich sehen kann, ist, ob NaCl bestimmte Arten von Operationen einschränkt, die durchgeführt werden können, um die Integrität und Sicherheit der Ausführungsumgebung zu gewährleisten. This link schlägt vor, dass dies kein Problem sein könnte.

Auch der C-Code, den MLton generiert, ist wirklich, wirklich verrückt. Auch hier kommt es genau darauf an, was NaCl in Bezug auf die volle Allgemeinheit der Umgebung aufgibt, um die Sicherheit zu gewährleisten. Sie werden sehr wenig Kontrolle über den Code haben, den MLton ausgibt, und das Neuschreiben der Laufzeit ist ein gewaltiges Unterfangen, sollte eine Änderung erforderlich sein. Ich würde sehen, ob es funktioniert und dann anfangen, Teile des Laufzeitsystems zu optimieren, die Probleme verursachen.

Nebenbei, wenn Sie MLton-Code den Browser ausführen, würde ich gerne die Ergebnisse sehen! : D