Выложена версия 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 можно было бы отследить ошибку.
- Выложена версия 3.4.0 beta 1, Misha v.3 [M] 10.07.2009 03:20 / 10.07.2009 03:39