Go rhyddhau iaith rhaglennu 1.14

A gyflwynwyd gan rhyddhau iaith rhaglennu Ewch 1.14, 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.14:

  • Mae'r system modiwl newydd yn y gorchymyn "mynd" yn cael ei ddatgan yn barod i'w ddefnyddio'n gyffredinol, wedi'i alluogi yn ddiofyn, a'i argymell ar gyfer rheoli dibyniaeth yn lle GOPATH. 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.
  • Wedi adio cefnogaeth ar gyfer gwreiddio rhyngwynebau gyda set o ddulliau sy'n gorgyffwrdd. Bellach gall fod gan ddulliau o ryngwyneb adeiledig yr un enwau a llofnodion Γ’ dulliau mewn rhyngwynebau presennol. Mae dulliau a ddatganwyd yn benodol yn parhau i fod yn unigryw fel o'r blaen.
  • Mae perfformiad y mynegiant "gohirio" wedi'i wella, gan ei gwneud bron mor gyflym Γ’ galw swyddogaeth ohiriedig yn uniongyrchol, gan ganiatΓ‘u gweithredu swyddogaeth gohiriedig mewn cod sy'n sensitif i berfformiad.
  • Darperir rhagbryniant asyncronaidd o goroutines (goroutines) - gall dolenni nad ydynt yn cynnwys galwadau swyddogaeth bellach o bosibl arwain at ddatgloi'r amserlen neu ohirio dechrau casglu sbwriel.
  • Mae effeithlonrwydd y system dyrannu tudalennau cof wedi'i wella ac erbyn hyn mae llawer llai o ddadleuon clo mewn ffurfweddiadau Γ’ gwerthoedd GOMAXPROCS mawr. Y canlyniad yw llai o hwyrni a mwy o fewnbwn wrth ddosbarthu blociau mawr o gof yn ddwys ar yr un pryd.
  • Mae cloi wedi'i optimeiddio ac mae nifer y switshis cyd-destun wedi'i leihau wrth redeg amseryddion mewnol a ddefnyddir yn swyddogaethau time.After, time.Tick, net.Conn.SetDeadline.
  • Yn y gorchymyn mynd, mae'r faner β€œ-mod=vendor” wedi'i galluogi yn ddiofyn os oes cyfeiriadur gwerthwr yn y gwraidd, wedi'i fwriadu ar gyfer darparu dibyniaethau allanol sy'n gysylltiedig Γ’ gwerthwr penodol. Ychwanegwyd baner "-mod=mod" ar wahΓ’n i lwytho modiwlau o storfa'r modiwl yn hytrach nag o'r cyfeiriadur "gwerthwr". Os yw'r ffeil go.mod yn ddarllenadwy yn unig, gosodir y faner β€œ-mod=readonly” yn ddiofyn os nad oes cyfeiriadur β€œgwerthwr” uchaf. Ychwanegwyd baner "-modfile=file" i nodi ffeil go.mod amgen yn lle'r un yng nghyfeiriadur gwraidd y modiwl.
  • Ychwanegwyd y newidyn amgylchedd GOINSECURE, pan gaiff ei osod, nid yw'r gorchymyn mynd yn gofyn am ddefnyddio HTTPS ac yn hepgor gwirio tystysgrif wrth lwytho modiwlau yn uniongyrchol.
  • Mae'r casglwr wedi ychwanegu'r faner β€œ-d=checkptr”, wedi'i galluogi yn ddiofyn, i wirio'r cod i weld a yw'n cydymffurfio Γ’'r rheolau ar gyfer defnyddio anniogel.Pointer yn ddiogel.
  • Mae pecyn newydd wedi'i gynnwys yn y dosbarthiad hash/maphash gyda swyddogaethau hash nad ydynt yn cryptograffig i greu tablau stwnsh ar gyfer dilyniannau neu linynnau beit mympwyol.
  • Ychwanegwyd cefnogaeth arbrofol ar gyfer y platfform RISC-V 64-bit ar Linux.
  • Cefnogaeth ychwanegol i FreeBSD ar systemau ARM 64-did.

Ffynhonnell: opennet.ru

Ychwanegu sylw