Какие есть файлы конфигурации для Rebol R3 и как они загружаются?

В Rebol 2 был файл user.r, а также файл rebol.r для добавления кода, который будет загружаться при запуске. Как это изменилось для Rebol R3?

2 ответа

Решение

В настоящее время user.r устарела как угроза безопасности. Предполагается, что для этого должен быть выбранный метод... но никто еще не начал работу над ним.

См. http://chat.stackru.com/transcript/291?m=9149463

В Rebol 3 вы загружаете код, используя rebol.r, который должен идти в том же каталоге, что и rebol исполняемый файл. Не загружается rebol.r из домашнего каталога пользователя, поскольку файлы в этом каталоге обычно доступны для записи программами, работающими с разрешениями пользователя, что делает его хорошим местом для размещения вредоносных программ. Место, куда вы положили rebol Предполагается, что исполняемый файл легче защищать от записи в него пользовательского кода.

Файл user.r зарезервирован для установки пользовательских настроек и предпочтений, выраженных в непроцедурном диалекте (который мы еще не обсуждали). Даже когда он вернется, он не сможет загрузить код по той же причине, что rebol.r не загружается из домашнего каталога пользователя. Это будет только для предпочтений.

Если вы хотите загрузить специфичный для пользователя код, вы можете сделать это явно, используя код в rebol.r, но будьте осторожны с вопросами безопасности. Потребность в пользовательском коде редко встречается в Rebol 3.

Вы также можете рассмотреть возможность использования модульной системы Rebol 3. Большую часть кода библиотек и утилит лучше определять в модулях, и вы можете решить, куда поместить эти модули, установив system/options/module-paths, Затем ваши скрипты импортируют фактические модули по имени, не зная, где они действительно находятся. Вы также можете установить system/options/default-suffix, расширение файла по умолчанию для модулей, в случае %.reb не по вкусу.

Редко, когда вы захотите загрузить код для глобального использования, так как потребность в коде является локальной для сценариев. Одним из таких применений является загрузка расширений в rebol.r перед тем, как заблокировать безопасность, чтобы не было загружено больше расширений; это позволяет ограничивать расширения утвержденным списком. Любой глобальный код может быть загружен с задержкой, поэтому он не загромождает систему для сценариев, которые ему не нужны. Загруженный с задержкой код на самом деле не импортируется, пока не будет запрошен сценарием.

Другие вопросы по тегам