<?xml version="1.0" encoding="utf-8" ?>
<!-- $Id$ -->
<page title='История изменений в версиях Cog' sitemap='no' lang='ru'>
<history>
<what when='20051006T222500'>Split out from the main page.</what>
<what when='20051009T085600'>Alexander's translation from changes.px</what>
<what when='20080524T091900'>Alexander's updates to 2.1</what>
</history>

<p>Список изменений в версиях Cog.</p>

<h2>Version 2.1, 22 мая 2008</h2>

<ul>
<li>Добавлен ключ -U для записи выходных файлов с концовками строк в Unix стиле
при работе в ОС Windows.</li>
<li>Улучшена валидация аргументов командной строки: ключ -d может использоваться
при выводе на консоль (stdout), ключи проверяются для каждой строки в файле
@file, чтобы предотвратить возможные некорректные сочетания ключей.</li>
</ul>


<h2>Версия 2.0, 6 октября 2005</h2>

<p><em>Несовместимости:</em></p>

<ul>
<li>Python 2.2 более не поддерживается.</li>
<li>В версии 1.4, вы могли поместить часть кода генератора 
в строке с маркером [[[cog и также часть в строке с маркером ]]],
чтобы генератор был более компактным.
К сожалению, при таком подходе становится гораздо тяжелее бескровно встраивать такие
маркеры в исходные файлы любых типов.
Теперь код генератора допускается в строке с маркерами только в том случае, 
если сам генератор записан в одну строку.</li>
<li>В версиях 1.x, вы могли опускать конечный маркер [[[end]]], 
при этом неявно предполагалось, что он находится в конце файла.
Теперь такое поведение должно быть явным образом разрешено
при помощи ключа командной строки -z. Без этого ключа отсутствие 
маркера считается ошибкой.</li>
</ul>

<p>Улучшения:</p>

<ul>
<li>Новый ключ -d удаляет все генераторы из выходного файла
при обработке файла и генерации выходного файла (спасибо, Блэйк).</li>

<li>Новый ключ -D позволяет определять глобальные строковые переменные, 
доступные для генераторов.</li>

<li>Новый ключ -s позволяет маркировать генерируемые строки 
при помощи задаваемого суффикса.</li>

<li>@-файлы теперь могут содержать ключи командной строки 
в дополнение к именам файлов.</li>

<li>Сообщения об ошибках при выполнении Cog теперь печатаются
без стека вызовов (traceback) Python, и используют формат, 
аналогичный сообщениям об ошибках компилятора. Таким образом,
двойной щелчок по сообщению об ошибке возможно будет 
осуществлять переход к необходимому участку вашего кода (спасибо, Майк).
<em>Примечание:</em> функция перехода по сообщениям об ошибках
встроена в большинство современных IDE и редакторов для программистов.</li>

<li>Новый Cog-метод №1: cog.error(msg) возбуждает исключение и прерывает
обработку, при этом на экран печатается сообщение без "ужасного" стека вызовов 
(traceback) Python (спасибо, Александр).</li>

<li>Новый Cog-метод №2: cog.msg(msg) печатает сообщение msg на экране 
(поток вывода stdout). Это лучше, нежели использование print,
потому что такой подход позволяет Cog управлять всем выводом.</li>

<li>Ужесточены требования к последовательности маркерных строк.
Это помогает избежать ситуаций, в которых Cog мог "съесть" ваш ценный код
(спасибо, Кевин).</li>
</ul>



<h2>Версия 1.4, 25 февраля 2005</h2>

<ul>
<li>Добавлен ключ командной строки -x для удаления сгенерированного текста.</li>
<li>Добавлен ключ командной строки -c для добавления контрольной суммы к генерируемому тексту.</li>
</ul>

<h2>Версия 1.3, 30 декабря 2004</h2>

<ul>
<li>Все генераторы в пределах одного входного файла теперь работают
с использованием единого глобального словаря имен, таким образом
они могут передавать свое состояние последующим генераторам.</li>
</ul>

<h2>Версия 1.2, 29 декабря 2004</h2>

<ul>
<li>Добавлены атрибуты модуля cog.inFile, cog.outFile и cog.firstLineNum.</li>
<li>Использование аргумента sOut в функциях cog.out и cog.outl стало необязательным.</li>
<li>Добавлена компактная однострочная форма использования cog-маркеров.</li>
<li>Скорректированы некоторые предупредительные сообщения, в которых имя файла не выводилось соответствующим образом.</li>
</ul>

<h2>Версия 1.12, 21 июня 2004</h2>

<ul>
<li>Изменены символы перевода строк в исходных файлах Cog на более портируемый вариант LF вместо Windows-стандарта CRLF.</li>
</ul>

<h2>Версия 1.11, 5 июня 2004</h2>

<p>Исправлены ошибки:</p>

<ul>
<li>Обработка пробельных символов выполняется корректно для полностью пустых строк (вообще без пробелов) в участках Cog-кода.</li>
<li>Элементы, возвращаемые модулем handyxml, теперь имеют атрибуты, которые им назначаются после разбора содержимого xml-файла.</li>
</ul>

<h2>Версия 1.1, 21 март 2004</h2>

<ul>
<li>Если строки с Cog-маркерами и все строки генераторного кода внутри них содержат один и тот же префикс, то этот префикс удаляется из строк с кодом генератора. Это позволяет использовать Cog для исходных текстов на тех языках программирования, в которых нет поддержки многострочных комментариев.</li>
<li>Производится проверка того, что последняя строка вывода имеет символ перевода строки, в противном случае она сливается с завершающим маркером, что приводит к нарушению идемпотентности.</li>
<li>Добавлен ключ командной строки -v для вывода версии Cog.</li>
<li>При запуске без аргументов на экран выводится краткая справка об использовании Cog.</li>
</ul>

<h2>Версия 1.0, 10 февраля 2004</h2>
<p>Первая версия.</p>


<googleads/>
<pagecomments/>

</page>
