Maxis wrote:Ещё один вопросец.
Вот у тебя в документации "Глобальные и локальные переменные инициализируются нулями"
А как быть с теми переменными которые должны инициализироваться определёнными значениями, а не нулём?
Планируется ли как-то решать эту проблему? Это конечно если я всё правильно понимаю.
Пока никак не планирую. Для инициализации переменных, просто пишется специальная процедура и вызывается из секции инициализации модуля. Секция инициализации в любом случае, выполняется до первого использования модуля (исключение -- низкоуровневые модули
RTL,
API,
KOSAPI). Конечно, есть неудобство при инициализации структурных переменных. Но я бы не сказал, что мне это сильно мешает. Если же структурных данных очень много, то их можно загрузить из файла.
Maxis wrote:
Разве что, такое устройство языка приводит к некоторому увеличению размера кода и снижению эффективности
Comdiv делал
тест накладных расходов при структурном программировании. Вывод у него такой, что не нужно жертвовать структурностью ради возможной копеечной прибавки к производительности.
Я с этим не спорю. Да и зачем бороться за копеечный выигрыш, тогда, когда вовсю используются интерпретируемые языки. Еще подумал, что единственная точка возврата может упростить подстановку процедур вместо вызовов, если я буду делать такую оптимизацию.
Maxis wrote:
Кстати, ты сменил лицензию на BSD? Почему?
Я в этих лицензиях несильно разбирался. Считается, что
GPL затрудняет коммерческое использование кода. Тут, конечно, речь не идет о таком использовании, но пусть будет
BSD, чтобы не было недовольных (недовольство по поводу
GPL в моем коде мне высказывали неоднократно).