Commit graph

268 commits

Author SHA1 Message Date
Anatol Belski
c00424e427 bring back all the TSRMLS_FETCH() stuff
for better comparability with the mainstream
2014-10-15 09:37:55 +02:00
Anatol Belski
766eb0103f Merge remote-tracking branch 'origin/master' into native-tls
* origin/master:
  fix several datatype mismatch warnings
  fix signed/unsigned mismatch warning
  more signed/unsigned mismatch fix
  fix signed/unsigned mismatch warning
  fix signed/unsigned mismatch
  fix some signed/unsigned mismatch
  missing include for strlen proto
  More fixes for array/object casts with temporary variables
  Fix array/object cast of refcounted tmp var
  Deref right value for compound assign ops
2014-10-13 19:02:22 +02:00
Anatol Belski
65eb8ef8d0 fix several datatype mismatch warnings 2014-10-13 18:43:14 +02:00
Anatol Belski
d11734b4b0 reworked the patch, less new stuff but worky
TLS is already used in TSRM, the way exporting the tsrm cache through
a thread local variable is not portable. Additionally, the current
patch suffers from bugs which are hard to find, but prevent it to
be worky with apache. What is done here is mainly uses the idea
from the RFC patch, but

- __thread variable is removed
- offset math and declarations are removed
- extra macros and definitions are removed

What is done merely is

- use an inline function to access the tsrm cache. The function uses
  the portable tsrm_tls_get macro which is cheap
- all the TSRM_* macros are set to placebo. Thus this opens the way
  remove them later

Except that, the logic is old. TSRMLS_FETCH will have to be done once
per thread, then tsrm_get_ls_cache() can be used. Things seeming to be
worky are cli, cli server and apache. I also tried to enable bz2
shared and it has worked out of the box. The change is yet minimal
diffing to the current master bus is a worky start, IMHO. Though will
have to recheck the other previously done SAPIs - embed and cgi.

The offsets can be added to the tsrm_resource_type struct, then
it'll not be needed to declare them in the userspace. Even the
"done" member type can be changed to int16 or smaller, then adding
the offset as int16 will not change the struct size. As well on the
todo might be removing the hashed storage, thread_id != thread_id and
linked list logic in favour of the explicit TLS operations.
2014-09-25 18:48:27 +02:00
krakjoe
b3aebda9ea native tls initial patch 2014-09-20 20:22:14 +01:00
Johannes Schlüter
d0cb715373 s/PHP 5/PHP 7/ 2014-09-19 18:33:14 +02:00
Anatol Belski
534ee96964 fix ftell/fseek calls 2014-09-14 23:03:13 +02:00
Nikita Popov
59848e3fbb Remove ZEND_ACC_INTERACTIVE and CG(interactive)
As far as I can discern these are leftovers of the interactive
shell implementation that was used before PHP 5.4. Now the readline
ext makes use of normal eval calls for this.

So, dropping these until there is evidence to the contrary, as they
currently wouldn't work anyway.
2014-08-25 23:46:43 +02:00
Anatol Belski
4d997f63d9 master renames phase 3 2014-08-25 20:22:49 +02:00
Anatol Belski
c3e3c98ec6 master renames phase 1 2014-08-25 19:24:55 +02:00
Anatol Belski
41115d3d9d regenerated parser files 2014-08-17 21:05:20 +02:00
Anatol Belski
cb25136f4e fix macros in the 5 basic extensions 2014-08-16 11:37:14 +02:00
Dmitry Stogov
b7715c7e8a Refactored parameter passing mechanism.
In PHP-5.6 and below each argument passed to user function was copies on VM stack twice.
Now we always have ZEND_INIT_FCALL (or simular) opcode that pushes "call frame" on top of VM stack.
"Call frame" is actually the same zend_execute_data structure.
All the following ZEND_SEND instructions push arguments on top of the stack in a way that they directly comes into corresponding CV variables of the called frame. Extra arguments are copied at the end of stack frame (after all CV and TMP variables) on function enterance.

