Rating@Mail.ru

Форум по операционной системе GNU/Linux и свободному программному обеспечению


Текущее время: 26 июл 2017, 09:47

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След.
Автор Сообщение
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 02 июн 2016, 14:14 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9838
Откуда: Харьков
Olej писал(а):
И теперь всё работает не мешая друг другу:

Подсказали, что этот баг отмечен для Fedora 22 : Red Hat Bugzilla – Bug 1192716 (неправильная расстановка приоритетов альтернатив: для go.gcc стоит приоритет 92, а для golang — 90).

И что решать его можно с помощью скрипта:
Код:
[olej@localhost GO]$ update-alternatives --help
alternatives version 1.7 - Copyright (C) 2001 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.

usage: alternatives --install <link> <name> <path> <priority>
                    [--initscript <service>]
                    [--family <family>]
                    [--slave <link> <name> <path>]*
       alternatives --remove <name> <path>
       alternatives --auto <name>
       alternatives --config <name>
       alternatives --display <name>
       alternatives --set <name> <path>
       alternatives --list

common options: --verbose --test --help --usage --version
                --altdir <directory> --admindir <directory>


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 02 июн 2016, 14:27 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9838
Откуда: Харьков
Olej писал(а):
Olej писал(а):
Базовым материалом, на этот раз, будет вот та книжка Кэрнигана, показанная выше.

В книге много интересных и полезных примеров кода (в отличие от обычных для большинства книг примеров бла-бла-бла, высосанных из пальца).
Я буду здесь отмечать (себе на памятку) только те немногие, которые особо полезны на практике.

Тема эта настолько перегружена, что всё касающееся примеров кода Go выносится далее в новую тему: Примеры кода Go.

Здесь я далее оставляю только вопросы инструментария Go и указание книг и публикаций по Go.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 03 июн 2016, 12:32 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9838
Откуда: Харьков
Olej писал(а):
Подсказали, что этот баг отмечен для Fedora 22 : Red Hat Bugzilla – Bug 1192716 (неправильная расстановка приоритетов альтернатив: для go.gcc стоит приоритет 92, а для golang — 90).

Свеже (для страховки) устанавливаем для страховки gcc-go:
Код:
[olej@dell tasks]$ sudo dnf install gcc-go
...
Установлено:
  gcc-go.x86_64 5.3.1-6.fc23                    libgo.x86_64 5.3.1-6.fc23                    libgo-devel.x86_64 5.3.1-6.fc23                   
Выполнено!

Проверяем:
Код:
[olej@dell tasks]$ alternatives --list
...
go   auto   /usr/bin/go.gcc

[olej@dell tasks]$ alternatives --display go
go - статус "авто".
 ссылка сейчас указывает на /usr/bin/go.gcc
/usr/lib/golang/bin/go - priority 90
 slave gofmt: /usr/lib/golang/bin/gofmt
/usr/bin/go.gcc - priority 92
 slave gofmt: /usr/bin/gofmt.gcc
Текущая `лучшая' версия - /usr/bin/go.gcc.

Меняем версию Go по умолчанию:
Код:
[olej@dell tasks]$ alternatives --config go

Имеется 2 программ, которые предоставляют 'go'.

  Выбор    Команда
-----------------------------------------------
   1           /usr/lib/golang/bin/go
*+ 2           /usr/bin/go.gcc

Enter - сохранить текущий выбор[+], или укажите номер: 1
не удается создать /var/lib/alternatives/go.new: Отказано в доступе


Только от суперпользователя! :
Код:
[olej@dell tasks]$ sudo alternatives --config go
[sudo] пароль для olej:

Имеется 2 программ, которые предоставляют 'go'.

  Выбор    Команда
-----------------------------------------------
   1           /usr/lib/golang/bin/go
*+ 2           /usr/bin/go.gcc

Enter - сохранить текущий выбор[+], или укажите номер: 1

[olej@dell tasks]$ alternatives --display go
go - статус "вручную"
 ссылка сейчас указывает на /usr/lib/golang/bin/go
/usr/lib/golang/bin/go - priority 90
 slave gofmt: /usr/lib/golang/bin/gofmt
/usr/bin/go.gcc - priority 92
 slave gofmt: /usr/bin/gofmt.gcc
Текущая `лучшая' версия - /usr/bin/go.gcc.

