parser

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

 

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

Выложена версия 3.4.0 beta 1

Misha v.3 10.07.2009 03:20 / 10.07.2009 03:39

- парсер теперь официально собирается как 64-битное приложение (при этом использует больше памяти, т.е. мы продолжаем рекомендовать пользоваться 32-битным приложением, когда это возможно)

- сделано большое количество оптимизаций. теперь без использования compact потребление в некоторых случаях сильно уменьшено (если compact использовался, оно тоже меньше, но не настолько). версия собрана с GC 7.1 (было: 6.8)

- парсер собран с PCRE 7.9 (было: 7.7); все шаблоны теперь подвергаются pcre_study (иногда это увеличивает скорость поиска по шаблону до 2 раз); добавлен отдельный класс regex (^regex::create[шаблон]), объекты которого можно использовать в match и file:list вместо строчных шаблонов; шаблонам при их создании делается автоматический ^untaint[regex]{...} (грязные данные не пройдут)

- ^file::load[...;http://...]: добавлен upload файлов на удалённый сервер, для чего нужно воспользоваться новой опцией $.enctype[multipart/form-data] (Elik прислал патч); параметр $.method[] теперь не чувствителен к регистру; исправлена ошибка, из-за которой невозможно было использовать все 4 параметра этого конструктора

- хеш теперь помнит порядок элементов (как добавляли), при foreach перебирает их в данном порядке; _keys[] возвращает таблицу с ключами в этом-же порядке

- trim теперь умеет работать со строками в UTF-8

- untaint[js] эскейпит \xOD в \r (если у вас вдруг достались такие данные откуда-либо, чего при работе с данными только средствами парсера быть не должно)

- добавлен новый тип преобразования parser-code, который эскейпит спецсимволы парсера символом '^'; тело оператора process теперь подвергается автоматическому untaint преобразованию данного типа (грязные данные теперь не пройдут)

- ^rem{} может иметь произвольное количество параметров (проще комментировать буквы, содержащие внутри символ ';') и теперь выкусывается на этапе компиляции

- у файлов, созданных с помощью конструкторов create, load или exec/cgi доступно новое поле mode, содержащее text или binary

- третий параметр метода ^изображение.font теперь может быть хешом со след. опциями: $.space(ширина пробела), $.width(ширина букв), $.spacing(расстояние между символами)

- исправлена ошибка некорректного определения кодировки в пришедшем POST запросе, если в конце заголовка content-type не было символа ';'

брать тут

P.S. выложенные версии для *nix содержат debug info, чтобы в случае core можно было бы отследить ошибку.