Dart 2.15 arriba amb grups aïllats, millores al runtime i més

Google va donar a conèixer recentment el llançament de la nova versió del llenguatge de programació Dart 2.15, que continua amb el desenvolupament d'una branca radicalment redissenyada de Dart 2 i que es diferencia de la versió original del llenguatge Dart per l'ús de tipat estàtic fort (els tipus es poden inferir automàticament, per la qual cosa no cal especificar tipus, però la tipificació dinàmica ja no es fa servir i es calcula inicialment, el tipus s'assigna a la variable i després s'aplica una verificació de tipus estricta.

En aquesta nova versió s'han implementat diverses millores i sobretot la introducció d'algunes característiques noves com ho són els grups aïllats i també les solucions a algunes vulnerabilitats detectades.

Principals novetats de Dart 2.15

En aquesta nova versió de Dart 2.15 es proporcionen eines per a lexecució ràpida en paral·lel de tasques amb aïllament de controlador.

A més de que en sistemes de múltiples nuclis, el runtime de Dart, per defecte, executa el codi de l'aplicació en un nucli de la CPU i utilitza altres nuclis per fer tasques del sistema com E/S asíncrones, escriure en fitxers o fer trucades de xarxa.

Una altra de les novetats que Dart 2.15 introdueix, és un nou concepte, grups aïllats, (isolate groups) que permet l'accés compartit a diferents estructures de dades internes en aïllats pertanyents al mateix grup, cosa que pot reduir significativament la sobrecàrrega en comunicar-se amb agents en un grup. Per exemple, iniciar un aïllament addicional en un grup existent és 100 vegades més ràpid i requereix de 10 a 100 vegades menys memòria que iniciar un aïllament independent, en eliminar la necessitat inicialitzar les estructures de dades del programa.

Tot i el fet que en blocs aïllats en un grup, l'accés compartit a objectes mutables encara està prohibit, els grups usen una memòria dinàmica compartida, la qual cosa accelera significativament la transferència dobjectes dun bloc a un altre sense la necessitat de realitzar operacions de còpia que consumeixen molts recursos.

En la nova versió, també es permet passar el resultat del treball del controlador quan es diu Isolate.exit() per passar dades al bloc d'aïllament principal sense fer operacions de còpia. A més, s'ha dut a terme l'optimització del mecanisme de transmissió de missatges: ara els missatges petits i mitjans es processen aproximadament 8 vegades més ràpid. Els objectes que es poden passar entre aïllaments mitjançant l'anomenada SendPort.send () inclouen diversos tipus de funcions, tancaments i seguiments de pila.

A les eines per crear punters a funcions individuals en altres objectes, s'han eliminat les restriccions per crear aquests punters en el codi del constructor, cosa que pot ser útil en crear interfícies basades a la biblioteca Aletejar.

la biblioteca dart:core ha millorat el suport d'enumeració, per exemple, ara podeu generar un valor de cadena de cada valor d'enumeració utilitzant el mètode «.name», obtenir valors per nom o fer una coincidència de parells de valors.

També es destaca que s'ha implementat una tècnica de compressió de punters, que permet utilitzar una representació més compacta de punters en entorns de 64 bits si l'espai d'adreces de 32 bits és suficient per a l'encaminament (no es fan servir més de 4 GB de memòria). Les proves han demostrat que aquesta optimització permet reduir la mida del munt en aproximadament un 10%. A l'SDK de Flutter, el nou mode ja està activat per a Android per defecte i es planeja habilitar-lo per a iOS en una versió futura.

A més es destaca que el repositori pub.dev ara té la capacitat de revocar una versió ja publicada d'un paquet, per exemple, en cas d'errors perillosos o de vulnerabilitats.

Dels altres canvis que es destaquen:

  • Protecció addicional contra la vulnerabilitat (CVE-2021-22567) causada per l'ús de caràcters Unicode que canvien l'ordre de visualització al codi.
  • S'ha corregit una vulnerabilitat (CVE-2021-22568) que podia fer-se passar per un altre usuari de pub.dev en publicar paquets en un servidor de tercers que accepta tokens d'accés oauth2 de pub.dev.
  • L'SDK de Dart inclou eines per a la depuració i l'anàlisi de rendiment (DevTools), que s'entregaven anteriorment en un paquet separat.
  • Es van afegir eines a l'ordre dart pub i els dipòsits de paquets pub.dev per rastrejar la publicació accidental d'informació confidencial, per exemple, deixant credencials per a sistemes d'integració contínua i entorns al núvol dins del paquet.
  • Si es troben aquestes fuites, l'ordre dart pub publish s'interromp amb un missatge d'error. En cas que hi hagi una falsa alarma, és possible ometre el xec a través de la llista blanca.

font: https://medium.com/


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.