Aleksandr
видимо считать из os.Stdin
V
Кто подскажет как сейчас обстоят дела с кросскомпиляцией + cgo? Сильно сложно под вин из линуха собрать или лучше забить на кросс?
Nikita
Sol
а что не так с кросс-компиляцией? если не писать специально непереносимо, то компилится просто
Kirill
Daniel
V
а если без Cgo и просто syscall и dll/so, то шансы получше?
V
хеллоуворды вроде работают, но вот реальный опыт бы послушать 🙂
kås
V
Daniel
V
завернуть сишный код в либу и сисколлами к ней обращаться
V
https://github.com/golang/go/wiki/WindowsDLLs
Daniel
либу еще подгрузить надо
Daniel
но это, опять же, пожалуйста
Anton
V
Daniel
Anton
Anton
V
CI в контейнере или просто линух сервак?
Daniel
тогда давайте подробности!
Anton
CI в контейнере или просто линух сервак?
И так и так, но я без ci собираю. В контейнере пару раз попробовали-работает, ну и забили. Подключаем cgo только для продакшена, так все тестовые билды у нас без защиты 🤔
V
ого, спасибо
V
значит надо пробовать, а то у нас разработчик неделю исследует и страдает
V
говорит никак и никогда и все плохо
Daniel
Anton
тогда давайте подробности!
Да какие там подробности могут быть, у нас компиляция порешалась методом тыка доп параметров типа СС, CGO или CXX что там. Щас не за компом, как смогу напишу. Все оч почтой у нас было, а у вас может быть не так
Anton
Daniel
ок, спасибо!
Olzhas
Anonymous
-buildmode=c-shared кмк
Anton
описал небольшой алгоритм, как у нас все заработало. Повторюсь, что возможно у нас был слишком простая задача, мы просто подключили, описали всякие обертки и сразу начали пользоваться. В интернетах можно всякого найти на тему cgo.
https://gitlab.com/snippets/1731857
V
Спасибо
Daniel
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
и прочитать ее поле за полем
Zver
Zver
Александр
спасибо. буду думать как обойти проблема
Slava
а ты можешь проблему описать? а то мы щас будем гадать с ответами
Slava
ну то есть с размером понятно, но зачем он тебе вообще?
Александр
я переписываю библиотеку эмуляции клавиатуры и мыши на go https://github.com/oblitum/Interception
Александр
как я понял в ней есть состояния допустим нажата кнопка или её уже отпустили...
Anonymous
Александр
странно.. посмотрел реализацию этой юиюлиотеки на питоне там просто структуру умножают на 1
Александр
InterceptionStroke = InterceptionMouseStroke * 1
Denis
Привет. Есть вопрос про многопоточность. Я могу разными горутинами обращаться к разнвм элементам мапы мап без мьютекса?
Т.е. например массив 10 элементов. Я могу сделать что 10 горутин будут изменчть каждая свою ячейку единовременно и делать жто без мьютекса. Могу повторить тоже самое но с мапой мап в голанге?
Denis
Или создать мьютекс но не на всю мапу а на один элемент мапы мап
Denis
Слишком много мап...😒
Stanislav
Denis
Это указатели. Одна мапа и горутины работают через указатель с памятью
Denis
Получается что мапа это ассоциативный массив и все должно завестись, но на СоФ пишут что мапы не тред-сейф
Stanislav
если ты обращаешься к мапе чтобы получить указатель - то да, нельзя, не тредсейф
Stanislav
если ты первично получил из мапы указатель и работаешь с ним, без постоянных итераций по мапе - то нормально будет
Stanislav
иначе использую мьютексы
V
Или sync.Map
V
Если многопоточность, то лучше сразу делать максимально надёжно. Сейчас вот такой юзкейс, потом кто-то немного допилит и все падать начнет - оно надо?
Александр
народ а что с гитхабом произошло?
Anonymous
Александр
у меня только главная страница грузиться все репозитории ошибка
Александр
мол проверьте статус гитхаба
Anonymous
у меня все норм, все работает
Anonymous
на репы тож норм заходит
Anonymous
тебе там сис. адм ничего не блоконул?))
Александр
да нет все работало отлично