Frigivelse af programmeringssprog V 0.4.3

Efter 40 dages udvikling er en ny version af det statisk typede programmeringssprog V (vlang) blevet udgivet. Hovedmålene med at skabe V var nem indlæring og brug, høj læsbarhed, hurtig kompilering, øget sikkerhed, effektiv udvikling, brug på tværs af platforme, forbedret interaktion med C-sproget, bedre fejlhåndtering, moderne funktioner og mere bekvem programvedligeholdelse. Koden til compileren, bibliotekerne og relaterede værktøjer er åben under MIT-licensen.

I den nye version:

  • Sprogforbedringer:
    • Nyt modul "encoding.xml" med parser, validering og enhedstest.
    • Forbedret understøttelse af couroutines (IO, netværk).
    • Reducer hukommelsesallokeringsoperationer i vweb-applikationer med 80 %.
    • Implementering af "@VCURRENTHASH" til at erstatte "C.V_CURRENT_COMMIT_HASH".
    • Promoveringen af ​​en ny int-type er begyndt, tilknyttet i64-typen (tidligere blev int-typen identificeret med i32-typen).
    • Rettelse af typekontrolregler for den nye int-type og optimering af kodegenerering.
  • API-ændringer, der forstyrrer kompatibiliteten:
    • Ordbogen "Request.cookies" er blevet udfaset og erstattet af "Request.cookie()" og "Request.add_cookie()".
    • Strengere regler for C-typer, som nu altid skal deklareres.
  • Ændringer i typekontrolsystemet:
    • Advarsel om opdeling af valgmulighed/resultat flyttet til fejlkategori.
    • Retter kald af "fn" med valgfrit argument i autofree-tilstand.
    • Navngivningstjek returneret: pascal store og små bogstaver for aliasser.
    • C.xx = C.yy aliaser.
    • Tillad omregning af heltalstyper som intervaller i matematiske blokke.
    • Advarsel om udfasning af byte-typen (til fordel for u8-typen) når den bruges som fn-parameter.
    • Retter tilføjelsesmetoden for generiske arrays.
    • Kontrol af implementeringsfejl i et andet moduls private grænseflade.
    • Rettelse af kontrol af negative værdier for cap og len ved initialisering af et array.
    • Lav advarslen om dublette modulnavne var og param om til en fejl.
    • Tillad omtildeling af en delt variabel som helhed (samtidig med at mutex'ens tidligere tilstand bevares).
  • Forbedringer af parser:
    • Rettelse af tildeling af statisk metode til anonyme funktioner.
    • ast: Rettelse af formatering af struct-deklaration med indlejret struktur.
    • Tilføjede set_all + clear_all-metoder til "[flag]" bitfelter.
    • Advarsel om ubrugte importer, selvom deklareret via "import math { sin, cos }".
  • Ændringer i compileren:
    • checker, builder, pref: understøttelse af "-dump-defines"-flaget for at se alle tilgængelige bruger- og systemdefinitioner for et givet program.
    • maps: tilføjede funktionerne maps.merge() og maps.merge_in_place().
  • Standardbibliotek:
    • indbygget: Tilføjet metoden "unsafe { a.reset() }" til hurtigt at sætte alle bytes i et array til 0.
    • math.fractions: Brug af operatoroverbelastning og udfasning af gamle funktioner.
    • gg: Rettede justering af den nederste kant af draw_rounded_rect_empty på Mac og Linux.
    • crypto.bcrypt: rettet en fejl i bcrypt.
    • sokol: opdateret til den seneste version
    • indbygget: fast størrelse på(C.BOOL) (Windows-specifik).
    • math.big: ret forkert division med negative tal.
    • os: tilføjet en bekvem måde at ignorere visse systemsignaler på.
    • os: retter os.ls(mappe) i Windows, når den beskyttede mappe ikke kan åbnes.
    • crypto.sha/md5/: Rettelse af beregning af de samme hashværdier ved flere kald af .sum() for sha1/256/512.
    • os: os.fd_is_pending/1, os.Process.pipe_read/1, os.Process.is_pending/1 implementeret.
    • json2: tilføjet understøttelse af indbyggede strukturer.
  • Website
    • vweb: tilføjede mime-typer til statiske .md-filer.
    • net.conv: tilføjede funktionerne varinttou64 og u64tovarint til kodning af usignerede heltalsvariabler som beskrevet i rfc-9000 (til QUIC).
    • net.http: understøtter angivelse af on_running, on_stopped og on_closed callback-funktioner i http.Server{}, og show_startup_message: false.
    • net.http: Understøttelse af HTTP proxy-passthroughserver i http.fetch.
    • net.http: Tilføj gentagne forsøgsmekanismer til http.fetch() for uundgåelige socketfejl.
    • wasm: implementeret inline-assembling.
    • net.http: max_redirects-værdien er øget til 16.
    • picoev: implementering af raw-tilstand til direkte arbejde med filbeskrivelser.
    • net.http: tilføjede understøttelse af socks5 og http(s) proxy til unix-lignende systemer.
  • ORM:
    • orm: tilføjet håndtering af nullværdier og valgfrie felter.
    • orm: Gjorde is_null/is_not_null-operationer unære.
  • Databasedrivere:
    • pg: C-kald flyttet til .cv-filer.
  • Native backend:
    • native: поддержка флага -no-builtin (генерация исполняемых файлов < 1 КБ Linux с помощью «v -no-builtin -b native examples/hello_world.v»).
    • native: brug i32 i stedet for int.
  • C-backend:
    • ast, native, cgen: tilføjet understøttelse af "$if native {}".
  • vfmt:
    • Fjerner nu ekstra linjeskift efter call_expr og før strukturargumenter.
    • Rettelse af værdijustering ved brug af taster med uft8-symboler.
    • Justering af ternære udtryk i const-blokke.
  • Værktøjer:
    • Tilføjet understøttelse af @LOCATION, for nemmere fejlfinding uden at skulle kombinere @FILE og @LINE under kørsel.
    • benchmark: tilføjede nye metoder b.record_measure/1 og b.all_recorded_measures/0.
    • ci: opdateret github-arbejdsgang c2v.
    • strenge: tilføjede Bulder.write_decimal/1-metoden (til at skrive et decimaltal uden yderligere allokeringer).
    • Rettelse af installation af et eksisterende modul ved hjælp af vpm (Windows).
    • tools.vpm: Forbedret håndtering af URL'er, der ender på ".git".
    • Tilføjet krav om v.mod-fil for at installere moduler via eksterne links ved hjælp af vpm.

Kilde: opennet.ru

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster