perl-modperl-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From do...@hyperreal.org
Subject cvs commit: modperl-2.0/todo Apache-class.txt README breakdown.txt c-sources.txt perl-modules.txt request_rec.typdef xs-sources.txt
Date Wed, 07 Apr 1999 16:01:04 GMT
dougm       99/04/07 09:01:04

  Added:       .        ToDo
               todo     Apache-class.txt README breakdown.txt c-sources.txt
                        perl-modules.txt request_rec.typdef xs-sources.txt
  Log:
  2.0 notes from several weeks ago
  
  Revision  Changes    Path
  1.1                  modperl-2.0/ToDo
  
  Index: ToDo
  ===================================================================
  ToDo items carried over from the 1.xx ToDo
  see the todo/ directory for whats really going on here
  
  directives/configuration
  ------------------------
  
  - PerlAllowOverride directive to enable/disable hooks 
    (Jason Riedy <ejr@cise.ufl.edu>)
  
  - PerlEngine On/Off [Vivek Khera <khera@kciLink.com>]
  
  - make 'PerlSetVar $Foo value' work like 'local $Foo = value' 
    for the given location
  
  - <Perl> in .htaccess (could also call known bug)
  
  - change configuration during runtime?
  
  - improve the "stacked handlers" implementation, including:
    + config merging of AV*'s
  
    + allow push_handlers to have an additional argument, an array ref,
      which will be passed to the handler as arguments, e.g.
      $r->push_handlers("PerlHandler", \&some_sub, ['one', 'two', 'etc']);
  
  - allow Perl*Handler's to have arguments in config files, e.g.:
  
    (calls &FooPackage::handler($r, "One", "Two", "Three");
  
  - allow <Perl></Perl> configuration sections to have read access to internal
    configuration structures (would be nice if we could tie a %namespace::) 
  
  namespace/globals
  -----------------
  
  - provide namespace protection when 'use Foo' might be two different modules
    i.e. re-visit Apache::Safe
  
  - provide namespace protection for mod_include #perl's
  
  - @ARGV magic, tie to query string
  
  - overload %ENV magic:
    + call subprocess_env when a value is set 
                Doug Bagley <doug@dejanews.com>
    + so it's not setup unless asked for
  
  - "save stack" mechanism so we can go back to caching CV lookups
  
  ---------------------------------------------------------------------------
  OPTIMIZATIONS
  ---------------------------------------------------------------------------
  
  - avoid write_client symtab lookup in print()
  
  - preloading of method cache
  
  - replace Apache::PerlRun with Apache::PerlRunXS
  
  - replace Apache::Registry with Apache::RegistryXS
  
  - make Apache::RegistryLoader work with RegistryXS
  
  - avoid a copy in PerlRunXS (use SvPVX instead of safemalloc'd copy)
  
  - XS_IMPORT=1 on by default
  
  - in places where Apache did a pstrdup, don't use newSVpv(), use
    newSV()->sv_upgrade()->SvPVX/SvCUR_set to avoid another copy 
  
  - Apache::Constants::constant
  
  
  ---------------------------------------------------------------------------
  NEW MODULE STUFF
  ---------------------------------------------------------------------------
  
  - Apache::Status extensions (ix)
  
  - StatINC doesn't reimport the imported symbols?
    Stas Bekman <sbekman@iil.intel.com>, 
    Message-Id: <Pine.A41.3.96.981007170413.44288Q-100000@ilx374.iil.intel.com>
  - Look at Apache::ASP's handling of exported functions (for implementation
    in Apache::StatINC) (same thing as above?) [ask]
  
  - Option to StatINC to make it possible to only watch chosen modules
    [ask]
  
  - Apache::Registry should check return value of the subroutine,
    e.g. for REDIRECT   
  
  - should Apache::Registry use filename instead of vhost_name+uri?
                Ben Laurie <ben@algroup.co.uk>
  
  - apache.pm: use apache '1.3b3';
  
  - have Apache::Status hunt for AUTOLOADing 
  
  - Apache::Status should list number of things
  
  - Apache::Include->virtual should update %ENV?
  
  - Apache::Registry should honor __END__ and __DATA__,
    but how to get it right?
  
  ---------------------------------------------------------------------------
  MISC NEW STUFF
  ---------------------------------------------------------------------------
  
  - 'make htmldoc' (Brian Moseley)
  
  - make 'make test_report' more useful
  
  - should be able to set PerlSetVar's to an empty string (Eric Cholet)
  
  - perl_clear_env() should skip those found in PerlPassEnv?
  
  - File::copy($file,*STDOUT) doesn't work (pp_syswrite needs tie support)
  	Bill Coffman <coffman@value.net>
  
  - option to set uid/gid before running any Perl code (copy-n-paste
    from http_main.c) 
  	Doug Bagley <doug@dejanews.com>
  
  - $Apache::ServerStarting in <Perl>
  
  - something with exec()?
  
  - Apache->http_message(501); #rc code returns a string
  
  - PerlFreshRestart, restarts on startup, should we stop that?
  
  - special treatment for nph- scripts?
  
  - fix Thread->new == linux<-SIGUSR1->Apache signal clash
  
  
  
  1.1                  modperl-2.0/todo/Apache-class.txt
  
  Index: Apache-class.txt
  ===================================================================
  Apache::Constants imports
  DECLINED
  OK
  
  tied filehandle interface
  CLOSE
  GETC
  PRINT
  PRINTF
  READ
  READLINE
  TIEHANDLE
  WRITE
  
  core request components
  -----------------------
  args - char * (no longer parse in array context)
   query_string - remove
   parse_args - remove
  bytes_sent - long
  content_encoding - char * 
  content_language - remove
  content_languages - array_header *
  content_type - char *
  err_header_out - remove
  err_headers_out - table *
  filename - char *
  finfo - struct stat 
  handler - char *
  header_in - remove
  header_only - int
  header_out - remove 
  headers_in - table * 
  headers_out - table *
  hostname - remove
  get_remote_host - char *
  get_remote_logname - char *
  is_initial_req - int
  is_main - int
  last - request_rec * 	
  main - request_rec * 	
  next - request_rec * 	
  prev - request_rec * 	
  use dualvar magic?
  status - int
  status_line - char *
  method - char *
  method_number - int
  no_cache - int 
  notes - table *
  path_info - char *
  protocol - char *
  proxyreq - int 
  request_time - time_t
  send_http_header - void
  subprocess_env - table *
  the_request - char *
  uri - char *
  server - server_rec *
  connection - conn_rec *
  
  basic_http_header - remove
  content - remove, use libapreq 
  
  server core functions
  ---------------------
  chdir_file
  child_terminate
  custom_response
  internal_redirect
  internal_redirect_handler
  log_error
  log_reason
  warn
  lookup_file
  lookup_uri
  register_cleanup
  
  configuration
  -------------
  allow_options
  define
  document_root
  get_server_name
  get_server_port
  module
  server_root_relative
  satisfies
  
  I/O
  ---
  send_fd
  print
  printf
  rflush
  read
  get_client_block
  setup_client_block
  should_client_block
  new_read - remove
  read_client_block - remove
  write_client - remove
  read_length - remove
  
  maybe Apache::Timeout class with these methods
  hard_timeout
  reset_timeout
  soft_timeout
  kill_timeout
  
  maybe Apache::Auth class with these methods
  auth_name
  auth_type
  note_basic_auth_failure
  get_basic_auth_pw
  some_auth_required
  requires
  as_string - move to Apache::Debug
  import - uh?
  
  translate_name - remove
  unescape_url - move to Apache::Util
  unescape_url_info - move to Apache::Util
  
  aux
  ---
  slurp_filename
  stash_rgy_endav
  clear_rgy_endav
  taint - remove?
  untaint
  
  mod_perl specific
  -----------------
  current_callback
  get_handlers
  push_handlers
  set_handlers
  dir_config
  exit - maybe use die $r/PROPAGATE instead of tie-ing $@
  gensym
  httpd_conf - move elsewhere
  can_stack_handlers - remove
  cgi_env - remove ?
  cgi_header_out - change to use scan_script_header
  cgi_var - remove
  location
  request
  send_cgi_header
  sent_header - yuck
  seqno - remove
  set_opmask - move to Apache::Opcode
  perl_hook - remove?
  pnotes
  post_connection
  
  
  
  1.1                  modperl-2.0/todo/README
  
  Index: README
  ===================================================================
  there is much ToDo for 2.0, this directory contains notes and test
  code.
  
  breakdown.txt - major components of mod_perl 
  Apache-class.txt - notes on Apache.{pm,xs}
  c-sources.txt - notes on the mod_perl .[ch] sources
  perl-modules.txt - notes on the mod_perl Apache::* modules
  xs-sources.txt - notes on the mod_perl xs interfaces
  
  
  
  1.1                  modperl-2.0/todo/breakdown.txt
  
  Index: breakdown.txt
  ===================================================================
  interp startup/teardown
  Perl interfaces to generic structures
  Perl interfaces to generic functions
  I/O
  stacked handlers, method handlers
  <Perl> sections
  directive handlers
  homegrown exporter
  %ENV/END{}/@INC/exit() management (i.e. CGI emulation)
  pure Perl Apache::* extras (e.g. Apache::StatINC, Status, etc)
  Makefile.PL/apaci
  test suite
  examples
  docs
  
  
  1.1                  modperl-2.0/todo/c-sources.txt
  
  Index: c-sources.txt
  ===================================================================
  C source modules
  ----------------
  new naming conventions:
  - modperl_ prefix for mod_perl functions 
  - MP_ prefix for mod_perl globals (if any!)
  - Perl_ prefix for Perl functions
  - PL_ prefix for Perl globals
  - ap_ prefix for Apache functions
  
  xs tweaks:
  - generic xsub for fiddling with *_rec's, XS_modperl_char,
  XS_modperl_int, etc.
  
  threads:
  - dont use dTHR unless we really need to
  
  perl_PL.h
  mod_perl_version.h
  Exports.c
  mod_perl.h
  
  mod_perl.c
  
  - weed out MaxModPerlRequestsPerChild 
  - move MOD_PERL_TRACE stuff into own function
  
  - new modperl_handler typdef, load class, resolve to ::handler, decide
  if is_method, etc., during configuration time, rather than
  request-time
  - stacked handlers by default, use array_header instead of AV
  
  op_mask.c
  
  mod_perl_opmask.c
  
  mod_perl_xs.h
  
  perl_util.c
  - throw out 1.2.x compat ap_cpystrn
  
  perlio.c
  
  perl_config.c
  - split into: perl_config.c,perl_directive_handlers.c,perl_sections.c
  
  - now that PerlRequire/PerlModule start Perl if not running already, no
  need for the array_headers in perl_srv_config
  
  new functions:
  - some mod_perlIO type methods for xs modules? (e.g. Apache::Peek)
  
  namespace/globals
  -----------------
  - current globals:
  
  (mod_perl.c)
  mp_request_rec - for Apache->request
  seqno - remove
  perl_is_running - per-server?
  mod_perl_socketexitoption - remove
  mod_perl_weareaforkedchild - remove
  callbacks_this_request - make per-request
  perl - the PerlInterpter - make per-server?
  orig_inc - to restore @INC, make per-server?
  cleanup_av - for register_cleanup, make work as Apache::Server->register_cleanup
  stacked_handlers - for push_handlers, make per-request (per-server for PerlChild{Init,Exit})
  pPerl - PERL_OBJECT
  mod_perl_mutex - for win32
  
  (perl_util.c)
  mod_perl_endav
  set_ids - remove (now that child_init is always there)
  
  (perl_config.c)
  perl_sections_self_boot
  perl_sections_boot_module
  
  (Perl)
  $Apache::__SendHeader (this sucks)
  $Apache::__CurrentCallback (make per-request)
  $Apache::__POOL (make per-server)
  $Apache::__SERVER (make per-server)
  $Apache::__T (for Apache::Registry -T warning)
  $Apache::ERRSV_CAN_BE_HTTP (is default now, remove)
  $Apache::DoInternalRedirect (hmm)
  %Apache::PerlStackedHandlers (see stacked_handlers)
  $Apache::Server::Starting
  $Apache::Server::ReStarting
  $Apache::Server::CWD
  $Apache::Server::AddVersion
  $Apache::Registry
  $Apache::Registry::Debug
  $Apache::Registry::MarkLine
  $Apache::Registry::NameWithVirtualHost
  $Apache::Registry::curstash
  
  throw-away wish list (things that suck big time, but demanded for CGI emulation)
  --------------------
  %ENV
  END {}
  PerlSendHeader
  exit()
  
  win32
  -----
  - integrate with Perl 5.005's threading
  - integrate with PERL_OBJECT
  - mod_include #perl support
  - ability to nmake w/o going into VC++
  - ability to disable Perl*Handler callback hooks
  - get rid of dup between t/conf/httpd.conf-dist/httpd.conf-win32
  - fix perl-status?mod_perl_hooks
  
  
  
  1.1                  modperl-2.0/todo/perl-modules.txt
  
  Index: perl-modules.txt
  ===================================================================
  non-core, pure Perl modules
  ---------------------------
  Apache::src
  Apache::httpd_conf
  Apache::test
  Apache::Debug
  Apache::ExtUtils
  Apache::FakeRequest
  Apache::Opcode
  Apache::PerlSections
  Apache::PerlRun
  Apache::Registry
  - loose dup code in Apache::Registry, use Apache::PerlRun methods
  Apache::RegistryLoader
  Apache::Resource
  Apache::SIG
  Apache::SizeLimit
  Apache::StatINC
  Apache::Symdump
  Apache::Symbol
  Apache::Leak
  Apache::RedirectLogFix
  Apache::Include
  Apache::Status
  Bundle::Apache
  
  
  
  1.1                  modperl-2.0/todo/request_rec.typdef
  
  Index: request_rec.typdef
  ===================================================================
  args		charp
  bytes_sent	long
  content_encoding charp
  #content_languages array_header
  content_type	charp
  #err_headers_out table
  filename	charp
  #finfo struct stat 
  handler charp
  header_only	int
  #headers_in	table
  #headers_out	table
  last		request_rec
  main		request_rec
  next		request_rec
  prev		request_rec
  status		int
  status_line	charp
  method		charp
  method_number	int
  no_cache	int 
  #notes		table
  path_info	charp
  protocol	charp
  proxyreq	int 
  request_time	time_t
  subprocess_env	table
  the_request	charp
  uri		charp
  server		server_rec
  connection	conn_rec
  
  
  
  1.1                  modperl-2.0/todo/xs-sources.txt
  
  Index: xs-sources.txt
  ===================================================================
  core classes
  ------------
  mod_perl
  Apache (see Apache-class.txt)
  
  Apache::Constants
  Apache::Constants::Exports
  - drop Exporter.pm, polish Apache::Constants::import
  - use 5.005's newCONSTSUB in Constants.xs
  
  Apache::File
  Apache::ModuleConfig
  Apache::CmdParms
  Apache::Log
  Apache::URI
  Apache::Util
  Apache::Server
  Apache::Connection
  
  
  

Mime
View raw message