Go rhyddhau iaith rhaglennu 1.15

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).

Ffynhonnell: opennet.ru

Ychwanegu sylw