The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Стратегия параллельного поддержания веток Python 2 и Python ..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Стратегия параллельного поддержания веток Python 2 и Python ..." +1 +/
Сообщение от netch (ok), 07-Янв-14, 13:36 
>>>>> А добавь там оптимизацию хвостовой рекурсии.  Когда патча ждать?
> Мне кажется, Гвидо вполне понимает проблемы включения такой штуки в CPython.  
> Главный его аргумент: "TRE is incompatible with nice stack traces".
> http://neopythonic.blogspot.ru/2009/04/tail-recursion-elimin...

И чем же он мешает? Просто в отладочном режиме в метаданных фрейма надо хранить ещё два параметра -
* имя функции, которая вызывалась исходно (или, альтернативно, функцию, на которую перешли; главное, чтобы в итоге их было две)
* количество TRE, применённых в данном фрейме.

BTW после работы с Erlang, в котором на это чихали с колокольни и всегда видна только последняя функция в цепочке TRE, я думаю, что это не так и страшно. Очень редко получаются ситуации, когда действительно нельзя найти анализом, что же это было.

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

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Стратегия параллельного поддержания веток Python 2 и Python ..., opennews, 31-Дек-13, 10:56  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру