You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2004/07/20 10:25:24 UTC

cvs commit: embperl Changes.pod INSTALL.pod MANIFEST README.v2 epdom.c epinit.c mod_embperl.c

richter     2004/07/20 01:25:24

  Modified:    .        Changes.pod INSTALL.pod MANIFEST README.v2 epdom.c
                        epinit.c mod_embperl.c
  Log:
  fix embperl unload
  
  Revision  Changes    Path
  1.242     +3 -0      embperl/Changes.pod
  
  Index: Changes.pod
  ===================================================================
  RCS file: /home/cvs/embperl/Changes.pod,v
  retrieving revision 1.241
  retrieving revision 1.242
  diff -u -r1.241 -r1.242
  --- Changes.pod	8 Jul 2004 08:31:00 -0000	1.241
  +++ Changes.pod	20 Jul 2004 08:25:21 -0000	1.242
  @@ -11,6 +11,9 @@
      - Fixed make test problem on RedHat, which reported wrong number of errors
        due to escaping in Apache error log.
      - Fixed test and compile problems on Windows with Perl 5.8.3
  +   - Added more verbose error informations for PerlHash error
  +   - Fixed problem when unloading Embperl.so under Apache, which cause
  +     Perl Hash error and/or segfault.
   
   =head1 2.0b11  15. March 2004
   
  
  
  
  1.27      +60 -15    embperl/INSTALL.pod
  
  Index: INSTALL.pod
  ===================================================================
  RCS file: /home/cvs/embperl/INSTALL.pod,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- INSTALL.pod	10 Jun 2003 03:16:11 -0000	1.26
  +++ INSTALL.pod	20 Jul 2004 08:25:21 -0000	1.27
  @@ -163,7 +163,7 @@
   =back
   
   
  -=head2 WIN 32 (non ActiveState Perl)
  +=head2 Win32 (non ActiveState Perl)
   
   
   B<NOTE:> You need mod_perl >= 1.12 on win32
  @@ -235,32 +235,77 @@
   will already be there.
   
   
  -=head2 WIN 32 with ActiveState Perl
  +=head2 Win32 with ActiveState Perl and Apache 1.3.x
   
  -First get and install ActiveState Perl from http://www.activestate.com
  +First get and install ActiveState Perl from http://www.activestate.com/
   
   You can skip the installation of Apache and mod_perl, if you only want
   to use Embperl offline or as CGI.
   
  -Next get the Apache binary (including the source e.g. apache_1.3.19-win32-src-r2.msi) from        
  -http://www.apache.org/dist/httpd/binaries/win32/ . (You may need to install the
  -windows MSI installer from the same page too). Now run the installation.
  +Next get the Apache binary (including the source e.g.
  +apache_1.3.31-win32-x86-src.msi) from
  +http://www.apache.org/dist/httpd/binaries/win32/ or a mirror. (You may
  +need to install the windows MSI installer from the same page too, and
  +be sure to read the README at the end of the file list for further
  +requirements of some windows versions, especially Windows 95 and
  +XP). Now run the installation.
   
  -Then run the ppm program to install mod_perl
  +Then install mod_perl. How to do this is described very detailed at
  +http://perl.apache.org/docs/1.0/os/win32/install.html#PPM_Packages
   
  -  ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl-1.25_1.3.19.ppd
  +In this file, you'll find a short summary of that page.
   
  -If you get asked for the Apache directory, enter the C<modules> subdirectory under the path
  -where you have installed your Apache, e.g. 
  +There are two ways to install mod_perl:
   
  -  \Program Files\Apache Group\Apache\modules
  ++ Easy version:
  +
  +  Download the perl script
  +  http://perl.apache.org/docs/1.0/os/win32/mpinstall and execute it
  +  with "perl mpinstall". It will interactively install you the right
  +  mod_perl version.
  +
  ++ Manual installation:
  +
  +  Run the ppm program to install mod_perl
  +
  +  - If you have Perl 5.8.x:
  +
  +    ppm install http://theoryx5.uwinnipeg.ca/ppms/mod_perl-1.ppd
  +
  +  - If you have Perl 5.6.x:
  +
  +    ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd
  +
  +
  +  If you get asked for the Apache directory, enter the C<modules>
  +  subdirectory under the path where you have installed your Apache,
  +  e.g.
  +
  +    \Program Files\Apache Group\Apache\modules
   
   As last step you can install the Embperl ppd:
   
  -  ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/HTML-Embperl.ppd
  ++ If you have Perl 5.8.x:
  +
  +    ppm install http://theoryx5.uwinnipeg.ca/ppms/Embperl-1.ppd
  +
  +  This is an Embperl 2 ppd, the "-1" at the end of the package name
  +  denotes that this ppd is for mod_perl 1.x. There is no Embperl 1 ppd
  +  for Perl 5.8.x (yet).
  +
  ++ If you have Perl 5.6.x:
  +
  +  - Embperl 1:
  +
  +    ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/HTML-Embperl.ppd
  +
  +  - Embperl 2:
  +
  +    ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/Embperl.ppd
  +
   
   
  -=head2 Compile Embperl from the sources on WIN 32 with ActiveState Perl
  +=head2 Compile Embperl from the sources on Win32 with ActiveState Perl
   
   First install ActiveState Perl, Apache and mod_perl as described above. Make sure
   you have an Apache version which includes the sources. (Of course when you want to use
  @@ -281,7 +326,7 @@
     nmake install  
   
   
  -=head2 WIN 32: Install Apache and non Apache version on the same system
  +=head2 Win32: Install Apache and non Apache version on the same system
   
   Unlike Unix, Windows loads any needed DLL (dynamic libraries) at startup. This 
   causes trouble when Embperl is compiled for use with Apache and mod_perl, but 
  @@ -300,7 +345,7 @@
   
   
   B<IMPORTANT:> Before using Embperl 2.0, make sure you have read the
  -README.v2. The documentation is not updated to 2.0 yet!!
  +README.v2. The documentation is only partially updated to 2.0 yet!!
   
   You can view the documentation at any time from the Embperl source directory,
   by using the following commands metioned below. After the installation you can
  
  
  
  1.93      +0 -1      embperl/MANIFEST
  
  Index: MANIFEST
  ===================================================================
  RCS file: /home/cvs/embperl/MANIFEST,v
  retrieving revision 1.92
  retrieving revision 1.93
  diff -u -r1.92 -r1.93
  --- MANIFEST	14 Mar 2004 18:54:43 -0000	1.92
  +++ MANIFEST	20 Jul 2004 08:25:21 -0000	1.93
  @@ -606,4 +606,3 @@
   xsbuilder/source_scan.pl
   xsbuilder/xs_check.pl
   xsbuilder/xs_generate.pl
  -META.yml                                 Module meta-data (added by MakeMaker)
  
  
  
  1.4       +8 -8      embperl/README.v2
  
  Index: README.v2
  ===================================================================
  RCS file: /home/cvs/embperl/README.v2,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- README.v2	23 Jan 2004 06:50:54 -0000	1.3
  +++ README.v2	20 Jul 2004 08:25:21 -0000	1.4
  @@ -153,7 +153,7 @@
   - For every container in your httpd.conf (e.g. VirtualHost,Directory,Location)
     where you want to define any application level configuration directives
     (see below under tAppConfig for a list), you need to set a unique
  -  value for EMBPERL_APPNAME. This is for example necessay for all
  +  value for EMBPERL_APPNAME. This is for example necessary for all
     Embperl::Object parameters. Example:
   
     <Location /eo>
  @@ -227,8 +227,8 @@
   2.x on the same machine without conflicts.
   
   
  -Addtional Config directives
  ----------------------------
  +Additional Config directives
  +----------------------------
   
   Caching parameter
   -----------------
  @@ -850,14 +850,14 @@
   
   If you are using Embperl::Object, you may instead save it as a file in your
   document hiearchie make the filename know to Embperl::Object with the 
  -EMBPERL_OBJECT_APP directive and Embperl::Object will retrive the correct
  -application file, just in the same way it retrives other files.
  +EMBPERL_OBJECT_APP directive and Embperl::Object will retrieve the correct
  +application file, just in the same way it retrieves other files.
   
  -NOTE: When using with EMbperl::Object, don't make a package declaration at
  +NOTE: When using with Embperl::Object, don't make a package declaration at
   the top of your application object, Embperl::Object assign it's own namespace
   to the application object.
   
  -In case you need to retrive a text inside your Perl code, you can do this
  +In case you need to retrieve a text inside your Perl code, you can do this
   with $r -> gettext('bar')
   
   
  
  
  
  1.18      +29 -26    embperl/epdom.c
  
  Index: epdom.c
  ===================================================================
  RCS file: /home/cvs/embperl/epdom.c,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- epdom.c	20 Jul 2004 04:59:10 -0000	1.17
  +++ epdom.c	20 Jul 2004 08:25:21 -0000	1.18
  @@ -344,9 +344,9 @@
   *   Erstellt eine neues dynamisches Array
   *                                                                          
   *   @param  pArray	    Zeiger auf den Zeiger der auf das neue Array zeigt
  -*   @param  nAdd	    Anzahl der Element die hinzugef�gt werden, wenn
  -*			    das Array vergr��ert werden mu�
  -*   @param  nElementSize    Gr��e eines Elements	     
  +*   @param  nAdd	    Anzahl der Element die hinzugef?gt werden, wenn
  +*			    das Array vergr??ert werden mu?
  +*   @param  nElementSize    Gr??e eines Elements	     
   * \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -409,9 +409,9 @@
   *   Erstellt eine neues dynamisches Array und setzt seinen Inhalt auf Null
   *                                                                          
   *   @param  pArray	    Zeiger auf den Zeiger der auf das neue Array zeigt
  -*   @param  nAdd	    Anzahl der Element die hinzugef�gt werden, wenn
  -*			    das Array vergr��ert werden mu�
  -*   @param  nElementSize    Gr��e eines Elements	     
  +*   @param  nAdd	    Anzahl der Element die hinzugef?gt werden, wenn
  +*			    das Array vergr??ert werden mu?
  +*   @param  nElementSize    Gr??e eines Elements	     
   * \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -1242,7 +1242,10 @@
   static int DomTree_free (pTHX_ SV * pSV, MAGIC * mg)
   
       {
  -    return DomTree_dodelete (CurrApp, DomTree_self (mg -> mg_len)) ;
  +    if (mg && mg -> mg_len && !PL_in_clean_all)
  +        return DomTree_dodelete (CurrApp, DomTree_self (mg -> mg_len)) ;
  +    else
  +        return ok ;    
       }
   
   /* ------------------------------------------------------------------------ */
  @@ -1339,8 +1342,8 @@
   * \endif                                                                       
   *
   * \_de									   
  -* Vergeleicht den Checkpoint von der Programmausf�hrung mit dem Checkpoint 
  -* beim Compilieren und �ndert den DomTree entsprechend dem Programmflu� ab 
  +* Vergeleicht den Checkpoint von der Programmausf?hrung mit dem Checkpoint 
  +* beim Compilieren und ?ndert den DomTree entsprechend dem Programmflu? ab 
   *                                                                          
   * @param   r               Embperl Requestdaten                            
   * @param   xDomTree	   akuteller DomTree der bearbeitet wird          
  @@ -1719,7 +1722,7 @@
   *
   * \_de									   
   * 
  -* Verwrirft alles ab dem in nRunCheckpoint �bergebenen Punkt
  +* Verwrirft alles ab dem in nRunCheckpoint ?bergebenen Punkt
   *                                                                          
   * @param   r               Embperl Requestdaten                            
   * @param   xDomTree	   akuteller DomTree der bearbeitet wird          
  @@ -1869,9 +1872,9 @@
   *   \_de									   
   *   Liefert den Node mit dem Index xNode und dem RepeatLevel nLevel. Wenn
   *   dieser nicht existiert wird der Node mit Index Null aus dem Source
  -*   DomTree zur�ck geliefert
  +*   DomTree zur?ck geliefert
   *
  -*   @param  pDomTree	    DomTree der den Node enth�lt              
  +*   @param  pDomTree	    DomTree der den Node enth?lt              
   *   @param  pNode           Node Index
   *   @param  nRepeatLevel    RepeatLevel
   *
  @@ -1946,9 +1949,9 @@
   *   \_de									   
   *   Cloned einen Node
   *
  -*   @param  pDomTree	    DomTree der den Node enth�lt              
  +*   @param  pDomTree	    DomTree der den Node enth?lt              
   *   @param  pNode           Node der gecloned werden soll
  -*   @param  nRepeatLevel    RepeatLevel f�r neuen Node
  +*   @param  nRepeatLevel    RepeatLevel f?r neuen Node
   *   @param  bDeep           legt fest wie Kindelemente behandelt werden
   *                           - 1 cloned Kindelemente 
   *                           - 0 cloned keine Kindelemente
  @@ -2032,9 +2035,9 @@
   *   \_de									   
   *   Cloned einen Node
   *
  -*   @param  pDomTree	    DomTree der den Node enth�lt              
  +*   @param  pDomTree	    DomTree der den Node enth?lt              
   *   @param  xNode           Node der gecloned werden soll
  -*   @param  nRepeatLevel    RepeatLevel f�r neuen Node
  +*   @param  nRepeatLevel    RepeatLevel f?r neuen Node
   *   @param  bDeep           legt fest wie Kindelemente behandelt werden
   *                           - 1 cloned Kindelemente 
   *                           - 0 cloned keine Kindelemente
  @@ -2086,17 +2089,17 @@
   *   anderen RepeatLevel ist. Dies ist Teil der "copy on write" Strategie
   *   solange ein Node nicht beschrieben wird, kann dieser als Zeiger auf
   *   einen anderen Node in einem DomTree oder RepeatLevel aus dem er kopiert
  -*   wurde sein. Sobald der Node ge�ndert werden mu�, mu� diese Funktion
  +*   wurde sein. Sobald der Node ge?ndert werden mu?, mu? diese Funktion
   *   aufgerufen werden um sicherzustellen das der korekte Node modifiziert
   *   wird.
   *
  -*   @note   In den meisten F�llen ist es nicht n�tig diese Funktion direkt
  +*   @note   In den meisten F?llen ist es nicht n?tig diese Funktion direkt
   *           aufzurufen, da alle Funktionen die den DomTree modifizieren
   *           dies sicherstellen.
   *
  -*   @param  pDomTree	    DomTree der den Node enth�lt              
  +*   @param  pDomTree	    DomTree der den Node enth?lt              
   *   @param  pNode           Node der gecloned werden soll
  -*   @param  nRepeatLevel    RepeatLevel f�r neuen Node
  +*   @param  nRepeatLevel    RepeatLevel f?r neuen Node
   *   \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -2212,9 +2215,9 @@
   *   Existiert der Node noch nicht in diesem DomTree oder RepeatLevel wird er
   *   erzeugt
   *
  -*   @param  pDomTree	    DomTree der den Node enth�lt              
  -*   @param  xNode           index f�r Node
  -*   @param  nRepeatLevel    RepeatLevel f�r Node
  +*   @param  pDomTree	    DomTree der den Node enth?lt              
  +*   @param  xNode           index f?r Node
  +*   @param  nRepeatLevel    RepeatLevel f?r Node
   *   \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -2316,10 +2319,10 @@
   *   Expandiert einen Node um mehr Attribute aufzunehmen
   *   
   *   @param  pNode	    Node der expandiert werden soll
  -*   @param  numOldAttr	    Anzahl der Attribute die Relokiert werden m�ssen
  +*   @param  numOldAttr	    Anzahl der Attribute die Relokiert werden m?ssen
   *			    (-1 um alle Attribute zu relokieren)
   *   @param  numNewAttr	    Neue Anzahl der Attribute
  -*   @return		    Den Node mit platz f�r numNewAttr
  +*   @return		    Den Node mit platz f?r numNewAttr
   *
   *   @warning	Der Node liegt nach dem Aufruf dieser Funktion u.U. an 
   *		anderen Speicheradresse
  
  
  
  1.14      +12 -11    embperl/epinit.c
  
  Index: epinit.c
  ===================================================================
  RCS file: /home/cvs/embperl/epinit.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- epinit.c	23 Jan 2004 06:50:55 -0000	1.13
  +++ epinit.c	20 Jul 2004 08:25:23 -0000	1.14
  @@ -201,7 +201,7 @@
   *
   * \_de									   
   * Initialisiert ein Threadobjekt. Ist dem Thread schon ein Objekt zugeorndet
  -* wird das bestehende genutzt, ansonsten ein neues zur�ck geliefert.
  +* wird das bestehende genutzt, ansonsten ein neues zur?ck geliefert.
   * \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -223,7 +223,7 @@
   #endif
       if (!ppSV)
   	{
  -	//strcpy (errdat1, "PL_modglobal (key=Embperl::Thread)") ;
  +	LogErrorParam (NULL, rcHashError, "PL_modglobal (key=Embperl::Thread)", "") ;
           return rcHashError ;
   	}
   	
  @@ -286,7 +286,7 @@
   * \endif                                                                       
   *
   * \_de									   
  -* Liefert das diesem Thread zugeordnete Thread-Objekt zur�ck. Das Objekt mu�
  +* Liefert das diesem Thread zugeordnete Thread-Objekt zur?ck. Das Objekt mu?
   * vorher mittels embperl_SetupThread initialisiert worden sein.
   * \endif                                                                       
   *                                                                          
  @@ -560,7 +560,7 @@
   *                                                                          
   * @param   pThread          per thread daten
   * @param   pApacheCfg       apache Konfigurations Vector
  -* @param   pPerlParam       Parameter die von Perl aus �bergeben wurden
  +* @param   pPerlParam       Parameter die von Perl aus ?bergeben wurden
   * \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -953,7 +953,7 @@
   * \endif                                                                       
   *
   * \_de									   
  -* Nimmt die �bergebenen Formulardaten und legt sie in %fdat/@ffld ab
  +* Nimmt die ?bergebenen Formulardaten und legt sie in %fdat/@ffld ab
   * \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -1128,7 +1128,7 @@
   * \endif                                                                       
   *
   * \_de									   
  -* Lie�t die formular daten ein und legt sie in %fdat/@ffld ab
  +* Lie?t die formular daten ein und legt sie in %fdat/@ffld ab
   * \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -1488,6 +1488,7 @@
           SPAGAIN ;
           PUSHMARK(sp);
   	XPUSHs(pApp -> _perlsv); 
  +	XPUSHs(r -> _perlsv); 
   	PUTBACK;                        
   	perl_call_method ("init", G_EVAL) ;
           tainted = 0 ;
  @@ -1517,7 +1518,7 @@
   * \endif                                                                       
   *
   * \_de									   
  -* R�umt das Component-Ausgabe Objekt auf
  +* R?umt das Component-Ausgabe Objekt auf
   * \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -1563,7 +1564,7 @@
   * \endif                                                                       
   *
   * \_de									   
  -* Component-Objekt aufr�umen
  +* Component-Objekt aufr?umen
   * \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -1678,7 +1679,7 @@
   * \endif                                                                       
   *
   * \_de									   
  -* Das Requestobjekt aufr�umen
  +* Das Requestobjekt aufr?umen
   * \endif                                                                       
   *                                                                          
   * ------------------------------------------------------------------------ */
  @@ -2070,7 +2071,7 @@
   * \endif                                                                       
   *
   * \_de									   
  -* Initialisiert alle n�tigen Datenstrukturen um den Request zu starten, wie
  +* Initialisiert alle n?tigen Datenstrukturen um den Request zu starten, wie
   * Thread-, Applikcation und Request-Objekt.
   * \endif                                                                       
   *                                                                          
  
  
  
  1.16      +2 -1      embperl/mod_embperl.c
  
  Index: mod_embperl.c
  ===================================================================
  RCS file: /home/cvs/embperl/mod_embperl.c,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- mod_embperl.c	14 Mar 2004 20:17:41 -0000	1.15
  +++ mod_embperl.c	20 Jul 2004 08:25:23 -0000	1.16
  @@ -302,6 +302,7 @@
           ap_log_error (APLOG_MARK, APLOG_WARNING | APLOG_NOERRNO, APLOG_STATUSCODE NULL, "EmbperlDebug: ApacheInit [%d/%d]\n", getpid(), gettid()) ;
   
   #ifdef APACHE2
  +    /* apr_pool_cleanup_register(subpool, NULL, embperl_ApacheInitCleanup, embperl_ApacheInitCleanup); */
       ap_add_version_component (p, "Embperl/"VERSION) ;
       bApInit = 1 ;
       return APR_SUCCESS ;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org