Go rhyddhau iaith rhaglennu 1.13

A gyflwynwyd gan rhyddhau iaith rhaglennu Ewch 1.13, sy'n cael ei ddatblygu gan Google gyda chyfranogiad y gymuned fel ateb hybrid sy'n cyfuno perfformiad uchel ieithoedd a luniwyd gyda manteision sgriptio ieithoedd megis rhwyddineb ysgrifennu cod, cyflymder datblygu a diogelu gwallau. Cod prosiect dosbarthu gan dan y drwydded BSD.

Mae cystrawen Go yn seiliedig ar elfennau cyfarwydd o'r iaith C gyda rhai benthyciadau o'r iaith Python. Mae'r iaith yn eithaf cryno, ond mae'r cod yn hawdd i'w ddarllen a'i ddeall. Mae cod Go yn cael ei grynhoi i mewn i weithrediadau deuaidd annibynnol sy'n rhedeg yn frodorol heb ddefnyddio peiriant rhithwir (mae proffilio, dadfygio, ac is-systemau canfod problemau amser rhedeg wedi'u hintegreiddio fel cydrannau amser rhedeg), sy'n eich galluogi i gyflawni perfformiad tebyg i raglenni C.

Datblygir y prosiect i ddechrau gyda llygad ar raglennu aml-edau a gweithrediad effeithlon ar systemau aml-graidd, gan gynnwys darparu dulliau a weithredir ar lefel gweithredwr ar gyfer trefnu cyfrifiadura cyfochrog a rhyngweithio rhwng dulliau a weithredir yn gyfochrog. Mae'r iaith hefyd yn darparu amddiffyniad adeiledig rhag gor-redeg o flociau cof a neilltuwyd ac yn darparu'r gallu i ddefnyddio'r casglwr sbwriel.

Y prif arloesiadaua gyflwynwyd yn natganiad Go 1.13:

  • Mae gan y pecyn crypto/tls gefnogaeth protocol wedi'i alluogi yn ddiofyn TLS 1.3. Ychwanegwyd pecyn newydd "crypto/ed25519" gyda chefnogaeth ar gyfer llofnodion digidol Ed25519;
  • Cefnogaeth ychwanegol ar gyfer rhagddodiaid llythrennol rhifol newydd i ddiffinio rhifau deuaidd (e.e. 0b101), wythol (0o377), dychmygol (2.71828i) a phwynt arnawf hecsadegol (0x1p-1021), a'r gallu i ddefnyddio'r nod "_" i wahanu digidau yn weledol mewn niferoedd mawr (1_000_000);
  • Mae'r cyfyngiad ar ddefnyddio rhifyddion heb eu llofnodi yn unig mewn gweithrediadau shifft wedi'i ddileu, sy'n osgoi trawsnewidiadau diangen i'r math uint cyn defnyddio'r gweithredwyr β€œβ€Ή ‹” a β€œβ€Ίβ€Ί;
  • Cefnogaeth ychwanegol i blatfform Illumos (GOOS = illumos). Sicrhawyd cydnawsedd Γ’ llwyfan Android 10. Mae'r gofynion ar gyfer y fersiynau lleiaf o FreeBSD (11.2) a macOS (10.11 β€œEl Capitan”) wedi'u cynyddu.
  • Datblygiad parhaus y system fodiwlau newydd, y gellir ei defnyddio yn lle GOPATH. Yn groes i gynlluniau a gyhoeddwyd yn flaenorol yn Go 1.13, nid yw'r system hon wedi'i galluogi yn ddiofyn ac mae angen actifadu trwy'r newidyn GO111MODULE=on neu ddefnyddio cyd-destun lle mae modiwlau'n cael eu cymhwyso'n awtomatig. Mae'r system fodiwlau newydd yn cynnwys cefnogaeth fersiynu integredig, galluoedd cyflwyno pecynnau, a gwell rheolaeth ar ddibyniaeth. Gyda modiwlau, nid yw datblygwyr bellach yn gysylltiedig Γ’ gweithio o fewn coeden GOPATH, gallant ddiffinio dibyniaethau fersiwn yn benodol, a chreu adeiladau ailadroddadwy.

    Yn wahanol i ddatganiadau blaenorol, mae cymhwyso'r system newydd yn awtomatig bellach yn gweithio pan fo ffeil go.mod yn bresennol yn y cyfeiriadur gweithio cyfredol neu'r cyfeiriadur rhiant wrth redeg y gorchymyn mynd, gan gynnwys pan fydd yn y cyfeiriadur GOPATH/src. Mae newidynnau amgylchedd newydd wedi'u hychwanegu: GOPRIVATE, sy'n diffinio llwybrau modiwlau sy'n hygyrch i'r cyhoedd, a GOSUMDB, sy'n pennu paramedrau mynediad i'r gronfa ddata checksum ar gyfer modiwlau nad ydynt wedi'u rhestru yn y ffeil go.sum;

  • Mae'r gorchymyn "mynd" yn rhagosodedig yn llwytho modiwlau ac yn gwirio eu cywirdeb gan ddefnyddio'r drych modiwl a chronfa ddata checksum a gynhelir gan Google (proxy.golang.org, sum.golang.org a index.golang.org);
  • Mae cefnogaeth ar gyfer pecynnau deuaidd yn unig wedi dod i ben; mae adeiladu pecyn yn y modd β€œ//go: binary-only-package” bellach yn arwain at wall;
  • Ychwanegwyd cefnogaeth i'r Γ΄l-ddodiad "@patch" i'r gorchymyn "go get", gan nodi y dylid diweddaru'r modiwl i'r datganiad cynnal a chadw diweddaraf, ond heb newid y fersiwn fawr neu fach gyfredol;
  • Wrth adfer modiwlau o systemau rheoli ffynhonnell, mae'r gorchymyn "mynd" bellach yn cynnal gwiriad ychwanegol ar y llinyn fersiwn, gan geisio cyfateb rhifau ffug-fersiwn Γ’ metadata o'r ystorfa;
  • Cefnogaeth ychwanegol archwiliad gwall (lapio gwall) trwy greu deunydd lapio sy'n caniatΓ‘u defnyddio trinwyr gwall safonol. Er enghraifft, camgymeriad Gellir lapio "e" o gwmpas gwall "w" trwy ddarparu dull Dadlapio, gan ddychwelyd "w". Mae gwallau "e" a "w" ar gael yn y rhaglen a gwneir penderfyniadau ar sail gwall "w", ond mae "e" yn darparu cyd-destun ychwanegol i "w" neu'n ei ddehongli'n wahanol;
  • Mae perfformiad cydrannau amser rhedeg wedi'i optimeiddio (nodir cynnydd cyflymder o hyd at 30%) ac mae dychweliad cof mwy ymosodol i'r system weithredu wedi'i weithredu (yn flaenorol, dychwelwyd cof ar Γ΄l pum munud neu fwy, ond nawr ar unwaith ar Γ΄l lleihau maint y domen).

Ffynhonnell: opennet.ru

Ychwanegu sylw