V 0.4.3 programozási nyelv kiadása

40 napos fejlesztés után megjelent a statikusan tipizált V (vlang) programozási nyelv új verziója. A V létrehozásánál a fő célok a könnyű tanulás és használat, a jó olvashatóság, a gyors fordítás, a fokozott biztonság, a hatékony fejlesztés, a többplatformos használat, a C nyelvvel való jobb interoperabilitás, a jobb hibakezelés, a modern képességek és a karbantarthatóbb programok voltak. A fordítókód, a könyvtárak és a kapcsolódó eszközök nyílt forráskódúak az MIT licence alatt.

Az új verzióban:

  • Nyelvi fejlesztések:
    • Új modul „encoding.xml elemzővel, érvényesítéssel, egységtesztekkel.
    • Továbbfejlesztett támogatás a kurzulinokhoz (IO, hálózat).
    • Csökkentse 80%-kal a memóriafoglalási műveleteket a vweb alkalmazásokban.
    • A „@VCURRENTHASH” implementációja a „C.V_CURRENT_COMMIT_HASH” helyére.
    • Megkezdődött az i64 típushoz társított új int típus promóciója (korábban az int típust az i32 típussal azonosították).
    • Javított típus-ellenőrzési szabályok az új int típushoz és optimalizált kódgenerálás.
  • API-módosítások, amelyek megzavarják a kompatibilitást:
    • A "Request.cookies" szótár elavult. A „Request.cookie()” és a „Request.add_cookie()” helyett.
    • Szigorúbb szabályok a C típusokra, amelyeket most mindig deklarálni kell.
  • A típusellenőrző rendszer változásai:
    • Az opció/eredmény felosztásra vonatkozó figyelmeztetés hibakategóriába került.
    • Javítsa ki az "fn" hívást opcionális argumentummal automatikus szabad módban.
    • A névellenőrzés visszatért: Pascal kis- és nagybetű az álnevekhez.
    • C.xx = C.yy álnevek.
    • Lehetővé teszi az egész típusok tartományként való öntését matematikai blokkban.
    • Figyelmeztetés a bájttípus elavulására (az u8 típus javára), ha fn paraméterként használják.
    • Az általános tömbök hozzáfűzési módszerének javítása.
    • Hiba ellenőrzése egy másik modul privát interfészének megvalósításában.
    • Javítva a negatív cap és len értékek ellenőrzése egy tömb inicializálása során.
    • A duplikált var és param modulnevekre vonatkozó figyelmeztetés hibává alakítása.
    • Engedélyezze a teljes megosztott változó átrendelését (a mutex előző állapotának megőrzése mellett).
  • Az elemző fejlesztései:
    • Javítva a statikus metódus anonim funkciókhoz való hozzárendelése.
    • ast: A beágyazott szerkezetű struct deklaráció fix formázása.
    • A set_all + clear_all metódusok hozzáadva a "[flag]" bitmezőkhöz.
    • Figyelmeztetés a fel nem használt importokra, még akkor is, ha az "import math { sin, cos }" kifejezéssel vannak megadva.
  • Változások a fordítóprogramban:
    • checker, builder, pref: támogatja a "-dump-defines" jelzőt az adott program összes elérhető felhasználói és rendszerdefiníciójának megtekintéséhez.
    • térképek: hozzáadva a maps.merge() és a maps.merge_in_place() függvényeket.
  • Szabványos könyvtár:
    • buildin: hozzáadta a "unsafe { a.reset() }" metódust, amellyel gyorsan 0-ra állíthatja a tömb összes bájtját.
    • math.fractions: Az operátor túlterhelése és a régi függvények elhagyása.
    • gg: Javítsa ki a draw_rounded_rect_empty alsó határigazítást macos és linux rendszeren.
    • crypto.bcrypt: javítva a bcrypt hibáját.
    • sokol: frissítve a legújabb verzióra
    • beépített: rögzített mérete (C.BOOL) (Windows-specifikus).
    • math.big: Javítsa ki a hibás osztást negatív számokkal.
    • os: Egy kényelmes mód hozzáadva néhány rendszerjel figyelmen kívül hagyásához.
    • os: javítsa ki az os.ls(mappa) fájlt a windowsban, ha a védett könyvtár nem nyitható meg.
    • crypto.sha/md5/: ugyanazon kivonatértékek rögzített kiszámítása a .sum() többszöri meghívásakor sha1/256/512 esetén.
    • os: implementált os.fd_is_pending/1, os.Process.pipe_read/1, os.Process.is_pending/1.
    • json2: hozzáadott támogatás a beágyazott struktúrákhoz.
  • háló
    • vweb: hozzáadott MIME típusok statikus .md fájlokhoz.
    • net.conv: A varinttou64 és u64tovarint függvények hozzáadva az rfc-9000-ben leírt (QUIC) előjel nélküli egész számok változókódolásához.
    • net.http: támogatja az on_running, on_stopped, on_closed visszahívási függvények megadását a http.Server{}-ban, valamint a show_startup_message: false.
    • net.http: HTTP proxy áteresztő támogatásszerver a http.fetch fájlban.
    • net.http: Adjon hozzá egy újrapróbálkozási mechanizmust a http.fetch()-hez az elkerülhetetlen socket-hibák érdekében.
    • wasm: megvalósított inline szerelés.
    • net.http: a max_redirects értéke 16-ra nőtt.
    • picoev: nyers mód megvalósítása a fájlleírókkal való közvetlen munkához.
    • net.http: hozzáadva a socks5 és a http(s) proxy támogatását a unix-szerű rendszerekhez.
  • ORM:
    • orm: a null értékek és az opcionális mezők hozzáadott kezelése.
    • orm: Az is_null/is_not_null műveletek egységesek.
  • Adatbázis illesztőprogramok:
    • pg: A C hívások .cv fájlba kerültek.
  • Natív háttér:
    • natív: a -no-builtin jelző támogatása (1 KB-nál kisebb futtatható fájlok generálása) Linux a "v -no-builtin -b natív példák/hello_world.v" használatával).
    • natív: használja az i32-t az int helyett.
  • C-háttér:
    • ast, natív, cgen: hozzáadva az "$if native {}" támogatását.
  • vfmt:
    • Most eltávolítja a további sortöréseket a call_expr után és a szerkezeti argumentumok előtt.
    • Rögzített értékigazítás uft8 karakteres billentyűk használatakor.
    • Terner kifejezések igazítása const blokkban.
  • Eszközök:
    • @LOCATION támogatás hozzáadva a hibakeresés egyszerűbbé tételéhez anélkül, hogy a @FILE és a @LINE kombinálása futás közben.
    • benchmark: új metódusok hozzáadva: b.record_measure/1 és b.all_recorded_measures/0.
    • ci: github munkafolyamat c2v frissítve.
    • strings: hozzáadva Bulder.write_decimal/1 metódus (tizedes szám írásához, további hozzárendelések nélkül).
    • Egy meglévő modul vpm (windows) használatával történő telepítését javítottuk.
    • tools.vpm: továbbfejlesztett munka a „.git” végződésű címekkel.
    • Hozzáadott követelmény a v.mod fájlhoz a modulok külső hivatkozásokon keresztül történő telepítéséhez a vpm használatával.

Forrás: opennet.ru

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster