Changes for version 2.3
- Agni::agni_exec would local'ize $PApp::NOW, which would incorrectly disassociate from any imported versions.
 - use sessionid to strengthen crypto check for state keys.
 - PApp::SCGI::Worker destroys and recreates the EV default loop. That's a bit dirty, but there is no way to save and restore a signal handler in pure perl, so the alternatives seem all worse.
 - PApp::SCGI: run PApp handler in a Coro thread instead of in an event handler, to allow handlers to block.
 - PApp::SCGI: allow exit code to be provided by overwriting $PApp::SCGI::Worker::WORKER_EXIT.
 - PApp::SCGI: slight performance optimisations for papp-scgid.
 - PApp::CGI warns did not print a trailing newline.
 - add HTTP_AUTHORIZATION header suppoort to PApp::CGI.
 - PApp::XSQL::Sablotron marked as deprecated.
 - PApp::XSQL::Sablotron now increases Coro's cctx stack because sablotron uses a lot of stack space.
 - setting environment variable PAPP_INSTALL_SKIP_CONFIG=1 will skip config installation and questions during make install.
 
Documentation
commandline access to the PApp!Agni System.    
  
administrate papp    
  
get/set/clear/display environment variables    
  Modules
persistent data and objects    
  
internationalisation support for PApp    
  
multi-page-state-preserving web applications    
  
perform various administrative tasks    
  
multi-page-state-preserving web applications    
  
multi-page-state-preserving web applications    
  
a class representing a single mountable application    
  
use PApp in a CGI environment    
  
a workaround for the problem of nonserializable code.    
  
load configuration settings and configure process    
  
reference data stored in scalars, databases...    
  
make javascript horrors less horrible    
  
communicate between processes and the outside.    
  
catch/broadcast various events    
  
exception handling for PApp    
  
a re-blocking buffer for multipart streams    
  
utility functions for html generation    
  
manage locks using sql    
  
analyze and expire the state/user databases    
  
analyze and normalize mimetypes and extensions    
  
PCode compiler/decompiler and various other utility functions.    
  
manage user-specific data.    
  
preprocess source like "pxml"    
  
use PApp in a SCGI environment    
  
worker master process management    
  
manage session-specific data.    
  
manage users, preferences and access rights    
  
manage user and access rights    
  
various utility functions that didn't fit anywhere else    
  
papp execution environment for perl files    
  
pxml sections and more    
  
wrapper for an XSLT implementation    
  
wrapper for an XSLT implementation    
  
wrapper for an XSLT implementation    
  
convert bytes from one charset to another    
  
persistence for Perl data structures    
  Provides
      in Agni.pm
    
  
      in PApp/CGI.pm
    
  
      in PApp/Exception.pm
    
  
      in PApp/SCGI.pm
    
  
      in PApp/Application.pm
    
  
      in PApp/CGI.pm
    
  
      in PApp/CGI.pm
    
  
      in PApp/Callback.pm
    
  
      in PApp/DataRef.pm
    
  
      in PApp/DataRef.pm
    
  
      in PApp/DataRef.pm
    
  
      in PApp/DataRef.pm
    
  
      in PApp/DataRef.pm
    
  
      in PApp/ECMAScript.pm
    
  
      in PApp/EditForm.pm
    
  
      in I18n/I18n.pm
    
  
      in I18n/I18n.pm
    
  
      in PApp/SCGI.pm
    
  
      in PApp/XML.pm
    
  
      in PApp/XML.pm
    
  
      in PApp/XPCSE.pm