Инструменты Go

Вопросы написания собственного программного кода (на любых языках)

Модератор: Olej

Аватара пользователя
perseus
Писатель
Сообщения: 99
Зарегистрирован: 11 май 2017, 18:01
Откуда: Щёлково, Московская обл.
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение perseus » 13 май 2017, 22:07

Благодарю за разъяснения. :-)
Да, Mint достаточно удобная система, теперь попробую перейти на Fedora, наблюдая ваши манипуляции здесь в Fedora и сравнивая свои в Mint, пришёл к выводу, что у Fedora возможностей больше, о комфорте не могу судить, не пробовал её ещё. :roll:

Аватара пользователя
perseus
Писатель
Сообщения: 99
Зарегистрирован: 11 май 2017, 18:01
Откуда: Щёлково, Московская обл.
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение perseus » 14 май 2017, 20:33

накатил себе Fedoru25 Xfce, пропал Wi-Fi на ноутбуке :-(

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение Olej » 14 май 2017, 21:40

perseus писал(а):накатил себе Fedoru25 Xfce, пропал Wi-Fi на ноутбуке :-(
1. Я бы для "накатал" взял бы Spins RFR, вот здесь: Index of /fedora/russianfedora/releases/RFRemix/25/Spins/x86_64/ и см. RFRemix 25.
2. Пропал WiFi - это, наверное, Broadcom? Так это легко лечится, см. Wi-Fi Broadcom.
Только обсуждаем и лечим это не здесь, а в соответствующей теме (или в новой теме) в Железо для Linux.

Аватара пользователя
perseus
Писатель
Сообщения: 99
Зарегистрирован: 11 май 2017, 18:01
Откуда: Щёлково, Московская обл.
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение perseus » 03 июн 2017, 22:11

Столкнулся на работе с тем, что попросили перенести программу написанную на Go на машину с установленной МСВС-3.0 :-o
Ну, подумал, чего тут сложного, щас накатим на неё Go с сайта http://www.golang.org как я уже делал это ручками на свою Mint17 и делОв то, ан не тут то было :-? Оказывается у МСВС-3.0 ядро Linux-2.4. а все инсталяционные версии с сайта встают только на версии ядра не ниже Linux-2.6 (так прямо на сайте и указано)
Ну ладно, думаю, попробую скомпилировать программу с помощью gcc - универсальное средство, но и тут облом - оказывается поддержка языка Go в компиляторе gcc началась только с версии gcc-4.7, а на МСВС-3.0 установлен gcc-2.4 :-(
Эххххххх... видимо остаётся только самому собрать из исходников на машине gcc новой версии, поддерживающий язык Go, например gcc-6.3 , но думаю это будет не просто, наверняка сборка потребует каких-либо новых версий библиотек, который ЕСЕССНО нет в МСВС-3.0
Может есть у кого здравые мысли на эту тему ?, с благодарностью выслушаю и приму советы к сведению :-?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение Olej » 04 июн 2017, 09:20

perseus писал(а): Ну ладно, думаю, попробую скомпилировать программу с помощью gcc - универсальное средство, но и тут облом - оказывается поддержка языка Go в компиляторе gcc началась только с версии gcc-4.7, а на МСВС-3.0 установлен gcc-2.4 :-(
Эххххххх... видимо остаётся только самому собрать из исходников на машине gcc новой версии, поддерживающий язык Go, например gcc-6.3 , но думаю это будет не просто, наверняка сборка потребует каких-либо новых версий библиотек, который ЕСЕССНО нет в МСВС-3.0
Может есть у кого здравые мысли на эту тему ?, с благодарностью выслушаю и приму советы к сведению :-?
Я думаю, что вы можете, для начала,
- найти где-то (раскопать) gccgo (GCC) какой-то не самой свежей версии (но может быть и самой свежей!)
- и собрать его из исходников на самой МСВС-3.0, именно её компилятором GCC 2.4
Вот версия gccgo, которая стоит в Fedora 23, например, можете её взять примерно:

Код: Выделить всё

[olej@dell tests]$ gccgo --version
gccgo (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
Copyright (C) 2015 Free Software Foundation, Inc.
Это свободно распространяемое программное обеспечение. Условия копирования
приведены в исходных текстах. Без гарантии каких-либо качеств, включая 
коммерческую ценность и применимость для каких-либо целей.
Это соответствует версии языка Go 1.5.4
Имейте в виду, что, собирая версии Go младше версии 1.5, вы очень сильно теряете в качестве самого собранного Go, в реализации его гопрограмм и параллельности выполнения.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение Olej » 04 июн 2017, 09:35

perseus писал(а): Ну ладно, думаю, попробую скомпилировать программу с помощью gcc - универсальное средство, но и тут облом - оказывается поддержка языка Go в компиляторе gcc началась только с версии gcc-4.7, а на МСВС-3.0 установлен gcc-2.4 :-(
МСВС 3.0 начала поставляться с 2002г., см. "Эльбрус 3", МСВС - трудно от системы через 15 лет что-то требовать.
Но там были релизы разные и более свежие: R12, R13, R14 (это как пишут в обсуждениях), может слегка обновиться можно.
Народ писал (в 2008г.) что ставили успешно GCC 4.2.2 под этот дистрибутив, покопайтесь здесь, может что полезное найдёте: МСВС 3.0 (август 2007)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение Olej » 04 июн 2017, 09:38

perseus писал(а):Столкнулся на работе с тем, что попросили перенести программу написанную на Go на машину с установленной МСВС-3.0 :-o
А вот это уже интересно!: а что, статически собранная, ваша собственная программа (проприетарная) ... не так важно на чём она написана, на Go или не на Go, в готовом виде (бинарном, ELF-формат) не стала работать в МСВС 3.0?

Аватара пользователя
perseus
Писатель
Сообщения: 99
Зарегистрирован: 11 май 2017, 18:01
Откуда: Щёлково, Московская обл.
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение perseus » 04 июн 2017, 19:43

А вот это уже интересно!: а что, статически собранная, ваша собственная программа (проприетарная) ... не так важно на чём она написана, на Go или не на Go, в готовом виде (бинарном, ELF-формат) не стала работать в МСВС 3.0?
А вот это очень хороший вопрос! :-o
У меня, честно говоря, совершенно вылетел из головы этот вариант. Видимо сказалась загруженность на работе и утомление к концу недели :-?
С него и начнём в понедельник проверку. О результатах обязательно сообщу.

Аватара пользователя
perseus
Писатель
Сообщения: 99
Зарегистрирован: 11 май 2017, 18:01
Откуда: Щёлково, Московская обл.
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение perseus » 05 июн 2017, 12:14

Эксперимент в среде МСМВ-3.0 с программами на Go:
1)На машине с Fedora 25 была собрана элементарная программка "Hello world".
Заметьте - статически собранная. Но при запуске этой программки в среде МСМВ-3.0
выдаётся сообщение "Ловушка трассировки/останова (core dumped)". Программа не работает.
Записывается в директорию файл core.XXXX (как бы его расшифровать ?)
2)На машине с Fedora 25 была собрана элементарная программка опрашивающая по сети TCP-порты.
Заметьте - динамически собранная, потому что программа импортирует пакет "net". Но при запуске этой программки в среде МСМВ-3.0 выдаётся сообщение "Недопустимая инструкция (core dumped)". Программа не работает. Записывается в директорию файл core.XXXX
Вот такие вот странные результаты :roll:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Инструменты Go

Непрочитанное сообщение Olej » 05 июн 2017, 13:47

perseus писал(а):Эксперимент в среде МСМВ-3.0 с программами на Go:
1)На машине с Fedora 25 была собрана элементарная программка "Hello world".
Заметьте - статически собранная. Но при запуске этой программки в среде МСМВ-3.0
выдаётся сообщение "Ловушка трассировки/останова (core dumped)". Программа не работает.
Записывается в директорию файл core.XXXX (как бы его расшифровать ?)
1. Разница между ядрами Linux 2.4 & 2.6 - принципиальная. И между интерфейсами системных вызовов, библиотеке libc.so.
Там могут быть очень серьёзные несовместимости.
Дальше уже всё: 2.6 -> 3.X -> 4.X - это уже игрища Линуса Торвальдса ... из рыночных соображений (IMHO :oops: ) ;-)
Там уже всё должно быть более-менее совместимым.
2. Для анализа core-файлов существует достаточно много приёмов и инструментов: pstack, gstack ...
Пройдитесь поисковиком по контекстной фразе "Linux файл core"
Нашлось 44 млн результатов
Один из лучших способов - использование отладчика GDB (или его GUI-фронтэнда DDD) если он у вас установлен:

Код: Выделить всё

[olej@dell ACCOUNTS]$ dnf list ddd
Последняя проверка окончания срока действия метаданных: 4 days, 2:47:54 назад, Thu Jun  1 10:55:42 2017.
Доступные пакеты
ddd.x86_64                                                            3.3.12-22.fc23                                                            fedora
Или отладчик MDB, по вкусу ;-) :

Код: Выделить всё

[olej@dell ACCOUNTS]$ dnf provides '*/mdb'
Последняя проверка окончания срока действия метаданных: 4 days, 3:13:38 назад, Thu Jun  1 10:55:42 2017.
golang-github-hashicorp-consul-migrate-devel-0-0.1.git4977886.fc23.noarch : Consul server data migrator
Источник: fedora

mono-debugger-2.10-11.fc23.i686 : A debugger for Mono
Источник: fedora

mono-debugger-2.10-11.fc23.x86_64 : A debugger for Mono
Источник: fedora
3. Но разбираться с дампом core.XXX, насколько я понимаю, вам предстоит на целевой машине (МСВС 3.0) и с её инструментарием. :cry:

Я готов повозиться с вами над разборками с core (когда-то давно этим обстоятельно занимался) но только в отдельной новой теме, что-то типа "разборки с дампом core".

Ответить

Вернуться в «Программирование»

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей