Ar ôl 40 diwrnod o ddatblygiad, mae fersiwn newydd o'r iaith raglennu V (vlang) wedi'i theipio'n statig wedi'i chyhoeddi. Y prif nodau wrth greu V oedd rhwyddineb dysgu a defnyddio, darllenadwyedd uchel, crynhoad cyflym, gwell diogelwch, datblygiad effeithlon, defnydd traws-lwyfan, gwell rhyngweithrededd â'r iaith C, gwell trin gwallau, galluoedd modern, a rhaglenni mwy cynaliadwy. Mae'r cod casglwr, llyfrgelloedd ac offer cysylltiedig yn ffynhonnell agored o dan y drwydded MIT.
Yn y fersiwn newydd:
- Gwelliannau iaith:
- Modiwl newydd “amgodio.xml gyda pharser, dilysu, profion uned.
- Gwell cefnogaeth ar gyfer couroutines (IO, rhwydwaith).
- Lleihau gweithrediadau dyrannu cof mewn cymwysiadau vweb 80%.
- Gweithredu "@VCURRENTHASH" i gymryd lle "C.V_CURRENT_COMMIT_HASH".
- Mae'r gwaith o hyrwyddo math newydd o int wedi dechrau, sy'n gysylltiedig â'r math i64 (yn flaenorol, nodwyd y math int gyda'r math i32).
- Rheolau gwirio math sefydlog ar gyfer y math int newydd a chynhyrchu cod wedi'i optimeiddio.
- Newidiadau API sy'n torri cydnawsedd:
- Mae'r geiriadur "Request.cookies" wedi'i anghymeradwyo. Wedi'i ddisodli gan "Request.cookie()" a "Request.add_cookie()".
- Rheolau llymach ar gyfer mathau C, y mae'n rhaid eu datgan bob amser yn awr.
- Math gwirio newidiadau system:
- Mae'r rhybudd am y rhaniad opsiwn/canlyniad wedi'i symud i gategori gwall.
- Trwsiwch alw "fn" gyda dadl ddewisol yn y modd di-wifr.
- Mae siec enwi yn ôl: cas pascal ar gyfer arallenwau.
- C.xx = arallenwau C.yy.
- Caniatáu castio mathau cyfanrif fel ystodau mewn blociau mathemateg.
- Rhybudd am ddibrisiant y math beit (o blaid y math u8) pan gaiff ei ddefnyddio fel paramedr fn.
- Trwsio'r dull atodiad ar gyfer araeau generig.
- Gwirio am wall wrth weithredu rhyngwyneb preifat modiwl arall.
- Gwirio sefydlog ar gyfer gwerthoedd cap a len negyddol wrth gychwyn arae.
- Troi'r rhybudd am enwau modiwlau var a param dyblyg yn wall.
- Caniatáu ailbennu'r newidyn cyfan a rennir (tra'n cynnal cyflwr blaenorol y mutex).
- Gwelliannau parser:
- Sefydlog neilltuo dull statig i swyddogaethau dienw.
- AST: Fformatio sefydlog datganiad strwythur gyda strwythur nythu.
- Ychwanegwyd dulliau set_all + clear_all i'r "[baner]" bitfields.
- Rhybuddiwch am fewnforion nas defnyddiwyd, hyd yn oed os cânt eu datgan â "mewnforio math { sin, cos }".
- Newidiadau casglwr:
- gwiriwr, adeiladwr, pref: cefnogwch y faner "-dump-defines" i weld yr holl ddiffiniadau defnyddiwr a system sydd ar gael ar gyfer rhaglen benodol.
- mapiau: ychwanegwyd mapiau.merge() a mapiau.merge_in_place() swyddogaethau.
- Llyfrgell Safonol:
- builtin: ychwanegodd dull "anniogel { a.reset() }" i osod pob beit mewn arae i 0 yn gyflym.
- math.fractions: Defnyddiwch orlwytho gweithredwr a rhoi'r gorau i hen swyddogaethau.
- gg: Trwsiwch draw_rounded_rect_empty aliniad ffin gwaelod ar macos a linux.
- crypto.bcrypt: bug sefydlog yn bcrypt.
- sokol: wedi'i ddiweddaru i'r fersiwn diweddaraf
- adeiledig: sizeof sefydlog (C.BOOL) (penodol ar gyfer ffenestri).
- math.big: Trwsio rhaniad anghywir gyda rhifau negatif.
- os: Ychwanegwyd ffordd gyfleus i anwybyddu rhai signalau system.
- os: trwsio os.ls (ffolder) mewn ffenestri pan na ellir agor y cyfeiriadur gwarchodedig.
- crypto.sha/md5/ : Cyfrifiad sefydlog o'r un gwerthoedd hash wrth alw .sum() sawl gwaith ar gyfer sha1/256/512.
- os: gweithredwyd os.fd_is_pending/1, os.Process.pipe_read/1, os.Process.is_pending/1.
- json2: cefnogaeth ychwanegol i strwythurau nythu.
- we
- vweb: ychwanegu mathau meim ar gyfer ffeiliau .md statig.
- net.conv: Swyddogaethau ychwanegol varinttou64 ac u64tovarint ar gyfer amgodio newidiol o gyfanrifau heb eu llofnodi a ddisgrifir yn rfc-9000 (ar gyfer QUIC).
- net.http: cefnogaeth yn nodi swyddogaethau galw'n ôl on_running, on_stopped, on_closed yn http.Server{}, yn ogystal â show_startup_message: false.
- net.http: Cymorth pasio trwy ddirprwy HTTPgweinydd yn http.fetch.
- net.http: Ychwanegu mecanwaith ailgynnig at http.fetch() ar gyfer gwallau soced na ellir eu hosgoi.
- wasm: ar waith yn unol cynulliad.
- net.http: cynyddodd gwerth max_redirects i 16.
- picoev: gweithredu modd amrwd ar gyfer gwaith uniongyrchol gyda disgrifwyr ffeil.
- net.http: cefnogaeth ychwanegol i ddirprwyon socks5 a http(s) ar gyfer systemau tebyg i unix.
- ORM:
- orm: trin ychwanegol o werthoedd null a meysydd dewisol.
- orm: Mae'r gweithrediadau is_null/is_not_null yn cael eu gwneud yn unary.
- Gyrwyr Cronfa Ddata:
- tud: Mae galwadau C wedi'u symud i ffeiliau .cv.
- Cefndir brodorol:
- brodorol: cefnogaeth ar gyfer baner -no-builtin (cynhyrchu ffeiliau gweithredadwy < 1 KB) Linux gan ddefnyddio "v -no-builtin -b native examples/hello_world.v").
- brodorol: defnyddiwch i32 yn lle int.
- C-backend:
- ast, native, cgen: cefnogaeth ychwanegol ar gyfer "$if brodorol {}".
- vfmt:
- Nawr yn dileu toriadau llinell ychwanegol ar ôl call_expr a chyn dadleuon strwythur.
- Aliniad gwerth sefydlog wrth ddefnyddio allweddi gyda nodau uft8.
- Aliniad ymadroddion teiran mewn blociau const.
- Offer:
- Ychwanegwyd cefnogaeth @LOCATION i wneud dadfygio yn haws heb orfod cyfuno @FILE a @LINE ar amser rhedeg.
- meincnod: ychwanegwyd dulliau newydd b.record_measure/1 a b.all_recorded_measures/0.
- ci: llif gwaith github c2v wedi'i ddiweddaru.
- llinynnau: ychwanegwyd dull Bulder.write_decimal/1 (ar gyfer ysgrifennu rhif degol, heb ddyraniadau ychwanegol).
- Mae gosod modiwl presennol gan ddefnyddio vpm (ffenestri) wedi'i drwsio.
- tools.vpm: gwell gwaith gyda chyfeiriadau sy'n gorffen yn ".git".
- Gofyniad ychwanegol am ffeil v.mod i osod modiwlau trwy ddolenni allanol gan ddefnyddio vpm.
Ffynhonnell: opennet.ru
