Go 1.19 вече е пусната и това са нейните новини

наскоро беше обявено пускането на новата версия на езика за програмиране «Go 1.19»., версия, която подобрява предишната версия чрез добавяне на различни подобрения и преди всичко корекции на грешки.От новостите, които можем да подчертаем, са подобренията в управлението на паметта, подобренията в сигурността, наред с други неща.

За тези, които са нови в Go, трябва да знаете, че това е език за програмиране, който е разработен с участието на общността като хибридно решение, което съчетава високата производителност на компилираните езици с предимства като скриптови езици като напр. лекотата на писане на код, разработка и защита от грешки.

Синтаксисът на Go се основава на обичайните елементи на езика C. с някои заемки от езика Python. Езикът е доста кратък, но кодът е лесен за четене и разбиране.

Go кодът се компилира в отделни двоични изпълними файлове които се изпълняват естествено, без използване на виртуална машина (профилиране, отстраняване на грешки и други подсистеми за отстраняване на неизправности по време на изпълнение са вградени като компоненти по време на изпълнение).

Основни нови функции на Go 1.19

В тази нова версия на Go 1.19, която е представена, се подчертава, че извършена е работа за усъвършенстване на поддръжката за функции и генерични типове добавен в най-новата версия, с помощта на която разработчикът може да дефинира и използва функции, предназначени да работят с няколко типа наведнъж, плюс оптимизацията на производителността на някои програми, използващи генерични, е увеличена с 20%.

Друга промяна, която се откроява в новата версия, е тази добавена поддръжка за връзки, списъци и по-прост синтаксис за дефиниране на заглавки в коментарите на документа. Помощната програма gofmt предоставя форматиране, като се вземат предвид разширените функции на коментарите с документацията на API.

Освен него ревизиран модел на паметта на Go, за да се приведе в съответствие с C, C++, Java, JavaScript, Rust и Swift които не допускат последователно последователни атомни стойности. Нови типове като atomic.Int64 и atomic.Pointer[T] са въведени в пакета sync/atomic, за да се улесни използването на атомарни стойности.

От друга страна също се споменава, че събирач на боклук вече има способността да дефинира меки ограничения, които се налагат чрез ограничаване на размера на купчината и връщане на памет към системата по-агресивно, тоест потреблението не е гарантирано да бъде в посочените граници при всички условия. Меките ограничения могат да бъдат полезни за оптимизиране на програми, които се изпълняват в контейнери с фиксирана памет.

Също така се подчертава, че на Unix системи, допълнителни файлови дескриптори се активират автоматично (увеличаване на лимита RLIMIT_NOFILE), за да се ускорят изразите за големи промени в системи x86-64 и ARM64, се използват таблици за прескачане, които позволяват изразите за големи промени да се обработват до 20% по-бързо.

В riscv64 системите беше въведено предаване на аргументи на функции през регистрите на процесора, което позволи увеличение на производителността с около 10%.

От останалите промени които се открояват от тази нова версия:

  • Внедрени са множество оптимизации на производителността.
  • Добавена е поддръжка за динамично задаване на рутинния размер на стека за намаляване на размера на копираните данни
  • Добавена е експериментална поддръжка за Linux среди на системи с процесори Loongson, базирани на 64-битовата LoongArch архитектура (GOARCH=loong64).
  • Промяната на модела на паметта не повлия на съвместимостта с предварително написан код.
  • Добавено е ново ограничение за изграждане на "unix", което може да се използва в редовете "go:build" за филтриране на Unix-подобни системи (aix, android, darwin, dragonfly, freebsd, hurd, illumos, ios, linux, netbsd, openbsd, solaris ).
  • За да подобри сигурността, модулът os/exec вече игнорира относителните пътища при разширяване на променливата на средата PATH (например, когато се определя пътя на изпълним файл, текущата директория вече не се проверява).

И накрая, ако се интересувате да научите повече за тази нова версия, можете да проверите подробностите на следната връзка.


Съдържанието на статията се придържа към нашите принципи на редакторска етика. За да съобщите за грешка, щракнете върху тук.

Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван.

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.