+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Подано реліз мови програмування Go 1.15

Представлений реліз мови програмування Go 1.15 

 Представлений реліз мови програмування Go 1.15, розробленої компанією Google за участю спільноти як гібридне рішення, що поєднує в собі високу продуктивність компільованих мов з такими перевагами скриптових мов, як простота написання коду, швидкість розробки і захист від помилок. Код проекту поширюється під ліцензією BSD.

Синтаксис Go заснований на звичайних елементах мови C з окремими запозиченнями від мови Python. Мова досить лаконічний, але код легко читається і сприймається. Код Go компілюється в окремі двійкові виконувані файли, які запускаються нативно без використання віртуальної машини (профілювання, налагодження та інші підсистеми виявлення проблем виконання інтегровані як компоненти середовища виконання) для досягнення продуктивності, порівнянної з програмами C.

Проект спочатку розробляється з прицілом на багатопотокове програмування і ефективну роботу над багатоядерними системами, в тому числі надає інструменти операторного рівня для організації паралельних обчислень і взаємодії між паралельними методами. Мова також забезпечує вбудований захист від виходу за межі дозволених областей виділених блоків пам'яті і надає можливість використання сміттєзбірника.

Основні нововведення, введені в реліз Go 1.15:

  • Робота лінкера була значно поліпшена, як в області збільшення швидкості роботи і зниження споживання пам'яті, так і в напрямку спрощення обслуговування коду. При тестуванні на операційних системах, що використовують виконуваний файловий формат ELF (Linux, FreeBSD, NetBSD, OpenBSD, Dragonfly, Solaris), компонування типового набору великих Go-додатків стала виконуватися на 20% швидше, а споживання пам'яті скоротилося в середньому на 30%. Підвищення продуктивності стало можливим завдяки переходу на новий формат об'єктного файлу і перепроектуванню внутрішніх етапів для підвищення рівня розпаралелювання робіт. Нативний зв'язувач тепер використовується за замовчуванням у системах linux/amd64 та linux/arm64 у режимі "-buildmode=pie", що більше не вимагає використання C-linker.
  • Час виконання значно покращує розподіл невеликих об'єктів по системах з великою кількістю ядер процесора і зменшує затримку. У разі збоїв відображаються значення з числовим і рядковим типами, замість показу адреси. При відправці сигналів SIGSEGV, SIGBUS і SIGFPE в додаток Go, за відсутності ос/обробника сигналу. Повідомте, додаток завершиться з виведенням стекового сліду (раніше поведінка було непередбачуваним).
  • Була проведена оптимізація компілятора, що дозволило зменшити розмір згенерованих виконуваних файлів в середньому на 5% за рахунок зупинки включення деяких метаданих для збирача сміття і більш агресивного очищення невикористовуваних метаданих.
  • Прапор «-spectre» був доданий в компілятор і асемблер для можливості захисту від атак Spectre (більшість програм цього не вимагають, включення опції може бути виправдано лише для деяких цілком конкретних випадків).
  • У сертифікатах X.509 поле CommonName застаріло, яке більше не розглядається як ім'я хоста, якщо поле «Альтернативні імена суб'єкта» відсутнє.
  • У команді "go" в змінній середовища GOPROXY тепер ви можете перерахувати кілька проксі, розділених комою або "|". Якщо перший проксі в списку повертає помилку (404 або 410), то буде зроблена спроба доступу через другий проксі і т.д.
  • Утиліта vet додала попередження про спробу перетворення з рядка(x), якщо "x" є цілочисельним типом, відмінним від руни або байта.
  • Прапор "-gnu" був доданий до утиліти objdump для підтримки виведення дампів-дизасемблерів у синтаксисі асемблера GNU.
  • Доданий новий пакет time/tzdata, який дозволяє вбудувати в програму базу даних з даними часового поясу.
  • Фрази білий/чорний список і master/slave були видалені з вихідного коду і документації , замість чого тепер використовуються "список дозволених", "блок-лист", "процес", "pty", "proc" і "control".
  • Велика партія незначних поліпшень була внесена в стандартну бібліотеку.
  • Додано підтримку OpenBSD 6.7 в режимах GOARCH=arm і GOARCH=arm64 (раніше підтримувалися тільки GOARCH=386 і GOARCH=amd64).
  • Продовжилася розробка 64-бітної платформи RISC-V (GOOS=linux, GOARCH=riscv64).
  • Для 32-розрядних систем x86 наступний випуск підніме мінімальні системні вимоги - як і раніше будуть підтримуватися тільки процесори з SSE2. Для побудови в режимі GOARCH=386 вам знадобиться як мінімум Intel Pentium 4 (випущений в 2000 році) або AMD Opteron/Athlon 64 (випущений в 2003 році).

Інші новини