2015-07-21 8 views
11

Angenommen, ich schreibe Haskell-Code und kompiliere ihn in einer Ubuntu 64-Bit-Installation, wobei alle Haskell-Pakete und c-Bibliotheken statisch verknüpft werden. Wäre das Ergebnis binär kompatibel mit anderen 64-Bit-Linux-Distributionen?Haskell-Binärkompatibilität

+1

Es sollte, siehe z.B. http://StackOverflow.com/a/10549484/477476 und http://StackOverflow.com/a/5953787/477476 – Cactus

+0

Wow, die binäre, die aus 'ghc -02 test.hs -optl-static-OPTL-Pthread resultiert 'ist etwa 2,5 GB (test.hs enthält' main = print "ja" '). –

+1

tatsächlich 2,5 MB. Jemand kann 'ls' nicht ausgeben, haha –

Antwort

1

Ja, wegen der statischen Verknüpfung - es ist alles in der binären. Und ja, sie können ziemlich groß werden, zum Beispiel kann eine Ausgabe von yesod leicht 70MB sein. Dennoch hat es einen HTTP-Server innerhalb dieser 70 MB.

So, statische Verknüpfung kann so Portabilität helfen, hat aber seine Nachteile in Bezug auf ausführbare Dateigröße.