2015-07-21 18 views
11

Diciamo che scrivo un codice Haskell e lo compili in un'installazione Ubuntu a 64 bit, collegando staticamente tutti i pacchetti Haskell e le librerie c. Il risultato sarebbe compatibile binario con qualsiasi altra distribuzione Linux a 64 bit?Compatibilità binaria Haskell

+1

Dovrebbe essere, vedere ad es. http://stackoverflow.com/a/10549484/477476 e http://stackoverflow.com/a/5953787/477476 – Cactus

+0

Wow, il binario risultante da 'ghc -02 test.hs -optl-static -optl-pthread 'è circa 2,5 GB (test.hs contiene' main = print "yes" '). –

+1

in realtà 2,5 MB. Qualcuno non può leggere "ls' output haha" –

risposta

1

Sì, a causa del collegamento statico: è tutto nel file binario. E sì, possono diventare abbastanza grandi, ad esempio un output yesod può facilmente arrivare a 70 MB. Tuttavia, ha un server HTTP all'interno di 70 MB.

Quindi, il collegamento statico può quindi aiutare la portabilità, ma ha i suoi svantaggi in termini di dimensioni del file eseguibile.