Az ulia egy dinamikus, magas szintű, nagy teljesítményű nyelv a műszaki számítástechnikához.
Pár napja bejelentették a Julia 1.9 programozási nyelv új verziójának megjelenését, amely olyan tulajdonságokat egyesít, mint a nagy teljesítmény, a dinamikus gépelés támogatása és a beépített eszközök a párhuzamos programozáshoz. Julia szintaxisa közel áll a MATLAB-hoz, néhány elemet a Rubytól és a Lisp-től kölcsönöztek.
Julia kiemelkedik abból, hogy többplatformos és többparadigmás programozási nyelv dinamikus gépeléssel Magas szintű, nagy teljesítményű keretrendszer általános, műszaki és tudományos számítástechnikához, szintaxisa hasonló a többi hasonló számítástechnikai környezetéhez.
Julia fő hírei 1.9
A bemutatott Julia 1.9 új verziójában számos fejlesztések a futtatókörnyezetben/fordítóban, mivel volt Az első futtatásig eltelt idő jelentős csökkenése. A csomag-előfordítás most elmenti a natív kódot a "pkgimage"-be, ami azt jelenti, hogy az előfordítás során generált kódot nem kell újrafordítani a csomag betöltése után. A pkgimages mód használata a „–pkgimages=no” opcióval letiltható.
A másik kiemelkedő változás a A nem típusspecifikus argumentumokkal rendelkező hívások most optimalizálhatók az injektáláshoz vagy a statikus felbontáshoz való csatlakozási felosztáson keresztül, még akkor is, ha több különböző típusú beadvány jelentkezik. Ez javíthatja a teljesítményt bizonyos helyzetekben, amikor az objektumtípusok statikusan nincsenek teljesen feloldva a hívási helyek statikus feloldásával."@nospecialize-d" és kerülje az újrafordítást.
Az egykarakteres literálok mostantól ugyanazt a szintaxist támogatják, mint a karakterlánc-literálok; ezek a szintaxisok érvénytelen UTF-8 szekvenciákat jelenthetnek, amint azt a Char típus lehetővé teszi.
Ezen kívül Linuxon és Windowson az opció «--threads=auto» most megpróbálja meghatározni a rendelkezésre álló processzorok számát a CPU-affinitáson alapul, amely maszk általában HPC és felhőkörnyezetben van beállítva.
Az opció le van tiltva--math-mode=gyors", amely helyett a makró használata javasolt"@fastmath", amely a " paraméteren kívül jól definiált szemantikával rendelkezik–Szálak» most megvan a formátum «autó | N[,auto|M]», ahol M adja meg a létrehozandó interaktív szálak számát.
Hozzáadott opció «--heap-size-hint=» beállíthatja azt a küszöböt, amely után megkezdődik az aktív szemétszállítás. A méret megadható bájtban, kilobájtban (1000 KB), megabájtban (300 MB) vagy gigabájtban (1,5 GB).
A „@invoke” makró az 1.7-es verzióban bevezetett, már exportált és használható. Kívül, most használja a "Core.Typeof(x)" metódust Inkább "Bármilyen", ha az "x" argumentum típusannotációja kimarad. Ez szükséges az argumentumként átadott típusok helyes feldolgozása érdekében.
Sőt, A "Threads.@spawn" opcionális első argumentumával a következő: ":default" vagy ":interactive". Az interaktív feladatok alacsony késleltetésű választ igényelnek, és rövidre vagy gyakorira tervezték. Az interaktív feladatok interaktív szálakon futnak, ha a Julia indításakor meg vannak adva.
A egyéb kiemelkedő változások:
- A "!f" predikátumfüggvény tagadása most egy "(!) ∘ f" összetett függvényt ad vissza anonim függvény helyett.
- A dimenziófelosztási funkciók most több dimenzión is működnek: «everyslice”, „eachrow” és „eachcol” visszaad egy tárgyat"szelet» amely lehetővé teszi a szállítást, hogy hatékonyabb módszereket biztosítson.
- A makró «@kwdef» hozzáadva a nyilvános API-hoz.
- Kijavítottuk a műveletek sorrendjével kapcsolatos hibát az "fld1"-ben.
- A rendezés mostantól mindig stabil az idő múlásával (újratervezett QuickSort).
- A BLAS-szálak alapértelmezett száma most megegyezik az ARM architektúrán lévő CPU-szálak számával, más architektúrákon pedig a CPU-szálak számának felével.
- Printf: Átdolgozott hibaüzenetek a hibás karakterláncokhoz a jobb olvashatóság érdekében.
- Profil: Új „Profile.take_heap_snapshot(file)” funkció, amely a Chrome által támogatott JSON-alapú „.heapsnapshot” formátumú fájlt ír.
- Hozzáadott támogatás a Unicode 15 specifikációhoz.
- A sorok beágyazott kombinációi és az elnevezett karaktersorok mostantól használhatók típusparaméterként.
Végül, ha többet szeretne megtudni róla, akkor tanulmányozza a részleteket A következő linken.