The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз языка программирования Go 1.11"
Отправлено opennews, 25-Авг-18 11:08 
Подготовлен (https://blog.golang.org/go1.11) релиз  языка программирования Go 1.11 (http://golang.org), который развивается компанией  Google при участии сообщества как гибридное решение, сочетающее высокую производительность компилируемых языков с такими достоинствами скриптовых языков, как лёгкость написания кода, быстрота разработки и защищённость от ошибок.  Код проекта распространяется (https://golang.org/dl/) под лицензией BSD.


Синтаксис Go основан на привычных элементах  языка Си с отдельными заимствованиями из языка Python. Язык достаточно лаконичен, но при этом код  легко читается и воспринимается. Код на языке Go компилируется в обособленные бинарные исполняемые файлы, выполняемые нативно без использования виртуальной машины (модули профилирования, отладки и другие подсистемы выявления проблем на этапе выполнения интегрируются в виде runtime-компонентов (http://golang.org/pkg/runtime/)), что позволяет добиться производительности, сопоставимой с программами на языке Си.

Проект изначально разрабатывается с оглядкой на многопоточное программирование и эффективную работу на многоядерных системах, в том числе предоставляя реализованные на уровне операторов средства для организации параллельных вычислений и  взаимодействия между параллельно выполняемыми методами. Язык также предоставляет встроенные средства защиты от выхода за допустимые области выделенных блоков памяти и обеспечивает возможность использования сборщика мусора.


Основные новшества (http://golang.org/doc/go1.11), представленные в выпуске Go 1.11:


-  Реализована концепция модулей (https://golang.org/doc/go1.11#modules), которую можно применять в качестве  альтернативы GOPATH, отличающейся интегрированной поддержкой версионирования, средствами доставки пакетов и улучшенной системой управления зависимостями. Система модулей пока является экспериментальной, поэтому синтаксис команд (https://golang.org/cmd/go#hdr-Modules__module_versions__and_...) для работы с модулями может поменяться в будущем. Используя модули разработчики больше не привязаны к работе внутри дерева GOPATH, могут явно определять зависимости с учётом версий и создавать повторяемые сборки;

-  Добавлен экспериметальный порт для WebAssembly (https://golang.org/wiki/WebAssembly) (js/wasm), позволяющий компилировать приложения на языке Go в промежуточный код WebAssembly для выполнения в web-браузерах. На выходе формируется готовый модуль WebAssembly, включающий runtime-компоненты для goroutine, планировщик, систему сборки мусора и т.п. Минимальный размер runtime-компонентов для WebAssembly составляет 2 Мб (при сжатии 500 Кб). Для вызова скомпилированных в WebAssembly программ из кода на JavaScript предложен экспериментальный модуль syscall/js;

-  Предложен пакет go/packages (https://godoc.org/golang.org/x/tools/go/packages) с реализаций простого API для поиска и загрузки пакетов с кодом на языке Go. API пока не включён в стандартную библиотеку, но может применяется в качестве эффективной замены пакета
go/build, обеспечивающей поддержку модулей;

-  В компиляторе расширен диапазон функций для которых применяется inline-развёртывание кода. В том числе развёртывание теперь может применяться и для функций, в которых используется вызов panic().

-  Предложен новый формат экспорта данных для пакетов, обеспечивающий более высокую скорость сборки для больших проектов;

-  В ассемблере реализована поддержка инструкций  AVX512 для архитектуры amd64;

-  Улучшено качестве отладочной информации, генерируемой для оптимизированных исполняемых файлов. Обеспечено сжатие отладочных секций в формате DWARF. Добавлена экспериментальная возможность вызова функций на языке Go из отладчика;

-  В различные части кодовой базы внесены оптимизации, специфичные для  архитектуры arm64. В компиляторе задействованы более агрессивные оптимизации для исключения излишних  переходов и проверок границ буферов. Проведена оптимизация производительности пакета  math/big;

-  Прекращена поддержка OpenBSD 6.0, OS X 10.8 "Mountain Lion", OS X 10.9 "Mavericks", Windows XP и Windows Vista. Для работы теперь требуется как минимум OpenBSD 6.2, macOS 10.10 "Yosemite" или Windows 7. Добавлена поддержка OpenBSD 6.4.  Race detector портирован для linux/ppc64le и netbsd/amd64. Режим поверки памяти (-msan) адаптирован для платформы linux/arm64.

URL: https://blog.golang.org/go1.11
Новость: https://www.opennet.ru/opennews/art.shtml?num=49183

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру