############################################### # working features but requiring optimization # ############################################### * all autogenerated xs methods that return char * are now using sv_setpv() which always copies the string. See if we somehow can avoid the copy. If we do so, we need to be careful with method which take a pool argument, such as: Apache::ServerUtil - mpxs_Apache2__ServerUtil_server_root_relative Apache::URI: - ap_construct_server - ap_construct_url APR::URI - mpxs_apr_uri_parse Apache::Util - ap_ht_time - escape_path for which we need to attach the pool object used to create those strings as a magic. * optimize modperl_callback_current_callback_(set|get) to use numerical equivalents of the phase names, instead of doing expensive memory allocs and string comparison operations. And only give the real string in the perl get API. * consider using the temp pool for things that are needed only during the configuration and can be dropped before the actual serving is started. that pool gets destroyed right after the post-config phase is over. * currently when ithreads-enabled perl is used anon-sub handlers are always deparsed and non-cached. there are several cases when this can be optimized. See modperl_handler_new_anon in modperl_handler.c * modperl_package_unload() and modperl_xs_dl_*() share some duplicated logic. The managment of DynaLoaded modules could be somewhat cleaner.