@dlangru

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

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
Кстати nogc файберов тоже никто не видел?
Не видел, а сделать самому сложно, там ассемблерный код и прочая жуть

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

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

Pavel
28.09.2018
15:03:55
А не было ли транслятора из C в BetterC?
Было кажется что-то касающееся cpp хедеров. Автоматическая трансляция

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
Штука такая, чтоб переключает между функциями. Срабатывает, когда yield используется
Можно более развернуто. Вроде бы yield как раз файберы перещелкивает

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
вот есть интересная концепция https://habr.com/post/424311/
Ну... Мне кажется это простой Промис в2

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
Не есть ещё hardware context switching. Это между потоками когда
Ну то есть на уровне операционной системы

Или как хардварно?

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:38:52
ну не совсем любая другая. писать на колбэках - ад.

Dark
28.09.2018
18:41:48
ну не совсем любая другая. писать на колбэках - ад.
Все определяется целесообразностью, но соглашусь

qwerty
28.09.2018
18:43:17
В линуксе, например, поток - это процесс, имеющий общую память с другим процессом
что-то я не понял. Поток - не процесс. У него не pid нет, ни ppid

да это разные вещи абсолютно

Dark
28.09.2018
18:44:38
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
что неудобно я догадался )

Igor
28.09.2018
19:20:26
ну вот получается для того что-бы писать “удобно” нужны файберы или треды

это я всё еще про статью на хабре - там чудак описывает что он сделал что-то типа файберов но используя не настоящий стек, который выдаёт библиотека, а просто используя структуры данных. профит в том что всё у него под контролем, нет зависимости от реализованности файберов на конкретной архитектуре и перформанс не страдает

Страница 699 из 719