Rilaxx tal-lingwa ta' programmar Go 1.14

Introdott rilaxx tal-lingwa ta 'programmar Mur 1.14, 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.14:

  • Is-sistema l-ġdida tal-moduli fil-kmand "go" hija ddikjarata lesta għall-użu ġenerali, attivata awtomatikament, u rakkomandata għall-ġestjoni tad-dipendenza minflok GOPATH. 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.
  • Miżjud appoġġ għall-inkorporazzjoni ta 'interfaces b'sett ta' metodi li jikkoinċidu. Metodi minn interface inkorporat issa jista' jkollhom l-istess ismijiet u firem bħal metodi f'interfaces eżistenti. Metodi ddikjarati b'mod espliċitu jibqgħu uniċi bħal qabel.
  • Il-prestazzjoni tal-espressjoni "differita" ġiet imtejba, li tagħmilha kważi malajr daqs is-sejħa ta 'funzjoni differita direttament, li tippermetti eżekuzzjoni ta' funzjoni differita f'kodiċi sensittiv għall-prestazzjoni.
  • Preemption asinkronika ta 'coroutines (goroutines) hija pprovduta - loops li ma fihomx sejħiet ta' funzjoni issa jistgħu potenzjalment iwasslu għal stadju tal-iskeduler jew idewmu l-bidu tal-ġbir taż-żibel.
  • L-effiċjenza tas-sistema ta' allokazzjoni tal-paġna tal-memorja tjiebet u issa hemm ħafna inqas kontenzjonijiet ta' lock f'konfigurazzjonijiet b'valuri GOMAXPROCS kbar. Ir-riżultat huwa latency mnaqqsa u żieda fil-fluss filwaqt li simultanjament iqassmu b'mod intensiv blokki kbar ta 'memorja.
  • L-illokkjar ġie ottimizzat u n-numru ta 'swiċċijiet tal-kuntest tnaqqas meta tħaddem tajmers interni użati fil-funzjonijiet time.After, time.Tick, net.Conn.SetDeadline.
  • Fil-kmand go, il-bandiera "-mod = bejjiegħ" hija attivata awtomatikament jekk hemm direttorju tal-bejjiegħ fl-għerq, maħsub biex iwassal dipendenzi esterni marbuta ma 'bejjiegħ speċifiku. Miżjud bandiera separata "-mod=mod" biex tagħbija moduli mill-cache tal-modulu aktar milli mid-direttorju tal-"bejjiegħ". Jekk il-fajl go.mod jinqara biss, il-bandiera "-mod = readonly" hija ssettjata awtomatikament jekk ma jkunx hemm direttorju ta '"bejjiegħ" ta' fuq. Miżjud il-marka "-modfile=file" biex tispeċifika fajl alternattiv go.mod minflok dak fid-direttorju tal-għeruq tal-modulu.
  • Miżjud il-varjabbli tal-ambjent GOINSECURE, meta ssettjat, il-kmand tal-go ma jeħtieġx l-użu ta 'HTTPS u taqbeż il-verifika taċ-ċertifikat meta tgħabbi l-moduli direttament.
  • Il-kompilatur żied il-bandiera “-d=checkptr”, ppermettiet awtomatikament, biex jiċċekkja l-kodiċi għall-konformità mar-regoli għall-użu sikur ta 'unsafe.Pointer.
  • Pakkett ġdid huwa inkluż fil-kunsinna hash/maphash b'funzjonijiet hash mhux kriptografiċi biex jinħolqu tabelli hash għal sekwenzi jew kordi ta 'byte arbitrarji.
  • Miżjud appoġġ sperimentali għall-pjattaforma RISC-V 64-bit fuq Linux.
  • Appoġġ miżjud għall-FreeBSD fuq sistemi ARM 64-bit.

Sors: opennet.ru

Żid kumment