Го програмски језик издање 1.14

Представио издање програмског језика Иди КСНУМКС, који развија Гоогле уз учешће заједнице као хибридно решење које комбинује високе перформансе компајлираних језика са предностима скриптних језика као што су једноставност писања кода, брзина развоја и заштита од грешака. Шифра пројекта дистрибуира под БСД лиценцом.

Го-ова синтакса је заснована на познатим елементима језика Ц са неким позајмицама из језика Питхон. Језик је прилично концизан, али је код лак за читање и разумевање. Го код се компајлира у самосталне бинарне извршне датотеке које се покрећу изворно без коришћења виртуелне машине (профилисање, отклањање грешака и други подсистеми за откривање проблема током извршавања су интегрисани као компоненте времена извршавања), што вам омогућава да постигнете перформансе упоредиве са Ц програмима.

Пројекат је иницијално развијен са циљем вишенитног програмирања и ефикасног рада на системима са више језгара, укључујући обезбеђивање средстава на нивоу оператера за организовање паралелног рачунарства и интеракцију између паралелно извршаваних метода. Језик такође обезбеђује уграђену заштиту од претерано додељених меморијских блокова и пружа могућност коришћења сакупљача смећа.

Главни иновацијепредстављено у издању Го 1.14:

  • Нови систем модула у команди "го" је проглашен спремним за општу употребу, подразумевано је омогућен и препоручује се за управљање зависношћу уместо ГОПАТХ. Нови систем модула има интегрисану подршку за верзионисање, могућности испоруке пакета и побољшано управљање зависношћу. Са модулима, програмери више нису везани за рад унутар ГОПАТХ стабла, могу експлицитно да дефинишу верзионисане зависности и креирају поновљиве верзије.
  • Додато подршка за уграђивање интерфејса са скупом метода који се преклапају. Методе из уграђеног интерфејса сада могу имати иста имена и потписе као методе у постојећим интерфејсима. Експлицитно декларисани методи остају јединствени као и раније.
  • Перформансе израза "одложи" су побољшане, чинећи га скоро једнако брзим као и директно позивање одложене функције, омогућавајући одложено извршавање функције у коду који је осетљив на перформансе.
  • Обезбеђено је асинхроно спречавање корутина (горутина) – петље које не садрже позиве функција сада могу потенцијално довести до застоја планера или одложити почетак сакупљања смећа.
  • Ефикасност система за доделу меморијских страница је побољшана и сада има знатно мање сукоба око закључавања у конфигурацијама са великим ГОМАКСПРОЦС вредностима. Резултат је смањено кашњење и повећана пропусност уз истовремено интензивну дистрибуцију великих блокова меморије.
  • Закључавање је оптимизовано и смањен је број пребацивања контекста при покретању интерних тајмера који се користе у функцијама тиме.Афтер, тиме.Тицк, нет.Цонн.СетДеадлине.
  • У команди го, ознака „-мод=вендор“ је подразумевано омогућена ако постоји директоријум добављача у корену, намењен за испоруку спољних зависности везаних за одређеног добављача. Додата је засебна "-мод=мод" заставица за учитавање модула из кеша модула, а не из директоријума "вендор". Ако је датотека го.мод само за читање, ознака „-мод=реадонли“ је подразумевано постављена ако не постоји горњи директоријум „вендор“. Додата је ознака "-модфиле=филе" да би се навела алтернативна го.мод датотека уместо оне у основном директоријуму модула.
  • Додата је променљива окружења ГОИНСЕЦУРЕ, када је постављена, команда го не захтева употребу ХТТПС-а и прескаче проверу сертификата приликом директног учитавања модула.
  • Компајлер је додао „-д=цхецкптр“ заставицу, која је подразумевано омогућена, за проверу усклађености кода са правилима за безбедно коришћење унсафе.Поинтер.
  • Нови пакет је укључен у испоруку хасх/мапхасх са некриптографским хеш функцијама за креирање хеш табела за произвољне секвенце бајтова или стрингове.
  • Додата експериментална подршка за 64-битну РИСЦ-В платформу на Линук-у.
  • Додата подршка за ФрееБСД на 64-битним АРМ системима.

Извор: опеннет.ру

Додај коментар