Rust.

Apr 10, 2013 22:49

Разработчики не справились с оптимизацией хвостового вызова. Её в Rust не будет.

(на ум просится "как корабль назовёте"...)

Меня смущает "хвостовой вызов снижает производительность программ". Это как это они этого добились-то?

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

Leave a comment

Comments 16

helvegr April 10 2013, 19:12:39 UTC
> Меня смущает "хвостовой вызов снижает производительность программ". Это как это они этого добились-то?

Там есть ссылка на сообщение, в котором объясняется, что имеется в виду:
https://mail.mozilla.org/pipermail/rust-dev/2012-January/001281.html

Reply

thesz April 10 2013, 20:34:13 UTC
Это какой же идиот будет вызывать сишный код с переменным числом аргументов в хвостово-рекурсивном цикле?

Полный идиотизм.

Reply

helvegr April 10 2013, 20:59:20 UTC
Там про varargs идёт речь, а про то, что для поддержки хвостовых вызовов им придётся поменять calling convention на callee-restore. Пример: f(a,b) делает хвостовой вызов g(a,b,c) - поскольку в колл-сайте f мы не знаем, сколько последнему callee было передано аргументов, g должна сама почистить за собой стек.

Reply

thesz April 10 2013, 21:05:47 UTC
Какой стек? Все на регистрах лежит давно. ;)

Reply


gliv April 11 2013, 04:48:42 UTC
Вот если бы они в Rust добавили Хиндли-Милнера, и разрешили каррирование - да, можно было бы смотреть.
А так - мне окамл ближе пока.

Reply


nivanych April 11 2013, 05:03:10 UTC
Эх, а как мне его рекламировали...
Одним из главных аргументов было, что серьёзные люди будут пользовать!
Всё никак не собрался посмотреть подробнее.
Ну вот, первые подробности уже есть ;-)

Reply

ext_807519 April 11 2013, 07:29:35 UTC
По-моему, с самого начала было понятно, что это продукт страдающих синдромом Уолта Брайта (а им страдает большинство "серьезных людей", сочиняющих свои языки). Т.е. "я не знаю основ, не имею эрудиции, но вот сейчас сделаю копию единственного языка, который я знаю, но с перламутровыми (если у автора серьезные амбиции - плутониевыми) пуговицами".

Reply


rumataestor April 11 2013, 08:37:52 UTC
Всё не так плохо, llvm оптимизирует хвостовые вызовы.

Reply

thesz April 11 2013, 09:02:17 UTC
Вы ссылку-то читали?

Reply


Leave a comment

Up