Ich mache ausgiebig Gebrauch von diesem, indem ich haskell geteilte Bibliotheken zusammenstelle, die außerhalb Haskell genannt werden.
in der Regel der beteiligten Aufgaben wären
- die richtigen ausländischen Ausfuhranmeldungen
- Storable Instanzen für alle Datentypen Sie
- erstellen, um die C-Strukturen (oder Strukturen in der Sprache Marschall müssen erstellen Sie erstellen Diese Informationen lesen Sie bitte
- Da ich die Haskell RTS nicht manuell initialisieren möchte, füge ich der lib selbst Initialisierungs-/Beendigungscode hinzu. (dllmain in windows __attribut__ ((Konstruktor)) auf Unix)
- Da ich keine von ihnen mehr brauche, erstelle ich eine .def-Datei, um alle Schließ- und RTS-Funktionen davor zu verbergen, in der Exporttabelle (Windows)
zu sein
- GHC verwenden, um alles zusammen
Diese Aufgaben sind eher Roboter und strukturiert, bis zu einem Punkt kompilieren Sie etwas, sie zu automatisieren schreiben konnte. Tatsächlich verwende ich selbst ein Tool, das die Abhängigkeitsverfolgung von Funktionen, die Sie zum Exportieren markiert haben, durchführt. Es wird sie zusammenfassen und die gemeinsam genutzte Bibliothek für Sie kompilieren und Ihnen die Deklarationen in C/C++ geben.
(leider ist dieses Tool noch nicht auf Hackage, weil es etwas ist, ich muss noch beheben und eine Menge mehr zu testen, bevor ich bequem bin dabei)
-Tool verfügbar ist hier http://hackage.haskell.org/package/Hs2lib-0.4.8
http://mldonkey.sourceforge.net/Main_Page – grettke
http://coherentpdf.com/blog/?tag=ocaml – grettke
Caveat (http://www-list.cea.fr/labos/gb/LSL/ caveat/index.html) ist ein Verifikationswerkzeug für kritisches eingebettetes C, das hauptsächlich in C++ geschrieben ist, aber OCaml als Skriptsprache verwendet (ein während einer interaktiven Sitzung erzeugtes Caml-Journal kann kompiliert und mit Caveat verknüpft werden, um jederzeit wiedergegeben zu werden) . –