Home
golang
golang@conference.jabber.ru
Понедельник, 18 апреля 2016< ^ >
Deirz установил(а) тему: Go Programming Language.
|| Изучаем: https://gobyexample.com/
|| Тур: http://tour.golang.org/
|| Как писать код: http://golang.org/doc/code.html
|| Как писать эффективный код: http://golang.org/doc/effective_go.html
|| FAQ: http://golang.org/doc/faq
|| 99% ответов о языке Go тут: http://golang.org/ref/spec
|| Сторонние либы: http://godoc.org/ https://github.com/avelino/awesome-go
|| Логи: http://chatlogs.jabber.ru/golang@conference.jabber.ru/
|| This chatroom does not adhere to any codes of conduct, be they implied or explicitly stated by someone. Your feelings can and WILL be hurt without a warning.
Конфигурация комнаты
Участники комнаты

GMT+3
[00:16:03] kpmý вышел(а) из комнаты
[00:31:33] plumbum вышел(а) из комнаты
[00:46:13] avz вышел(а) из комнаты
[00:46:36] Magiq вышел(а) из комнаты
[01:05:28] begemot_sun вышел(а) из комнаты
[01:06:47] kms вышел(а) из комнаты
[01:22:44] postman вышел(а) из комнаты
[01:30:48] kpmý вошёл(а) в комнату
[01:30:58] <kpmý> норм получается https://github.com/kpmy/tiss
[01:31:05] <kpmý> вроде ._.
[01:35:03] <Deirz> а что там в этом вебассембли?
[01:35:09] <Deirz> модули какие-то, функции
[01:35:45] <kpmý> ну там как будто risc-ассемблер но с модулями и функциями
[01:36:13] <Deirz> а структуры данных есть какие-нибудь?
[01:36:21] <kpmý> из типов только int и float :)
[01:36:27] <kpmý> потому и ассемблер
[01:37:18] <kpmý> и ты типа такой сам занимаешься байтоёбством в своём компиляторе, но не под конкретный процессор, а под этот wasm
[01:37:50] <Deirz> понятно
[01:38:59] <Deirz> а виртуальная машина у него - стековая или регистровая?
[01:39:58] <kpmý> зависит от реализации, наверное, на уровне ast ничего такого не уточняется
[01:40:21] <kpmý> но можно создавать кучу локальных переменных, как будто ssa и регистры)
[01:41:34] <kpmý> ещё можно памяти попросить у системы
[01:42:19] <mantyr@jabberon.ru> Что полезного этот tiss делает-то? Где применение?
[01:42:46] <kpmý> он меня развлекает
[01:47:45] <Deirz> вейт
[01:48:03] <mantyr@jabberon.ru> Ну ты и накоммитил… пол тыщи коммитов… и куда энергию только тратишь.
[01:48:03] <Deirz> регистровый ассемблер должен включать в себя регистроёбство
[01:48:43] <Deirz> или нет?
[01:49:25] <kpmý> ну а что такое регистр, это просто локальная переменная
[01:49:48] <kpmý> потом их линкер посчитает и распределит по физическим регистрам
[01:50:49] <Deirz> понятно
[01:51:08] <Deirz> вебасм на кого ориентирован в первую очередь?
[01:51:11] <kpmý> тьфу, не линкер а кодогенератор
[01:51:32] <Deirz> на игроделов, которые хотят запускать игори в браузере?
[01:51:36] <kpmý> на авторов высокопроизводительного кода для браузеров клиента
[01:51:41] <kpmý> ну типа, да
[01:52:24] <Deirz> втаскивание альтернативных языков в браузер тоже станет возможным?
[01:52:56] <kpmý> конеш, там будет песочница с прямым доступом к памяти
[01:53:08] <kpmý> хоть на брейнфаке пиши)
[01:53:17] <kpmý> только компилятор не забудь)
[01:53:21] <Deirz> к примеру, можно оттранслировать питоний интерпретатор в васм, написать биндинги к апи и можно будет напетоне скриптовать страницу?
[01:53:58] <kpmý> более того, можно будет гонять компилятор в васм прямо через васм
[01:54:04] <kpmý> васм васм васм васм
[01:54:23] <kpmý> я думаю, работы уже ведутся
[01:55:40] <kpmý> плюс nodejs тоже будет скоро поддерживать
[01:55:44] <Deirz> вут
[01:55:59] <Deirz> > можно будет гонять компилятор в васм прямо через васм
[01:56:04] <Deirz> гонять откуда куда?
[01:56:39] <kpmý> ну а что, загрузил клиенту компилятор прямо в браузер, и гоняешь его там, код создаёшь прямо на месте
[01:56:43] <kpmý> адский jit
[01:56:54] <mantyr@jabberon.ru> Нафиг...
[02:00:30] <Deirz> это обычный jit
[02:00:41] <Deirz> который потом будет жититься из васма в асм
[02:01:30] <kpmý> лично мне этот wasm нравится чисто потому, что надолго решит мою проблему со всякими низкоуровневыми кодогенераторами, а то я плохо в них умею)
[02:01:37] <kpmý> можно будет клепать язычки
[02:02:05] <kpmý> и они даже будут работать быстро
[02:02:18] <kpmý> и везде)
[02:02:21] kpmý вышел(а) из комнаты
[02:02:24] <Deirz> а llvm что?
[02:02:34] <Deirz> там же можно нахуякать вроде
[02:02:51] <Deirz> и биндинги для гошечки есть
[02:16:10] Deirz вышел(а) из комнаты
[02:18:52] ascrazy@jabber.ru вышел(а) из комнаты: Replaced by new connection
[02:18:53] ascrazy@jabber.ru вошёл(а) в комнату
[03:28:00] krab вышел(а) из комнаты: Left Vacuum-IM
[03:39:34] mantyr@jabberon.ru вышел(а) из комнаты
[05:09:46] 5UN5H1N3 вошёл(а) в комнату
[07:10:52] ermine вошёл(а) в комнату
[08:02:17] cheshir вошёл(а) в комнату
[08:02:27] <cheshir> добрый утр
[08:10:03] begemot_sun вошёл(а) в комнату
[08:12:29] ascrazy@jabber.ru вышел(а) из комнаты
[08:15:13] Kittycat вышел(а) из комнаты
[08:21:16] Magiq вошёл(а) в комнату
[08:50:33] bananan вышел(а) из комнаты: Disconnected: Replaced by new connection
[08:52:09] Laz вошёл(а) в комнату
[09:02:35] Kittycat вошёл(а) в комнату
[09:04:04] avz вошёл(а) в комнату
[09:04:06] postman вошёл(а) в комнату
[09:05:04] <postman> лол, но васм не очень-то и высокоуровневый с точки зрения семантики.
[09:05:25] <postman> тебе дают ту же линейную область память - пердолься, епт.
[09:16:41] <Laz> да ладно
[09:16:52] <Laz> это ж наиболее абстрактная тема
[09:17:06] <Laz> никаких тебе типов и всяких структур данных
[09:17:31] <Laz> гомоиконность опять же
[09:18:35] <postman> схуяль типов нет.
[09:18:38] <postman> есть, почти асм.
[09:20:03] <Laz> васм - это чо такое?
[09:20:07] <Laz> виндовс ассемблер?
[09:20:24] <postman> webassembly
[09:20:33] <Laz> а
[09:20:34] <Laz> ну ладно
[09:21:10] <Laz> посаны из /r/haskell говорят, кстати, что толку от него особого не будет
[09:21:23] <postman> обосновывают хоть?
[09:21:37] <Laz> в контексте ghcjs
[09:21:40] <Laz> ну да
[09:21:48] <Laz> ща
[09:22:35] <Laz> https://www.reddit.com/r/haskell/comments/49tqxn/webassembly_haskell/
[09:22:42] <Laz> вот в этом треде первые несколько коментов
[09:23:05] <Laz> оно для всяких игорь и хайлоуда профит приносит
[09:23:54] <Laz> ручное управление памятью, микрооптимизации, вот это вот
[09:24:37] <postman> хуйню какую-то несут.
[09:24:47] <postman> похоже, особо в предмет не вчитывались.
[09:25:15] <Laz> наверняка
[09:25:21] <Laz> Luite - разраб ghcjs
[09:25:47] <postman> > нужно многа кода писать, лень, жс и так быстрый)))))00
[09:26:34] <Laz> типа того
[09:27:19] <Laz> не, ну а чо
[09:27:27] <Laz> вон в es6 есть tco
[09:27:31] <Laz> чо ещё для счастья надо?
[09:27:39] <postman> поддержка браузерами.
[09:27:54] <postman> только вчера проигрывал тут с бэбела.
[09:28:08] <Laz> когда-нибудь завезут
[09:28:11] <Laz> и заживём :)
[09:28:14] <Laz> а чо там бабел?
[09:28:34] <Laz> это который для i18n?
[09:28:50] <postman> убрали поддержку в шестой версии, потому что поддерживали только наивные вызовы этой же функции.
[09:28:55] <Laz> Babel is a compiler for writing next generation JavaScript.
[09:28:57] <postman> не, это который транспилер жсовский.
[09:28:59] <Laz> шо за херь
[09:29:02] <Laz> впервые слышу
[09:29:08] <postman> ну это чтобы писать на жс и не блевать.
[09:29:20] <Laz> аа
[09:29:25] <postman> и чтобы работало в говне вместо браузеров.
[09:29:31] <Laz> типа из es6 в старую порашу транслирует?
[09:29:35] <postman> ага.
[09:29:51] <postman> даже из пропозалов, которые в es6 не вошли, я так понимаю.
[09:29:54] <Laz> наш фронтэнщег вроде юзает что-то такое
[09:30:03] <postman> все юзают.
[09:30:03] <Laz> ссыт кипятком
[09:30:07] <postman> иначе ебануться можно.
[09:30:14] <Laz> позвал меня на днях показать, как круто он лямбды пишет
[09:30:15] <postman> спроси асмрази, когда он придет.
[09:30:24] <postman> ну ты его обоссал?
[09:30:26] <Laz> я такой "ну нихуясебе"
[09:30:30] <Laz> та не, мне лень
[09:31:29] <postman> как заставить MDN показывать мне статьи на английском языке?
[09:31:33] ftrvxmtrx вышел(а) из комнаты
[09:32:56] <Magiq > В проекте 2 GOPATH=$PWD/gopath:/$PWD внутри $PWD папка gopath и папка src. В папке gopath соотвественно сторонние либы
[09:32:58] <Magiq > это нормальная практика?
[09:33:52] <Laz> воще пиздос какой-то
[09:33:57] <Laz> зачем?
[09:34:08] <postman> govendorexperiment юзай, сука.
[09:34:10] <Magiq > чтобы не срать свой код чужими пакетами
[09:34:43] <Laz> а как чужие пакеты попадают в твой import path?
[09:35:04] <Magiq > всмысле?
[09:35:21] <Laz> ну вот лежит твой код по адресу github.com/user/code
[09:35:32] <Magiq > мой код лежит только локально в папке
[09:35:36] <Laz> и тут такой чужой пакет врывается в github.com/user/code/foreighn?
[09:35:53] <Laz> по адресу $GOPATH/src/github.com/user/code
[09:36:15] <Magiq > мой код локально в диске лежит
[09:36:18] <Laz> или у тебя весь $GOPATH/src в репозиторий сунут?
[09:36:41] <Laz> в общем, да
[09:36:43] <Laz> вендоринг
[09:36:56] <Laz> мы уже перешли, всё сухо и комфортно
[09:36:57] <Magiq > у меня есть мой код он в GOPATH/src
[09:37:17] <Laz> советую таки разместить его в отдельном пакете
[09:38:16] <Magiq > у меня внутри src main.go и еще 2 папки с пакетами
[09:38:28] <Magiq > я хочу разделить чужие пакеты которые я использую и свой код
[09:38:58] <Laz> ну я так и понял
[09:39:06] <Magiq > для этого я видел в предыдущем проекте разработчик просто указывла 2 GOPATH'а первый куда устанавливаются чужие а второй соотвесвтенно свой
[09:39:21] plumbum вошёл(а) в комнату
[09:39:22] <Laz> нормальная практика - класть свой код в отдельный пакет
[09:39:26] <Laz> а не в src
[09:39:31] <Laz> как ты его собираешь воще?
[09:39:38] <Magiq > очень просто
[09:39:40] <Magiq > go build
[09:39:42] <Magiq > profit
[09:39:43] <Laz> бинарь называется src?
[09:40:03] <Magiq > можно опцией указать название бинарника
[09:40:10] <Laz> круто
[09:40:31] <Magiq > если я его размещу в отдельном пакете мне ж всеравно main.go нужен будет
[09:40:42] <Magiq > чтобы вызвать его
[09:40:59] kpmy вошёл(а) в комнату
[09:41:19] <postman> верно говорят, что пхп разжижает мозг.
[09:41:22] <Laz> и main.go туда же клади
[09:41:36] <Laz> воще, это всё написано на сайте у них
[09:41:44] <Laz> в effective go или где-то там
[09:42:18] <Magiq > postman: старческий маразм разжигает мозг. проходи дальше не задерживайся
[09:43:03] <Magiq > Laz: там везде в примерах предполагается что мой код в гитхабе
[09:43:06] <Magiq > я читал доки
[09:43:21] <Magiq > и не смог понять как мне это использовать если у меня нету репы в гитхабе
[09:43:28] <postman> мне 22.
[09:43:42] <Laz> примерно так же, как не понял, как использовать flag?
[09:43:49] <Laz> там примеры были про строки, а у тебя инты...
[09:43:50] kpmy вышел(а) из комнаты
[09:44:02] <Magiq > Laz:  ?
[09:44:40] <Magiq > какие строки какие инты?
[09:44:40] <Laz> > Note that you don't need to publish your code to a remote repository before you can build it. It's just a good habit to organize your code as if you will publish it someday. In practice you can choose any arbitrary path name, as long as it is unique to the standard library and greater Go ecosystem.
[09:45:36] <Magiq > и в итоге у меня будет несколько папок в перемешку с чужими репами
[09:45:43] <Magiq > мусорно как то выглядело
[09:45:57] <Magiq > я хочу разделять чужие либы и свой проект
[09:46:03] <Laz> а сейчас у тебя несколько файлов в перемешку с чужими репами?
[09:46:06] <Laz> да, это куда круче
[09:46:08] <Magiq > нет
[09:46:11] <Magiq > еще раз говорю
[09:46:19] <Magiq > сейчас у меня в $PWD/gopath чужие либы
[09:46:23] <Magiq > $PWD/src мой код
[09:46:30] <Laz> ага
[09:46:34] <Laz> и всё вперемешку
[09:46:39] <Laz> относительно $PWD
[09:46:45] <Magiq > ну где в перемешку? если разные директории
[09:46:46] <Laz> советую перенести свой код на отдельный диск
[09:46:50] <Magiq > это ты мне предлагаешь в перемешку
[09:47:01] <Laz> я предлагаю сделать разные директории
[09:47:06] <Laz> как и авторы языка
[09:47:09] <Magiq > чтобы после go get у меня были сторонние либы с гитхаба
[09:47:28] <Laz> у тебя go get работать не будет в принципе
[09:47:35] <Laz> у тебя нет имени у пакета
[09:47:36] <Magiq > он работает
[09:47:43] <Laz> ухты
[09:47:44] <Laz> интересно
[09:47:48] <Laz> и что ты пишешь?
[09:47:52] <Laz> go get src?
[09:48:07] <Magiq > нахуя мне свой проект гетом заберать?
[09:48:12] <Magiq > мне бинарник нужен
[09:48:24] <Magiq > я не пакет для сторонний людей делаю
[09:48:33] <Laz> чтоб стянуть зависимости, собрать его и получить бинарь в $GOPATH/bin
[09:48:35] <Magiq > я делаю кастомный веб сервер беру бинарник
[09:48:52] <Magiq > тебе гифку запилить как у меня гетится и компилиться?
[09:49:13] <Laz> угу
[09:49:13] <Magiq > go get читает первый gopath и засовывает туда сторонние либы
[09:49:17] <Magiq > а go build билдит второй
[09:49:17] <Laz> желательно из ~
[09:49:22] <Laz> и без команд cd и pushd
[09:49:33] <Magiq > без команд cd ? )))
[09:49:36] <Laz> угу
[09:49:40] <Magiq > ты хочешь чтобы я линукс скомпилил?
[09:49:43] <Magiq > из папки /
[09:49:43] <Laz> типа как у меня
[09:49:47] <Laz> go get backend
[09:49:58] <Laz> и в $GOPATH/bin/backend лежит бинарик бакенда
[09:50:12] <Magiq > ну у меня он не там лежать будет
[09:50:16] <Magiq > большая разница то
[09:50:19] <Laz> да, наши черти ниасилили настроить гитлаб...
[09:50:24] <Magiq > зато у тебя сторонние либы в перемешку
[09:50:32] <Laz> это где?
[09:50:49] <Laz> они все каждая в своей директории
[09:50:55] <Laz> и наш код в своей директории
[09:51:18] <Magiq > я не хочу видеть пакет из гитхаба и свой пакет в одной директории
[09:51:41] <Laz> у тебя пакета вообще нет
[09:51:50] <Magiq > верно
[09:51:56] <Magiq > у меня main пакет
[09:52:05] <Magiq > https://golang.org/doc/code.html
[09:52:14] <Magiq > github.com/golang/example/
[09:52:18] <Magiq > github.com/user/
[09:52:21] <Laz> угу
[09:52:24] <Magiq > нахуя это в одной директории
[09:52:32] <Magiq > лучше ж как vendor
[09:52:32] <Laz> и первое же предложение ты послал к херам
[09:52:35] <Laz> > To compile and run a simple program, first choose a package path (we'll use github.com/user/hello) and create a corresponding package directory inside your workspace:
[09:52:44] <Laz> выбрать имя пакета?
[09:52:46] <Laz> нахер надо
[09:53:00] <Laz> я про https://golang.org/doc/code.html#Command
[09:53:00] <Magiq > дело не в имени
[09:53:05] <Magiq > github.com/golang/example/
[09:53:10] <Magiq > mypackage
[09:53:15] <Magiq > на одном уровне не хочу
[09:53:27] <Magiq > хочу чтобы чужие моудли в отдельной вендрной папке были
[09:53:34] <Laz> сделай директорию vendor
[09:53:38] <Magiq > слелал
[09:53:40] <Magiq > назвал gopath
[09:53:52] <Laz> а надо назвать vendor
[09:55:04] <Magiq > замечательно
[09:55:11] <Magiq > они добавили это в 1.5 версии
[09:55:21] <Magiq > но нигде в документации не указали что можно и так делать
[09:55:31] <Magiq > это то что мне нужно
[09:56:18] avz вышел(а) из комнаты
[09:56:39] <Laz> https://blog.golang.org/go1.5
[09:56:48] <Laz> Experimental support for "vendoring"
[09:57:01] <Magiq > это не документация
[09:57:02] <Magiq > ;)
[09:57:03] <Magiq > это блог
[09:57:09] <Laz> https://golang.org/cmd/go/#hdr-Vendor_Directories
[09:57:21] <Laz> это релиз-ноты
[09:57:52] <Magiq > я к тому что такие вот подробности не помешали бы или в effective go
[09:57:59] <Magiq > а лучше вот здесь https://golang.org/doc/code.html
[09:58:09] <Laz> какие такие подробности?
[09:58:11] <Magiq > а не у черта на куличках
[09:58:25] <Laz> если ты даже директорию для своего кода не осилил сделать
[09:58:53] <Magiq > я тебе объяснил почему я ее не сделал
[09:58:58] <Magiq > причина и следствие
[09:59:29] <Laz> пёсман объяснил
[09:59:39] <postman> в 1.6 уже не экспериментал, кстати.
[09:59:56] <Magiq > слова песмана здесь не считаются
[10:00:06] <Laz> ога
[10:00:14] <Laz> мы уже на 1.6
[10:00:17] <Laz> воще збс
[10:00:35] <Magiq > свои холивары кто на чем кодил оставляйте в конфе ubuntu или anime
[10:00:52] <Laz> какие ещё холивары?
[10:01:08] <Magiq > Laz
09:59
пёсман объяснил
[10:01:15] <Laz> и где здесь холивар?
[10:01:17] <Magiq > ты имеел ввиду php комментарий?
[10:01:24] <Laz> именно его
[10:01:33] <Magiq > ubuntu anime
[10:01:34] <Laz> или ты будешь оспаривать, что кодил на пыхпыхе?
[10:01:44] <postman> а пхп - это убунту или аниме?
[10:01:44] <Magiq > я и на ассемблере кодил
[10:01:44] avz вошёл(а) в комнату
[10:01:49] <Laz> охщи
[10:01:54] <postman> а на асме до или после пхп?
[10:02:08] <Laz> знавал я одного кодящего на асме
[10:02:23] <Magiq > я не кодящий на асме
[10:02:27] <Magiq > я в качестве примера привел
[10:02:32] <Magiq > в институте мы писали на асме
[10:02:43] <Laz> ну тебе понравилось же?
[10:02:57] <Magiq > а почему вы спрашиваете?
[10:03:05] <Laz> мы антисемиты
[10:04:32] <postman> институт не считается.
[10:04:38] <Magiq > ты не считаешься
[10:05:10] <postman> иначе я писал на паскале, делфи, лиспах, прологе, хаскелле, асме, сишарпе и джаве.
[10:05:17] <postman> и на сишке для мк.
[10:06:18] <Laz> фигасе ты
[10:06:29] <postman> инструмент под задачу :^)
[10:06:43] <Magiq > Laz: а у тебя весь твой код в одном пакете?
[10:06:51] <Laz> нет
[10:07:02] <Laz> оно по подпакетам ещё распихано
[10:07:04] <Magiq > у тебя под каждый пакет свой репозиторий?
[10:07:10] <Laz> нет, репозиторий один
[10:07:18] <Magiq > и там внешние зависимости?
[10:07:42] <Laz> внешние зависимости лежат в вендрое
[10:07:45] <Laz> вендоре
[10:07:59] <Magiq > ты используешь вендор который в 1.6 версии добавили?
[10:08:16] <Laz> ну да
[10:08:40] <Magiq > а как go get работает? он в курсе что нужно в vendor папку лить а не gopath ?
[10:08:45] <Laz> каэш
[10:08:52] <Laz> точнее, нет
[10:08:58] <Laz> он ничего не льёт
[10:09:10] <Laz> у нас абсолютно все зависимости в вендоре лежат
[10:09:13] <Laz> ну кроме stdlib
[10:11:03] <Magiq > это я понял, но вот ты добавил новый пакет внешний import "github.com/postman/someshit"
[10:11:14] <Magiq > потом сделал go get оно же в gopath зальет репу
[10:11:19] <Magiq > или в vendor ?
[10:11:43] <postman> в gopath, насколько я помню.
[10:12:10] <postman> в вендор ручками.
[10:12:17] <postman> или godep там какой-нибудь.
[10:13:31] <Laz> в gopath/src, да
[10:13:34] <Laz> в вендор ручками
[10:13:59] <Magiq > ;(
[10:14:03] <Laz> godep - кривой костыль
[10:14:19] <Laz> мы в самом начале его впилили, потом еле выпилили
[10:17:51] <Magiq > Laz: т.е вы руками из gopath вырезаете внешние пакеты и вставляете их в backend/vendor ? =)
[10:18:15] <Laz> мы руками клонируем их в vendor, когда в этом есть необходимость
[10:18:35] <Magiq > т.е всегда?
[10:18:42] <Laz> ну что значит всегда
[10:18:52] <Magiq > ну смотри вот юзер кейс например
[10:18:59] <Laz> всегда, когда появляются новые зависимости
[10:19:02] <Laz> или обновляются старые
[10:19:16] <Magiq > хорошо другой вопрос
[10:19:18] <Laz> оно ж в репозиторий попадает
[10:19:26] <Magiq > вы в vendor только свои пакеты складываете?
[10:19:30] <Laz> нет
[10:19:32] <Laz> только чужие
[10:19:49] <Magiq > как одним репозиторием объединить только свои пакеты но исключить внешние?
[10:20:18] <Laz> ну во-первых, .gitignore никто не отменял
[10:20:27] <Laz> во-вторых, весь vendor у нас в репозитории лежит
[10:20:31] <Laz> в этом его суть
[10:20:44] <Magiq > ого
[10:20:47] <Laz> как именно оно лежит в репозитории - это уже твоё дело
[10:20:52] <Laz> хош субмодулями
[10:20:56] <Laz> хош субдеревьями
[10:21:03] <Laz> хош руками копируй
[10:21:14] <Magiq > гитигнорить каждый заимпорченный внешний репозиторий
[10:21:15] <Magiq > это сильно
[10:21:27] <Laz> зачем каждый?
[10:21:32] <Laz> весь vendor туда пихай
[10:21:34] <Laz> только зачем?
[10:21:36] <postman> бля, да ты совсем объебан.
[10:21:48] <Laz> vendor для того и сделан, чтоб в репозитории лежать
[10:21:51] <Magiq > go get не кидает в вендор
[10:21:54] <postman> (кстати, vendor для того и нужен, чтобы таскать с собой)
[10:22:04] <Laz> и правильно делает
[10:22:06] <Magiq > меня напрягает кидать репы из папки в вендор после каждого go get
[10:22:09] <Laz> бля
[10:22:15] <Laz> мы походу вообще о разных вещах говорим
[10:22:44] <Magiq > 1. Мне нужно добавить в репу _все_ мои пакеты
[10:22:49] <postman> https://github.com/tools/godep
[10:22:53] <postman> заеб сука.
[10:23:05] <Laz> при том, что у тебя сейчас вообще нет пакетов
[10:23:21] <Magiq > почему нет?
[10:23:23] <Magiq > есть
[10:23:28] <Laz> потому что весь код лежит в src, не?
[10:23:33] <Magiq > не весь
[10:23:35] <Magiq > не пизди
[10:23:37] <Laz> кстати
[10:23:43] <Laz> вот нужна какая-то херня типа godep
[10:23:48] <Laz> только общего назначения
[10:24:10] <Laz> типа чтоб подтягивало сырцы с разных источников и раскладывало нужным образом
[10:24:12] <Magiq > у меня без godep и так все работает. Двойной GOPATH делает все что мне нужно
[10:24:14] <Laz> не знаете такого?
[10:24:36] <Laz> а то субмодули и субдеревья чо-то мальца не справляются
[10:24:41] <Laz> точнее, мы с ними не справляемся
[10:25:10] <postman> а чем сам годеп не нравится?
[10:25:28] <Laz> да это не для го
[10:25:43] <Laz> проект на разных язычках написан
[10:25:50] <Laz> и нужно всё в кучу собирать
[10:26:20] <Laz> сейчас всё лежит в гите, но репоз огромный получается
[10:26:27] <Laz> 19к коммитов, 600 мегобайт весу
[10:26:35] <Laz> управлять им как-то адовенько
[10:27:02] <Laz> плюс бранчи всякие, версионирование
[10:27:57] <postman> клонируй не полностью?
[10:30:07] avz вышел(а) из комнаты
[10:30:07] <Magiq > а как в листинге структуры файлов https://golang.org/cmd/go/#hdr-Vendor_Directories из foo/f.go импортиться пакет quux ?
[10:31:15] ftrvxmtrx вошёл(а) в комнату
[10:31:51] <Magiq > а я понял
[10:33:04] ascrazy@jabber.ru вошёл(а) в комнату
[10:33:13] ascrazy@jabber.ru вышел(а) из комнаты
[10:39:06] mks2 вошёл(а) в комнату
[10:43:57] kpmý вошёл(а) в комнату
[10:44:27] <kpmý> пщ
[10:44:28] <xep> пщ!
[10:47:11] kpmý вышел(а) из комнаты
[10:54:14] plumbum вышел(а) из комнаты
[10:57:07] plumbum вошёл(а) в комнату
[11:03:21] <Magiq > Laz: я закинул сорсы в свои в пакет backend
[11:03:26] <Magiq > вопрос возник
[11:03:37] <Magiq > в main.go package main или backend ?
[11:03:49] <Magiq > если backend то оно не раниться пишет нет main пакета
[11:05:13] <Magiq > Я сделал пакет main а внутри него import "backend/somepackage"
[11:05:14] <Magiq > это норма?
[11:07:19] Kittycat вышел(а) из комнаты
[11:13:10] kms вошёл(а) в комнату
[11:19:16] postman вышел(а) из комнаты
[11:25:01] <Laz> наверное
[11:28:06] Kittycat вошёл(а) в комнату
[11:46:37] <Magiq > go-sqlmock кто то использовал?
[11:49:17] kpmý вошёл(а) в комнату
[12:22:05] <kpmý> Deirz: llvm мне чот не вошёл, плюс падвиндой не компилируется
[12:33:46] Deirz вышел(а) из комнаты
[12:34:18] Magiq вышел(а) из комнаты
[12:34:56] Magiq вошёл(а) в комнату
[12:36:11] Deirz вошёл(а) в комнату
[12:45:45] <Deirz> чойта
[12:54:19] Magiq вышел(а) из комнаты
[13:18:38] Deirz вышел(а) из комнаты
[13:19:04] Deirz вошёл(а) в комнату
[13:34:31] Magiq вошёл(а) в комнату
[13:38:57] Magiq вышел(а) из комнаты
[13:41:28] Deirz вошёл(а) в комнату
[13:43:52] Magiq вошёл(а) в комнату
[13:45:02] Magiq вышел(а) из комнаты
[13:57:38] Kittycat вышел(а) из комнаты
[13:59:50] Magiq вошёл(а) в комнату
[14:00:47] <kpmý> хз, я не осилил, а потом лень стало дальше разбираться
[14:01:48] 5UN5H1N3 вышел(а) из комнаты
[14:22:20] Magiq вышел(а) из комнаты
[14:22:33] Kittycat вошёл(а) в комнату
[14:22:59] Magiq вошёл(а) в комнату
[15:10:46] Magiq вышел(а) из комнаты
[15:12:49] Magiq вошёл(а) в комнату
[16:14:25] <Magiq > это слишком плохо с точки зрения го делать опциональные параметры
[16:14:29] <Magiq > таким способом
[16:14:34] <Magiq > func Concat2(a string, b_optional ...int) string {
  b := 5
  if len(b_optional) > 0 {
    b = b_optional[0]
  }
[16:14:40] <Laz> да
[16:14:54] <Magiq > бля ну у меня в функция 1 строчка кода меняется
[16:14:58] <Laz> сделай структуру
[16:15:01] <Laz> либо две функции
[16:15:13] <Magiq > две функции это копирование
[16:15:43] <Laz> экспортни константу defaultB
[16:15:45] <kpmý> да, структура это выход
[16:15:52] krab вошёл(а) в комнату
[16:16:07] <Laz> схуяле копирование
[16:16:21] <Laz> просто дефолтная версия должна вызывать недефолтную
[16:16:50] <Deirz> вот да
[16:21:34] ftrvxmtrx вышел(а) из комнаты
[16:31:09] mantyr@jabberon.ru вошёл(а) в комнату
[16:59:18] 5UN5H1N3 вошёл(а) в комнату
[17:13:58] <Magiq > как в json.Unmarshal вывести ошибку если значение пустое?
[17:14:36] <Magiq > руками все лопатить?
[17:17:22] Magiq вышел(а) из комнаты
[17:17:27] <Laz> реализуй https://golang.org/pkg/encoding/json/#Unmarshaler
[17:25:35] <kpmý> пщ
[17:25:36] <xep> пщ!
[17:53:09] Magiq вошёл(а) в комнату
[18:01:34] Magiq вышел(а) из комнаты
[18:18:53] plumbum вышел(а) из комнаты
[18:43:04] postman вошёл(а) в комнату
[18:43:21] krab вышел(а) из комнаты: Replaced by new connection
[18:43:23] krab вошёл(а) в комнату
[18:54:59] krab вышел(а) из комнаты: Replaced by new connection
[18:55:00] krab вошёл(а) в комнату
[19:01:30] Laz вышел(а) из комнаты
[19:09:01] postman вышел(а) из комнаты
[19:14:49] avz вошёл(а) в комнату
[19:20:06] kpmý вышел(а) из комнаты
[19:25:18] krab вышел(а) из комнаты: Replaced by new connection
[19:25:20] krab вошёл(а) в комнату
[19:50:53] plumbum вошёл(а) в комнату
[19:59:46] krab вышел(а) из комнаты: Replaced by new connection
[19:59:50] krab вошёл(а) в комнату
[20:11:07] avz вышел(а) из комнаты
[20:13:13] dzendmitry вышел(а) из комнаты
[20:16:46] ermine вышел(а) из комнаты
[20:23:08] kpmy вошёл(а) в комнату
[20:25:12] kpmy вышел(а) из комнаты
[20:31:38] 5UN5H1N3 вышел(а) из комнаты
[20:32:30] Deirz вышел(а) из комнаты
[20:38:37] krab вышел(а) из комнаты
[20:51:49] cheshir вышел(а) из комнаты: Replaced by new connection
[20:51:52] cheshir вошёл(а) в комнату
[20:52:00] ascrazy@jabber.ru вошёл(а) в комнату
[21:03:43] Magiq вошёл(а) в комнату
[21:17:15] kpmý вошёл(а) в комнату
[21:20:40] avz вошёл(а) в комнату
[21:27:11] Magiq вышел(а) из комнаты
[21:45:42] postman вошёл(а) в комнату
[21:54:14] Magiq вошёл(а) в комнату
[21:55:46] <Deirz> kpmý: поясни по хардкору за интерпретаторы. Ты говорил, что стековую машину можно быстро склепать
[21:56:08] <Deirz> есть у меня ast - функции, стейтменты, экспрешны
[21:56:29] <Deirz> я так понимаю в стек складывается один стейтмент?
[21:56:58] <Deirz> иначе чёт получается что надо снизу вверх все стейтменты сложить
[21:59:11] Magiq вышел(а) из комнаты
[22:00:39] <kpmý> ну смотри, у тебя должна быть главная функция
[22:01:02] <kpmý> в ней стейтменты (допустим, присваивание) всегда выстроены в последовательность
[22:01:36] <kpmý> по сути тебе надо выполнить последовательно все стейтменты, передавая их в функцию doStmt интерпретатора
[22:02:02] <kpmý> в то же время внутри сложных стейтментов, типа if, есть свои последовательности стейтментов
[22:02:51] <kpmý> то есть внутри doStmt есть обработчик if, который вычислит условное выражение и выполнит нужную последовательность, а выполнение последовательности это вызов doStmt
[22:03:16] <kpmý> то есть стек стейтментов тебе не нужен, по сути, у тебя им будет стек вызовов
[22:05:35] <kpmý> но если хочешь сложнее, можно сделать стек стейтментов вручную, кладёшь сверху if из главной функции, делаешь шаг, этот if кладёт сверху ещё что-то (или не кладёт), опять делаешь шаг, потом снимаешь всё по очереди, когда стек опустеет, кладёшь следующий stmt из главной функции
[22:06:08] <kpmý> итого по два лишних шага, чтобы положить/снять УЖЕ обработанный stmt
[22:06:53] <kpmý> с expression немного иначе, там каждое выражение может само снимать со стека значения
[22:07:22] <kpmý> потому что для вычисления a + b надо чтобы на стеке уже лежало две константы,
[22:08:19] <kpmý> короче надо выполнить infix to postfix преобразование, оно тоже выполняется тупо вызовом функций (ещё в парсере)
[22:08:25] krab вошёл(а) в комнату
[22:13:46] <kpmý> я тут предполагаю, что у тебя есть какие-то объекты, которые можно назвать If, call, assign или там plusOp, minusOp, и тд, то есть всегда на стеке валяется какая-то такая сущность
[22:38:58] ermine вошёл(а) в комнату
[22:49:58] ermine вышел(а) из комнаты
[22:53:11] avz вышел(а) из комнаты
[22:54:04] begemot_sun вышел(а) из комнаты
[22:56:28] azovcvb вышел(а) из комнаты: Disconnected: closed
[23:00:13] krab вышел(а) из комнаты: Replaced by new connection
[23:00:16] krab вошёл(а) в комнату
[23:09:03] mks2 вышел(а) из комнаты
[23:36:22] cheshir вышел(а) из комнаты
[23:44:38] postman вышел(а) из комнаты
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!