Go dasturlash tilining versiyasi 1.15

Tanishtirdi dasturlash tilini chiqarish 1.15-ga o'ting, bu Google tomonidan hamjamiyat ishtirokida kompilyatsiya qilingan tillarning yuqori unumdorligini skript tillarining kod yozish qulayligi, rivojlanish tezligi va xatolardan himoya qilish kabi afzalliklari bilan birlashtirgan gibrid yechim sifatida ishlab chiqilmoqda. Loyiha kodi tarqaladi BSD litsenziyasi ostida.

Go sintaksisi Python tilidan ba'zi qarzlar bilan C tilining tanish elementlariga asoslangan. Til juda ixcham, ammo kodni o'qish va tushunish oson. Go kodi virtual mashinadan foydalanmasdan tabiiy ravishda ishlaydigan mustaqil ikkilik bajariladigan fayllarga kompilyatsiya qilinadi (profillash, disk raskadrovka va boshqa ish vaqtidagi muammolarni aniqlash quyi tizimlari quyidagi tarzda birlashtirilgan). ish vaqti komponentlari), bu sizga C dasturlari bilan taqqoslanadigan ishlashga erishish imkonini beradi.

Loyiha dastlab ko'p bosqichli dasturlash va ko'p yadroli tizimlarda samarali ishlash, shu jumladan parallel hisoblashni tashkil qilish uchun operator darajasidagi vositalarni taqdim etish va parallel bajariladigan usullar o'rtasidagi o'zaro ta'sirni hisobga olgan holda ishlab chiqilgan. Til, shuningdek, ortiqcha ajratilgan xotira bloklaridan o'rnatilgan himoyani ta'minlaydi va axlat yig'uvchidan foydalanish imkoniyatini beradi.

asosiy yangiliklarGo 1.15 versiyasida taqdim etilgan:

  • Bog'lovchining ishi ishlash tezligini oshirish va xotira sarfini kamaytirishda ham, kodni saqlashni soddalashtirish yo'nalishida ham sezilarli darajada yaxshilandi. Operatsion tizimlarda ELF bajariladigan fayl formati (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris) yordamida sinovdan o‘tkazilganda katta Go ilovalarining odatiy to‘plami 20% tezroq qurildi va xotira sarfi o‘rtacha 30% ga kamaydi. Yangi ob'ekt fayl formatiga o'tish va ishni parallellashtirish darajasini oshirish uchun ichki bosqichlarni qayta ishlash orqali samaradorlikni oshirish mumkin bo'ldi. Mahalliy bog'lovchi endi sukut bo'yicha linux/amd64 va linux/arm64 tizimlarida "-buildmode=pie" da qo'llaniladi, bu esa endi C havolasidan foydalanishni talab qilmaydi.
  • Ishlash vaqtida ko'p sonli protsessor yadrolari bo'lgan tizimlarda kichik ob'ektlarni taqsimlash sezilarli darajada yaxshilandi va kechikish qisqardi. Muvaffaqiyatsiz bo'lsa, manzilni ko'rsatish o'rniga raqamli va qatorli qiymatlar ko'rsatiladi. SIGSEGV, SIGBUS va SIGFPE signallarini Go ilovasiga yuborishda, agar os/signal.Notify ishlov beruvchisi yo'q bo'lsa, dastur stek izi chiqishi bilan chiqadi (ilgari xatti-harakatni oldindan aytib bo'lmaydi).
  • Kompilyator axlat yig'uvchi uchun ba'zi metama'lumotlarning kiritilishini to'xtatish va foydalanilmagan metama'lumotlarni yanada agressiv tozalash orqali yaratilgan bajariladigan fayllar hajmini o'rtacha 5% ga kamaytirish uchun optimallashtirilgan.
  • Spectre sinfidagi hujumlardan himoyalanish uchun kompilyator va assemblerga “-spectre” bayrog‘i qo‘shilgan (ko‘pchilik dasturlar uchun bu shart emas; opsiyani yoqish faqat shular uchun asoslanishi mumkin. ba'zi juda aniq holatlar).
  • X.509 sertifikatlarida CommonName maydoni eskirgan, agar Mavzuning muqobil nomlari maydoni boʻlmasa, u endi xost nomi sifatida koʻrib chiqilmaydi.
  • GOPROXY muhit o'zgaruvchisidagi "go" buyrug'i endi vergul yoki "|" bilan ajratilgan bir nechta proksi-serverlarni ro'yxatga olishi mumkin. Agar ro'yxatdagi birinchi proksi-server xatolikni qaytarsa ​​(404 yoki 410), ikkinchi proksi-server orqali bog'lanishga harakat qilinadi va hokazo.
  • Veterinar yordam dasturi, agar "x" rune yoki baytdan boshqa butun son turi bo'lsa, string(x) dan aylantirishga urinish haqida ogohlantirish qo'shdi.
  • GNU assembler sintaksisini qismlarga ajratishni qo'llab-quvvatlash uchun objdump yordam dasturiga "-gnu" bayrog'i qo'shildi.
  • Yangi paket qo'shildi vaqt/tzdata, bu sizga vaqt mintaqasi ma'lumotlari bilan ma'lumotlar bazasini dasturga integratsiya qilish imkonini beradi.
  • Manba matnlari va hujjatlardan olib tashlandi oq ro'yxat/qora ro'yxat va master/tomon iboralari, ular endi "ruxsat berilgan ro'yxat", "blok ro'yxati", "jarayon", "pty", "proc" va "nazorat" bilan almashtiriladi.
  • Oddiy kutubxonada kichik yaxshilanishlarning katta qismi amalga oshirildi.
  • GOARCH=arm va GOARCH=arm6.7 rejimlarida OpenBSD 64 uchun qoʻshimcha qoʻllab-quvvatlash (ilgari faqat GOARCH=386 va GOARCH=amd64 qoʻllab-quvvatlanar edi).
  • 64-bitli RISC-V platformasini (GOOS=linux, GOARCH=riscv64) ishlab chiqish davom etdi.
  • 32-bitli x86 tizimlari uchun keyingi versiya minimal tizim talablarini oshiradi - faqat SSE2 protsessorlari qo'llab-quvvatlanadi. GOARCH=386 rejimida qurish uchun sizga kamida Intel Pentium 4 (2000-yilda chiqarilgan) yoki AMD Opteron/Athlon 64 (2003-yilda chiqarilgan) kerak bo‘ladi.

Manba: opennet.ru

a Izoh qo'shish