Felipe Pena [Tue, 25 Mar 2008 18:08:37 +0000 (18:08 +0000)]
MFH:
- Renamed zend_do_fetch_class_name() to zend_do_build_full_name() (It is not used only for classes)
- Moved zend_resolve_class_name prototype to zend_compile.h
Steph Fox [Sat, 22 Mar 2008 09:07:59 +0000 (09:07 +0000)]
Independent versioning for PECL extensions (and only PECL, for now)
This affects the RC template used to ship information with the DLL in Windows distributions - nothing else.
It will potentially affect 13 PECL modules at present (and yes I do know which ones!)
Andrey Hristov [Thu, 20 Mar 2008 14:03:30 +0000 (14:03 +0000)]
- Don't modify the variables which are passed for parameter binding.
We need to clone them, if there will be a transformation (convert_to_xxx)
which will change the origin
(bug#44390 bind_param / bind_result and Object member variables)
- Make mysqlnd more compatible to libmysql, in this case if the execute of
a statement fails set the state of the statement back to PREPARED
- A test case to check the case of a failing statement.
Rasmus Lerdorf [Tue, 18 Mar 2008 21:42:50 +0000 (21:42 +0000)]
exit_on_timeout patch
After the sigsetjmp change, this is patch #2 in an effort to get some
sanity restored to signal handling in PHP.
This patch does two things. First, it makes it possible to reset the
timeout without resetting the signal handlers. This is important for
cases where an extension may have deferred signals in its MINIT in order
to implement critical sections. It also lays the groundwork for cleaning
up our signal handling and perhaps eventually implementing our own
signal deferring mechanism so we can have true critical sections.
The second thing this does is to make it possible to terminate the current
child process (only for Apache1 at the moment) on a timeout. There are
a number of extensions that are unhappy about being longjmp'ed out of
and when this happens on a timeout they are left in an inconsistent state.
By turning on exit_on_timeout you can now force the process to terminate
on a timeout which will clean up any hanging locks and/or memory left
hanging after the longjmp.
Rasmus Lerdorf [Tue, 18 Mar 2008 21:14:28 +0000 (21:14 +0000)]
Make the sigsetjmp change more robust. On systems that don't have
sigsetjmp use setjmp. Windows is of course weird in that it seems to
have sigsetjmp but not sigjmp_buf (??) so force it to use setjmp in
config.w32.h.in
Rasmus Lerdorf [Tue, 18 Mar 2008 18:34:11 +0000 (18:34 +0000)]
Use sigsetjmp and siglongjmp instead of setjmp/longjmp in order to be
consistent in how we deal with the signal mask. POSIX doesn't specify
what to do with the signal mask in setjmp/longjmp which has resulted in
the signal mask getting saved on *BSD and not getting saved on Linux.
Making the behaviour explicit via sigsetjmp/siglongjmp gives us
consistency and saves expensive sigprocmask() syscalls on *BSD.
Andrey Hristov [Tue, 18 Mar 2008 16:57:31 +0000 (16:57 +0000)]
Fixed a bunch of bugs reported in
Bug #44352 mysqli_connect_error() false negative for host errors
From now on the mysqli object doesn't have that magic properties, like
error, which were readable but not visible through isset(), property_exists()
and var_dump(). All other ext/mysqli classes were fixed too.
Now it will be easier to debug mysqli based applications.
Dmitry Stogov [Tue, 18 Mar 2008 08:36:30 +0000 (08:36 +0000)]
Implemented concept of "delayed early binding" that allows opcode caches to perform class declaration (early and/or run-time binding) in exactly the same order as vanila php.
The following pseudo-code explains how it should be used in opcode cache.
Steph Fox [Tue, 18 Mar 2008 03:12:42 +0000 (03:12 +0000)]
re2c checking.
If it's not installed, the least scary of messages goes out.
If it's installed but older than the required version, the download link is given.