
Maxim
28.09.2018
12:13:10
хочу, чтобы кнопку нажал, и бигдата с машин лёрнинг, а не вот это вот всё?)

Dark
28.09.2018
12:13:56

Dmitry
28.09.2018
12:24:12

Pavel
28.09.2018
12:24:30

Google

Pavel
28.09.2018
12:24:45
Обычно то что интересно и то за что платят деньги, это противоположные вещи
Так что тут выбирай, либо работать на интересной работе за копейки, либо на неинтересной за норм деньги. Есть еще самый сложный третий вариант - выучить все что только можно, стать очень крутым чуваком и тогда можно будет работать интересно и за хорошие деньги.

Maxim
28.09.2018
12:27:13
мне кажется тут выбор проще: либо работай программистом, либо не работай программистом)

qwerty
28.09.2018
13:48:49
А не было ли транслятора из C в BetterC?
Понятно, что код вряд ли будем читаемым, но его можно было бы собирать с D и dub.
Кстати nogc файберов тоже никто не видел?
не принципиально, просто интересно

Ievgenii
28.09.2018
14:08:15
Файбер - это класс, на сколько я помню...

qwerty
28.09.2018
14:25:26
понятно, что я подразумеваю альтернативную реализацию, а не костылизацию текущей. Может кто-то сделал на структурах и умных указателях)

Pavel
28.09.2018
15:01:29
эти файберы там чуть ли не на 3000 строк реализованы. Такое не перепишешь за недельку.

qwerty
28.09.2018
15:02:26
я видел software context switching

Pavel
28.09.2018
15:03:55

Google

qwerty
28.09.2018
15:04:12
dpp?

Pavel
28.09.2018
15:04:50
ну может и оно, да

Dmitry
28.09.2018
16:13:48
Ольшанский говорил что промисы это анти-паттерн. Типа только файберы

qwerty
28.09.2018
16:16:18
Это что?
Штука такая, чтоб переключает между функциями. Срабатывает, когда yield используется

Dmitry
28.09.2018
16:33:21

qwerty
28.09.2018
16:34:40
"перещелкивает" - software context switching
блин так просто не объяснить
есть user stack, там есть указатели на фреймы, и файберы - "удобный" механизм переключения между ними

Igor
28.09.2018
16:46:49
вот есть интересная концепция https://habr.com/post/424311/
пытаюсь разобраться

Dark
28.09.2018
16:59:13
Контекст, то бишь
Софтварно
Поэтому и выходит
Software context switching

Oleg
28.09.2018
17:02:38
Софтварно
так сказанно, как будто ассемблер это хардвэйр

Pavel
28.09.2018
17:03:16
Видимо имеется в виду что так то переключение стеков это задача операционной системы а не software

Ievgenii
28.09.2018
17:04:03

Google

Ievgenii
28.09.2018
17:04:14
Ничего сверхъестественного там не увидел
Практически все это можно сделать на промисах

Igor
28.09.2018
17:06:25
там похоже есть контекст который работает как стек, и позволяет делать что-то типа вложенных вызовов, циклов и т.д. Голые промисы не требуют ничего подобного

qwerty
28.09.2018
17:14:30

Pavel
28.09.2018
17:14:58
Или как хардварно?

Igor
28.09.2018
17:18:12
в той статье чувак топит за то что проблема с файберами в том что их нужно реализовывать под каждую платформу (и это правда) и что они небезопасны (вот это незнаю).

qwerty
28.09.2018
17:32:10
Или как хардварно?
я если честно не понимаю вопроса. Потоки предоставляются процессором, эксплуатируются через драйвер той или иной либой. Если я правильно понимаю api для работы с железом драйверу дает ОС.
@chebotarevp наверное проще открыть статью на той же вики, а то я вас запутать могу
Кто-нибудь видел эту build систему http://mesonbuild.com ?

Dark
28.09.2018
18:29:23

qwerty
28.09.2018
18:30:32
не, у каждого процесса свой контекст. Обмен между процессами делается через IPC

Dark
28.09.2018
18:31:55

qwerty
28.09.2018
18:32:31
это уже ОС сама решает)

Dark
28.09.2018
18:33:53
???
Я не дочитал
Но "потоки предоставляются процессором"
Это как?
В линуксе, например, поток - это процесс, имеющий общую память с другим процессом

Google

Igor
28.09.2018
18:35:09

Dark
28.09.2018
18:35:51

Igor
28.09.2018
18:38:52
ну не совсем любая другая. писать на колбэках - ад.

Dark
28.09.2018
18:41:48

qwerty
28.09.2018
18:43:17
да это разные вещи абсолютно

Dark
28.09.2018
18:44:38

Igor
28.09.2018
18:45:22

qwerty
28.09.2018
18:45:33
у потока?

Igor
28.09.2018
18:45:41
да

qwerty
28.09.2018
18:45:49
что?!

Dark
28.09.2018
18:45:52
Хм, надо перечитать Танненбаума

Igor
28.09.2018
18:45:52
)))

Dark
28.09.2018
18:46:04
Да и книжку про ядро

Igor
28.09.2018
18:46:56
pid есть, но не факт что этот “процесс” поддерживает всё то что должен поддерживать полноценный процесс
то есть это что-то типа tid
In the kernel, each thread has it's own ID, called a PID (although it would possibly make more sense to call this a TID, or thread ID) and they also have a TGID (thread group ID) which is the PID of the thread that started the whole process.

qwerty
28.09.2018
18:56:07
окей!

Igor
28.09.2018
18:56:19
но со стороны юзера они видны под одним pid

Google

Igor
28.09.2018
18:56:27
https://stackoverflow.com/questions/9305992/if-threads-share-the-same-pid-how-can-they-be-identified
а как промисы устроены? они запускаются внутри нового треда или пула?

Ievgenii
28.09.2018
19:12:45
у потока?
Запусти htop и поставь отображать треды в настройках.
Ты даже можешь грохнуть отдельный тред, без пида - это не реально
Что касательно Файберов, они тоже будут запускаться в том же потоке, в котором и создаются, если специально не запустить в другом потоке

Igor
28.09.2018
19:15:52

Ievgenii
28.09.2018
19:16:44

Igor
28.09.2018
19:16:50
понятно

Ievgenii
28.09.2018
19:17:20
Ну и есть дополнительный функционал по откладыванию выполнения дальнейших промисов

Igor
28.09.2018
19:18:04
на промисах можно удобно реализовать цикл? типа выполнять некие колбэки пока не выполнится условие?

Ievgenii
28.09.2018
19:19:12
Если предыдущий промис возвращает какие-то данные, эти данные будут переданы на вход следующему промису (удачному колбеку), а если он возвращает другой промис, это значит, что пока вернутый промис не зарезолвится, следующий промис не начнет выполняться. Так можно выкладывать эти промисы сколько угодно.

Igor
28.09.2018
19:19:52
что неудобно я догадался )

Ievgenii
28.09.2018
19:20:13

Igor
28.09.2018
19:20:26
ну вот получается для того что-бы писать “удобно” нужны файберы или треды
это я всё еще про статью на хабре - там чудак описывает что он сделал что-то типа файберов но используя не настоящий стек, который выдаёт библиотека, а просто используя структуры данных. профит в том что всё у него под контролем, нет зависимости от реализованности файберов на конкретной архитектуре и перформанс не страдает

Ievgenii
28.09.2018
19:23:13
Просто с бОльшим функционалом