On Thu, Oct 10, 2019 at 6:32 PM Sergei M. Abramov abram_AT_botik.ru <
refal@botik.ru> wrote:

>
> Вот, хочу сказать, что меня удивило:
>
>      ns' = filter (\ k ->  (gcd pp k) == 1) ns
>
> работает немного медленнее, чем
>
>      ns' = filter ((== 1).(gcd pp)) ns
>
> Вот нифига ж себе?
>

В голову приходит такая гипотеза: ко второму варианту успешно применяются
какая-нибудь дефорестация, а на первом она ломается, так как второй
удовлетворяет некоторому шаблону (в аргументе fold'а композиция закарренных
функций), а первый воспринимается как общий вид и оставляется как есть.

Конечно, нам суперкомпиляторщикам это странно: оба выглядят так, что
неглубокая суперкомпиляция по простой стратегии должна их брать.

Кстати, меня все-таки удивляет, что Simon P-J со
своим аспирантом Maximilian Bolingbroke не смогли подобрать вариант
суперкомпиляции, который работал бы в GHC за разумное время, как хотел
Simon (он об этом говорил). Подозрение такое: если остановится на
достаточно простых свистке и обобщении, то не набирался диссер
Bolingbroke'у. А когда увлеклись "научностью" для диссера (он весьма
солидный) <https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-835.pdf>, то не
получилось устойчиво (по времени) работающего свистка.

А может они потом сделали в GHS более богатую версию дефростации, которая
впитала какие-то идеи суперкомпиляции. Не знаю. Не натыкался на
соответствующие работы.

Всего наилучшего,
Андрей
  • Спи... Sergei M. Abramov
    • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
      • ... Arkady Klimov arkady . klimov_AT_gmail . com
        • ... Sergei M. Abramov
          • ... Andrei Klimov andrei_AT_klimov . net
          • ... Sergei M. Abramov
          • ... Arkady Klimov arkady . klimov_AT_gmail . com
            • ... Sergei M. Abramov
              • ... Anton Orlov orlovan_AT_gmail . com
                • ... Sergei M. Abramov
        • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
          • ... Sergei M. Abramov
            • ... Boyko Bantchev boykobb_AT_gmail . com
              • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
                • ... Boyko Bantchev boykobb_AT_gmail . com

Ответить