devnews.pl

Main Menu

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania

logo

devnews.pl

  • Informacje
    • Systemy i przeglądarki
    • Gadżety
  • Narzędzia
  • Frontend
  • Backend
  • QA
  • Języki programowania
Narzędzia
Home›Narzędzia›ReScript 9.0 z zewnętrzną konfiguracją stdlib

ReScript 9.0 z zewnętrzną konfiguracją stdlib

By Bernadeta Zapała
22 lutego 2021
61
0
Share:

ReScript powstał przez połączenie łańcucha narzędzi kompilatora BuckleScript ze składnią języka programowania Reason. Jest językiem o solidnych typach, kompilującym się do wydajnego i czytelnego języka JavaScript. W lutym pojawiło się jego główne, stabilne wydanie – ReScript 9.0. Zmiany wprowadzono zarówno w składni, jak i w ustawieniach kompilatora.

Kompilator w ReScript 9.0

Poprzednie wersje ReScript nie pozwalały na wysyłanie kodu JS bez zdefiniowania zależności package.json od bs-platform. Z tego powodu praca programistów stawała się bardziej złożona, aby spakować kod biblioteki, musieli oni korzystać z bundlera .
Dlatego teraz do podstawowej funkcjonalności kompilatora dodano zestaw modułów stdlib, tj. Belt czy Pervasives. Każda nowa wersja bs-platform ma odpowiednią, pasującą pod kątem zgodności ze środowiskiem wykonawczym wersję @rescript/std.

Pozostałe zmiany w kompilatorze

ReScript generuje kod zoptymalizowany pod kątem tree-shaking. Co więcej, program generuje dane wyjściowe, tak, że nie mają wpływu na ostateczne rozmiary pakietów JS. Przy pomocy narzędzi takich jak esbuild można odrzucić niepotrzebny kod, upewniając się, że jego ostateczna wersja będzie oszczędna. Ostatnim już ulepszeniem kompilatora jest generowanie kodu do dopasowywania wzorców. Poniżej znajduje się kod napisany w ReScript, jeszcze nieskompilowany:

RES
type test =
| NoArg
| AnotherNoArg
| OtherArg(int)

let test = x =>
switch x {
| NoArg => true
| _ => false
}

W poprzedniej wersji zostałby on skompilowany do takiego wyniku:

function test(x) {
if (typeof x === "number") {
return x === 0;
} else {
return false;
}
}

W ReScript 9.0 kompilacja wywoła zoptymalizowany kod, z usuniętymi niepotrzebnymi kontrolami typeof:

function test(x){
return x === 0
}

Poprawki w składni ReScript 9.0

Jedną z ważniejszych poprawek jest zmiana klauzuli when na if w instrukcji switch. Klauzula when jest już przestarzała, dlatego program formatujący automatycznie wykryje i przekonwertuje ją na if. Kolejnym ulepszeniem jest czystsza składnia wielowariantowa. Wielowarianty z nazwami identyfikatorów zawierającymi np. myślniki (ease-in), nie potrzebują specjalnej składni ucieczki. Dzięki temu użytkownik otrzymuje łatwiejsze współdziałanie z istniejącymi wyliczeniami ciągów JS.

Podsumowanie i plany

Twórcy pracują także nad wykorzystaniem WASM do zastąpienia Camlp4. ReScript oferuje wsparcie dla współpracy z ReactJS i innym istniejącym kodem JavaScript. Najnowszą wersję można pobrać przez npm, za pomocą polecenia npm install bs-platform@9.0.0 –save-dev. Pełna lista zmian jest dostępna na GitHubie projektu.

Źródło: ReScript Blog

TagsBuckleScriptReasonReScriptstdlib

