Конфигурация HomeLisp

Все настроечные параметры компонентов содержатся в конфигурационных файлах. Имена конфигурационных файлов для HomeLispIde.exe и HomeLispWeb.exe одинаковы - HomeLisp.ini. Конфигурационный файл компоненты HomeLispLib.Exe имеет имя HomeLispD.ini (что позволяет располагать библиотеку HomeLispLib.Exe в той же директории, что и среду разработки. Структура файлов сходна, но имеются особенности, которые и описываются в настоящем разделе.

Конфигурацию всех компонентов можно осуществлять как непосредственным редактированием файлов HomeLisp.ini/HomeLispD.ini, так и с использованием встроенных режимов, описанных ниже. Автор настоятельно НЕ РЕКОМЕНДУЕТ корректировать файлы HomeLisp.ini "ручками". Если пользователь испортит файл HomeLisp.ini, то он будет сам виноват в этом! Никаких претензий в этом случае автор не примет. Если же проблема возникает при работе штатного режима конфигурации, пользователь с полным правом может требовать от автора устранения ошибок.

Файлы HomeLisp.ini/HomeLispD.ini имеют простую текстовую структуру - параметры записываются в ключевой форме Имя = Значение. Каждый параметр занимает одну строку - перенос недопустим. Часть строки, стоящая правее пары символов "//" является комментарием и не учитывается.

Для среды разработки конфигурационный файл должен находиться в той же директории, что и модуль HomeLispIde.Exe.

При использовании библиотеки HomeLispLib.Exe, конфигурационный файл должен находиться в той директории, в которой зарегистрирована библиотека HomeLispLib.Exe.

При использовании Web-компоненты, конфигурационный файл должен находиться в той же директории, что и модуль HomeLispWeb.exe.

EXE-файлы, которые могут быть построены в среде разработки, не используют конфигурационных файлов, - все необходимые конфигурационные параметры сохраняются в теле exe-файла.

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

Имя параметра Значение по умолчанию Компонента Назначение параметра
szLex 10000 IDE, DLL, WEB Максимальное количество лексем S-выражения.
szOst 2000 IDE, DLL, WEB Максимальный размер стека объектов.
szAst 2000 IDE, DLL, WEB Максимальный размер рабочего стека.
szOut 10 IDE Размер буфера консоли в Кб.
szSav 1 IDE Признак сохранения размеров и положения главного окна среды разработки при завершении работы в файле HomeLisp.pos. Значение 1 означает сохранение, значение 0 запрещает сохранение размеров и положения окна. Если в текущей директории отсутствует файл HomeLisp.pos, то при запуске окно выводится в центе экрана.
Lib .\Lib\lib-a.lsp IDE, DLL, WEB Путь а автозагружаемой библиотеке (файл с раширением lsp), содержащей определения всех функций и констант. Если путь к библиотеке не задан, при запуске программы выдается сообщение, а пользователю будет представлена среда разработки, содержащая только встроенные функции и константы.
tGc 20 IDE, DLL, WEB Граничный процент приращения занятых информационных и списочных ячеек, для автоматического вызова сборщика мусора после завершения вычисления выражения верхнего уровня. Если значение параметра mGC не равно нулю, то сборщик мусора автоматически не вызывается и значение параметра tGC игнорируется.
mGc 0 IDE, DLL, WEB Если значение параметра отлично от нуля, то сборщик мусора не вызывается автоматически.
log 1 IDE Если значение параметра отлично от нуля, то при запуске автоматичски включается журналирование вводимых команд и выводимых результатов.
nest 1 IDE, DLL, WEB Стиль отображения стека в дампе. Если значение параметра равно 1, стек отображается в виде [nnnnnn], где nnnnnn - текущий размер стека. Если значение параметра равно 2, стек отображается в виде последовательности точек. Если значение параметра равно 0, стек не отображается.
nWin 100 IDE, DLL Маскимально число одновременно существующих графических окон.
nFil 40 IDE, DLL Максимально число одновременно открытых файлов.
nBlo 50 IDE, DLL Максимальное количество BLOB-ов.
nCom 100 IDE, DLL Максимальное количество COM-объектов.
nDlg 50 IDE, DLL Максимальное количество диалогов.
nSta 1000 IDE, DLL, WEB Размер таблицы статистики (максимальное к-во функций, вызов которых будет подсчитываться при включении соответствующей возможности).
tInt 0 IDE, DLL, WEB Максимальная длительность времени вычислений (в сек), по истечении которой произойдет принудительное прерывание. Если параметр равен 0, то вычисления будут продолжаться "до победного конца".
extEditor   IDE Путь к внешнему редактору. Можно использовать блокнот или какую-либо его улучшенную версию.
cmdLine   IDE Командная строка, которая будет подставляться при вызове из среды разработки функций SYSARGC и SYSARGV.
iBackColor 11992307 IDE Цвет фона области ввода.
oBackColor 8404992 IDE Цвет фона области вывода
iForeColor 8404992 IDE Цвет текста области ввода
oForeColor 16777215 IDE Цвет текста области вывода
iFontName Courier New IDE Гарнитура шрифта области ввода
iFontSize 9.75 IDE Размер шрифта области ввода
iFontBold 0 IDE Признак жирности начертания символов области ввода
iFontItalic 0 IDE Признак курсива области ввода
oFontName Courier New IDE Гарнитура шрифта области вывода
oFontSize 12 IDE Размер шрифта области вывода
oFontBold 1 IDE Признак жирности шрифта области вывода
oFontItalic 0 IDE Признак курсива области вывода
Inst 2 WEB Максимальное количество запускаемых процессов HomeLispWeb.exe. Это число следует сделать на 1-2 больше, чем предполагаемое количество рабочих мест.

Конфигурирование среды разработки

Вызов режима конфигурирования среды разработки осуществляется выбором пункта меню "Настроить" или нажатием на 19-ю кнопку (с изображением инструментов). При этом будет вызвана форма настройки, показанная ниже:


Интерфейс настройки инуитивно понятен (по крайней мере, так полагает разработчик...). Пользователь должен задать нужные параметры и нажать кнопку "Принять" (на ней изображена галочка). После чего форма закроется, а пользователю будет выдано сообщение:


При этом старое содержимое конфигурационного файла HomeLisp.ini будет сохранено под именем HomeLisp.bak и создан новый файл HomeLisp.ini, содержащий введенне пользователем значения параметров.

Если же пользователь решил не менять параметры, то следует нажать кнопку "Закрыть" (с изображением крестика). Форма конфигурации закроется, а изменения приняты не будут.

Конфигурирование библиотеки HomeLispLib.Exe

Для вызова формы настройки библиотеки HomeLispLib.Exe необходимо создать объект clsLisp, и вызвать метод Config. Для этого служит скрипт DllConfig.vbs, входящий в стандартную поставку. Текст скрипта (на языке VBScript) приводится ниже:


    Set Lisp=CreateObject("HomeLisp.clsLisp")

    If Lisp.Config Then

       MsgBox "Конфигурация успешно исправлена"

    Else

       MsgBox "Конфигурация НЕ изменилась"

    End if

При выполнени этого сценария пользователю будет показана форма конфигурации, аналогичная таковой для настройки среды разработки:


Если пользователь изменил какие-либо параметры и нажал кнопку "Принять", то выдается сообщение "Конфигурация успешно исправлена", а значения всех параметров будут занесены в файл HomeLispD.ini. Cтарый файл сохранится под именем HomeLispD.bak. Если же пользователь нажмет кнопку "Закрыть", то конфигурация не изменится и будет выдано сообщение "Конфигурация НЕ изменилась".