Programavimo kalbos V išleidimas 0.4.3

Po 40 dienų kūrimo buvo išleista nauja statinio tipo programavimo kalbos V (vlang) versija. Pagrindiniai tikslai kuriant V buvo mokymosi ir naudojimo paprastumas, aukštas skaitomumas, greitas kompiliavimas, geresnis saugumas, efektyvus kūrimas, kelių platformų naudojimas, geresnis suderinamumas su C kalba, geresnis klaidų apdorojimas, modernios galimybės ir labiau prižiūrimos programos. Kompiliatoriaus kodas, bibliotekos ir susiję įrankiai yra atvirojo kodo pagal MIT licenciją.

Naujoje versijoje:

  • Kalbos patobulinimai:
    • Naujas modulis „encoding.xml su analizatoriumi, patvirtinimu, vienetų testais.
    • Patobulinta kursų palaikymas (IO, tinklas).
    • Sumažinkite atminties paskirstymo operacijas „Vweb“ programose 80%.
    • „@VCURRENTHASH“ įdiegimas, pakeičiantis „C.V_CURRENT_COMMIT_HASH“.
    • Pradėtas reklamuoti naujas int tipas, siejamas su i64 tipu (anksčiau int tipas buvo tapatinamas su i32 tipu).
    • Ištaisytos naujojo int tipo tipo tikrinimo taisyklės ir optimizuotas kodo generavimas.
  • API pakeitimai, pažeidžiantys suderinamumą:
    • „Request.cookies“ žodynas nebenaudojamas. Pakeistas „Request.cookie()“ ir „Request.add_cookie()“.
    • Griežtesnės taisyklės C tipams, kurios dabar visada turi būti deklaruojamos.
  • Tipo tikrinimo sistemos pakeitimai:
    • Įspėjimas apie parinkties / rezultato padalijimą buvo perkeltas į klaidos kategoriją.
    • Pataisykite „fn“ iškvietimą su pasirenkamu argumentu automatiniu laisvu režimu.
    • Pavadinimo patikra sugrįžo: slapyvardžių pascal didžiosios ir mažosios raidės.
    • C.xx = C.yy slapyvardžiai.
    • Leisti pateikti sveikųjų skaičių tipus kaip diapazonus matematiniuose blokuose.
    • Įspėjimas apie baitų tipo nusidėvėjimą (u8 tipo naudai), kai naudojamas kaip fn parametras.
    • Pataisykite bendrųjų masyvų pridėjimo metodą.
    • Tikrinama, ar nėra klaidos diegiant kito modulio privačią sąsają.
    • Ištaisytas neigiamų dangtelio ir objektyvo verčių tikrinimas inicijuojant masyvą.
    • Įspėjimas apie pasikartojančius var ir param modulių pavadinimus paverčiamas klaida.
    • Leisti perskirstyti visą bendrinamą kintamąjį (išlaikant ankstesnę mutex būseną).
  • Parserio patobulinimai:
    • Ištaisytas statinio metodo priskyrimas anoniminėms funkcijoms.
    • ast: Ištaisytas struktūrų deklaracijos formatavimas su įdėta struktūra.
    • Prie „[flag]“ bitų laukų pridėti metodai set_all + clear_all.
    • Įspėkite apie nepanaudotus importus, net jei jie deklaruoti su „import math { sin, cos }“.
  • Kompiliatoriaus pakeitimai:
    • tikrintuvas, kūrimo priemonė, pref: palaiko vėliavėlę „-dump-defines“, kad peržiūrėtumėte visus galimus tam tikros programos vartotojo ir sistemos apibrėžimus.
    • žemėlapiai: pridėtos funkcijos maps.merge() ir maps.merge_in_place().
  • Standartinė biblioteka:
    • builtin: pridėtas "nesaugus { a.reset() }" metodas, norint greitai nustatyti visus masyvo baitus į 0.
    • math.fractions: naudokite operatoriaus perkrovą ir atsisakykite senų funkcijų.
    • gg: Pataisykite „draw_rounded_rect_empty“ apatinės kraštinės lygiavimą „Macos“ ir „Linux“.
    • crypto.bcrypt: ištaisyta bcrypt klaida.
    • sokol: atnaujinta iki naujausios versijos
    • įmontuotas: fiksuotas dydis (C.BOOL) (konkretiems langams).
    • math.big: ištaisykite neteisingą padalijimą su neigiamais skaičiais.
    • os: pridėtas patogus būdas nepaisyti kai kurių sistemos signalų.
    • os: pataisykite os.ls(aplanką) languose, kai negalima atidaryti apsaugoto katalogo.
    • crypto.sha/md5/: fiksuotas tų pačių maišos verčių apskaičiavimas, kai kelis kartus iškviečiama .sum() sha1/256/512.
    • os: įdiegta os.fd_is_pending/1, os.Process.pipe_read/1, os.Process.is_pending/1.
    • json2: papildomas įdėtųjų struktūrų palaikymas.
  • tinklas
    • vweb: pridėti MIME tipai statiniams .md failams.
    • net.conv: pridėtos funkcijos varinttou64 ir u64tovarint, skirtos kintamiesiems beženkliams sveikiesiems skaičiams koduoti, aprašytiems rfc-9000 (skirta QUIC).
    • net.http: palaikymas nurodant on_running, on_stopped, on_closed atgalinio skambinimo funkcijas http.Server{}, taip pat show_startup_message: false.
    • net.http: HTTP tarpinio serverio pralaidumo palaikymasserveris http.fetch.
    • net.http: pridėkite pakartotinio bandymo mechanizmą prie http.fetch(), kad išvengtumėte neišvengiamų lizdų klaidų.
    • wasm: įdiegtas tiesioginis surinkimas.
    • net.http: max_redirects vertė padidinta iki 16.
    • picoev: neapdoroto režimo įgyvendinimas tiesioginiam darbui su failų aprašais.
    • net.http: pridėtas „socks5“ ir „http“ (-ių) tarpinių serverių palaikymas, skirtas „Unix“ tipo sistemoms.
  • ORM:
    • orm: papildomas nulinių reikšmių ir pasirenkamų laukų tvarkymas.
    • orm: operacijos is_null/is_not_null yra vienarūšės.
  • Duomenų bazės tvarkyklės:
    • pg: C skambučiai buvo perkelti į .cv failus.
  • Vietinė galinė programa:
    • gimtoji: palaikymas žymei -no-builtin (generuojami vykdomieji failai < 1 KB) Linux naudojant „v -no-builtin -b native examples/hello_world.v“).
    • gimtoji: naudokite i32 vietoj int.
  • C-backend:
    • ast, native, cgen: pridėtas „$if native {}“ palaikymas.
  • vfmt:
    • Dabar pašalinami papildomi eilučių lūžiai po call_expr ir prieš struktūros argumentus.
    • Fiksuotas verčių lygiavimas naudojant klavišus su uft8 simboliais.
    • Trečiamųjų išraiškų lygiavimas const blokuose.
  • Įrankiai:
    • Pridėtas @LOCATION palaikymas, kad būtų lengviau derinti, nereikia derinti @FILE ir @LINE vykdymo metu.
    • etalonas: pridėti nauji metodai b.record_measure/1 ir b.all_recorded_measures/0.
    • ci: atnaujinta github darbo eiga c2v.
    • eilutės: pridėtas metodas Bulder.write_decimal/1 (dešimtainiam skaičiui rašyti, be papildomų paskirstymų).
    • Esamo modulio įdiegimas naudojant vpm („Windows“) buvo ištaisytas.
    • tools.vpm: patobulintas darbas su adresais, kurie baigiasi ".git".
    • Pridėtas reikalavimas v.mod failui įdiegti modulius per išorines nuorodas naudojant vpm.

Šaltinis: opennet.ru

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster