<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/4.6.6">
</HEAD>
<BODY>
<BR>
After thinking about it, my proposed patch will not work in this situation:<BR>
<BR>
1. use $[ but don't bring libstdc++ <BR>
  => libperl.so will be removed but not arybase.so<BR>
2. on create-config stage, libperl.so is reloaded, PL_check is initialized and points to local checks only<BR>
3. the boot section is arybase is executed, but wrap_op_checker will be a no-op because the static ab_old_ck_.. pointer is not null <BR>
  => the op checker is not installed in libperl...<BR>
<BR>
It's a tough one. <BR>
To bring the patch further, libperl should also be forced to stay in memory<BR>
<BR>
The correct fix is that all XS modules that register things outside themselves should unregister properly on unload. I have identified 3 XS modules that don't do that: arybase, EV, Params::Classify<BR>
To their defense, Perl is making it difficult (no API to unset an op checker)<BR>
To Perl's defense, apache is making it difficult by by doing a config load-unload-reload.<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>