Я пишу некоторый код поддержки в общем подмножестве Matlab/Octave, который представлен в виде набора функций. Назовем это пакетом.
Я хочу иметь возможность организовать пакет, т.е.
- поместите все соответствующие функциональные файлы в одно место, где пользователи не должны хранить свой код;
- иметь некоторую внутреннюю организацию («подпакеты»);
- предотвратить загрязнение пространства имен;
- иметь некоторый механизм для пользовательского кода для «импорта» частей пакета;
- Я не обязательно хочу, чтобы все функции, которые я предоставляю, были видны из пользовательских клиентов.
Что касается Matlab, эта функциональность в значительной степени обеспечивается каталогами пакетов и механизмом «импорта». Однако эта функция недоступна в Octave (начиная с версии 3.6.1).
Учитывая это, мне интересно, какие варианты остаются для организации моего пакета кода поддержки в Octave.
Возможность поместить все в каталог и просто заставить пользовательский код выполнять ADDPATH кажется довольно грубым и не дает желаемого уровня контроля - он касается только пункта № 1 в списке выше.