Diff for /parser3/INSTALL between versions 1.23 and 1.59

version 1.23, 2002/06/21 12:42:18 version 1.59, 2026/04/25 13:38:46
Line 1 Line 1
 0.Assuming your perform your builds in $D directory   $Id$
   and suggested subdirectories.  
   1. What is the process to compile Parser3?
   
 1.What is the process to compile Parser3?     Just start ./buildall script and you would get $HOME/parser3install/bin/parser3 binary.
   
   As most UNIX programs Parser3 follows the "standard":    NOTE:
     In case you do not need XML support, use ./buildall --without-xml
   
   mkdir $D/parser3project    NOTE:
   cd $D/parser3project    In case you need apache parser module (DSO), use ./buildall --with-apache
   gunzip -c parser3-x.x.tar.gz | tar xvf -  
   mv parser3-x.x parser3  
   cd parser3  
   ./configure --prefix=/usr/local  
   make  
     
   That renaming is needed for SQL drivers to be able to find   
   necessary include-file in Parser3 sources.  
   
   NOTE:    NOTE:
   On some system you should run 'gmake'.    If you have gc, prce, libxml and libxslt installed, you can use ./configure --with-xml
   
   NOTE:    NOTE:
   By default your would get 'parser3' binary without support of these features:    On some systems there are no "make" and you should run 'gmake', change buildall script accordingly then.
         * xml(xdoc and xnode classes)  
   Read section (3) on getting xml-abled parser.  2. What is the process to install Parser3?
   
     Copy files from $HOME/parser3install directory into your cgi-bin directory.
   Read section (4) on configure options.  
     Then install Parser3 to handle documents, step-by-step instructions:
 2.What is the process to install Parser3?      http://www.parser.ru/en/docs/lang/install4apachecgi.htm" in English
       http://www.parser.ru/docs/lang/install4apachecgi.htm" in Russian
   make install  
     Directory layout:
   Installation layout:      bin/
     $prefix/bin/        parser3               -- CGI and command line Parser3 interpreter
       parser3             -- CGI and command line Parser3 interpreter        auto.p.dist           -- configuration file sample,
       auto.p.dist         -- configuration file sample,                                  copy it to auto.p and adjust to your needs
                              copy it to auto.p and adjust to your needs      share/
     $prefix/etc/        charsets/
       parser3.charsets/   -- charset definition files          parser3.charsets/   -- charset definition files
         koi8-r.cfg        -- cyrillic charset [KOI8-R encoding]            koi8-r.cfg        -- cyrillic charset [KOI8-R encoding]
         windows-1250.cfg  -- central europian charset [windows-1250 encoding]            windows-1251.cfg  -- cyrillic charset [windows-1251 encoding]
         windows-1251.cfg  -- cyrillic charset [windows-1251 encoding]            ...
         windows-1257.cfg  -- baltic charset [windows-1257 encoding]  
   3. I have heard about $mail:receive support, how do I use it?
 3.What other libraries are needed to compile/install parser?   
     Just start ./buildall --with-mailreceive.
   * You can compile and use parser without any additional libraries.    If you have glib and gmime installed, you can run ./configure --with-mailreceive.
     That would be 'basic' version of it.  
   4. Safety features
     You can disable any exec operations by setting --disable-execs option.
   * In case you wish xml(xdoc and xnode classes) support you need libraries  
       libxml2 >= 2.4.11  
       libxslt >= 1.0.9  
       glib >= 1.2.10  
       gdome2 >= 0.7.0  
     on your system, and specify path to them to Parser3 configure script.  
   
     Sources of these two libraries must be patched prior to compile:   
       * libxml2  
       * libxslt  
   
     Installation sequence of these libraries to $D/gnome:  
   
     libxml2:  [ftp://ftp.gnome.org/pub/GNOME/stable/sources/libxml/libxml2-2.4.12.tar.gz]  
   
     cd libxml2-x.x.x  
     patch -p0 < $D/parser3project/parser3/src/lib/patches/libxml_error_column_tab.patch  
     patch -p0 < $D/parser3project/parser3/src/lib/patches/libxml_htmloutput_of_xslemptyattr_emptyquotes.patch  
     patch -p0 < $D/parser3project/parser3/src/lib/patches/libxml_transcoder_context1.patch  
     patch -p0 < $D/parser3project/parser3/src/lib/patches/libxml_transcoder_context2.patch  
     patch -p0 < $D/parser3project/parser3/src/lib/patches/libxml_transcoder_context3.patch  
     patch -p0 < $D/parser3project/parser3/src/lib/patches/libxml_transcoder_context4.patch  
     ./configure --prefix=$D/gnome --without-zlib  
     make install  
   
     libxslt:  [ftp://ftp.gnome.org/pub/GNOME/stable/sources/libxslt/libxslt-1.0.9.tar.gz]  
   
     cd libxslt-x.x.x  
     patch -p0 < $D/parser3project/parser3/src/lib/patches/libxslt_html_output_no_charset_meta.patch  
     ./configure --with-libxml-prefix=$D/gnome --prefix=$D/gnome --without-debug --without-debugger  
     make install  
   
     glib:  [ftp://ftp.gtk.org/pub/gtk/v1.2/glib-1.2.10.tar.gz]  
   
     cd glib-x.x.x  
     ./configure --prefix=$D/gnome   
     make install  
   
     gdome2:  [http://phd.cs.unibo.it/gdome2/tarball/gdome2-0.7.0.tar.gz]  
   
     cd gdome2-x.x.x  
         patch -p0 < $D/parser3project/parser3/src/lib/patches/libgdome_cpp_syntax1.patch  
         patch -p0 < $D/parser3project/parser3/src/lib/patches/libgdome_cpp_syntax2.patch  
         patch -p0 < $D/parser3project/parser3/src/lib/patches/libgdome_morestatic.patch  
     ./configure --with-glib-prefix=$D/gnome --disable-glibtest --with-libxml-prefix=$D/gnome --prefix=$D/gnome  
     make install  
   
     And copy these additional headers into install includes directory  
   
     mkdir $D/gnome/include/libgdome/gdomecore  
     cp libgdome/gdomecore/gdome-xml-node.h $D/gnome/include/libgdome/gdomecore  
     cp libgdome/gdomecore/gdome-xml-document.h $D/gnome/include/libgdome/gdomecore  
       
   
     Parser3 configure options, choose whether you need static or dynamic linkage with xml libs:  
         --with-static-xml=$D/gnome  
         --with-shared-xml=$D/gnome  
   
     NOTE:  
     In case your glib as installed into some other prefix,  
     specify it's configuration file with  
         --with-glib-config=/path/to/your/glib-config  
         NOTE:  
         In case you are using SHARED xml libraries, you may want to link in direct path to them,  
     use this key to specify which linker key to use do do that:  
         --with-pathlink=LKEY    put dynamic libraries paths to binary  
                                 using linker key (-R, -rpath-link)  
   
 4.  
   
   In case you're not root on machine you're installing Parser,  
   we recommend you to do:  
   ./configure --prefix=/your/home/parser3install  
   and afterwards copy parser3install/bin/parser3 to your CGI directory  
   or make a symlink [if your web server configured to follow symlinks].  
   
   You can disable libstdc++ linkage by setting  
   --disable-link-libstdcpp  
   option to configure.    
   
   You can disable any exec operations by setting  
   --disable-execs  
   option to configure.  
   file::exec, file::cgi and mail:send (unix version) methods would be disabled.    file::exec, file::cgi and mail:send (unix version) methods would be disabled.
   
   You can disable reading and executing files, belonging to group     You can enable reading and executing files, not belonging to group+user 
   other then current by setting    other than effective by setting --disable-safe-mode option.
   --disable-foreign-group-files  
   option to configure.  
     
   You can disable user-configured sendmail commands by forcing it, setting    You can disable user-configured sendmail commands by forcing it, setting
   "--with=sendmail=COMMAND"    "--with=sendmail=COMMAND" option.
   option to configure.  
     
   
   Some root config options can be specified at configure time, and would override autodetects.  
   
   List of enabled charsets:  
   --with-charsets=CHARSET[,CHARSET,...]  Enables charsets in root config (windows-1251,  
                           windows-1250 windows-1257 koi8-r; Default is windows-1251)  
   SQL clients:  
   --with-mysql-client=mysqlclientlib?params  
   --with-pgsql-client=pgsqlclientlib?params  
   --with-oracle-client=oracleclientlib?params  
     
    
 Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)  
   
 $Id$  5. Since Parser 3.4.0 several optimizations were implemented.
     If you experience problems you can try to disable them by commenting corresponding
     defines and recompiling parser3.
   
     src/include/pa_opcode.h
       #define OPTIMIZE_BYTECODE_GET_CLASS               -- $a:
       #define OPTIMIZE_BYTECODE_GET_ELEMENT             -- $a ^a
       #define OPTIMIZE_BYTECODE_GET_OBJECT_ELEMENT      -- $a.b ^a.b
       #define OPTIMIZE_BYTECODE_GET_OBJECT_VAR_ELEMENT  -- $a.$b ^a.$b
       #define OPTIMIZE_BYTECODE_GET_SELF_ELEMENT        -- $self.a ^self.a
       #define OPTIMIZE_BYTECODE_CONSTRUCT               -- $a(expr),  $a[value]
                                                            $.a(expr), $.a[value]
                                                            $self.a(expr), $self.a[value]
       #define OPTIMIZE_BYTECODE_CUT_REM_OPERATOR        -- cut rem operator with any number of params during compilation
       #define OPTIMIZE_BYTECODE_STRING_POOL             -- simplifying string's bytecode into expression
       #define OPTIMIZE_BYTECODE_GET_SELF_ELEMENT        -- bytecode for $self.a ^self.a
       #define OPTIMIZE_BYTECODE_GET_ELEMENT__SPECIAL    -- bytecode for .CLASS, .CLASS_NAME
       #define FEATURE_GET_ELEMENT4CALL                  -- ^o.m[] calls get_element4call("m"), not get_element("m")
   
     src/include/pa_string.h
       #define HASH_CODE_CACHING  -- calculated hash codes are cached and used for sequential hash lookups
   
     src/include/pa_memory.h
       #define USE_DESTRUCTORS    -- destructors are used to decrease memory consumption during code
                                     processing and make ^memory:compact[] calls non-essential.
   
     src/types/pa_method.h
       #define OPTIMIZE_CALL      -- allows faster operators execution by eliminating method frame
                                     with local variables creation and extra write context switches.
       #define OPTIMIZE_RESULT    -- parser methods are marked when the $result variable was used.
                                     This allows write operations and context switching optimization.
   
     src/types/pa_wwrapper.h
       #define OPTIMIZE_SINGLE_STRING_WRITE  -- reuse original VString in single string assignments.
   
     src/lib/cord/include/cord.h
       #define CORD_CAT_OPTIMIZATION -- CORD library never modifies source concatenations. But in parser
                                        write operations it is safe to modify them and save some memory.
       #define CORD_CHARS_CACHE      -- language cords with same language and length are cached and reused.
   
     src/include/pa_string.h
       #define STRING_LENGTH_CACHING -- cache String::Body.length() for char* strings
   
     src/include/pa_hash.h
       #define HASH_ORDER            -- hash keys are iterated in the order of insertion

Removed from v.1.23  
changed lines
  Added in v.1.59


E-mail: