Size: a a a

Programming Offtop

2020 April 21

AK

Anton Korotkikh in Programming Offtop
Vladimir Petrakovich
Посмотри на котлин
там очень комплексные работы и запил всего что можно, в том числе и грин тредов. и сдаётся мне там в освное лежат именно что-то на тему грин тредов, а не просто россыпь интерфейсов для экзекутров
источник

AK

Anton Korotkikh in Programming Offtop
Vladimir Petrakovich
Вот смотри: в гошке можно дёргать сишные либы?
можно, но с ограничениями
источник

VP

Vladimir Petrakovich in Programming Offtop
Anton Korotkikh
можно, но с ограничениями
Значит, любая сишная либа может тебе заблокировать нахер всё, и хвалёные грин-треды с умным планировщиком не помогут
источник

VP

Vladimir Petrakovich in Programming Offtop
Anton Korotkikh
там очень комплексные работы и запил всего что можно, в том числе и грин тредов. и сдаётся мне там в освное лежат именно что-то на тему грин тредов, а не просто россыпь интерфейсов для экзекутров
Там в основе рантайм, который не умеет в грин-треды, только экзекуторы и местами неблокирующий IO
источник

VP

Vladimir Petrakovich in Programming Offtop
Кстати про "умный шедулер"
> условно говроя в грин треде я пишу что-то типа
x = conn.receive() и умный шедулер сам поймёт, что тут у нас ио, пока уйдёт отсюда поделает, что-то другое.
Шедулер ничего не поймёт, всё зависит от реализации этого conn.receive - может она вернуть "промис" или заблокирует тред и всё. И даже в гошке под капотом фактически те же коллбеки вида "IO операция закончилась".
источник

AK

Anton Korotkikh in Programming Offtop
Vladimir Petrakovich
Значит, любая сишная либа может тебе заблокировать нахер всё, и хвалёные грин-треды с умным планировщиком не помогут
ии? к чему это? грин треды - это свойства рантайма, дёргая неведому сишную либу, ты выходишь за его пределы, это логично, что тебя могут заблочить, это раз.
два не факт что тебе заблокирует, гошный шедулер очень умён, и возможно как-то выкрутится, получается у нас рантайм затянет к себе сишный код, там заблочится некий pthread, хм... чому бы как-то не остледить это не отправить текущую корутину с ег овызомо отдыхать. надо бы првоерить
источник

VP

Vladimir Petrakovich in Programming Offtop
Anton Korotkikh
ии? к чему это? грин треды - это свойства рантайма, дёргая неведому сишную либу, ты выходишь за его пределы, это логично, что тебя могут заблочить, это раз.
два не факт что тебе заблокирует, гошный шедулер очень умён, и возможно как-то выкрутится, получается у нас рантайм затянет к себе сишный код, там заблочится некий pthread, хм... чому бы как-то не остледить это не отправить текущую корутину с ег овызомо отдыхать. надо бы првоерить
К тому, что проблемы те же, что и если на котлине дёргать блокирующую JVM-экосистему. Ну вот одно и то же.
источник

VP

Vladimir Petrakovich in Programming Offtop
Anton Korotkikh
ии? к чему это? грин треды - это свойства рантайма, дёргая неведому сишную либу, ты выходишь за его пределы, это логично, что тебя могут заблочить, это раз.
два не факт что тебе заблокирует, гошный шедулер очень умён, и возможно как-то выкрутится, получается у нас рантайм затянет к себе сишный код, там заблочится некий pthread, хм... чому бы как-то не остледить это не отправить текущую корутину с ег овызомо отдыхать. надо бы првоерить
Куда он выкрутится, если поток уже заблокировался? А если он каждый вызов внешнего кода будет гонять на отдельном пуле потоков, будут большие проблемы с производительностью.
источник

