Diff for /parser3/INSTALL between versions 1.19 and 1.58

version 1.19, 2002/04/29 11:48:12 version 1.58, 2024/11/04 04:37:43
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:    In case you later would experience problems with gcc runtime exception handling 
         * xml(xdoc and xnode classes)    (most notable when reporting sql-related problems), pass this to buildall script:
   Read section (3) on getting xml-abled parser.    --with-sjlj-exceptions (HPUX is reported to have such problems)
   
   
   Read section (4) on configure options.  
   
 2.What is the process to install Parser3?  
   
   make install  
   
   Installation layout:  
     $prefix/bin/  
       parser3             -- CGI and command line Parser3 interpreter  
     $prefix/etc/  
       parser3.conf        -- main configuration file  
       parser3.charsets/   -- charset definition files  
         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-1257.cfg  -- baltic charset [windows-1257 encoding]  
   
   NOTE:    NOTE:
     For subsequent compilations+installs     On some systems there are no "make" and you should run 'gmake', change buildall script accordingly then.
     to prevent configuration files to be overwritten use  
     2. What is the process to install Parser3?
     make install-exec  
         Copy files from $HOME/parser3install directory into your cgi-bin directory.
     it will update parser3 binary only.  
     Then install Parser3 to handle documents, step-by-step instructions:
 3.What other libraries are needed to compile/install parser?       http://www.parser.ru/en/docs/lang/install4apachecgi.htm" in English
       http://www.parser.ru/docs/lang/install4apachecgi.htm" in Russian
   * You can compile and use parser without any additional libraries.  
     That would be 'basic' version of it.    Directory layout:
       bin/
         parser3               -- CGI and command line Parser3 interpreter
   * In case you wish xml(xdoc and xnode classes) support you need libraries        auto.p.dist           -- configuration file sample,
       libxml2 >= 2.4.11                                 copy it to auto.p and adjust to your needs
       libxslt >= 1.0.9      share/
       glib >= 1.2.10        charsets/
       gdome2 >= 0.7.0          parser3.charsets/   -- charset definition files
     on your system, and specify path to them to Parser3 configure script.            koi8-r.cfg        -- cyrillic charset [KOI8-R encoding]
             windows-1251.cfg  -- cyrillic charset [windows-1251 encoding]
     Sources of these two libraries must be patched prior to compile:             ...
       * libxml2  
       * libxslt  3. I have heard about $mail:receive experimental support, how do I use it?
   
     Installation sequence of these libraries to $D/gnome:    Just start ./buildall --with-mailreceive.
     If you have glib and gmime installed, you can run ./configure --with-mailreceive.
     libxml2:  [ftp://ftp.gnome.org/pub/GNOME/stable/sources/libxml/libxml2-2.4.12.tar.gz]  
   4. Safety features
     cd libxml2-x.x.x    You can disable any exec operations by setting --disable-execs option.
     patch -p0 < $D/parser3project/parser3/src/patches/libxml_error_column_tab.patch  
     patch -p0 < $D/parser3project/parser3/src/patches/libxml_htmloutput_of_xslemptyattr_emptyquotes.patch  
     patch -p0 < $D/parser3project/parser3/src/patches/libxml_transcoder_context1.patch  
     patch -p0 < $D/parser3project/parser3/src/patches/libxml_transcoder_context2.patch  
     patch -p0 < $D/parser3project/parser3/src/patches/libxml_transcoder_context3.patch  
     patch -p0 < $D/parser3project/parser3/src/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/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/patches/libgdome_cpp_syntax1.patch  
         patch -p0 < $D/parser3project/parser3/src/patches/libgdome_cpp_syntax2.patch  
         patch -p0 < $D/parser3project/parser3/src/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?withparams  
   --with-pgsql-client=pgsqlclientlib?withparams  
   --with-oracle-client=oracleclientlib?withparams  
     
    
 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.19  
changed lines
  Added in v.1.58


E-mail: