Dies ist der Befehl js_of_ocaml, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
js_of_ocaml – OCaml-Bytecode für den Javascript-Compiler
BESCHREIBUNG
js_of_ocaml(1) ist ein Compiler von OCaml-Bytecode-Programmen zu Javascript. Es macht es
Es ist möglich, OCaml-Programme zu schreiben, die auf Webbrowsern ausgeführt werden.
Es enthält Bindungen für einen großen Teil der Browser-APIs und der generierten Programme
Es wurde gemessen, dass der OCaml-Bytecode-Interpreter normalerweise schneller läuft.
ANWENDUNG
Ihr Programm muss zunächst mit dem OCaml-Bytecode-Compiler kompiliert werden ocamlc(1).
Javascript-Bindungen sowie eine entsprechende Syntaxerweiterung werden von bereitgestellt
js_of_ocaml Paket.
ocamlfind ocamlc -package js_of_ocaml -package js_of_ocaml.syntax \
-syntax camlp4o -linkpkg -o input_file.byte input_file.ml
Dann führe die js_of_ocaml(1) Compiler zum Erstellen von Javascript-Code.
js_of_ocaml [ Optionen ] input_file.byte
OPTIONAL
Die folgenden Befehlszeilenoptionen werden erkannt von js_of_ocaml(1).
-debuggen Name
Debug-Modul Name
-deaktivieren Name
Optimierung deaktivieren Name
-ziemlich
Drucken Sie die Ausgabe hübsch aus
-Debug-Informationen
Debug-Informationen ausgeben
-noinline
Inlining deaktivieren
-noruntime
enthalten nicht die Standardlaufzeit
-Höchststufe
Kompilieren Sie ein Toplevel
-I dir Speichern dir zur Liste der Include-Verzeichnisse hinzufügen
-o Datei
Legen Sie den Namen der Ausgabedatei fest auf Datei
-Hilfe Zeigt die Liste der Optionen an
--help Zeigt die Liste der Optionen an
MERKMALE, EINSCHRÄNKUNGEN
Die gesamte OCaml-Standardbibliothek sollte unterstützt werden, mit Ausnahme der Eingabe-/Ausgabekanäle.
schwache Referenzen und die meisten Funktionen des Sys-Moduls. Zusätzliche Bibliotheken wie Bigarray,
Unix, Thread oder Str werden nicht unterstützt.
Tail Call ist im Allgemeinen nicht optimiert. Selbstrekursive Funktionen (wenn der Schwanz
Aufrufe beziehen sich auf die Funktion selbst) werden in eine Schleife kompiliert.
Rekursive Module werden derzeit nicht unterstützt.
Aus Performancegründen weicht die Datendarstellung von der üblichen Darstellung ab. Allen voran,
Ganzzahlen sind 32 Bit (anstelle von 31 oder 63 Bit) und Gleitkommazahlen sind nicht eingerahmt. Als Konsequenz,
Marshalling-, polymorphe Vergleichs- und Hashing-Funktionen können zu unterschiedlichen Ergebnissen führen
wie üblich:
· Das Marshalling von Floats wird nicht unterstützt (Unmarshalling funktioniert);
· Die polymorphe Hash-Funktion liefert bei Datenstrukturen nicht die gleichen Ergebnisse
mit Schwimmern;
· Diese Funktionen sind möglicherweise anfälliger für einen Stapelüberlauf, da der Javascript-Stack klein ist.
Verwenden Sie js_of_ocaml online über die Dienste von onworks.net