There are two minor incompatibilities:
1) It's not allowed to decalre functions redefining arguments e.g. "function foo($a,$a) {}".
2) func_get_arg() and func_get args() return the current value of argument and not the original value that was sent.
2014-06-30 15:43:45 +04:00
Xinchen Hui
c2082ece52 Fixed apply_func_t (they should be broken before) 2014-05-25 18:32:35 +08:00
Dmitry Stogov
76cc99fe60 Refactored ZVAL flags usage to simplify various checks (e.g. Z_REFCOUNTED(), candidate for GC, etc) 2014-04-03 15:26:23 +04:00
Dmitry Stogov
232f3e915c Fixed various CLI problems 2014-03-14 18:00:42 +04:00
Xinchen Hui
fb825a95d0 Fixed module name printing 2014-02-28 13:02:28 +08:00
Dmitry Stogov
a52817eb02 Use better data structures (incomplete) 2014-02-14 14:11:52 +04:00
Dmitry Stogov
f4cfaf36e2 Use better data structures (incomplete) 2014-02-10 10:04:30 +04:00
Xinchen Hui
0f53e37494 Merge branch 'PHP-5.6' 2014-01-03 11:09:07 +08:00
Xinchen Hui
c081ce628f Bump year 2014-01-03 11:08:10 +08:00
Kalle Sommer Nielsen
ed5a8d510f Pass the TSRMLS parameters to the sapi flush hook, this shaves off a few TSRMLS_FETCH() calls in our various SAPIs 2013-12-18 09:06:39 +01:00
Kalle Sommer Nielsen
bd58146ad6 Kill another TSRMLS_FETCH() in the zend extension loading code 2013-12-18 07:59:47 +01:00
Kalle Sommer Nielsen
1433dec2d0 Kill another TSRMLS_FETCH() in zend_indent() 2013-12-12 22:09:38 +01:00
Stanislav Malyshev
9cc9d32e6a Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Add built-in web server to invocation list
  Terminology: change embedded web server to built-in web server to align with cli usage
  Align -B and -E parameter names with cli usage (begin_code and end_code)
  Fix Bug #65219 DBSETLDBNAME should be called before login to set DBNAME in login record
2013-07-14 17:01:43 -07:00
Lior Kaplan
f4b9b20b35 Add built-in web server to invocation list 2013-07-14 17:00:56 -07:00
Keyur Govande
5bf6323e51 Patch for Bug #64544.
The process title change module keeps track of the locally allocated
environ, so it doesn't need to worry about when environ changes
underneath it, for example by putenv()/setenv()
2013-03-29 14:27:36 +00:00
Keyur Govande
a0a995cff3 Support for CLI process title (https://wiki.php.net/rfc/cli_process_title)
A new commit into branch 5.5
2013-03-07 18:54:34 +00:00
Xinchen Hui
a666285bc2 Happy New Year 2013-01-01 16:37:09 +08:00
Xinchen Hui
0a7395e009 Happy New Year 2013-01-01 16:28:54 +08:00
Xinchen Hui
d1f0662e4d Fixed bug #62725 (Calling exit() in a shutdown function does not return the exit value)
The fix is make 5.4 behavior consistent with 5.3
2012-08-02 23:03:38 +08:00
Johannes Schlüter
9a86784859 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fix memleak in CLI

Conflicts:
	sapi/cli/php_cli.c
2012-06-27 11:46:57 +02:00
Johannes Schlüter
bc0972e78d Fix memleak in CLI 2012-06-27 11:42:43 +02:00
Xinchen Hui
fd518ffc7e Merge remote-tracking branch 'origin/PHP-5.3' into PHP-5.4
* origin/PHP-5.3:
  Fixed bug #61546 (functions related to current script failed when chdir() in cli sapi).
  - BFN

Conflicts:
	sapi/cli/php_cli.c
2012-04-30 12:15:43 +08:00
Xinchen Hui
bae56a87f8 Fixed bug #61546 (functions related to current script failed when chdir() in cli sapi). 2012-04-30 12:09:22 +08:00
Felipe Pena
e4ca0ed09f - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena
4e19825281 - Year++ 2012-01-01 13:15:04 +00:00
Pierre Joye
fcbfbea8d2 - fix bug #60272, typo 2011-11-11 18:50:52 +00:00
Dmitry Stogov
4a25a7740d Fixed ZE specific compile warnings (Bug #55629) 2011-09-13 13:29:35 +00:00
Xinchen Hui
6c0c4896b3 Prevented the warning about truncate int to char 2011-08-08 07:12:12 +00:00
Xinchen Hui
43301dae9b Prevented the warning about truncate int to char 2011-08-08 07:12:12 +00:00
Felipe Pena
71e52a5ccd - Reverted php_printf -> printf change 2011-07-01 17:18:50 +00:00
Felipe Pena
5304004cc7 - Fixed crash when using -e option 2011-06-25 20:40:03 +00:00
Felipe Pena
29588a6fa3 - Fixed crash when calling sapi_shutdown() and sapi hasn't been started
Reported by: David Tajchreber
2011-06-25 14:17:17 +00:00
Felipe Pena
dc467a70d3 - Fixed crash when zend_eval_string bailouts (-r 'a();')
Reported by: David Tajchreber
2011-06-25 13:15:24 +00:00
Pierre Joye
0d7226ed60 - reflection is always enabled 2011-06-25 10:47:54 +00:00
Pierre Joye
213e1f4456 - reflection is always enabled 2011-06-25 10:47:54 +00:00
Derick Rethans
8e30050416 - Fixed layout. Tabs on the terminal don't align nicely in most cases. 2011-06-25 10:16:46 +00:00
Felipe Pena
8480b7f4be - Fix memleak on `php -v' 2011-06-21 01:47:05 +00:00
Felipe Pena
b83af94c2b - Fixed hardcoded INI 2011-06-20 23:36:25 +00:00