From: Idan Sofer Date: 2002-12-29T06:19:54+09:00 Subject: [ANN] Radical 0.6 Radical 0.6 was released, including improvments in many fields including speed and documentation. It may be downloaded from: http://idanso.dyndns.org/radical = Version 0.6 * Major speed boost. Key sections of the code were profiled and optimized as much as possible to reduce the length of the request processing cycle GServer was dumped in favour of MTServer, it's way of operation is more scaleable, keeping a pool of worker threads competing on a Mutex instead of creating thread for each request. An additional move was porting Radical::HTTP::Table and Radical::HTTP::Response to a C extension. This was combined with a hybrid version of MTServer, part in C and part in Ruby(the C code used a dirty trick with static variables to avoid using Mutex). The result was an additional improvement in speed and scalability. for details look at docsrc/bookmark.rdoc * More documentation Generated using RDOC * Improvements to configuration Each handler may be assigned a different cache manager Static content and Dynamic content(scripts) may now sit on different paths * Improvements to the DB API Database pools may be identified not only by pre-configured name but also by Radical::DB::Database struct Radical::DB::DBPoll#transaction method provides block-based and less error-prone approach then get and put Radical::DB::DBProxy allows accessing the same DBPoll without specifying it's name. * Modifications to the cache API The _valid?_ method was dropped, it is now the duty of _get_ do find out if the request is valid. _get_ method now must accept a response object as the second parameter See Radical::Cache::BaseCacheManager * Improvements to the template subsystem Templates may contain methods, these will become part of the object singleton methods(In other words, each template can define it's own interface). Templates are no longer accepting hashes as a parameter, instead they accept a list of parameters that are passed to the template _init_ method. A new syntax has been added - <**templateName|methodName**> - This generates a method whose name is methodName, calling it will add another template, templateName into this position. The generated method will pass the parameters to the template. * Semi-Functional security manager The security manager provides an interface for interaction of threads running at $SAFE=4 to communicate with the rest of the system, including requesting templates and translations. Radical::Handlers::SafeRubyScriptHandler already employs this facility, that in the future will be extended so Radical will be suitable for multi-user enviroments * Minor enhancements and bug fixes * MemoryCacheManager added * ApacheConnector didn't pass GET queries - FIXED * translation engine caching was broken - FIXED * <**>(template inclusion) no longer broken * MIME::Types for Ruby was intergrated