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

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

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

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

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

  • Пакет црипто/тлс има подразумевано омогућену подршку за протокол ТЛС КСНУМКС. Додат нови пакет „црипто/ед25519“ са подршком за Ед25519 дигиталне потписе;
  • Додата подршка за нове нумеричке литералне префиксе за дефинисање бинарних бројева (нпр. 0б101), окталних (0о377), имагинарних (2.71828и) и хексадецималног плутајућег зареза (0к1п-1021), као и могућност коришћења знака „_“ за визуелно раздвајање цифара у великом броју (1_000_000);
  • Ограничење коришћења само непотписаних бројача у операцијама смене је уклоњено, чиме се избегавају непотребне конверзије у тип уинт пре употребе „‹‹” и „››” оператора;
  • Додата подршка за Иллумос платформу (ГООС=иллумос). Осигурана је компатибилност са платформом Андроид 10. Повећани су захтеви за минималне верзије ФрееБСД-а (11.2) и мацОС-а (10.11 „Ел Цапитан“).
  • Наставак развоја новог система модула, који се може користити као алтернатива ГОПАТХ-у. За разлику од претходно најављених планова у Го 1.13, овај систем није подразумевано омогућен и захтева активацију преко променљиве ГО111МОДУЛЕ=он или коришћење контекста у коме се модули примењују аутоматски. Нови систем модула има интегрисану подршку за верзионисање, могућности испоруке пакета и побољшано управљање зависношћу. Са модулима, програмери више нису везани за рад унутар ГОПАТХ стабла, могу експлицитно да дефинишу верзионисане зависности и креирају поновљиве верзије.

    За разлику од претходних издања, аутоматска примена новог система сада ради када је го.мод датотека присутна у тренутном радном директоријуму или родитељском директоријуму када се покреће команда го, укључујући и када се налази у ГОПАТХ/срц директоријуму. Додате су нове променљиве окружења: ГОПРИВАТЕ, која дефинише путање јавно доступних модула, и ГОСУМДБ, која специфицира параметре приступа бази података контролне суме за модуле који нису наведени у датотеци го.сум;

  • Команда "го" подразумевано учитава модуле и проверава њихов интегритет помоћу огледала модула и базе података контролне суме коју одржава Гоогле (проки.голанг.орг, сум.голанг.орг и индек.голанг.орг);
  • Подршка само за бинарне пакете је укинута; прављење пакета у режиму „//го:бинари-онли-пацкаге“ сада доводи до грешке;
  • Додата подршка за суфикс "@патцх" команди "го гет", што указује на то да модул треба да се ажурира на најновију верзију за одржавање, али без промене тренутне главне или мање верзије;
  • Приликом преузимања модула из система за контролу извора, команда "го" сада врши додатну проверу низа верзије, покушавајући да упари бројеве псеудо-верзија са метаподацима из спремишта;
  • Додата подршка инспекција грешке (прематање грешака) кроз креирање омотача који омогућавају употребу стандардних руковалаца грешкама. На пример, грешка "е" се може обавити око грешке "в" пружањем методе Одмотај, враћајући "в". Обе грешке „е“ и „в“ су доступне у програму и одлуке се доносе на основу грешке „в“, али „е“ даје додатни контекст за „в“ или га другачије тумачи;
  • Оптимизоване су перформансе рунтиме компоненти (забележено је повећање брзине до 30%) и имплементиран је агресивнији повратак меморије у оперативни систем (раније је меморија враћана након пет или више минута, а сада одмах након смањења величине гомиле).

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

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