A Google nemrégiben mutatta be a bevezetését a programozási nyelv új verziója Dart 2.15, amely a Dart 2 gyökeresen újratervezett ágának fejlesztését folytatja és amely eltér a Dart nyelv eredeti verziójától erős statikus gépelés használatával (a típusok automatikusan következtethetők, így a típusok megadása nem szükséges, de a dinamikus gépelés már nem használatos és kezdetben kiszámításra kerül, a típus hozzá van rendelve a változót, majd szigorú típusellenőrzést alkalmazunk).
Ebben az új verzióban különféle fejlesztéseket hajtottak végre, és mindenekelőtt néhány új funkciót vezettek be, például elszigetelt csoportokat, valamint megoldásokat néhány észlelt sebezhetőségre.
A Dart 2.15 főbb újdonságai
A Dart 2.15 új verziójában eszközök biztosítják a feladatok gyors párhuzamos végrehajtását a vezérlő leválasztásával.
Amellett, hogy többmagos rendszerekben a futásidő Dart alapértelmezés szerint alkalmazáskódot futtat a CPU magon, és más magokat használ a rendszerfeladatok végrehajtására például aszinkron I/O, fájlok írása vagy hálózati hívások kezdeményezése.
A Dart 2.15 másik újdonsága egy új koncepció, elszigetelt csoportok, (csoportok elkülönítése) lehetővé teszi a megosztott hozzáférést a különböző belső adatstruktúrákhoz azonos csoportba tartozó izolátumokban, ami jelentősen csökkentheti a többletköltséget a csoport ügynökeivel való kommunikáció során. Például egy további elkülönítés elindítása egy meglévő készleten 100-szor gyorsabb, és 10-100-szor kevesebb memóriát igényel, mint egy külön elkülönítés kezdeményezése, így nincs szükség a program adatstruktúráinak inicializálására.
Annak ellenére, hogy egy csoportban elszigetelt blokkban, A változtatható objektumokhoz való megosztott hozzáférés továbbra is tilos, a csoportok megosztott dinamikus memóriát használnak, jelentősen felgyorsítva az objektumok egyik blokkból a másikba való átvitelét anélkül, hogy erőforrásigényes másolási műveletekre lenne szükség.
Az új verzióban az Isolate.exit () meghívásakor is megengedett a vezérlőmunka eredményének átadása adatok átadása a fő elkülönítési blokknak másolási műveletek végrehajtása nélkül. Emellett az üzenetátviteli mechanizmus optimalizálása is megtörtént: a kis és közepes üzenetek feldolgozása immár hozzávetőleg 8-szor gyorsabb. Az izolátumok között a SendPort.send () hívás segítségével átadható objektumok különféle típusú függvényeket, lezárásokat és veremnyomokat tartalmaznak.
A mutatók létrehozására szolgáló eszközökben más objektumok egyedi funkcióihoz, Az ilyen mutatók létrehozására vonatkozó korlátozások megszűntek a konstruktor kódban, amely hasznos lehet könyvtár alapú interfészek létrehozásakor Csapkod.
Könyvtár dart: core továbbfejlesztett enum támogatással, Például most már generálhat egy karakterlánc értéket minden felsorolási értékből a ".name" metódussal, lekérheti az értékeket név szerint, vagy egyeztetheti az értékpárokat.
Azt is kiemelik mutatótömörítési technikát valósítottak megHogy lehetővé teszi a mutatók kompaktabb megjelenítését 64 bites környezetben ha a 32 bites címtér elegendő a címzéshez (4 GB-nál több memória nem használható). A tesztek kimutatták, hogy az ilyen optimalizálás körülbelül 10%-kal csökkenti a kupac méretét. A Flutter SDK-ban az új mód már alapértelmezés szerint engedélyezve van az Android számára, és a tervek szerint egy jövőbeli kiadásban engedélyezni fogják az iOS-re is.
Szintén meg kell jegyezni, hogy a pub.dev adattár most már képes visszavonni egy már közzétett verziót egy csomagról, például veszélyes hibák vagy sebezhetőségek esetén.
A egyéb változások amelyek kiemelkednek:
- További védelem a sebezhetőség (CVE-2021-22567) ellen, amelyet a kódban a megjelenítési sorrendet megváltoztató Unicode-karakterek használata okoz.
- Kijavítottunk egy biztonsági rést (CVE-2021-22568), amely egy másik pub.dev-felhasználónak adja ki magát, amikor olyan külső kiszolgálón tesz közzé csomagokat, amely elfogadja a pub.dev oauth2 hozzáférési jogkivonatait.
- A Dart SDK hibakereső és teljesítményelemző eszközöket (DevTools) tartalmaz, amelyeket korábban külön csomagban szállítottak.
- A „dart pub” parancshoz és a pub.dev csomagtárolókhoz olyan eszközöket adtunk, amelyek nyomon követhetik az érzékeny információk véletlenszerű kiadását, például a csomagon belüli folyamatos integrációs rendszerekhez és felhőkörnyezetekhez szükséges hitelesítő adatokat hagyva.
- Ha ilyen szivárgást talál, a „dart pub publish” parancs hibaüzenettel leáll. Téves riasztás esetén lehetőség van az ellenőrzés kihagyására a fehér listán keresztül.
forrás: https://medium.com/