A gyflwynwyd gan rhyddhau iaith rhaglennu Ewch 1.15, 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.15:
Mae gwaith y cysylltydd wedi'i wella'n sylweddol, o ran cynyddu cyflymder gweithredu a lleihau'r defnydd o gof, ac i'r cyfeiriad o symleiddio cynnal a chadw cod. Pan brofwyd systemau gweithredu gan ddefnyddio fformat ffeil gweithredadwy ELF (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), adeiladwyd set nodweddiadol o gymwysiadau Go mawr 20% yn gyflymach, a gostyngwyd y defnydd o gof ar gyfartaledd o 30%. Gwnaethpwyd mwy o gynhyrchiant yn bosibl trwy newid i fformat ffeil gwrthrych newydd ac ail-weithio camau mewnol i gynyddu lefel paraleleiddio gwaith. Mae'r cysylltydd brodorol bellach yn cael ei ddefnyddio yn ddiofyn ar systemau linux/amd64 a linux/arm64 yn "-buildmode=pie", nad oes angen defnyddio cysylltydd C mwyach.
Mewn amser rhedeg, mae dosbarthiad gwrthrychau bach ar systemau gyda nifer fawr o greiddiau CPU wedi'i wella'n sylweddol ac mae hwyrni wedi'i leihau. Mewn achos o fethiannau, mae gwerthoedd gyda mathau rhifol a llinynnol yn cael eu harddangos yn lle dangos y cyfeiriad. Wrth anfon signalau SIGSEGV, SIGBUS a SIGFPE i raglen Go, yn niffyg triniwr os/signal.Notify, bydd y cymhwysiad yn gadael gydag allbwn olrhain pentwr (roedd yr ymddygiad yn anrhagweladwy yn flaenorol).
Mae'r casglwr wedi'i optimeiddio i leihau maint y ffeiliau gweithredadwy a gynhyrchir ar gyfartaledd o 5% trwy atal cynnwys rhai metadata ar gyfer y casglwr sbwriel a glanhau metadata nas defnyddiwyd yn fwy ymosodol.
Mae'r faner β-spectreβ wedi'i hychwanegu at y casglwr a'r cydosodwr i alluogi amddiffyniad rhag ymosodiadau dosbarth Specter (ar gyfer y rhan fwyaf o raglenni nid oes angen hyn; dim ond ar gyfer galluogi y gellir cyfiawnhau'r opsiwn rhai achosion penodol iawn).
Mewn tystysgrifau X.509, mae maes CommonName wedi'i anghymeradwyo, nad yw bellach yn cael ei drin fel enw gwesteiwr os yw'r maes Enwau Amgen Pwnc ar goll.
Gall y gorchymyn "mynd" yn y newidyn amgylchedd GOPROXY nawr restru dirprwyon lluosog, wedi'u gwahanu gan goma neu "|". Os bydd y dirprwy cyntaf yn y rhestr yn dychwelyd gwall (404 neu 410), yna gwneir ymgais i gysylltu trwy'r ail ddirprwy, ac ati.
Mae'r milfeddyg cyfleustodau wedi ychwanegu rhybudd ynghylch ceisio trosi o llinyn(x) os yw "x" yn fath cyfanrif heblaw rune neu beit.
Mae'r faner "-gnu" wedi'i hychwanegu at y cyfleustodau objdump i gefnogi dadosod cystrawen cyfosodydd GNU.
Pecyn newydd wedi'i ychwanegu amser/tzdata, sy'n eich galluogi i integreiddio cronfa ddata gyda data parth amser i'r rhaglen.
O destunau ffynhonnell a dogfennaeth tynnu yr ymadroddion rhestr wen/rhestr ddu a meistr/caethwas, sydd bellach yn cael eu disodli gan "rhestr a ganiateir", "rhestr flociau", "proses", "pty", "proc" a "control".
Mae cyfran fawr o fΓ’n welliannau wedi'u gwneud i'r llyfrgell safonol.
Cefnogaeth ychwanegol ar gyfer OpenBSD 6.7 mewn moddau GOARCH=arm a GOARCH=arm64 (dim ond GOARCH=386 a GOARCH=amd64 oedd yn cael eu cefnogi yn flaenorol).
Parhaodd datblygiad y platfform RISC-V 64-did (GOOS=linux, GOARCH=riscv64).
Ar gyfer systemau 32-bit x86, bydd y datganiad nesaf yn codi'r gofynion system sylfaenol - dim ond proseswyr gyda SSE2 fydd yn parhau i gael eu cefnogi. I adeiladu yn y modd GOARCH=386 bydd angen o leiaf Intel Pentium 4 (a ryddhawyd yn 2000) neu AMD Opteron / Athlon 64 (a ryddhawyd yn 2003).