
Vladimir
28.10.2017
18:53:35
@ellersseer приведи примеры адекватных аргументов за какой-нибудь другой язык

Phil
28.10.2017
18:53:57

Vladimir
28.10.2017
18:54:04

Phil
28.10.2017
18:54:05
До полуночи

Google

Phil
28.10.2017
18:54:08
Оба

Vladimir
28.10.2017
19:38:42
Например си хорош, потому что у него стабильное ABI
И близок к железу
Ещё могу сказать, что например шаблоны в си++ объективное говно
Или макросы в си/с++

Vladimir
28.10.2017
19:49:47
@c_vld ну вот Го это лично для меня компромис между плюсами и питонами. Писать на нем почти также просто как на питоне, но все же как язык он побыстрее будет
то есть компромис между удобством и скоростью разработки

Vladimir
28.10.2017
19:50:25
То есть от плюсов там чисто коспилируемость
Го кстати однопроходной как Паскаль?

Roman
28.10.2017
19:51:30

Vladimir
28.10.2017
19:52:18
У вас генераторы есть?
Async/await

Google

Vladimir
28.10.2017
19:52:37
Или только каналы?

Roman
28.10.2017
19:53:22

Vladimir
28.10.2017
19:53:41
@c_vld у нас ничего нет, тока каналы и горутины

Vladimir
28.10.2017
19:54:11
Итераторы же у вас есть?

Vladimir
28.10.2017
19:55:32
@c_vld я не очень понимаю отличие async/await от горутин

Vladimir
28.10.2017
19:57:14
корутины это просто запустил и забыл
генераторы, это:
1) контроль над тем в каком потоке выполняется корутина
2) умеет прерываться и возвращать значения

Vladimir
28.10.2017
19:57:31
ты про генераторы, а я про async/await

Vladimir
28.10.2017
19:58:27
ну я хз как у вас в гонке горутины работают
поидее часть асинк точно выполняют
а как там с работой с IO и прочим

Vladimir
28.10.2017
19:58:58
@c_vld ну ты можешь погуглить
есть много статей о внутренностях Гошечки

Vladimir
28.10.2017
20:00:34
та мне скорее не внутренности а сахар интересен

nezorflame
28.10.2017
20:00:40
/report

Vladimir
28.10.2017
20:00:46
@c_vld оно связано

Vladimir
28.10.2017
20:00:50
как я понимаю у вас авейт не нужен т.к. есть каналы
что типа более общая абстракция

Vladimir
28.10.2017
20:01:05
@c_vld в принципе то же самое реализуется на каналах с горутинами, да

Vladimir
28.10.2017
20:01:23
а вот генераторов у вас нет?

Google

Vladimir
28.10.2017
20:01:35

Vladimir
28.10.2017
20:01:50
там можно синхронщину писать?

nezorflame
28.10.2017
20:02:10
принцип простой - если это можно реализовать с помощью того, что уже есть, это не нужно

Nick
28.10.2017
20:02:13

Vladimir
28.10.2017
20:02:28

Vladimir
28.10.2017
20:02:30
там можно синхронщину писать?
ты в одной горутине можешь итерироваться по каналу, в другом писать в него. Притом на обычном канале у тебя один объект записался, второй не запишется пока не будет куда

Artem
28.10.2017
20:02:41

Vladimir
28.10.2017
20:03:22

Vladimir
28.10.2017
20:03:28

Vladimir
28.10.2017
20:03:51
а юзаются ли сисколы или эти все каналы это тупо юзерспейс?
можно ли устроить IPC на их базе?

Artem
28.10.2017
20:04:02

Vladimir
28.10.2017
20:04:08

Vladimir
28.10.2017
20:04:16

Vladimir
28.10.2017
20:04:28
и каналы это сахар вокруг массива с мьютексом

Vladimir
28.10.2017
20:04:38

Artem
28.10.2017
20:04:43
ты не можешь вложить что-либо в канал пока не будет получатель

Nick
28.10.2017
20:04:45

Artem
28.10.2017
20:04:54
(если канал не буферизованный)

Vladimir
28.10.2017
20:04:56

Google

Vladimir
28.10.2017
20:05:59
raceacquire
че это?

Vladimir
28.10.2017
20:06:37
@c_vld гошный код можно собрать с race detector'ом

Artem
28.10.2017
20:06:48

Vladimir
28.10.2017
20:06:49
вот это кусок всякой всячины чтобы race detector работал в этом месте

Vladimir
28.10.2017
20:07:02

Vladimir
28.10.2017
20:07:18

Vladimir
28.10.2017
20:07:27
если я наверну shmem могу ли я юзать это как ipc?

Vladimir
28.10.2017
20:07:30
если unlock дергается на чтото с типом mutex :)

Vladimir
28.10.2017
20:07:39

Vladimir
28.10.2017
20:07:58

Vladimir
28.10.2017
20:08:17
понял
но там же смотри, подключается модуль атомик
может у вас атомиковые спинлоки называются мьютексом

Artem
28.10.2017
20:08:35

Vladimir
28.10.2017
20:08:45

Vladimir
28.10.2017
20:09:00

Artem
28.10.2017
20:09:11
шаринг памяти между приложениями через жёсткий диск? )

Vladimir
28.10.2017
20:09:16
там лок берется не всегда, делается все довольно весело

Google

Vladimir
28.10.2017
20:09:34
в общем и целом вот тебе код, почитай его сам)

Vladimir
28.10.2017
20:09:41

Vladimir
28.10.2017
20:11:09

Artem
28.10.2017
20:11:35
в расте это точно unsafe
+ очень интересно что будет если ммапу перезапишет какое-нибудь левое приложение или даже сама система
по факту кусок памяти вывешивается наружу с write-доступом

Vladimir
28.10.2017
20:14:03
ты вообще знаешь о виртуальной памяти?
и как работает разделяемая память

Nick
28.10.2017
20:15:19

Artem
28.10.2017
20:15:24
просвети, о великий

Vladimir
28.10.2017
20:16:53
в данном случаи немного магии рантайма, посмотри вокруг
короче я погуглил у вас есть Mutex который пишется как Mutex. а то не понятно что. ПС: mutex - это Mutual mutual exclusion под что подходит и спинлок, от того и спросил, еслиб это был настоящий мьютекс то каналы бы у вас были очень медленными, но это ж вроде не так

Vladimir
28.10.2017
20:17:48

Vladimir
28.10.2017
20:18:36
есть участок физической памяти который выделяется для взаимодействия.
С помощью API ОС его можно замапить на какой-то участок виртуальной памяти процесса, так же может сделать другой процесс. В результате у обоих процессов есть участок общей памяти, кто туда еще может написать что-то? Точно также можно ожидать что твой поток начнет писать тебе в мьютекс что-то не то