Dart 2.15 komt met geïsoleerde groepen, runtime-verbeteringen en meer

Google onthulde onlangs de lancering van de nieuwe versie van de programmeertaal Dart 2.15, die de ontwikkeling voortzet van een radicaal opnieuw ontworpen tak van Dart 2 en dat verschilt van de originele versie van de Dart-taal door het gebruik van sterk statisch typen (typen kunnen automatisch worden afgeleid, dus het specificeren van typen is niet vereist, maar dynamisch typen wordt niet langer gebruikt en wordt in eerste instantie berekend, het type wordt toegewezen aan de variabele en vervolgens wordt een strikte typecontrole toegepast).

In deze nieuwe versie zijn verschillende verbeteringen doorgevoerd en vooral de introductie van enkele nieuwe functies zoals geïsoleerde groepen en ook oplossingen voor enkele gedetecteerde kwetsbaarheden.

Belangrijkste nieuwe functies van Dart 2.15

In deze nieuwe versie van Dart 2.15 tools zijn voorzien voor snelle parallelle uitvoering van taken met controllerisolatie.

Daarnaast in multi-core systemen, de runtime Darten, standaard voert applicatiecode uit op een CPU-kern en gebruikt andere kernen om systeemtaken uit te voeren zoals asynchrone I/O, schrijven naar bestanden of netwerkgesprekken voeren.

Een andere nieuwigheid die Dart 2.15 introduceert, is een nieuw concept, geïsoleerde groepen, (groepen isoleren) gedeelde toegang tot verschillende interne gegevensstructuren mogelijk maken in isolaten die tot dezelfde groep behoren, die de overhead aanzienlijk kan verminderen bij het communiceren met agenten in een groep. Het starten van een extra isolatie op een bestaande pool is bijvoorbeeld 100 keer sneller en vereist 10 tot 100 keer minder geheugen dan het starten van een afzonderlijke isolatie, waardoor de noodzaak om programmagegevensstructuren te initialiseren, wordt geëlimineerd.

Ondanks het feit dat in geïsoleerde blokken in een groep, gedeelde toegang tot veranderlijke objecten is nog steeds verboden, groepen gebruiken gedeeld dynamisch geheugen, waardoor de overdracht van objecten van het ene blok naar het andere aanzienlijk wordt versneld zonder de noodzaak van bronintensieve kopieerbewerkingen.

In de nieuwe versie het is ook toegestaan ​​om het resultaat van controllerwerk door te geven wanneer Isolate.exit () wordt aangeroepen om gegevens door te geven aan het hoofdisolatieblok zonder kopieerbewerkingen uit te voeren. Daarnaast is er een optimalisatie van het berichtentransmissiemechanisme doorgevoerd: kleine en middelgrote berichten worden nu ongeveer 8 keer sneller verwerkt. De objecten die tussen isolaten kunnen worden doorgegeven met behulp van de SendPort.send ()-aanroep, omvatten verschillende soorten functies, sluitingen en stapeltraceringen.

In de tools voor het maken van pointers naar individuele functies in andere objecten, beperkingen voor het maken van dergelijke verwijzingen zijn verwijderd in de constructorcode, die kan handig zijn bij het maken van interfaces op basis van de bibliotheek Fladderen.

De bibliotheek dart: core heeft verbeterde ondersteuning voor enum, u kunt nu bijvoorbeeld een tekenreekswaarde genereren van elke opsommingswaarde met behulp van de ".name" -methode, waarden op naam krijgen of waardeparen matchen.

Dat wordt ook benadrukt er is een aanwijzercompressietechniek geïmplementeerdDat maakt het gebruik van een compactere weergave van pointers in 64-bits omgevingen mogelijk als de 32-bits adresruimte voldoende is voor adressering (niet meer dan 4 GB geheugen wordt gebruikt). Tests hebben aangetoond dat een dergelijke optimalisatie de heapgrootte met ongeveer 10% vermindert. In de Flutter SDK is de nieuwe modus standaard al ingeschakeld voor Android en het is de bedoeling dat deze in een toekomstige release ook voor iOS wordt ingeschakeld.

ook er wordt opgemerkt dat de pub.dev-repository nu de mogelijkheid heeft om een ​​reeds gepubliceerde versie in te trekken van een pakket, bijvoorbeeld bij gevaarlijke bugs of kwetsbaarheden.

Van de andere veranderingen die opvallen:

  • Extra bescherming tegen kwetsbaarheid (CVE-2021-22567) veroorzaakt door het gebruik van Unicode-tekens die de weergavevolgorde in de code wijzigen.
  • Een kwetsbaarheid opgelost (CVE-2021-22568) die zich kon voordoen als een andere pub.dev-gebruiker bij het publiceren van pakketten naar een externe server die oauth2-toegangstokens van pub.dev accepteert.
  • De Dart SDK bevat tools voor debugging en prestatie-analyse (DevTools), die voorheen in een apart pakket werden geleverd.
  • Er zijn tools toegevoegd aan het "dart pub"-commando en de pub.dev-pakketrepositories om onbedoelde vrijgave van gevoelige informatie te volgen, bijvoorbeeld door inloggegevens voor continue integratiesystemen en cloudomgevingen binnen het pakket achter te laten.
  • Als dergelijke lekken worden gevonden, stopt de opdracht "dart pub publish" met een foutmelding. Bij een vals alarm is het mogelijk om de controle via de witte lijst over te slaan.

bron: https://medium.com/


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.