Jeff, congratulations:-)  I'll plan on playing around with it sometime
this weekend and maybe even put it in use on some non critical systems
at work.

Ilya

> -----Original Message-----
> From: Jeff Zucker [mailto:[EMAIL PROTECTED]] 
> Sent: Friday, April 12, 2002 12:52 AM
> To: Tim Bunce; dbi-dev
> Subject: DBI::PurePerl -- would you believe 100%?
> 
> 
> Attatched is a copy of PurePerl that passes 271/271 t/* 
> subtests with the following tests skipped:
> 
>   * proxy.t -- skipped
> 
>   * preparse.t -- skipped
> 
>   * basics.t
> 
>       * skipped 2 of the subtests on neat() which depend on 
>         looks_like_number() telling the difference between "2"
>         and 2
> 
>       * skipped 5 subtests depending on hash()
> 
> That's all.  Everything else passes.  It needs a slight patch 
> to DBI.pm (also attatched) to bypass the bootstrap 
> (default=use DBI,1=enable PurePerl only if no loadable DBI, 
> 2-force use of PurePerl) and to not croak if PurePerl sets $DBI::err.
> 
> It emulates dispatch() with the IMA bitmasks, KEEP_ERR, 
> class_depth, etc.. It does not use lasth.  All of the 
> error/state passing is through $DBI::err and friends.
> 
> *However* it contains this line in _setup_handle():
> 
>    $DBI::PurePerl::frump = $h;
> 
> The variable is not used anywhere else, it functions only to 
> keep $h alive after everything else is destroyed (which I 
> *do* know is what we want to avoid).  If it is commented out, 
> then 4 errors appear in examp.t. subtests which use eval 
> (150,151,166,168). All of the errors are because the test is 
> expecting $@ to contain something and it is empty.  I have 
> checked, and the croak/RaiseError is working properly and has 
> the message $@ is expecting but $@ never gets it.  Unless I keep the
> handle alive with frump, then $@ works as it should.   Is there any
> other way to make sure $@ is propagated properly?
> 
> -- 
> Jeff
> 
> 

Reply via email to