(

( in Programming Offtop
Приходи к нам в поффтоп, у нас есть:
- Срачи про конкарренси
- Срачи про HKT
- Срачи про ФП
- Срачи про ООП
- Охуенные истории Игоря про декларативные юаи
источник

AK

Anton Korotkikh in Programming Offtop
Vladimir Petrakovich
К тому, что проблемы те же, что и если на котлине дёргать блокирующую JVM-экосистему. Ну вот одно и то же.
обощённо те же. детально вообще нет. часто из го в си лазиют? - очень редко. часто из жвм старые блокирующие либы пользуют - постоянно.
это то же самое, что сказать, что новый мерин и запорожец - это одно и тоже. обощённо - да, автомобиль и там и там по 4 колеса. с точки зрения использования - мягко говоря нет
источник

VP

Vladimir Petrakovich in Programming Offtop
Anton Korotkikh
обощённо те же. детально вообще нет. часто из го в си лазиют? - очень редко. часто из жвм старые блокирующие либы пользуют - постоянно.
это то же самое, что сказать, что новый мерин и запорожец - это одно и тоже. обощённо - да, автомобиль и там и там по 4 колеса. с точки зрения использования - мягко говоря нет
Состояние экосистемы - это отдельный вопрос. Оно не определяет, есть грин-треды или нет.
Я пока вижу только одно единственное отличие "настоящих" грин-тредов, реализованных в рантайме, от пристроенных сбоку
https://t.me/pofftop/183714
И на практике это ограничение не очень-то мешает, если сделано нормально.
источник

I

Igor in Programming Offtop
(
Приходи к нам в поффтоп, у нас есть:
- Срачи про конкарренси
- Срачи про HKT
- Срачи про ФП
- Срачи про ООП
- Охуенные истории Игоря про декларативные юаи
Кстати про деклартивный UI...
источник

I

Igor in Programming Offtop
Igor
Я пока развиваю этот подход.

Пишу сейчас реакт на ocaml
Реконсайл будет в нативе, а браузер будут получать команды на обновления DOM по websocket

===

Единственный минус - я пока не понял, как скомпилять ocaml для ведра 🤔
https://i.gyazo.com/b7a64690fa911a1139b25de1eef2d019.png

А между тем первый прототип "react в ocaml" заработал.
Вот сколько кода пришлось написать с js части.

Думаю всем понятно что тут происходит.
источник

AK

Anton Korotkikh in Programming Offtop
Igor
https://i.gyazo.com/b7a64690fa911a1139b25de1eef2d019.png

А между тем первый прототип "react в ocaml" заработал.
Вот сколько кода пришлось написать с js части.

Думаю всем понятно что тут происходит.
а ошибки где ловиш? разрыв соединения, конекшн таймаут итд. а если сокет сразу не создался?
источник

I

Igor in Programming Offtop
Ты бы лучше спросил "а как клики и др евенты пробрасываешь" 😏 (хотя ответ тот же - никак и work in progress)
источник

AK

Anton Korotkikh in Programming Offtop
Igor
Ты бы лучше спросил "а как клики и др евенты пробрасываешь" 😏 (хотя ответ тот же - никак и work in progress)
нее, для меня это просто довольно больная тема. многие афтары жсных либ вообще не думают о реконетках или ошибках сети, либо реконеты довольно кривые. приходится самому в сторонке городить.
источник

I

Igor in Programming Offtop
Вот кстати код дифилки https://github.com/y2k/ocaml_research/blob/master/diff.ml

А самое прикольно что там один и тот же dsl используется
- и для того что бы на сервере отрендерить страничку
https://github.com/y2k/ocaml_research/blob/master/main.ml#L49
- и для живых апдейтов по сокету
https://github.com/y2k/ocaml_research/blob/master/material.ml#L11
источник

VP

Vladimir Petrakovich in Programming Offtop
Anton Korotkikh
нее, для меня это просто довольно больная тема. многие афтары жсных либ вообще не думают о реконетках или ошибках сети, либо реконеты довольно кривые. приходится самому в сторонке городить.
s/многие/почти все
s/жсных/любых
источник

k

kallibr44 in Programming Offtop
(
Приходи к нам в поффтоп, у нас есть:
- Срачи про конкарренси
- Срачи про HKT
- Срачи про ФП
- Срачи про ООП
- Охуенные истории Игоря про декларативные юаи
а можно срачи про скорость работы Питона?
источник

AM

Andrew Mikhaylov in Programming Offtop
kallibr44
а можно срачи про скорость работы Питона?
А о чём там сраться?
источник