parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

MoKo 19.10.2013 13:39

сколько одно из базовых свойств функционирования парсера
Да ладно, о чем вы. Какое базовое свойство? Поведение при повторном декларировании классов даже документировано не было.
И не уверен, что вообще существуют языки, в которых при повторном декларировании класс замещается новым, а не выдается ошибка.

Далее, не очень понимаю, как вы вообще пользуетесь этим поведением для тестирования.

Допустим есть директория production с файлами (и классами a,b,c). Вы решили протесировать новую версию класса b. Завели директрию testing, добавили ее в CLASS_PATH или явно воспользовались ^use[testing/b]. Загрузился класс b. А потом вы в какой-то момент сказали ^use[a], в котором в начале написано @USE b. Поскольку при use файл ищется вначале в текущей директории, а класс/файл a находится в production, ваша testing версия будет заменена на production. Да, наверное можно играя порядком @USE добиваться нужного результата, но это какая-то очень шаткая конструкция. Не говоря о том, что @auto класса b выполняется два раза, что само по себе может привести к трудноуловимым проблемам (у нас был такой случай).

Как бы наверное делал сам: в cgi/auto.p в CLASS_PATH добавлял папку production или testing в зависимости от условия (например если запрос
с IP адреса разработчика) и горя бы не знал. Успешно закончилось тестирование - mv production production.<date>; mv testing production.