Share:

  • Snowpack 3.0 RC
    Narzędzia

    Snowpack 3.0 RC z eksperymentalnymi funkcjami

  • Narzędzia

    Container Registry – nowa obsługa kontenerów w GitHub

  • FrontendNarzędzia

    WebStorm 2020.1.1 z poprawkami już dostępny

  • 3 marca 2021

    Vite 2.0 wydane z nowymi wtyczkami

  • 25 lutego 2021

    ReacType 5.0 – zmiany we wprowadzaniu komponentów

  • 23 lutego 2021

    Dapr v.1.0 gotowy do fazy produkcji

  • 22 lutego 2021

    ReScript 9.0 z zewnętrzną konfiguracją stdlib

  • 22 lutego 2021

    One UI 3.1 z ciekawymi nowościami dla urządzeń Samsunga

  • 22 lutego 2021

    Windows Terminal Preview 1.6 z nową sekcją ustawień

  • 15 lutego 2021

    Visual Studio Code 1.53 z ulepszeniami debugowania

  • 8 lutego 2021

    Edge 89 beta, Edge Dev 90 i nowości na kanale Canary

  • 2 lutego 2021

    Firefox 85 i Firefox Nightly – nowe wersje przeglądarki Mozilli

  • 29 stycznia 2021

    Billboard.js 2.2.0 z nowymi funkcjami wykresów

  • 26 stycznia 2021

    Kendo UI R1 2021 – nowości dla bibliotek

  • 21 stycznia 2021

    Narzędzie Vno – połączenie Vue i Deno

  • 19 stycznia 2021

    GitHub Enterprise Server 3.0 RC – kandydat do wydania

  • 15 stycznia 2021

    TypeScript 4.2 Beta z ulepszeniami typów krotek

  • 13 stycznia 2021

    Styczniowy Patch Tuesday z luką 0-day

  • 11 stycznia 2021

    Safari Technology Preview 118 dostępne dla programistów

  • 8 stycznia 2021

    Microsoft Launcher na Androida z usprawnionym dotykiem

  • 7 stycznia 2021

    WebStorm 2020.3.1 dostępny dla urządzeń z Apple Silicon

  • 22 grudnia 2020

    ReScript 8.4 z przypiętymi zależnościami

  • 14 grudnia 2020

    Edge 88 beta i przeglądarka na kanale Canary dostępne!

  • 9 grudnia 2020

    Chrome 88 Beta z nowościami w WebXR

  • 9 grudnia 2020

    Snowpack 3.0 RC z eksperymentalnymi funkcjami

  • 4 grudnia 2020

    Android Studio Arctic Fox – nowe wydanie narzędzia Google

  • 4 grudnia 2020

    The Hack Summit 2020 – konferencja IT Security

  • 2 grudnia 2020

    PowerToys 0.27 z poprawkami błędów

  • 2 grudnia 2020

    Aleph.js alfa z funkcją importowania map

  • 27 listopada 2020

    Cypress 6.0 zwiększa zakres możliwości obsługi sieci

  • 26 listopada 2020

    Firefox 83 przyspiesza i wprowadza tryb HTTPS-Only

  • 25 listopada 2020

    Electron 11.0 z obsługą Apple Silicon

  • 25 listopada 2020

    Prettier 2.2 z obsługą najnowszego TypeScript 4.1

 

 

Jesteśmy pasjonatami najnowszych technologii w świecie programowania. Zbieramy dla Was informacje i porady z całego świata, które sprawią, że Twoja praca stanie się jeszcze bardziej efektywna.

Obserwuj nas codziennie, aby być na bieżąco oraz śmiało udostępniaj nasze posty.

Zespół DevNews

Kategorie

  • Backend
  • Bez kategorii
  • Frontend
  • Gadżety
  • Informacje
  • Języki programowania
  • Narzędzia
  • QA
  • Systemy i przeglądarki

OBSERWUJ NAS

KONTAKT

Chcesz się z nami skontaktować?

Napisz do nas wiadomość: kontakt@devnews.pl

www.devnews.pl | DEVNEWS 2020 | Newsy i ciekawostki ze świata IT