Lëshimi i versionit të gjuhës së programimit V 0.4.3

Pas 40 ditësh zhvillimi u publikua versioni i ri i gjuhës së programimit me tip statik V (vlang). Qëllimet kryesore për krijimin e V ishin thjeshtësia e mësimit dhe përdorimit, lexueshmëria e lartë, kompilimi i shpejtë, siguria e rritur, zhvillimi efikas, përdorimi multplatformë, ndërveprimi i përmirësuar me gjuhën C, trajtimi më i mirë i gabimeve, mundësitë moderne dhe mbështetje më e lehtë për mirëmbajtjen e programeve. Kodi i kompilatorit, bibliotekat dhe veglat shoqëruese janë të hapura nën licencën MIT.

Në këtë version të ri:

  • PĂ«rmirĂ«simet nĂ« gjuhĂ«:
    • Moduli i ri 'encoding.xml' me parser, verifikim, teste unike.
    • MbĂ«shtetje e pĂ«rmirĂ«suar pĂ«r couroutines (IO, rrjet).
    • Reduktimi i operacioneve tĂ« alokimit tĂ« memories nĂ« aplikacionet vweb me 80%.
    • Implementimi i '@VCURRENTHASH' pĂ«r tĂ« zĂ«vendĂ«suar 'C.V_CURRENT_COMMIT_HASH'.
    • Fillimi i promovimit tĂ« njĂ« tipi tĂ« ri int, i lidhur me tipin i64 (mĂ« parĂ« tipi int ishte identifikuar me tipin i32).
    • Korrigjimi i rregullave tĂ« verificaimit tĂ« tipeve pĂ«r tipin e ri int dhe optimizimi i gjenerimit tĂ« kodit.
  • Ndryshimet nĂ« API qĂ« cingullen pĂ«rputhshmĂ«rinĂ«:
    • Dikatori 'Request.cookies' Ă«shtĂ« shpallur i vjetruar. NĂ« vend tĂ« tij, janĂ« futur 'Request.cookie()' dhe 'Request.add_cookie()'.
    • Rregulla mĂ« rigoroze pĂ«r tipet C, tĂ« cilat tani duhet tĂ« shpallin gjithmonĂ«.
  • Ndryshimet nĂ« sistemin e verifikimit tĂ« tipeve:
    • ParalajmĂ«rimi pĂ«r ndarjen e option/result Ă«shtĂ« zhvendosur nĂ« kategorinĂ« e gabimeve.
    • Korrigjimi i thirrjes 'fn' me njĂ« argument opsional nĂ« modin autofree.
    • Kontrolli i emĂ«rtimeve Ă«shtĂ« rikthyer: pascal case pĂ«r aliaset.
    • C.xx = C.yy aliaset.
    • Lejohet konvertimi i tipeve tĂ« numrave tĂ« plotĂ« si interval (ranges) nĂ« blloqet math.
    • ParalajmĂ«rimi pĂ«r vjetĂ«rsimin e tipit byte (nĂ« favor tĂ« tipit u8) kur pĂ«rdoret si parametĂ«r fn.
    • Korrigjimi i metodĂ«s append pĂ«r masat generike.
    • Kontrolli i gabimit tĂ« implementimit tĂ« njĂ« interfejsi privat nga moduli tjetĂ«r.
    • Korrigjimi i kontrollit tĂ« vlerave negative cap, len gjatĂ« inicimit tĂ« masĂ«s.
    • Transformimi i paralajmĂ«rimit pĂ«r duplicimin e emrave tĂ« modulit var dhe param nĂ« gabim.
    • Lejohet ripĂ«rcaktimi i njĂ« variabli tĂ« zakonshĂ«m tĂ«rĂ«sisht (me ruajtjen e gjendjes sĂ« mĂ«parshme tĂ« mutexit).
  • PĂ«rmirĂ«simet e parserit:
    • Korrigjimi i caktimit tĂ« metodĂ«s statike pĂ«r funksionet anonime.
    • ast: korrigjimi i formatimit tĂ« shpalljes sĂ« strukturĂ«s me strukturĂ« tĂ« brendshme.
    • Shtuar metodat set_all + clear_all pĂ«r fushat e bitĂ«ve '[flag]'.
    • ParalajmĂ«rimi pĂ«r importet e pa pĂ«rdorura, edhe nĂ«se shpallen pĂ«rmes 'import math { sin, cos }'.
  • Ndryshimet nĂ« kompilator:
    • checker, builder, pref: mbĂ«shtetje pĂ«r flamurin '-dump-defines' pĂ«r tĂ« parĂ« tĂ« gjitha pĂ«rcaktimet e pĂ«rdoruesve dhe sistemit tĂ« disponueshme pĂ«r kĂ«tĂ« program.
    • maps: shtuar funksionet maps.merge() dhe maps.merge_in_place().
  • Biblioteka standarde:
    • builtin: shtuar metoda 'unsafe { a.reset() }' pĂ«r tĂ« vendosur me shpejtĂ«si tĂ« gjithĂ« bytĂ«t nĂ« masĂ« nĂ« 0.
    • math.fractions: pĂ«rdorimi i mbingarkesĂ«s sĂ« operatorĂ«ve dhe heqja e funksioneve tĂ« vjetra.
    • gg: korrigjimi i rreshtimit tĂ« kufirit tĂ« poshtĂ«m draw_rounded_rect_empty nĂ« macos dhe linux.
    • crypto.bcrypt: korrigjuar gabimin nĂ« bcrypt.
    • sokol: pĂ«rditĂ«suar nĂ« versionin mĂ« tĂ« fundit.
    • builtin: korrigjimi i sizeof(C.BOOL) (specifike pĂ«r windows).
    • math.big: korrigjimi i ndarjes sĂ« gabuar me numra negativĂ«.
    • os: shtuar njĂ« mĂ«nyrĂ« tĂ« pĂ«rshtatshme pĂ«r tĂ« injoruar disa sinjale sistemike.
    • os: korrigjimi i os.ls(folder) nĂ« windows, kur katalogu i mbrojtur nuk mund tĂ« hapet.
    • crypto.sha/md5/: korrigjimi i llogaritjes sĂ« vlerave tĂ« ngjashme tĂ« hash-it gjatĂ« thirrjeve tĂ« shumta .sum() pĂ«r sha1/256/512.
    • os: implementuar os.fd_is_pending/1, os.Process.pipe_read/1, os.Process.is_pending/1.
    • json2: shtuar mbĂ«shtetje pĂ«r struktura tĂ« brendshme.
  • Web
    • vweb: shtuar mime tipe pĂ«r skedarĂ«t statikĂ« .md.
    • net.conv: shtuar funksionet varinttou64 dhe u64tovarint pĂ«r kodimin e numrave tĂ« plotĂ« pa nĂ«nshkrim, tĂ« pĂ«rshkruar nĂ« rfc-9000 (pĂ«r QUIC).
    • net.http: mbĂ«shtetje pĂ«r caktimin e funksioneve kthim pas on_running, on_stopped, on_closed nĂ« http.Server{}, si dhe show_startup_message: false.
    • net.http: mbĂ«shtetje pĂ«r kalimin e HTTP-proxy-server nĂ« http.fetch.
    • net.http: shtimi i mekanizmit tĂ« rikthimit nĂ« http.fetch() pĂ«r gabime tĂ« pashmangshme tĂ« soketĂ«ve.
    • wasm: implementuar inline assembly.
    • net.http: rritur vlerĂ«n max_redirects deri nĂ« 16.
    • picoev: realizimi i modit raw pĂ«r punĂ« tĂ« drejtpĂ«rdrejtĂ« me deshkruesit e skedarĂ«ve.
    • net.http: pĂ«r sistemet e ngjashme me unix Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r socks5 dhe http(s) proxy.
  • ORM:
    • orm: shtuar trajtimi i vlerĂ«s null dhe fushave opsionale.
    • orm: Operacionet is_null/is_not_null janĂ« bĂ«rĂ« unare.
  • Drejtuesit e bazĂ«s sĂ« tĂ« dhĂ«nave:
    • pg: thirrjet c janĂ« transferuar nĂ« .c.v skedarĂ«t.
  • Native backend:
    • native: mbĂ«shtetje pĂ«r flamurin -no-builtin (gjenerimi i skedarĂ«ve tĂ« ekzekutueshĂ«m < 1 KB Linux duke pĂ«rdorur 'v -no-builtin -b native examples/hello_world.v').
    • native: pĂ«rdorimi i i32 nĂ« vend tĂ« int.
  • Backend i C:
    • ast, native, cgen: shtuar mbĂ«shtetje pĂ«r '$if native {}'.
  • vfmt:
    • Tani heq ndĂ«rrimet e tepĂ«rta tĂ« linjave pas call_expr dhe para argumenteve tĂ« strukturĂ«s.
    • Korrigjimi i rreshtimit tĂ« vlerave kur pĂ«rdoren çelĂ«sa me simbole uft8.
    • Rreshtimi i shprehjeve ternare nĂ« blloqet const.
  • Toolkit:
    • Shtuar mbĂ«shtetje pĂ«r @LOCATION, pĂ«r njĂ« diagnostikim mĂ« tĂ« lehtĂ« pa nevojĂ«n pĂ«r tĂ« kombinuar @FILE dhe @LINE gjatĂ« ekzekutimit.
    • benchmark: metoda e re b.record_measure/1 dhe b.all_recorded_measures/0 u shtuan.
    • ci: pĂ«rditĂ«suar punĂ«t e fluksit github c2v.
    • strings: metoda Bulder.write_decimal/1 (pĂ«r shkrimin e numrave decimalĂ«, pa alokime shtesĂ«) u shtua.
    • Rregulluar instalimi i njĂ« moduli ekzistues me anĂ« tĂ« vpm (windows).
    • tools.vpm: pĂ«rmirĂ«suar puna me adresat qĂ« pĂ«rfundojnĂ« nĂ« «.git».
    • Shtuar kĂ«rkesa pĂ«r pranitĂ« e skedarit v.mod pĂ«r tĂ« instaluar modulet pĂ«rmes lidhjeve tĂ« jashtme me vpm.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster