Добрый вечер, Михаил!
В своём ответе также отвечу на несколько соседних писем.
 
По поводу установки онлайн и офлайн. Для разработки доступ в интернет 
требуется, т.к. сборочные скрипты bootstrap.bat и bootstrap.sh выкачивают 
подмодуль. Впрочем, разрабатывать без интернета не очень логично, т.к. 
исходники лежат в GitHub и новый код всё равно придётся туда коммитить.
Установка может проходить в нескольких вариантах:
https://github.com/bmstu-iu9/refal-5-lambda/releases/tag/3.3.1
На unix-подобных системах Linux и macOS можно использовать модный нынче способ 
установки curl -L … | bash. Но доступны и офлайн-варианты: распаковать архив и 
выполнить в нём ./bootstrap.sh (скрипт из скачанного архива соединения с 
интернетом не требует). Фактически, curl -L … | bash скачивает архив, 
распаковывает и вызывает в нём ./bootstrap.sh. На Windows используется 
классический setup.exe.
Под современными дистрибутивами Linux и в последних версиях macOS всё 
собирается без проблем. На старых дистрибутивах Linux, например, на Fedora 16, 
есть проблемы со сборкой, которые я пока не решил. Самая ранняя система 
Windows, на которой я регулярно собираю исходники — Windows 7. Однако, нет 
причин не собраться и на Windows XP, и возможно даже, Windows 2000, но там я не 
пробовал. На Windows 98 собрать не получится, т.к. батники написаны для 
cmd.exe, а на Win9x — command.com.
Вариант с curl -L … | bash ставит систему в домашний каталог 
(~/.local/share/refal-5-lambda), прописывает PATH в ~/.bashrc или в 
~/.bash_profile. Setup.exe на Windows тоже ставит в профиль пользователя 
(%APPDATA%). Если скачивать архив и собирать из исходников, то куда захотите, 
туда и ставьте.
Установку в классические каталоги Linux (/usr/bin и прочие) я пока не 
поддерживаю, т.к. в этом не очень разбираюсь. Если Nix требует установки туда, 
то открывайте заявку в GitHub 
(https://github.com/bmstu-iu9/refal-5-lambda/issues), будем разбираться вместе.
 
По поводу интеграции с IDE. Есть плагин 
<https://github.com/bmstu-iu9/RefalFiveLambdaPlugin>  для IntelliJ IDEA, плагин 
умеет подсвечивать синтаксис, автодополнять имена и показывать на 
синтаксические ошибки. Есть поддержка 
<https://github.com/bmstu-iu9/refal-5-lambda/tree/master/editors>  нескольких 
текстовых редакторов: Vim, Far Colorer и VSCode.
 
«Рефал-5λ можно ограничить (например, опцией командной строки), чтобы он 
поддерживал только то, что понимает суперкомпилятор?»
Ну, для начала, SCP4 (я так понял, о нём идёт речь) сам по себе не очень 
полностью поддерживает Рефал-5. Например, не поддерживаются программы из 
нескольких файлов ($EXTERN в одном файле, $ENTRY в другом). С суперкомпиляцией 
программ, которые вызывают функцию Mu, есть некоторые сложности. SCP4 знает не 
все имена встроенных функций. SCP4 — это экспериментальный суперкомпилятор, но 
не промышленный.
Есть опция командной строки, которая ограничивает компилятор тем, что понимает 
классический Рефал-5 (т.е. запрещаются вложенные функции и другие расширения 
синтаксиса). Называется эта опция --classic. Об опции, которая ограничивала бы 
исходники тем, что поддерживает SCP4, я даже не задумывался. И мне не очевидны 
сценарии работы, где эта опция была бы полезна.
SCP4 после некоторой его доработки напильником может быть собран Рефалом-5λ. В 
его сборочном скрипте зашиты команды запуска refc и refgo. Сам суперкомпилятор 
многопроходный, проходы выделены в отдельные процессы, запускаемые 
последовательно. Управляющий компонент запускает эти процессы посредством того 
же refgo. Всё это можно переделать, чтобы собиралось при помощи Рефала-5λ, я 
это делал когда-то. (Есть адаптированные исходники: 
https://mazdaywik.github.io/direct-link/scp4_000925-srefc.zip, только в них 
нужно заменить srefc → rlc, srmake → rlmake.)
 
«Научить суперкомпилятор функциям высших порядков будет не просто…»
Я об этом как-то делал доклад в ИПМ имени Келдыша РАН. Там возникают всякие 
сложности со ссылочной эквивалентностью замыканий, когда вложенные функции 
начинают специализироваться. Да, там всё непросто, если стремиться к 
действительно эквивалентным преобразованиям. Однако, если забить на нарушение 
инвариантов, которые в Рефале должны быть незыблемыми, то всё становится проще.
 
«а сделать ещё пакет для суперкомпилятора было бы полезно»
На эту тему лучше напрямую списаться с Андреем Петровичем Немытых: 
nemyt...@math.botik.ru <mailto:nemyt...@math.botik.ru> .
 
«Можно, конечно, и по Zoom или совместить offline и online, какое-то 
оборудование для видеоконференций там есть.»
Могу приехать и выступить. Так даже интереснее.
 
С уважением,
Александр Коновалов
 
From: Mike Potanin mpotanin_AT_gmail.com <refal@botik.ru> 
Sent: Monday, October 11, 2021 1:11 PM
To: refal@botik.ru
Subject: Re: Актуальные реализации и текущее состояние.
 
Спасибо!
Рефал-5λ можно ограничить (например, опцией командной строки), чтобы он 
поддерживал
только то, что понимает суперкомпилятор? Научить суперкомпилятор функциям 
высших порядков
будет не просто, а сделать еще пакет для суперкомпилятора было бы полезно.
 
Можно, конечно, и по Zoom или совместить offline и online, какое-то 
оборудование для видеоконференций там есть.
 
 
On Sun, Oct 10, 2021 at 4:33 PM Александр Коновалов a.v.konovalov87_AT_mail.ru 
<http://a.v.konovalov87_AT_mail.ru>  <refal@botik.ru <mailto:refal@botik.ru> > 
wrote:
Добрый день, Михаил!
На данный момент в системе контроля версий, на сколько мне известно, живут 
интерпретатор Рефала-2:
https://github.com/cmc-msu-ai/refal
и мой Рефал-5λ:
https://github.com/bmstu-iu9/refal-5-lambda
Первый уже 6 лет не обновляется, второй активно развивается.
Остальные лежат в zip-архивах на своих сайта.
Какая версия наиболее актуальна? Позволю себе быть необъективным и скажу, что 
моя. 😉 Рефал-5λ собирается и работает под тремя основными операционными 
системами: Windows, Linux и macOS, на процессорах с разрядностью 32 и 64 бита.
А собраться рассказать — это приехать на Воронцово поле (см. адрес по Вашей 
ссылке) или можно дистанционно через Zoom?
 
С уважением,
Александр Коновалов
 
From: Mike Potanin mpotanin_AT_gmail.com <refal@botik.ru 
<mailto:refal@botik.ru> > 
Sent: Sunday, October 10, 2021 3:31 PM
To: refal@botik.ru <mailto:refal@botik.ru> 
Subject: Актуальные реализации и текущее состояние.
 
Добрый день!
Рефалом заинтересовался мой друг, мантейнер пакетов Nix и кофаундер хакспейса.
Он спрашивает какие версии наиболее актуальны, чтобы сделать для них пакеты в 
Nix
(желательно работающие под Linux и хранящиеся не в zip-архиве, а в системе 
контроля версий,
позволяющей сослаться на конкретный коммит ;-)) и предлагает как-нибудь 
собраться у него
в хакспейсе (https://t.me/undefspace), чтобы кто-нибудь рассказал про текущее 
состояние
Рефала и обсудить, куда двигаться.
 
С уважением,
Михаил Потанин
  • Акт... Mike Potanin mpotanin_AT_gmail . com
    • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
      • ... Mike Potanin mpotanin_AT_gmail . com
        • ... Александр Коновалов a . v . konovalov87_AT_mail . ru
        • ... Andrei Klimov andrei_AT_klimov . net
    • ... Dr Mikhail Kovtun, Ph.D.
      • ... Andrei Klimov andrei_AT_klimov . net
        • ... Dr Mikhail Kovtun, Ph.D.
      • ... Mike Potanin mpotanin_AT_gmail . com
    • ... Александр Гусев gusev_aleksandr_AT_mail . ru
      • ... Mike Potanin mpotanin_AT_gmail . com
        • ... Александр Коновалов a . v . konovalov87_AT_mail . ru

Ответить