ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ngx_http_script_module



On 30.04.2007 14:46, Igor Sysoev wrote:
> 
>> Не будет ли более логичным взять какой-нибудь готовый язык?
> 
> Есть ли язык, который

Parrot - http://www.parrotcode.org/

Есть пример его интеграции с Apache - mod_parrot:
http://www.smashing.org/mod_parrot/

> 1) всегда проверяет результат внутренних операций, в частости
>    выделения памяти;

В Parrot по умолчанию используется garbage collector.
Но когда не хватает памяти - то действительно, либо вызывается макрос
PANIC, либо тупо exit(1)

Почему не вызывается Parrot_exit() - для меня загадка, надо будет это
выяснить, патч-то тривиален.

> 2) поддерживает несколько интерпретаторов (как perl multiplicity);

Есть.

> 3) поддерживает неблокирующиеся операции, например,
> 
>    v = get_variable(...);
>    if (v == ПРИДИТЕ_ПОЗЖЕ) ...
> 
> ?

Всё гораздо круче - есть continuations.

В целом, создавать код непосредственно на PIR - подход самый
эффективный, но и не очень удобный.

Т.е. возможность создавать на PIR content handlers или authorization
handlers - было бы просто прекрасно, если надо выжать 100% по скорости.

В тоже время, возможно из того же Lua компилировать код в PIR (или
конвертировать байт-код). Хотя эти проекты несколько приторможены.

Более того, можно создать свой язык - поскольку два подхода к описанию
грамматик (PGE & TGE) делают эту задачу не столь уж и сложной.

В любом случае, возвращаясь к ngx_http_script_module, встраивание в
"if"-контекст любого внешнего языка - видится методом сомнительным в
плане удобства/очевидности, так что уж лучше имеющийся набор директив (и
подход) останется как есть.

Текущий же вариант - со встраиваением perl, весьма гибок в плане
расширения функциональности. А использование Parrot позволит увеличить
скорость выполнения еще больше.

-- 
Sergey Skvortsov
mailto: skv@xxxxxxxxx



 




Copyright © Lexa Software, 1996-2009.