3 разные сборки тестовой задачи 1). golang статическая, 2). golang динамическая, 3). GCC динамическая:
Код:
[olej@dell tasks]$ go build -compiler gc -o hellols hello.go
[olej@dell tasks]$ go build -compiler gc -linkshared -o hellold hello.go
[olej@dell tasks]$ go build -compiler gccgo -o hellog hello.go
# command-line-arguments
ar: `u' modifier ignored since `D' is the default (see `U')
[olej@dell tasks]$ ls -l hello*
-rwxr-xr-x. 1 olej olej   32400 июн  3 12:18 hellog
-rw-rw-r--. 1 olej olej     266 май 31 11:05 hello.go
-rwxr-xr-x. 1 olej olej   15816 июн  3 12:18 hellold
-rwxr-xr-x. 1 olej olej 2367424 июн  3 12:17 hellols
[olej@dell tasks]$ file hello*
hellog:   ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=24bd1519714ce69e26d279a1bbf35ddcf2de8021, not stripped
hello.go: C source, UTF-8 Unicode text
hellold:  ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=ecbaadbe3483b60da122274f34abadf78d68b236, not stripped
hellols:  ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Go
Непрочитанное сообщениеДобавлено: 03 июн 2016, 13:14 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9838
Откуда: Харьков
Olej писал(а):
3 разные сборки тестовой задачи 1). golang статическая, 2). golang динамическая, 3). GCC динамическая:

Или даже 4 ... в традиционном вызове GCC:
Код:
[olej@dell tasks]$ gccgo -O3 hello.go -o helloi
[olej@dell tasks]$ ls -l hello*
-rwxr-xr-x. 1 olej olej   32400 июн  3 12:18 hellog
-rw-rw-r--. 1 olej olej     266 май 31 11:05 hello.go
-rwxrwxr-x. 1 olej olej   31984 июн  3 13:09 helloi
-rwxr-xr-x. 1 olej olej   15816 июн  3 12:18 hellold
-rwxr-xr-x. 1 olej olej 2367424 июн  3 12:17 hellols
[olej@dell tasks]$ ./helloi
Hello, 世界

... или даже 5 ;-) :
Код:
[olej@dell tasks]$ gccgo -O3 -g hello.go -o helloig
[olej@dell tasks]$ ls -l hello*
-rwxr-xr-x. 1 olej olej   32400 июн  3 12:18 hellog
-rw-rw-r--. 1 olej olej     266 май 31 11:05 hello.go
-rwxrwxr-x. 1 olej olej   31984 июн  3 13:09 helloi
-rwxrwxr-x. 1 olej olej   33768 июн  3 13:10 helloig
-rwxr-xr-x. 1 olej olej   15816 июн  3 12:18 hellold
-rwxr-xr-x. 1 olej olej 2367424 июн  3 12:17 hellols


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Инструменты Go
Непрочитанное сообщениеДобавлено: 04 июн 2016, 19:58 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9838
Откуда: Харьков
Go Sub-repository Packages
Это огромный репозитарий пакетов Go, ещё не входящих в стандартную библиотеку (в разработе), или для специальных целей (обработка изображений, сеть и т.д.).
Цитата:
These packages are part of the Go Project but outside the main Go tree. They are developed under looser compatibility requirements than the Go core.
Repositories

golang.org/x/blog — the content and server program for blog.golang.org.
golang.org/x/crypto — additional cryptography packages.
golang.org/x/exp — experimental code (handle with care).
golang.org/x/image — additional imaging packages.
golang.org/x/mobile — libraries and build tools for Go on Android.
golang.org/x/net — additional networking packages.
golang.org/x/sys — for low-level interactions with the operating system.
golang.org/x/talks — the content and server program for talks.golang.org.
golang.org/x/text — packages for working with text.
golang.org/x/tools — godoc, vet, cover, and other tools.

