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
Języki programowania
Home›Języki programowania›ReScript 8.3 – nowa wersja wcześniejszego BuckleScript

ReScript 8.3 – nowa wersja wcześniejszego BuckleScript

By Bernadeta Zapała
28 września 2020
131
1
Share:

Sierpień rozpoczął się nową wersją BuckleScript o numerze 8.2. W międzyczasie doszło do rebrandingu zespołu – fuzji Reason oraz BuckleScript. Dlatego też w tym tygodniu ogłoszono wydanie nowej wersji wcześniejszego BuckleScript – ReScript 8.3. ReScript jest przede wszystkim językiem z optymalizującym kompilatorem. Jest on skoncentrowany na platformie JS.

ReScript 8.3

Atrybuty FFI w ReScript 8.3

Nowa wersja zawiera lekkie atrybuty FFI, ale bez prefiksu bs.. Jest on opcjonalny, więc FFI będzie mniej rozwlekłe. Przykładowo, uprości się pisanie starych, zewnętrznych wersji. Wcześniej readFileAsUtf8Sync pisano w następujący sposób:

@bs.val @bs.module("fs")
external readFileAsUtf8Sync: (string, @bs.as("utf8") _) => string = "readFileSync"

Teraz jest bardziej uproszczone:

@val @module("fs") external readFileAsUtf8Sync: 
(string, @as("utf8") _) => string = "readFileSync"

Prawie wszystkie wcześniejsze bs.xx są możliwe do uproszczenia. Wyjątkiem są dwa atrybuty: bs.splice i bs.send.pipe. Oba całkowicie wycofano. Pierwszy zastąpiono bs.variadic, natomiast drugi atrybutem bs.send. Twórcy jednak zastrzegają, że aby zapewnić zgodność z poprzednimi wersjami, wciąż można z nich korzystać.

Niestandardowe rozszerzenia plików JS

W ReScript 8.3 użytkownik ma możliwość wybrania obsługi rozszerzeń plików JS na format modułu.

"package-specs": [{
    "module": "es6",
    "suffix": ".mjs"
},{
    "module": "commonjs",
    "suffix": ".cjs"
}],

Import w obsłudze ES6

Naprawiono pojawiający się wcześniej błąd kompilowania. Teraz, korzystając z wyjścia modułu ES6, domyślne powiązania właściwie się skompilują.

Przykładowo:

@module("hello") external input: string => string = "default"
let a = input("hello")

Skompiluje się w formacie ES6:

import Hello from "hello";
var a = Hello("hello");

Lepsze wnioskowanie w ReScript 8.3

W ReScript 8.3 wniesiono lepsze wnioskowanie na podstawie typu dla wzorca let {a,b,c} = Value. Mowa tu o tym, że dla takiego kodu:

module N = {
  type t = {x: int}
}
let f = (u: N.t) => {
  let {x} = u
  x + 1
} /* type error */

Pojawiał się poniższy błąd:

Error: Unbound record field x

Kompilator poznał już typ u, więc może poprawnie wyszukać etykietę x. W wersji 8.3 oryginalny styl kodu działa od razu po rozpakowaniu.

Podsumowanie

To nie wszystkie zmiany w ReScript. Oprócz powyższych zmian wprowadzono także kilka poprawek wydajności. Nowa wersja jest dostępna do testowania.

TagsBuckleScriptJavaScriptReasonReScript

Share:

  • Języki programowania

    React 17.0 RC – kandydat do wydania bez nowych funkcji

  • Frontend

    Prettier 2.2 z obsługą najnowszego TypeScript 4.1

  • eslint
    Narzędzia

    ESLint v7.0.0 z nową klasą CLIEngine

  • 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

  • 24 listopada 2020

    Tailwind CSS 2.0 z narzędziami kontroli tekstu

  • 20 listopada 2020

    Angular 11 – stabilne wydanie platformy

  • 19 listopada 2020

    Chakra UI React v1 wydany z ulepszeniami

  • 19 listopada 2020

    Chrome 87 z szybszym startem i zmianami w kartach

  • 18 listopada 2020

    Silnik WebKit w przeglądarce Safari 14

  • 17 listopada 2020

    Poznańska konferencja POZITIVE TECHNOLOGIES 2020 platformą wymiany wiedzy i doświadczeń najlepszych specjalistów IT

  • 16 listopada 2020

    Babylon.js 4.2 z edytorem cząsteczek i Babylon React Native

  • 13 listopada 2020

    Apple Silicon M1 i MacBooki – spotkanie One More Thing

  • 12 listopada 2020

    .NET 5.0 Microsoftu z poprawioną wydajnością

  • 12 listopada 2020

    Windows Terminal 1.5 Preview z nowymi funkcjami

 

 

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