Size: a a a

Compiler Development

2020 January 20

RB

Rustem B. in Compiler Development
Rust, Zig
Примеры языков без СМ
источник

RB

Rustem B. in Compiler Development
И у них все нормально
источник

А

Алексей in Compiler Development
особенно если заморачиваться по поводу безопасности, а не как в сишке и крестах
источник

V

Valerii in Compiler Development
на них пишет полтора человека пока что
источник

RB

Rustem B. in Compiler Development
unsafe {}
источник

AT

Alexander Tchitchigin in Compiler Development
Rustem B.
Время исполнения увеличивается
😂 Вы же состоите в Rust-чате - пропустили флейм когда интерпретатору на Rust не удалось догнать интерпретатор на Haskell, даже после того как в Rust выключили освобождение памяти вообще?
источник

K

Kir in Compiler Development
GC устраняет ошибку "я запросил кусок памяти по адресу 0x00000005 и всё сломалось"
источник

RB

Rustem B. in Compiler Development
Alexander Tchitchigin
😂 Вы же состоите в Rust-чате - пропустили флейм когда интерпретатору на Rust не удалось догнать интерпретатор на Haskell, даже после того как в Rust выключили освобождение памяти вообще?
Я там редко бываю
источник

DS

Doge Shibu in Compiler Development
Alexander Tchitchigin
😂 Вы же состоите в Rust-чате - пропустили флейм когда интерпретатору на Rust не удалось догнать интерпретатор на Haskell, даже после того как в Rust выключили освобождение памяти вообще?
Проблема там не в освобождении памяти, а в том, что аллокации у гц ощутимо дешевле.

Если там взять любой бамп-аллокатор, то можно было бы сравнимые цифры попробовать выжать.
источник

DS

Doge Shibu in Compiler Development
Проблема в том, что на данный момент кастомный аллокатора к стандартным боксам не приделать.
источник

K

Kir in Compiler Development
И иногда (в 90% случаев, как по-моему) подобные гарантии ценнее быстродействия.
источник

M

MaxGraey in Compiler Development
Rustem B.
И у них все нормально
Я бы так не сказал. Когда всплывают рекурсивные типы данных, так сразу и счетчик ссылок всплывает)
источник

AT

Alexander Tchitchigin in Compiler Development
Doge Shibu
Проблема там не в освобождении памяти, а в том, что аллокации у гц ощутимо дешевле.

Если там взять любой бамп-аллокатор, то можно было бы сравнимые цифры попробовать выжать.
Да, конечно. Но во-первых, это опровергает тезис, что GC обязательно увеличивает время выполнения, а во-вторых, руками каждый раз реализовывать кусок GC - error prone and tedious.
источник

M

MaxGraey in Compiler Development
Doge Shibu
Проблема там не в освобождении памяти, а в том, что аллокации у гц ощутимо дешевле.

Если там взять любой бамп-аллокатор, то можно было бы сравнимые цифры попробовать выжать.
Та не аллокации дешевле а освобождение памяти дешевле так как оно отложенное и может выполняться в более подходящий момент
источник

AT

Alexander Tchitchigin in Compiler Development
Doge Shibu
Проблема там не в освобождении памяти, а в том, что аллокации у гц ощутимо дешевле.

Если там взять любой бамп-аллокатор, то можно было бы сравнимые цифры попробовать выжать.
При этом, Haskell интерпретатор всё-таки почти половину времени (по профилю) проводил за очисткой мусора. И тем не менее. 😊
источник

DS

Doge Shibu in Compiler Development
Alexander Tchitchigin
Да, конечно. Но во-первых, это опровергает тезис, что GC обязательно увеличивает время выполнения, а во-вторых, руками каждый раз реализовывать кусок GC - error prone and tedious.
Там была как раз задача, которая плохо ложится на стандартные системные аллокаторы.

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

DS

Doge Shibu in Compiler Development
Он не пытается это спрятать от разработчика, в отличие от языков с гц.

Но тут разные ниши и соответственно разные трейдоффы.
источник

DS

Doge Shibu in Compiler Development
Но да, гц - не всегда медленно по скорости исполнения, тут полностью согласен.
источник

AT

Alexander Tchitchigin in Compiler Development
Doge Shibu
Там была как раз задача, которая плохо ложится на стандартные системные аллокаторы.

Ну раст низкоуровневый язык, понятное дело, что в нём придется задумывать о том, как работать с памятью, это подразумевается самим языком.
"Стандартный системный аллокатор" (в Linux, по крайней мере) рассчитан на максимально широкий круг задач (типов нагрузки). GC тоже ни под какой конкретно тип нагрузки специально не оптимизирован. Гипотезу о быстром умирании и тот, и другой могут использовать и используют. Так что аргумент не принимается. 😊
источник

AT

Alexander Tchitchigin in Compiler Development
Doge Shibu
Но да, гц - не всегда медленно по скорости исполнения, тут полностью согласен.
🤝
источник