Dart 2.15 stiže sa izolovanim grupama, poboljšanjima vremena rada i još mnogo toga

Google je nedavno predstavio lansiranje nova verzija programskog jezika Dart 2.15, koji nastavlja razvoj radikalno redizajnirane grane Dart 2 i koji se razlikuje od originalne verzije Dart jezika upotrebom snažnog statičkog kucanja (tipovi se mogu zaključiti automatski, tako da navođenje tipova nije potrebno, ali se dinamičko kucanje više ne koristi i inicijalno se izračunava, tip se dodjeljuje varijabla, a zatim se primjenjuje stroga provjera tipa).

U ovoj novoj verziji implementirana su razna poboljšanja i prije svega uvođenje nekih novih funkcija kao što su izolirane grupe, kao i rješenja za neke otkrivene ranjivosti.

Glavne nove značajke Dart 2.15

U ovoj novoj verziji Dart 2.15 obezbeđeni su alati za brzo paralelno izvršavanje zadataka sa izolacijom kontrolera.

pored toga u sistemima s više jezgara, vrijeme izvođenja Dart, po defaultu, pokreće kod aplikacije na CPU jezgri i koristi druga jezgra za obavljanje sistemskih zadataka kao što su asinhroni I/O, pisanje u datoteke ili upućivanje mrežnih poziva.

Još jedna novina koju Dart 2.15 uvodi je novi koncept, izolovane grupe, (izolirati grupe) omogućavajući zajednički pristup različitim internim strukturama podataka u izolatima koji pripadaju istoj grupi, što može značajno smanjiti troškove pri komunikaciji sa agentima u grupi. Na primjer, pokretanje dodatne izolacije na postojećem skupu je 100 puta brže i zahtijeva 10 do 100 puta manje memorije od pokretanja zasebne izolacije, eliminirajući potrebu za inicijalizacijom struktura podataka programa.

Uprkos činjenici da u izolovanim blokovima u grupi, zajednički pristup promjenjivim objektima je i dalje zabranjen, grupe koriste zajedničku dinamičku memoriju, značajno ubrzavajući prijenos objekata iz jednog bloka u drugi bez potrebe za resursno intenzivnim operacijama kopiranja.

U novoj verziji, također je dozvoljeno proslijediti rezultat rada kontrolera kada se pozove Isolate.exit (). za prosljeđivanje podataka glavnom izolacijskom bloku bez izvođenja operacija kopiranja. Osim toga, izvršena je optimizacija mehanizma prijenosa poruka: male i srednje poruke se sada obrađuju otprilike 8 puta brže. Objekti koji se mogu proslijediti između izolata pomoću poziva SendPort.send () uključuju različite tipove funkcija, zatvaranja i tragova steka.

U alatima za kreiranje pokazivača na pojedinačne funkcije u drugim objektima, ograničenja za kreiranje takvih pokazivača su uklonjena u kodu konstruktora, koji može biti korisno kada se kreiraju interfejsi zasnovani na biblioteci Lepršati.

Biblioteka dart: jezgro je poboljšalo enum podršku, na primjer, sada možete generirati vrijednost niza iz svake vrijednosti nabrajanja koristeći metodu ".name", dobiti vrijednosti po imenu ili upariti parove vrijednosti.

Takođe je istaknuto da implementirana je tehnika kompresije pokazivačaque omogućava korištenje kompaktnijeg prikaza pokazivača u 64-bitnim okruženjima ako je 32-bitni adresni prostor dovoljan za adresiranje (ne koristi se više od 4 GB memorije). Testovi su pokazali da ovakva optimizacija smanjuje veličinu hrpe za otprilike 10%. U Flutter SDK-u, novi način rada je već omogućen za Android prema zadanim postavkama i planirano je da se omogući za iOS u budućem izdanju.

Takođe napominje se da pub.dev spremište sada ima mogućnost da opozove već objavljenu verziju paketa, na primjer, u slučaju opasnih grešaka ili ranjivosti.

Of the druge promjene koji se ističu:

  • Dodatna zaštita od ranjivosti (CVE-2021-22567) uzrokovane upotrebom Unicode znakova koji mijenjaju redoslijed prikaza u kodu.
  • Ispravljena je ranjivost (CVE-2021-22568) koja je mogla lažno predstavljati drugog pub.dev korisnika prilikom objavljivanja paketa na serveru treće strane koji prihvata oauth2 pristupne tokene sa pub.dev.
  • Dart SDK uključuje alate za otklanjanje grešaka i analizu performansi (DevTools), koji su prethodno bili isporučeni u zasebnom paketu.
  • Alati su dodati komandi "dart pub" i spremištima paketa pub.dev za praćenje slučajnog puštanja osjetljivih informacija, na primjer ostavljanje vjerodajnica za sisteme kontinuirane integracije i okruženja u oblaku unutar paketa.
  • Ako se pronađu takva curenja, naredba "dart pub publish" će prestati s porukom o grešci. U slučaju lažnog alarma moguće je preskočiti provjeru putem bijele liste.

Izvor: https://medium.com/


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.