Здесь же далее следует кратное описание каждого пакета:
Цитата:
Packages
Path Synopsis
golang.org/x/arch/arm/armmap Armmap constructs the ARM opcode map from the instruction set CSV file.
...


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Инструменты Go
Непрочитанное сообщениеДобавлено: 12 июн 2016, 23:17 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9838
Откуда: Харьков
Ещё один неофициальный перевод: Калеб Докси, Введение в программирование на Go
Цитата:
Приступая к работе
Ваша первая программа
Типы
Переменные
Управление потоком
Массивы, срезы, карты
Функции
Указатели
Структуры и интерфейсы
Многопоточность
Пакеты и повторное использование кода
Тестирование
Стандартная библиотека
Дальнейшие шаги


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Инструменты Go
Непрочитанное сообщениеДобавлено: 07 окт 2016, 20:54 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9838
Откуда: Харьков
В силу определённых обстоятельств, мне опять предстоит плотно поработать с Go.
Всё, что накопилось до сих пор относительно Go, было на конец 2014 года оформлено как тест Go конспект (с соответствующим архивом примеров кода).
Из-за нового витка активности с Go, первейшим делом дополняется, исправляется и меняется этот текст.
В ближайшие дни я выкину туда новый вариант, от 2016 года.

P.S.
Последняя редакция 2014г.:
Цитата:
Номер последней редакции: 39
Объём (страниц): 117
Дата создания: 25 сентябра 2014

На сегодня это уже будет:
Цитата:
Номер последней редакции: 41
Объём (страниц): 124

Так что дополнять есть что.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Инструменты Go
Непрочитанное сообщениеДобавлено: 21 янв 2017, 17:54 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9838
Откуда: Харьков
Подведены итоги 2016-го года:
TIOBE Index for January 2017
Цитата:
January Headline: Google's Go is TIOBE's programming language of 2016
TIOBE rewards the programming language that has gained the most popularity in a year with the programming language of the year award. Without hardly any competition Go has won the award for 2016. Google's Go language won 2.16% in one year. Runner ups Dart (+0.95%) and Perl (+0.91%) follow at a considerable distance. The main drivers behind Go's success are its ease of learning and pragmatic nature. It is not about theoretical concepts such as virtual inheritance and monads but about hands-on experience. Apart from that Go has built-in support for concurrency programming. More and more customers of our company TIOBE are adopting Go in an industrial setting. That is a good indicator.

TIOBE награждает язык программирования, который приобрел наибольшую популярность за год (по динамике). Практически без конкуренции Go завоевал награду на 2016 год. Язык от Google вырос за один год на 2.16%. Идущие следом Dart (+0.95%) и Perl (+0.91%) следуют на значительном расстоянии. Основными факторами успеха Go являются его легкость изучения и прагматический характер. Речь идет не о теоретических понятиях, таких как виртуальное наследование или монады, а про практический опыт. Кроме этого Go имеет встроенную поддержку параллельного программирования. Все больше и больше клиентов компании TIOBE адаптируют Go к промышленным условиям. Что является очень хорошим показателем.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Инструменты Go
Непрочитанное сообщениеДобавлено: 21 янв 2017, 18:54 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9838
Откуда: Харьков
Olej писал(а):
На сегодня это уже будет:
Цитата:
Номер последней редакции: 41
Объём (страниц): 124


Выложен этот новый вариант: Go конспект.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Инструменты Go
Непрочитанное сообщениеДобавлено: 28 мар 2017, 11:47 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9838
Откуда: Харьков
Очень интересная публикация по Go (не часто такое бывает) - как сделать на Go разделяемую библиотеку DLL, которую можно использовать из кода на других языках программирования (C, Python, Ruby, Node и Java) - Вызов функций Go из других языков:
Цитата:
21 марта
Изображение
Компилятор создаёт заголовочный С-файл awesome.h и файл объекта awesome.so:
Код:
-rw-rw-r —    1362 Feb 11 07:59 awesome.h
-rw-rw-r — 1997880 Feb 11 07:59 awesome.so
Обратите внимание, что размер файла .so около 2 Мб. Довольно много для такой маленькой библиотеки. Дело в том, что в этот файл запихивается вся runtime-механика Go и зависимые пакеты.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 84 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.206s | 18 Queries | GZIP : On ]