Ukukhishwa kolimi lokuhlela V 0.4.3

Ngemva kwezinsuku ezingu-40 zokuthuthukiswa, inguqulo entsha yolimi lokuhlela olubhalwe ngezibalo V (vlang) isishicilelwe. Imigomo eyinhloko ekudaleni i-V kube lula ukufunda nokusebenzisa, ukufundeka okuphezulu, ukuhlanganiswa okusheshayo, ukuphepha okuthuthukisiwe, ukuthuthukiswa okuphumelelayo, ukusetshenziswa kwenkundla ehlukahlukene, ukusebenzisana okuthuthukisiwe nolimi C, ukuphatha amaphutha okungcono, amakhono esimanje, nezinhlelo ezigcinekayo. Ikhodi yokuhlanganisa, imitapo yolwazi namathuluzi ahlobene avulwe ngaphansi kwelayisensi ye-MIT.

Enguqulweni entsha:

  • Ukuthuthukiswa kolimi:
    • Imojula entsha “i-encoding.xml enomhlahleli, ukuqinisekiswa, ukuhlolwa kweyunithi.
    • Ukusekelwa okuthuthukisiwe kwama-couroutin (IO, inethiwekhi).
    • Yehlisa imisebenzi yokwabiwa kwenkumbulo ezinhlelweni zokusebenza ze-vweb ngo-80%.
    • Ukusetshenziswa kwe-"@VCURRENTHASH" ukuze kuthathelwe indawo "C.V_CURRENT_COMMIT_HASH".
    • Iphromoshini yohlobo olusha lwe-int isiqalile, ehlotshaniswa nohlobo lwe-i64 (ngaphambilini, uhlobo lwe-int beluhlonzwe ngohlobo lwe-i32).
    • Imithetho yokuhlola yohlobo olungaguquki yohlobo olusha lwe-int kanye nokukhiqizwa kwekhodi okulungiselelwe.
  • Izinguquko ze-API ezinqamula ukuhambisana:
    • Isichazamazwi "Request.cookies" sihoxisiwe. Kufakwe esikhundleni sokuthi “Request.cookie()” kanye “Request.add_cookie()”.
    • Imithetho eqinile yezinhlobo ezingu-C, okufanele manje zimenyezelwe njalo.
  • Thayipha izinguquko zesistimu yokuhlola:
    • Isexwayiso mayelana nenketho/ukuhlukaniswa komphumela siyiswe esigabeni samaphutha.
    • Lungisa ukushayela okuthi "fn" ngokuphikisana kokuzithandela kumodi ye-autofree.
    • Isheke lokuqamba libuyile: i-pascal case yeziteketiso.
    • C.xx = C.yy iziteketiso.
    • Vumela ukusakaza kwezinhlobo zezinombolo njengobubanzi kumabhulokhi wezibalo.
    • Isexwayiso mayelana nokuhoxiswa kohlobo lwe-byte (sivuna uhlobo lwe-u8) uma lusetshenziswa njengepharamitha ye-fn.
    • Lungisa indlela yokwengeza yezinhla ezifanayo.
    • Ihlola iphutha ekusetshenzisweni kwesixhumi esibonakalayo esiyimfihlo senye imojuli.
    • Ukuhlola okulungisiwe kwe-negative cap kanye namanani elensi lapho kuqaliswa amalungu afanayo.
    • Ukuguqula isexwayiso mayelana neduplicate yamagama emojula ye-var kanye ne-param kube iphutha.
    • Vumela ukunikezwa kabusha kwakho konke okuguquguqukayo okwabiwe (ngenkathi ugcina isimo sangaphambilini se-mutex).
  • Ukuthuthukiswa kwabahlaziyi:
    • Kulungiswe ukunikeza indlela emile emisebenzini engaziwa.
    • i-ast: Ukufometha okugxilile kwesimemezelo sesakhiwo esinesidleke.
    • Kwengezwe i-set_all + clear_all izindlela kuma-bitfields "[ifulegi]".
    • Xwayisa mayelana nokungenisa okungasetshenzisiwe, ngisho noma kumenyezelwa "ngezibalo zokungenisa { sin, cos }".
  • Izinguquko ze-Compiler:
    • okuhlola, umakhi, pref: sekela ifulegi elithi "-dump-defines" ukuze ubuke zonke izincazelo ezitholakalayo zomsebenzisi nesistimu zohlelo olunikeziwe.
    • amamephu: kungezwe imisebenzi ye-maps.merge() kanye ne-maps.merge_in_place().
  • Umtapowolwazi Ojwayelekile:
    • buildin: yengeze indlela ethi "engaphephile {a.reset()}" ukuze usethe ngokushesha wonke amabhayithi ku-0.
    • izibalo.izingxenyana: Sebenzisa ukulayisha ngokweqile komsebenzisi futhi ushiye imisebenzi emidala.
    • gg: Lungisa ukuqondanisa komngcele ongezansi we-draw_rounded_rect_engenalutho kuma-macos ne-linux.
    • crypto.bcrypt: isiphazamisi esilungisiwe ku-bcrypt.
    • sokol: ivuselelwe enguqulweni yakamuva
    • buildin: usayizi ongaguquki(C.BOOL) (aqondene namawindi).
    • math.big: Lungisa ukwahlukanisa okungalungile ngezinombolo ezinegethivu.
    • os: Kwengezwe indlela elula yokungaziba ezinye izimpawu zesistimu.
    • os: lungisa os.ls(ifolda) kumafasitela lapho uhla lwemibhalo oluvikelwe lungakwazi ukuvulwa.
    • crypto.sha/md5/: Isibalo esilungisiwe samanani e-hashi efanayo lapho ubiza .sum() izikhathi eziningi ku-sha1/256/512.
    • os: kusetshenziswe i-os.fd_is_pending/1, os.Process.pipe_read/1, os.Process.is_pending/1.
    • json2: ukwesekwa okwengeziwe kwezakhiwo ezifakwe isidleke.
  • kuwebhu
    • i-vweb: izinhlobo ze-mime ezingeziwe zamafayela amile .md.
    • net.conv: Imisebenzi eyengeziwe i-varinttou64 kanye ne-u64tovarint yombhalo wekhodi oguquguqukayo wamanani angabhalisiwe achazwe ku-rfc-9000 (ye-QUIC).
    • net.http: usekelo olucacisa ukusebenza_kuvuliwe,_kumisiwe, imisebenzi_evaliwe yokuphinda ushayele ku-http.Iseva{}, kanye ne-show_startup_message: amanga.
    • net.http: Usekelo lokudlula kwe-proxy ye-HTTPiseva ku-http.fetch.
    • net.http: Engeza indlela yokuzama futhi ku-http.fetch() ukuze uthole amaphutha esokhethi angenakugwenywa.
    • i-wasm: i-inline assembly esetshenziswe.
    • net.http: max_redirects inani lenyuke laya ku-16.
    • picoev: ukuqaliswa kwemodi eluhlaza yomsebenzi oqondile nezichazi zefayela.
    • net.http: usekelo olungeziwe lwamasokisi5 kanye namaphroksi we-http(ama) kumasistimu afana ne-unix.
  • I-ORM:
    • orm: ukuphathwa okungeziwe kwamanani angenalutho nezinkambu ozikhethela.
    • I-orm: I-is_null/is_not_null imisebenzi yenziwa ngokungajwayelekile.
  • Abashayeli Besizindalwazi:
    • pg: Amakholi we-C ahanjiswe kumafayela we-.cv.
  • Isiphetho somdabu:
    • native: support -no-builtin flag (khiqiza < 1KB Linux esebenzisekayo nge-"v -no-builtin -b izibonelo zomdabu/hello_world.v").
    • native: sebenzisa i-i32 esikhundleni se-int.
  • I-C-backend:
    • ast, native, cgen: usekelo olungeziwe lwe-"$if native {}".
  • vfmt:
    • Manje isusa ukunqamuka kwemigqa eyengeziwe ngemva kwe-call_expr nangaphambi kwezimpikiswano zesakhiwo.
    • Ukuqondanisa inani elingashintshi lapho usebenzisa okhiye abanezinhlamvu ze-uft8.
    • Ukuqondanisa izinkulumo ze-ternary kuma-const blocks.
  • Amathuluzi:
    • Kungezwe usekelo lwe-@LOCATION ukuze kwenziwe ukulungisa iphutha kube lula ngaphandle kokuhlanganisa okuthi @FILE kanye ne-@LINE ngesikhathi sokusebenza.
    • ibhentshimark: izindlela ezintsha ezingeziwe b.record_measure/1 kanye ne-b.all_recorded_measures/0.
    • ci: i-github workflow c2v ibuyekeziwe.
    • izintambo: kungezwe indlela ye-Bulder.write_decimal/1 (yokubhala inombolo yedesimali, ngaphandle kokwabiwa okwengeziwe).
    • Ukufakwa kwemojula ekhona kusetshenziswa i-vpm (amawindi) sekulungisiwe.
    • tools.vpm: umsebenzi othuthukisiwe onamakheli agcina ngokuthi ".git".
    • Isidingo esingeziwe sefayela le-v.mod ukufaka amamojula ngezixhumanisi zangaphandle kusetshenziswa i-vpm.

Source: opennet.ru

Engeza amazwana