@haskellru

Страница 464 из 1551
? animufag ?
13.10.2017
18:35:37
зачем язык на расте? (ну хотя это не вопрос, понятно что у автора видимо не было выбора) в чём embeddable? апи на расте? https://github.com/gluon-lang/gluon/blob/master/vm/src/gc.rs вот это разве что оправдывает раст. конечно полно ансейфов, но в целом наверное не хуже чем на плюсах

A64m
13.10.2017
18:44:46
очевидно затем, что проще скриптовать приложение скриптом, имплементация которого написана на том же языке, что и скриптуемое приложение

Alexander
13.10.2017
18:45:10
-не очевидно

Google
Mikhail
13.10.2017
18:45:36
Поддерживаю, не совсем очевидно.

? animufag ?
13.10.2017
18:45:59
дада апи может быть не только для раста

проще только делать такой скриптовый язык

illiatshurotshka❄️
13.10.2017
18:46:13
ок

давай зададим вопрос зачем не на расте?

A64m
13.10.2017
18:46:29
делать как раз не проще

Alexander
13.10.2017
18:46:47
чятик про раст через 2 кабинета налево

A64m
13.10.2017
18:46:48
проще на каком-нибудь высокоуровневом языке скрипты имплементировать

там же наверное забанят, если что-то не то про раст сказать?

? animufag ?
13.10.2017
18:48:57
давай зададим вопрос зачем не на расте?
чистая задача, без сильного требования к перфомансу, без жёстких требований по памяти если бы я писал, то наверное хаскель компилятор в ллвм и виртуальная машина например на расте

A64m
13.10.2017
18:49:01
Зачем рботать с памятью, чтоб парсер тайпчекер и т.д. писать?

Google
A64m
13.10.2017
18:49:49
а интересный рантайм для такого языка все равно не написать, ему же нельзя будет объекты в куче двигать, чтоб быстрый интероп был.

illiatshurotshka❄️
13.10.2017
18:52:05
вот даже gc непонятно как имплементировать

A64m
13.10.2017
18:53:31
@vlastachu ну вот кто-нибудь захочет свой сиди эджектор на расте скриптовать этим скриптом на хаскеле, и ему придется с хаскельным тулингом трахаться

@anarchostatist ну так я же отдельно обговорил, что рантайм у скрипта будет просто его все равно на чем писать

и непонятно, какие доводы против того чтоб писать все кроме рантайма на высокоуровневом языке?

доводы против того чтоб писать все на низкоуровневом вполне понятны зато

illiatshurotshka❄️
13.10.2017
18:56:22
что ты подразумеваешь под "рантайм у скрипта"?

Runtime system?

A64m
13.10.2017
18:56:55
но в обсуждаемом случае пусть имплементатор встраиваемого скрипта помучается - пользователь встраивателю в свое приложение зато легче придется

@anarchostatist да

illiatshurotshka❄️
13.10.2017
18:57:29
а что еще можно писать кроме рантайма тогда?

A64m
13.10.2017
18:58:15
да я даже не говорю чтоб в него лезть, хотя придется чтоб всякие реплы в приложение встраивать, но даже для того чтоб его билдить хотя бы

@anarchostatist все остальное. Тайпчекер, компилятор паттерн-матчинга и т.д.

illiatshurotshka❄️
13.10.2017
19:00:21
это часть runtime system

в скриптовых языках.

A64m
13.10.2017
19:01:33
на низкоуровневом языке надо будет писать ГЦ, даже шедулеры всякие и байткод-интерпретатор уже не обязательно.

т.е. можно сказать ГЦ

Google
illiatshurotshka❄️
13.10.2017
19:02:28
ну ок, допустим какое-то фиктивное разделение рантайма на несколько языков, расскажи тогда доводы против написания всего кода на низкоуровневом языке

A64m
13.10.2017
19:02:29
ГЦ можно будет делать только простой, не перемещающий потому что иначе интероп будет тормозной

потому что дл того чтоб написать язык на чем низкоуровневом надо зиллион человекочасов

illiatshurotshka❄️
13.10.2017
19:03:20
источник?

A64m
13.10.2017
19:03:28
поэтому эмели пишут в основном на эмелях, хаскели на хаскелях и т.д.

illiatshurotshka❄️
13.10.2017
19:03:45
просто ощущается отсутствие каких-либо знаний о расте

т.к. это язык который совмещает низкоуровневость с эргономиками фп языков

A64m
13.10.2017
19:04:49
для того чтоб оценить уровень раста достаточно того, что это язык с тощим рантаймом, без обязательного ГЦ, это всегда означает, что все делаешь, ничего нет

