Derxistina zimanê bernamenûsê Go 1.13

Nasandin serbestberdana zimanê bernamekirinê Go 1.13, ku ji hêla Google ve bi beşdariya civakê ve wekî çareseriyek hîbrîd tê pêşve xistin ku performansa bilind a zimanên berhevkirî bi avantajên zimanên nivîsandinê yên wekî hêsaniya nivîsandina kodê, leza pêşkeftinê û parastina xeletiyê re dike yek. Koda projeyê belav kirin ji hêla di bin lîsansa BSD de.

Hevoksaziya Go li ser hêmanên naskirî yên zimanê C-yê bi hin deynên ji zimanê Python-ê ve girêdayî ye. Ziman pir kurt e, lê kod hêsan e ku meriv were xwendin û fêm kirin. Koda Go-yê di nav lêkerên binaryê yên serbixwe yên ku bi xwemalî bêyî karanîna makîneyek virtual dimeşin tê berhev kirin (profilkirin, debugkirin, û binepergalên din ên tespîtkirina pirsgirêka dema xebitandinê wekî hev têne yek kirin pêkhateyên runtime), ya ku dihêle hûn performansa bi bernameyên C-yê re bigihîjin hev.

Proje di destpêkê de bi çavek bernamesaziya pir-mijarî û xebata bikêrhatî ya li ser pergalên pir-bingehîn, di nav de peydakirina rêgezên di asta operatorê de ji bo organîzekirina hesabkirina paralel û danûstendina di navbera rêbazên paralel-rêveberî de tête pêşve xistin. Ziman di heman demê de parastina çêkirî li hember blokên bîranînê yên zêde veqetandî peyda dike û şiyana karanîna berhevkerek çopê peyda dike.

sereke nûbûnêndi berdana Go 1.13 de hatî destnîşan kirin:

  • Pakêta krîpto/tls xwedan piştgirîya protokolê ye ku ji hêla xwerû ve hatî çalak kirin TLS 1.3. Bi piştgirîya ji bo îmzeyên dîjîtal ên Ed25519 pakêtek nû "crypto/ed25519" lê zêde kir;
  • Piştgiriyek ji bo pêşpirtikên wêjeyî yên hejmarî yên nû ji bo danasîna hejmarên binaryê (mînak 0b101), oktal (0o377), xeyalî (2.71828i) û xala herikandinê ya hexadecimal (0x1p-1021), û şiyana karanîna karaktera "_" ji bo veqetandina jimaran bi dîtbarî zêde kir. bi hejmarên mezin (1_000_000);
  • Sînordariya li ser karanîna tenê hejmarkerên bêîmze di operasyonên guheztinê de hate rakirin, ku berî karanîna operatorên "‹‹" û "››" ji veguherînên nehewce yên tîpa uint dûr dikeve;
  • Piştgiriya ji bo platforma Illumos (GOOS=illumos) zêde kir. Lihevhatina bi platforma Android 10 re hat misoger kirin. Pêdiviyên herî kêm guhertoyên FreeBSD (11.2) û macOS (10.11 "El Capitan") zêde bûne.
  • Pêşveçûna domdar a pergala modulê ya nû, ku dikare wekî alternatîfek GOPATH were bikar anîn. Berevajî plansaziyên berê yên di Go 1.13-ê de hatine ragihandin, ev pergal ji hêla xwerû ve nayê çalak kirin û pêdivî ye ku bi guhêrbar GO111MODULE=on ve were aktîfkirin an jî bi karanîna çarçoveyek ku tê de modul bixweber têne sepandin. Pergala modulê ya nû piştgirîya guhertoya yekbûyî, kapasîteyên radestkirina pakêtê, û rêveberiya pêwendiyê ya çêtir vedihewîne. Bi modulan re, pêşdebir êdî bi xebata di hundurê dara GOPATH de ne girêdayî ne, dikarin bi eşkere ve girêdayî girêdanên guhertoyan destnîşan bikin, û avahiyên dubarekirî biafirînin.

    Berevajî weşanên berê, serîlêdana otomatîkî ya pergala nû naha dema ku pelek go.mod di pelrêça xebatê ya heyî an pelrêça dêûbav de dema ku emrê go-yê dimeşîne, di nav de dema ku ew di pelrêça GOPATH/src de ye, dixebite. Guherbarên hawîrdorê yên nû hatine zêdekirin: GOPRIVATE, ku rêyên modulên ku bi gelemperî têne gihîştin diyar dike, û GOSUMDB, ku pîvanên gihîştina databasa kontrolê ji bo modulên ku di pelê go.sum de nehatine navnîş kirin diyar dike;

  • Fermana "go" ji hêla xwerû modulan bar dike û yekitiya wan bi karanîna neynika modulê û databasa kontrolê ya ku ji hêla Google ve hatî peyda kirin kontrol dike (proxy.golang.org, sum.golang.org û index.golang.org);
  • Piştgiriya tenê ji bo pakêtên binaryê rawestiyaye; çêkirina pakêtek di moda "//go:binary-tenê-pakêta" de nuha xeletiyek çêdike;
  • Piştgiriya ji bo paşgira "@patch" li fermana "go get" zêde kir, destnîşan dike ku pêdivî ye ku modul bi serbestberdana herî dawî ya lênihêrînê were nûve kirin, lê bêyî guheztina guhertoya sereke an piçûk a heyî;
  • Dema ku modulan ji pergalên kontrolê yên çavkaniyê vedigire, fermana "go" naha li ser rêzika guhertoyê kontrolek din pêk tîne, hewl dide ku hejmarên pseudo-guhertoyê bi metadaneyên ji depoyê re li hev bike;
  • Piştgiriya zêde kir teftîşa çewtiyê (pêçandina xeletiyê) bi afirandina pêçanên ku destûrê dide karanîna rêgirên xeletiyên standard. Bo nimûne, şaşî "e" dikare bi peydakirina rêbazek li dora xeletiya "w" were pêçandin Unwrap, vedigere "w". Herdu xeletiyên "e" û "w" di bernameyê de hene û biryar li ser bingeha xeletiya "w" têne girtin, lê "e" çarçoveyek zêde ji "w" re peyda dike an jî bi rengek cûda şîrove dike;
  • Performansa hêmanên dema xebitandinê xweştir bûye (zêdebûnek bilez heya% 30 hate destnîşan kirin) û vegerek hişktir a bîranînê li pergala xebitandinê hate bicîh kirin (berê, bîranîn piştî pênc an bêtir hûrdeman hate vegerandin, lê naha tavilê piştî kêmkirina mezinahiya giravê).

Source: opennet.ru

Add a comment