Rilaxx tal-lingwa ta' programmar Go 1.13

Introdott rilaxx tal-lingwa ta 'programmar Mur 1.13, li qed jiġi żviluppat minn Google bil-parteċipazzjoni tal-komunità bħala soluzzjoni ibrida li tgħaqqad il-prestazzjoni għolja tal-lingwi kkumpilati mal-vantaġġi tal-lingwi tal-kitba bħall-faċilità tal-kitba tal-kodiċi, il-veloċità tal-iżvilupp u l-protezzjoni tal-iżbalji. Kodiċi tal-proġett imqassma minn taħt liċenzja BSD.

Is-sintassi ta' Go hija bbażata fuq elementi familjari tal-lingwa C b'xi self mil-lingwa Python. Il-lingwa hija pjuttost konċiża, iżda l-kodiċi huwa faċli biex jinqara u jinftiehem. Il-kodiċi Go huwa miġbur f’eżekutibbli binarji waħedhom li jaħdmu b’mod nattiv mingħajr ma tuża magna virtwali (profiling, debugging, u sottosistemi oħra ta’ skoperta ta’ problemi ta’ runtime huma integrati bħala komponenti runtime), li jippermettilek tikseb prestazzjoni komparabbli mal-programmi C.

Il-proġett huwa inizjalment żviluppat b'attenzjoni għall-ipprogrammar multi-thread u tħaddim effiċjenti fuq sistemi multi-core, inkluż il-provvista ta 'mezzi fil-livell tal-operatur għall-organizzazzjoni tal-kompjuters paralleli u l-interazzjoni bejn metodi eżegwiti b'mod parallel. Il-lingwa tipprovdi wkoll protezzjoni integrata kontra blokki tal-memorja allokati żżejjed u tipprovdi l-abbiltà li tuża garbage collector.

Il-prinċipali innovazzjonijietintrodott fir-rilaxx Go 1.13:

  • Il-pakkett kripto/tls għandu appoġġ għall-protokoll attivat awtomatikament TLS 1.3. Miżjud pakkett ġdid "crypto/ed25519" b'appoġġ għall-firem diġitali Ed25519;
  • Appoġġ miżjud għal prefissi litterali numeriċi ġodda biex jiddefinixxu numri binarji (eż. 0b101), ottali (0o377), immaġinarji (2.71828i) u punt varjabbli eżadeċimali (0x1p-1021), u l-abbiltà li tuża l-karattru "_" biex tissepara viżwalment iċ-ċifri f'numri kbar (1_000_000);
  • Ir-restrizzjoni fuq l-użu ta' counters mhux iffirmati biss f'operazzjonijiet ta' shift tneħħiet, li tevita konverżjonijiet bla bżonn għat-tip uint qabel ma tuża l-operaturi “‹‹” u “››”;
  • Appoġġ miżjud għall-pjattaforma Illumos (GOOS=illumos). Ġiet żgurata l-kompatibilità mal-pjattaforma Android 10. Żdiedu r-rekwiżiti għall-verżjonijiet minimi ta’ FreeBSD (11.2) u macOS (10.11 “El Capitan”).
  • Żvilupp kontinwu tas-sistema l-ġdida tal-moduli, li tista’ tintuża bħala alternattiva għal GOPATH. Kuntrarjament għal pjanijiet imħabbra qabel f'Go 1.13, din is-sistema mhix attivata awtomatikament u teħtieġ attivazzjoni permezz tal-varjabbli GO111MODULE=on jew l-użu ta' kuntest li fih il-moduli jiġu applikati awtomatikament. Is-sistema l-ġdida tal-moduli għandha appoġġ integrat għall-verżjoni, kapaċitajiet ta’ kunsinna ta’ pakketti, u ġestjoni mtejba tad-dipendenza. Bil-moduli, l-iżviluppaturi m'għadhomx marbuta max-xogħol fi ħdan siġra GOPATH, jistgħu jiddefinixxu b'mod espliċitu dipendenzi verżjoni, u joħolqu bini ripetibbli.

    B'differenza minn rilaxxi preċedenti, l-applikazzjoni awtomatika tas-sistema l-ġdida issa taħdem meta fajl go.mod ikun preżenti fid-direttorju tax-xogħol kurrenti jew fid-direttorju parent meta jħaddem il-kmand go, inkluż meta jkun fid-direttorju GOPATH/src. Ġew miżjuda varjabbli ambjentali ġodda: GOPRIVATE, li jiddefinixxi l-mogħdijiet ta 'moduli aċċessibbli pubblikament, u GOSUMDB, li jispeċifika parametri ta' aċċess għad-database ta 'checksum għal moduli mhux elenkati fil-fajl go.sum;

  • Il-kmand "go" awtomatikament jgħabbi l-moduli u jiċċekkja l-integrità tagħhom billi juża l-mera tal-modulu u d-database tas-checksum miżmuma minn Google (proxy.golang.org, sum.golang.org u index.golang.org);
  • L-appoġġ għal pakketti binarji biss twaqqaf; il-bini ta' pakkett fil-mod "//go: binary-only-package" issa jirriżulta fi żball;
  • Appoġġ miżjud għas-suffiss "@patch" mal-kmand "go get", li jindika li l-modulu għandu jiġi aġġornat għall-aħħar rilaxx ta 'manutenzjoni, iżda mingħajr ma tinbidel il-verżjoni maġġuri jew minuri attwali;
  • Meta jiġu rkuprati moduli minn sistemi ta 'kontroll tas-sors, il-kmand "go" issa jwettaq kontroll addizzjonali fuq is-sekwenza tal-verżjoni, jipprova jqabbel in-numri tal-psewdo-verżjoni mal-metadata mir-repożitorju;
  • Appoġġ miżjud spezzjoni ta' żball (tgeżwir ta 'żbalji) permezz tal-ħolqien ta' tgeżwir li jippermettu l-użu ta 'handlers ta' żbalji standard. Pereżempju, żball "e" jista' jkun imgeżwer madwar l-iżball "w" billi jipprovdi metodu Ħoll, jirritorna "w". Iż-żewġ żbalji "e" u "w" huma disponibbli fil-programm u d-deċiżjonijiet isiru bbażati fuq żball "w", iżda "e" tipprovdi kuntest addizzjonali għal "w" jew tinterpretaha b'mod differenti;
  • Il-prestazzjoni tal-komponenti runtime ġiet ottimizzata (ġiet innutata żieda fil-veloċità sa 30%) u ġie implimentat ritorn aktar aggressiv tal-memorja għas-sistema operattiva (preċedentement, il-memorja kienet ritornata wara ħames minuti jew aktar, iżda issa immedjatament wara li tnaqqas id-daqs tal-borġ).

Sors: opennet.ru

Żid kumment