Iru programlingvo eldono 1.14

Enkondukita eldono de programlingvo Iru 1.14, kiu estas disvolvita de Google kun la partopreno de la komunumo kiel hibrida solvo, kiu kombinas la altan rendimenton de kompilitaj lingvoj kun la avantaĝoj de skriptlingvoj kiel facileco de skribkodo, rapideco de disvolviĝo kaj erarprotekto. Projekta kodo distribuita de sub la permesilo BSD.

La sintakso de Go baziĝas sur konataj elementoj de la C-lingvo kun kelkaj pruntoj de la Python-lingvo. La lingvo estas sufiĉe konciza, sed la kodo estas facile legebla kaj komprenebla. Go-kodo estas kompilita en memstarajn binarajn ruleblajn ekzekutaĵojn kiuj funkcias denaske sen uzado de virtuala maŝino (profilado, senararigado, kaj aliaj rultempaj problemo-detektaj subsistemoj estas integritaj kiel rultempaj komponantoj), kiu ebligas al vi atingi rendimenton kompareblan al C-programoj.

La projekto estas komence evoluigita kun okulo al plurfadena programado kaj efika operacio sur plurkernaj sistemoj, inkluzive de disponigado de funkciigist-nivelaj rimedoj por organizado de paralela komputado kaj interagado inter paralel-efektivigitaj metodoj. La lingvo ankaŭ disponigas enkonstruitan protekton kontraŭ troasignitaj memorblokoj kaj disponigas la kapablon uzi rubkolektilon.

Ĉefa novigojenkondukite en la Go 1.14-eldono:

  • La nova modulsistemo en la komando "iru" estas deklarita preta por ĝenerala uzo, ebligita defaŭlte, kaj rekomendita por administrado de dependeco anstataŭ GOPATH. La nova modulsistemo havas integran versionan subtenon, pakaĵliveraĵkapablojn, kaj plibonigitan dependecadministradon. Kun moduloj, programistoj ne plu estas ligitaj al laboro ene de GOPATH-arbo, povas eksplicite difini versionitajn dependecojn kaj krei ripeteblajn konstruojn.
  • Aldonita subteno por enkonstruado de interfacoj kun imbrikita aro de metodoj. Metodoj de enkonstruita interfaco nun povas havi la samajn nomojn kaj subskribojn kiel metodoj en ekzistantaj interfacoj. Eksplicite deklaritaj metodoj restas unikaj kiel antaŭe.
  • La agado de la "prokrasti" esprimo estis plibonigita, farante ĝin preskaŭ same rapida kiel vokado de prokrastita funkcio rekte, permesante prokrastan funkciokzekuton en efikeco-sentema kodo.
  • Nesinkrona antaŭzorgo de korutinoj (gorutinoj) estas disponigita - bukloj kiuj ne enhavas funkciovokojn povas nun eble konduki al planilo-blokiĝo aŭ prokrasti la komencon de rubkolekto.
  • La efikeco de la memorpaĝa asignosistemo estis plibonigita kaj ekzistas nun signife malpli da ŝlosilaj disputoj en agordoj kun grandaj GOMAXPROCS-valoroj. La rezulto estas reduktita latenteco kaj pliigita trairo dum samtempe intense distribuas grandajn blokojn de memoro.
  • Ŝlosado estis optimumigita kaj la nombro da kuntekstaj ŝaltiloj estis reduktita dum funkciado de internaj tempigiloj uzataj en la funkcioj time.After, time.Tick, net.Conn.SetDeadline.
  • En la go-komando, la flago "-mod=vendor" estas ebligita defaŭlte se ekzistas vendisto dosierujo en la radiko, destinita por liveri eksterajn dependecojn ligitajn al specifa vendisto. Aldonis apartan flagon "-mod=mod" por ŝargi modulojn el la modula kaŝmemoro prefere ol el la dosierujo "vendor". Se la go.mod-dosiero estas nurlegebla, la flago "-mod=readonly" estas agordita defaŭlte se ne ekzistas supra dosierujo de "vendisto". Aldonita flago "-modfile=dosiero" por specifi alternativan go.mod dosieron anstataŭ tiu en la radika dosierujo de la modulo.
  • Aldonita la mediovariablo GOINSECURE, kiam ĝi estas agordita, la go-komando ne postulas la uzon de HTTPS kaj preterlasas atestilkontroladon dum ŝarĝo de moduloj rekte.
  • La kompililo aldonis la flagon "-d=checkptr", ebligita defaŭlte, por kontroli kodon por konformeco al la reguloj por sekura uzo de unsafe.Pointer.
  • Nova pako estas inkluzivita en la livero hash/maphash kun ne-kriptografaj hashfunkcioj por krei hashtabelojn por arbitraj bajtaj sekvencoj aŭ ĉenoj.
  • Aldonita eksperimenta subteno por la 64-bita RISC-V-platformo sur Linukso.
  • Aldonita subteno por FreeBSD sur 64-bitaj ARM-sistemoj.

fonto: opennet.ru

Aldoni komenton