Aleksandr
видимо считать из os.Stdin
V
Кто подскажет как сейчас обстоят дела с кросскомпиляцией + cgo? Сильно сложно под вин из линуха собрать или лучше забить на кросс?
Sol
а что не так с кросс-компиляцией? если не писать специально непереносимо, то компилится просто
Евгений
@lisitsky Я переместился в эту беседу )
ok ) отличный результат, очень наглядно
V
а если без Cgo и просто syscall и dll/so, то шансы получше?
V
хеллоуворды вроде работают, но вот реальный опыт бы послушать 🙂
kås
Daniel
а если без Cgo и просто syscall и dll/so, то шансы получше?
syscall - пожалуйста, про dll я не понял
V
завернуть сишный код в либу и сисколлами к ней обращаться
V
https://github.com/golang/go/wiki/WindowsDLLs
Daniel
либу еще подгрузить надо
Daniel
но это, опять же, пожалуйста
Anton
Кто подскажет как сейчас обстоят дела с кросскомпиляцией + cgo? Сильно сложно под вин из линуха собрать или лучше забить на кросс?
Мы собираем. Было больно вначале, потом привыкли. Используем dll/so для работы с usb ключиками защиты
Anton
достаточно мингв нужный и поедет?
Да, у нас все им решилось
Anton
V
CI в контейнере или просто линух сервак?
Daniel
тогда давайте подробности!
Anton
CI в контейнере или просто линух сервак?
И так и так, но я без ci собираю. В контейнере пару раз попробовали-работает, ну и забили. Подключаем cgo только для продакшена, так все тестовые билды у нас без защиты 🤔
V
ого, спасибо
V
значит надо пробовать, а то у нас разработчик неделю исследует и страдает
V
говорит никак и никогда и все плохо
Daniel
И так и так, но я без ci собираю. В контейнере пару раз попробовали-работает, ну и забили. Подключаем cgo только для продакшена, так все тестовые билды у нас без защиты 🤔
коллега, этого не достаточно :) вот у вас есть cgo либа. для начала - линкер должен найти е сишный вариант. как вы этого добиваетесь?
Anton
тогда давайте подробности!
Да какие там подробности могут быть, у нас компиляция порешалась методом тыка доп параметров типа СС, CGO или CXX что там. Щас не за компом, как смогу напишу. Все оч почтой у нас было, а у вас может быть не так
Daniel
ок, спасибо!
Anonymous
хеллоуворды вроде работают, но вот реальный опыт бы послушать 🙂
Я в обратную сторону пробовал простейший REST в 3 хэндлера в 3 строки, из Go d С shared library, вроде, называется. Вообщем, ни хрена не вышло: всё крешится к хренам. Скорее всего, при импорте, но могу уже ошибаться.
Anonymous
-buildmode=c-shared кмк
Anton
описал небольшой алгоритм, как у нас все заработало. Повторюсь, что возможно у нас был слишком простая задача, мы просто подключили, описали всякие обертки и сразу начали пользоваться. В интернетах можно всякого найти на тему cgo. https://gitlab.com/snippets/1731857
V
Спасибо
Daniel
надо, наверное, отдельным абзацем, тогда оно не враппит строку
Vadim
Привет, заранее извиняюсь за флуд. Мне нужно в приложение написаное на джаве загнать большую картинку. Он мне выдает ошибку, что не получается выполнить запрос на алоцирование. Можно ли это как-то системно пофиксить или придется читать код?
Anonymous
for _, file := range f { go func(quit chan bool) { … Это плохая идея?
Anonymous
Внутри рутины mutex.Lock() xmlFile, err := os.Open(filepath.Join(file.pathUnzipFile)) if err != nil { fmt.Printf("[ERROR] невозможно открыть файл %e \n", err) } mutex.Unlock() defer xmlFile.Close() И работаю с этим файлом… в одном потоке работает нормально, а вот при запуске в го рутинах не корректно
Александр
Добрый день! переписываю библиототеку которая мне нужна. однако с СИ дел не имел. Ребята подскажите как получить размер структуры в го.(может я что то не правильно понял, ссылка на куски кода : https://play.golang.org/p/mFojhE_JXPe)
Slava
а что ты хочешь с этой структурой делать?
Slava
если ты хочешь читать бинарное представление сишной - то не выйдет
Slava
тебе нужно наверное cgo заиспользовать
Daniel
почему нет
Daniel
если только структура упакованная - тогда мимо
Александр
как я понял sizeof получает размер структуры
Daniel
да, но в go его нет
Daniel
я бы, правда, советовал не читать структуру как есть, а воспользоваться пакетом binary
Daniel
и прочитать ее поле за полем
Александр
спасибо. буду думать как обойти проблема
Slava
а ты можешь проблему описать? а то мы щас будем гадать с ответами
Slava
ну то есть с размером понятно, но зачем он тебе вообще?
Александр
я переписываю библиотеку эмуляции клавиатуры и мыши на go https://github.com/oblitum/Interception
Александр
как я понял в ней есть состояния допустим нажата кнопка или её уже отпустили...
Anonymous
Внутри рутины mutex.Lock() xmlFile, err := os.Open(filepath.Join(file.pathUnzipFile)) if err != nil { fmt.Printf("[ERROR] невозможно открыть файл %e \n", err) } mutex.Unlock() defer xmlFile.Close() И работаю с этим файлом… в одном потоке работает нормально, а вот при запуске в го рутинах не корректно
Нужно было воспользоваться группой ожидания действий WaitGroup и передавать в анонимную функцию непосредственно сам экземпляр file Не сочтите за рекламу, но решение нашел в книге "Go на практике" на странице 97.
Александр
странно.. посмотрел реализацию этой юиюлиотеки на питоне там просто структуру умножают на 1
Александр
InterceptionStroke = InterceptionMouseStroke * 1
Denis
Привет. Есть вопрос про многопоточность. Я могу разными горутинами обращаться к разнвм элементам мапы мап без мьютекса? Т.е. например массив 10 элементов. Я могу сделать что 10 горутин будут изменчть каждая свою ячейку единовременно и делать жто без мьютекса. Могу повторить тоже самое но с мапой мап в голанге?
Denis
Или создать мьютекс но не на всю мапу а на один элемент мапы мап
Denis
Слишком много мап...😒
Denis
Это указатели. Одна мапа и горутины работают через указатель с памятью
Denis
Получается что мапа это ассоциативный массив и все должно завестись, но на СоФ пишут что мапы не тред-сейф
Stanislav
если ты обращаешься к мапе чтобы получить указатель - то да, нельзя, не тредсейф
Stanislav
если ты первично получил из мапы указатель и работаешь с ним, без постоянных итераций по мапе - то нормально будет
Stanislav
иначе использую мьютексы
V
Или sync.Map
V
Если многопоточность, то лучше сразу делать максимально надёжно. Сейчас вот такой юзкейс, потом кто-то немного допилит и все падать начнет - оно надо?
Александр
народ а что с гитхабом произошло?
Александр
у меня только главная страница грузиться все репозитории ошибка
Александр
мол проверьте статус гитхаба
Anonymous
у меня все норм, все работает
Anonymous
на репы тож норм заходит
Anonymous
тебе там сис. адм ничего не блоконул?))
Александр
да нет все работало отлично