The OpenNET Project / Index page

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



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

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


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

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


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


-  В модуль net/http (https://golang.org/pkg/net/http/) добавлена поддержка протокола HTTP/2, которая при использовании HTTPS включена по умолчанию как для клиентов, так и для серверов. Использование новой версии модуля позволит задействовать HTTP/2 в уже существующих проектах на языке Go, в том числе в http-сервере Caddy (https://caddyserver.com/);

-  Расширены возможности, связанные с использованием шаблонов (модуль text/template (https://golang.org/pkg/text/template/)). Добавлена поддержка чистки пробелов (https://golang.org/pkg/text/template/#hdr-Text_and_spaces) вокруг операций в шаблоне и реализована новая операция "{{block}} (https://golang.org/pkg/text/template/#hdr-Actions)" для создания блочных шаблонов, собираемых из других шаблонов;

-  Включена по умолчанию поддержка директории vendor (https://golang.org/s/go15vendor), предназначенной для поставки внешних зависимостей, привязанных к определённому поставщику;

-  Проведена оптимизация работы модулей compress/bzip2, compress/gzip, crypto/aes, crypto/elliptic и crypto/ecdsa, производительность которых возросла приблизительно на 10%. Изменён алгоритм сортировки, используемый в sort.Sort, что также позволило поднять производительность примерно на 10%. Cтарый алгоритм сортировки доступен через вызов sort.Stable (https://golang.org/pkg/sort/#Stable) для тех кому требуется полная идентичность порядка вывода;

-  Сокращено число пауз, вызванных работой сборщика мусора, что особенно заметно в программах, расходующих большие объемы памяти;

-  Добавлены экспериментальные порты для Linux на 64-рядных процессорах MIPS (linux/mips64 и linux/mips64le) и  Android on 32-разрядных процессорах x86 (android/386);
-  Для сборки порта во FreeBSD в качестве внешнего компилятора по умолчанию задействован Clang вместо GCC;
-  В компилятор, систему динамического связывания и команду "go" добавлена новая опция "-msan", доступная только на архитектуре linux/amd64 и включающая режим совместимости с анализатором памяти Clang MemorySanitizer (http://clang.llvm.org/docs/MemorySanitizer.html), который удобно использовать для тестирования приложений, содержащих вставки на  C и C++;
-  В runtime добавлен легковесный механизм выявления неправомерного одновременного использования ассоциативных массивов (map). Если один goroutine записывает в map, то другой  goroutine не может прочитать или записать в map. В случае, когда данное условие нарушено и runtime  выявил конфликт,  программа будет экстренно завершена с выводом соответствующего сообщения об ошибке. Для выявления подобных проблем на этапе отладки предлагается использовать race-detector (https://blog.golang.org/race-detector);

-  В runtime изменён метод вывода информации о крахе программы, которая теперь включает только дамп стека для вызвавшего проблему goroutine, а не для всех goroutine как раньше. Изменить данное поведение можно через переменную окружения  GOTRACEBACK (https://golang.org/pkg/runtime/#hdr-Environment_Variables) или вызвав функцию debug.SetTraceback (https://golang.org/pkg/runtime/debug/#SetTraceback);
-  В Cgo, механизм для организации вызова кода на C/C++ из программ на языке Go, внесены изменения (https://golang.org/doc/go1.6#cgo) в правила совместного доступа к указателям, которые в основном связаны с обеспечение сосуществования кода на языке Си со сборщиком мусора языка Go.

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

 

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



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

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