Iru programlingvo eldono 1.13

Enkondukita eldono de programlingvo Iru 1.13, 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.13-eldono:

  • La pako crypto/tls havas protokolan subtenon ebligita defaŭlte TLS 1.3. Aldonita nova pako "crypto/ed25519" kun subteno por ciferecaj subskriboj Ed25519;
  • Aldonita subteno por novaj nombraj laŭvortaj prefiksoj por difini binarajn nombrojn (ekz. 0b101), oktalan (0o377), imagan (2.71828i) kaj deksesuma glitkomando (0x1p-1021), kaj la kapablo uzi la "_" signon por vide apartigi ciferojn. grandnombre (1_000_000);
  • La limigo pri uzado de nur sensignaj nombriloj en movoperacioj estis forigita, kio evitas nenecesajn konvertiĝojn al la uint-tipo antaŭ uzi la "‹‹" kaj "››" funkciigistojn;
  • Aldonita subteno por la platformo Illumos (GOOS=illumoj). Kongruo kun la platformo Android 10 estis certigita. La postuloj por la minimumaj versioj de FreeBSD (11.2) kaj macOS (10.11 "El Capitan") estis pliigitaj.
  • Daŭra evoluo de la nova modulsistemo, kiu povas esti utiligita kiel alternativo al GOPATH. Male al antaŭe anoncitaj planoj en Go 1.13, ĉi tiu sistemo ne estas ebligita defaŭlte kaj postulas aktivigon per la GO111MODULE=on variablo aŭ la uzon de kunteksto en kiu moduloj estas aplikataj aŭtomate. 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.

    Male al antaŭaj eldonoj, aŭtomata aplikado de la nova sistemo nun funkcias kiam go.mod dosiero ĉeestas en la nuna labordosierujo aŭ gepatra dosierujo dum rulado de la go komando, inkluzive kiam ĝi estas en la GOPATH/src dosierujo. Novaj mediovariabloj estis aldonitaj: GOPRIVATE, kiu difinas la vojojn de publike alireblaj moduloj, kaj GOSUMDB, kiu specifas alirparametrojn al la kontrolsumodatumbazo por moduloj ne listigitaj en la go.sum-dosiero;

  • La komando "iri" defaŭlte ŝarĝas modulojn kaj kontrolas ilian integrecon uzante la modulan spegulon kaj kontrolsuman datumbazon konservitan de Guglo (proxy.golang.org, sum.golang.org kaj index.golang.org);
  • Subteno por nur binaraj pakaĵoj estas ĉesigita; konstrui pakaĵon en la reĝimo “//go:binary-only-package” nun rezultigas eraron;
  • Aldonita subteno por la "@patch" sufikso al la "go get" komando, indikante ke la modulo devus esti ĝisdatigita al la plej nova prizorga eldono, sed sen ŝanĝi la nunan gravan aŭ negravan version;
  • Kiam oni prenas modulojn el fontkontrolaj sistemoj, la komando "iri" nun faras plian kontrolon de la versio-ĉeno, provante kongrui pseŭdo-versiajn nombrojn kun metadatenoj de la deponejo;
  • Aldonita subteno erarkontrolo (eraro envolvado) per la kreado de envolvaĵoj kiuj permesas la uzon de normaj erartraktiloj. Ekzemple, eraro "e" povas esti envolvita ĉirkaŭ eraro "w" provizante metodon Malvolvu, resendante "w". Ambaŭ eraroj "e" kaj "w" estas haveblaj en la programo kaj decidoj estas faritaj surbaze de eraro "w", sed "e" disponigas kroman kuntekston al "w" aŭ interpretas ĝin alimaniere;
  • La rendimento de rultempaj komponantoj estis optimumigita (rapideco pliiĝo de ĝis 30% estis notita) kaj pli agresema reveno de memoro al la operaciumo estis efektivigita (antaŭe, memoro estis resendita post kvin aŭ pli da minutoj, sed nun tuj post redukto de la amasograndeco).

fonto: opennet.ru

Aldoni komenton