нет, язык с тощим рантаймом не может никакие "эргономики ФП" иметь

illiatshurotshka❄️
13.10.2017
19:05:21
ибо имеется очень мощный компилятор

вместо гц там линейные типы, которые среди фпрограммистов многим нравятся

A64m
13.10.2017
19:06:57
нет ГЦ -> нет нормального полиморфизма на универсальном представлении, да даже обычных АлгТД нету

о каких эргономиках тут говорить тогда?

illiatshurotshka❄️
13.10.2017
19:07:18
я же говорю что у тебя нет никаких знаний о расте

A64m
13.10.2017
19:07:45
То. Что есть контрпримеры какие-то?

illiatshurotshka❄️
13.10.2017
19:07:53
конечно

A64m
13.10.2017
19:08:04
Какие?

illiatshurotshka❄️
13.10.2017
19:08:04
полиморфизм использует систему семейств типов

Google
illiatshurotshka❄️
13.10.2017
19:08:20
алгтд там есть самые настоящие

A64m
13.10.2017
19:08:34
где там?

illiatshurotshka❄️
13.10.2017
19:08:52
ну например там в std есть Maybe

A64m
13.10.2017
19:09:02
что значит "полиморфизм использует систему семейств типов"

illiatshurotshka❄️
13.10.2017
19:09:11
Vasiliy
13.10.2017
19:09:22
третий раз за день в коде на c++ пишу pure вместо return. пятница...

извините, что врываюсь в ваш разговор со своим оффтопом

A64m
13.10.2017
19:09:48
нет, не как в хаскеле. В хаскеле раздельная компиляция для полиморфного кода, полиморфная рекурсия

illiatshurotshka❄️
13.10.2017
19:09:59
вот может быть интересно https://doc.rust-lang.org/reference/influences.html

A64m
13.10.2017
19:11:39
так мейби-то не рекурсивный. Уже List a = Nil | Cons a (List a) ведь не сделать, верно? Надо будет Cons a (ref (List a)) писать

@anarchostatist так и речь про имплементацию. Как это все без универсального представления делать?

A64m
13.10.2017
19:13:33
ну вот все правильно я угадал

illiatshurotshka❄️
13.10.2017
19:13:44
и?

A64m
13.10.2017
19:13:58
рекурсии нету - какие это алгТД?

illiatshurotshka❄️
13.10.2017
19:14:06
A64m
13.10.2017
19:14:28
нет рекурсия рефом "размыкается"

который в данном случае Box называется

Google
A64m
13.10.2017
19:15:00
правильно?

illiatshurotshka❄️
13.10.2017
19:15:23
box это поинтер для аллокации на heap

A64m
13.10.2017
19:15:30
ну

illiatshurotshka❄️
13.10.2017
19:15:36
да

A64m
13.10.2017
19:15:37
я про это и говорю

нормальной семантики для значений как в ФЯ нету, а это чуть ли не основное удобство

illiatshurotshka❄️
13.10.2017
19:16:43
The problem with recursive enums is that they don't have a well-defined size. Something like Branch(Branch(Branch(......))) can go on forever, and the whole thing needs to be stored in statically allocated memory -- impossible for something which is possibly infinitely-sized.

A64m
13.10.2017
19:16:50
с хвостовой рекурсии тоже проблемы без гц будут

Так понятно, я с самого начала и говорю "универсальное представление"

при универсальном представлении размер всегда определен - все размером с указатель

illiatshurotshka❄️
13.10.2017
19:18:10
ну, а в низкоуровневом языке требуются компромиссы

или будет использование памяти как у хаскеля

A64m
13.10.2017
19:18:21
да я все понимаю

illiatshurotshka❄️
13.10.2017
19:18:21
это нежелательно

Vasiliy
13.10.2017
19:18:35
с хвостовой рекурсии тоже проблемы без гц будут
gcc успешно компилирует сишный код с хвостовой рекурсией

A64m
13.10.2017
19:18:38
но потому и не получается эргономики как в нормальном ФЯ

Vasiliy только узкий класс

Vasiliy
13.10.2017
19:18:52
или гц должен быть не в языке, а в компиляторе?

illiatshurotshka❄️
13.10.2017
19:18:55
? animufag ?
13.10.2017
19:18:56
зачем так долго топить то за раст? просто ты не потратишь лишних усилий на работу с памятью если задача того не требует

illiatshurotshka❄️
13.10.2017
19:18:59
как мне кажется

Страница 464 из 1551