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
11
A
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.
Es sollte, siehe z.B. http://StackOverflow.com/a/10549484/477476 und http://StackOverflow.com/a/5953787/477476 – Cactus
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" '). –
tatsächlich 2,5 MB. Jemand kann 'ls' nicht ausgeben, haha –