( enpassant | 2024. 09. 16., h – 15:49 )

Szerkesztve: 2024. 09. 16., h – 15:58
  • Nincs build idő, vagyis gyakorlatilag nulla. Az erősen statikusan típusolt nyelveknél elég sokáig tart egy nagyobb alkalmazás buildelése. Itt gyakorlatilag nincs build, mivel az egyes definíciók ellenőrzés és átalakítás után, egyből bekerülnek a közös kódbázisba, ahol azonnal használhatóvá válnak.

Ezt kicsit kifejtem, mert félreérthető. Egy hagyományos nyelvnél kb. ilyen a build folyamata:

  • a forrás fájlokat letöltjük a kódbázisból (pl. git),
  • a forrásokat lefordítjuk,
  • a szükséges függőségeket megkeressük, letöltjük, telepítjük,
  • linkeljük a lefordított kódokat és függőségeket futtatható fájlokká, könyvtárakká,
  • telepítjük a futtatható alkalmazást,
  • futtatjuk a szükséges teszteket.

Ezeket minden egyes esetben el kell végezni, ha csak a kódbázis (git) van meg, de nincs futtatható állomány és/vagy módosul valamelyik része. Utóbbi esetben sok build rendszer képes bizonyos dolgokat ilyenkor a korábbi buildből felhasználni, így gyorsabb lehet a folyamat.

Unison esetén, amikor a kódot írjuk és elmentjük a fájlt, máris megtörténik a fordítás, ez alapján történik a hibák jelzése (mint IDE-nél). Ha minden rendben, az esetlegesen megírt teszt is rendben lefut és minden függőség elérhető, akkor feltehetjük a kódbázisba az így lefordított kódot. Amint feltettük a kódbázisba, a forrást törölhetjük is. Tehát elegendő mindig egyetlen egy fájlban szerkesztenünk az épp fejlesztendő kódot.

Ebben az egy esetben futott a fordítás és a teszt az adott kódra. Többször már nem lesz rá szükség, amíg meg nem változik, de akkor az már új kód. Linkelni sem kell, mert, ha a függőség nincs a kódbázisban, és az adott forrásban sincs, akkor nem fog fordulni sem.

Tehát a kódbázis mindig egy összeépített, futó kódot tartalmaz. A fordítás és teszt futtatás csak egyszer történik meg, a kódbázisba feltöltéskor, többször sohasem.

Ui.:
A kódbázisba tetszőleges definíciót felrakhatunk, pl. akár egyesével a megírt függvényt, vagy típust, ...
Pl. megírunk egy típust, felrakjuk, kitöröljük a forrását, megírunk egy fv-t, felrakjuk, kitöröljük a forrását, ...