169 похожих чатов

А кто должен делать-то? рантайм?

12 ответов

21 просмотр

Думаю компилер

Pavel S
Думаю компилер

И много ты таких языков знаешь?

Pavel S
С#! Array.Empty()

Это литерал

Ayrat-Hudaygulov Автор вопроса
Pavel S
Думаю компилер

но для этого компилятору надо провести сложнейший ескейп анализ - надо вывести для каждого рекорда - что он гарантированно иммутабельный (не CLIMutable) - если рекорд аллоцируется в скоупе A.B.C, надо вывести что он не зависит от скоупа C и его можно вывести на скоуп A.B (чтобы переиспользовать!), а там он может быть зашадовлен - т.е. надо заманглить имя рекорды чтобы он не клешился с возможным другим биндингом (возможно другого типа!) - надо рекурсивно повторить ескейп анализ для скоупа A и пр и когда мы найдём максимально возможный скоуп где рекорд не зависит от внешних переменных, то там и объявлять Пример let foo x = let bar y = { A = x } здесь рекорд { A = ... } не зависит от скоупа функции bar (можно вывести по свободным переменным) и значит можно пробить скоуп этой функции и вынести его повыше let foo x = let __mangled__name__ = { A = x } let bar y = __mangled__name__ Здесь рекорд { A = ... } уже зависит от переменных скоупа и вынести дальше его не можем - оставляем

Ayrat-Hudaygulov Автор вопроса
Ayrat Hudaygulov
но для этого компилятору надо провести сложнейший ...

У тебя в примере в bar рекорд зависит от х, это не подходяший пример

Ayrat-Hudaygulov Автор вопроса
Pavel S
У тебя в примере в bar рекорд зависит от х, это не...

потому что у меня общий случай, ты точно понял мой пример?

Ayrat Hudaygulov
потому что у меня общий случай, ты точно понял мой...

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

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта