Ukazała się wersja Fable 5.1, stabilizująca nową generację kompilatora F# transpilującego kod do JavaScriptu, TypeScriptu, Pythona, Rusta oraz Darta.
Linia 5.x przynosi kluczowe usprawnienia w architekturze narzędzia i procesie budowania:
- Bezpośrednie wywołania MSBuild: Zastąpienie zewnętrznych bibliotek analizy projektów bezpośrednią integracją z silnikiem MSBuild, co eliminuje błędy parsowania w złożonych monorepo.
- Wsparcie dla TreatWarningsAsErrors: Pełna obsługa flagi
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>w plikach projektów, ułatwiająca egzekwowanie rygorystycznych reguł w potokach CI. - Współczesna składnia F#: Obsługa typów referencyjnych dopuszczających nulle (Nullable Reference Types), automatycznych właściwości
.Is*dla unii dyskryminacyjnych oraz pustych computation expressions. - Dojrzałość wieloplatformowa: Czystrza translacja AST dla głównego środowiska JS/TS oraz stabilniejsze generowanie kodu dla backendów w Rust i Pythonie.
Perspektywa architektoniczna
Kompilacja funkcyjnego, silnie typowanego języka takiego jak F# do JS w przeglądarce czy Pythona na serwerze to sprawdzony wzorzec dla zespołów szukających gwarancji typów bez ograniczeń runtime’u TypeScriptu.
Rezygnacja z kruchych warstw pośrednich przy parsowaniu projektów na rzecz natywnego MSBuild rozwiązuje odwieczny problem alternatywnych kompilatorów – podatność na desynchronizację z oficjalnym SDK .NET. Dla zespołów współdzielących logikę domenową między przeglądarką a backendem, Fable 5.1 stanowi wyjątkowo stabilny punkt odniesienia.
Źródło: GitHub