Zeev Suraski
b06440bceb
MFZE1 (support return value in execute_scripts)
2001-09-10 00:07:32 +00:00
Andi Gutmans
29f5dbe10b
- Initial support for exceptions.
2001-08-30 15:26:30 +00:00
Zeev Suraski
4757104e45
MFZE1
2001-08-21 12:29:12 +00:00
Zeev Suraski
4f6c95d17a
Whitespace
2001-08-11 15:56:40 +00:00
Andi Gutmans
5af7770a81
- Sync Engine2 CVS with latest Engine CVS
2001-08-07 03:17:33 +00:00
Zeev Suraski
c14baeece3
Avoid going over huge lists of functions, classes and constants.
...
Special thanks to the guys from the MS lab for the profiling tools :)
2001-08-02 07:00:43 +00:00
Zeev Suraski
7deb44e36d
Some cleanup
2001-08-02 06:16:20 +00:00
Zeev Suraski
d76cf1da18
More TSRMLS_FETCH work
2001-07-31 04:53:54 +00:00
Zeev Suraski
4187439cff
More TSRMLS_FETCH work
2001-07-30 07:43:02 +00:00
Zeev Suraski
8ce8324e59
More TSRMLS_FETCH annihilation
2001-07-30 04:54:16 +00:00
Zeev Suraski
b57703825b
Avoid TSRMLS_FETCH()'s (still lots of work left)
2001-07-30 01:48:22 +00:00
Zeev Suraski
b4f3b9d3ce
Redesigned thread safety mechanism - nua nua
2001-07-28 10:51:54 +00:00
Zeev Suraski
2c254ba762
Get rid of ELS_*(), and use TSRMLS_*() instead.
...
This patch is *bound* to break some files, as I must have had typos somewhere.
If you use any uncommon extension, please try to build it...
2001-07-27 10:10:39 +00:00
Zeev Suraski
931ebe08d7
Improve bailout mechanism, supports nesting of bailouts a-la try..catch
2001-07-21 14:25:27 +00:00
Zeev Suraski
8084d27885
Implement a more granular shutdown mechanism for the executor -
...
prevent corruption of constants and missing destructions of resources
2001-07-20 14:20:34 +00:00
Zeev Suraski
fb532ba52b
Fix bug #10467
2001-07-16 11:41:06 +00:00
Zeev Suraski
9bd9862451
Fix bug #10257
2001-07-15 17:48:50 +00:00
Zeev Suraski
85b4df53c0
Improved interactive mode - it is now available in all builds, without any significant slowdown
2001-07-15 14:08:58 +00:00
Andi Gutmans
8cd70926c5
- Nuke dependency of all of PHP on zend_execute_locks.h.
2001-06-21 21:17:10 +00:00
Zeev Suraski
6cf6835a4d
Add missing check
2001-05-30 08:23:15 +00:00
Zeev Suraski
686eab894c
Hear hear, interactive mode is finally showing some progress:
...
- Support function calls
- Fix crash bug
2001-05-06 15:00:58 +00:00
Andi Gutmans
ce7d0ef090
- Fix crash bug in interactive mode
2001-04-30 04:50:34 +00:00
Andi Gutmans
0971ff99cb
- Whitespace changes to be standard like the rest of Zend
2001-04-27 18:51:56 +00:00
Andrei Zmievski
145a319f43
Do case-insensitive class name matching when parsing
...
array('Class', 'method') structure.
You guys can clean it up, if there is a better way.
2001-02-28 03:53:00 +00:00
Andi Gutmans
d2c9e8074c
- Update copyright year
2001-02-26 05:43:27 +00:00
Andi Gutmans
488d808748
- Fix whitespace.
2001-02-12 15:18:05 +00:00
Zeev Suraski
d854b26e43
Fix a bug that could cause corruption in case of an error during
...
get_zval_ptr()
2001-02-12 15:16:11 +00:00
Andrei Zmievski
98d8ba8cc4
Allow passing class name as well as an object instance to call methods.
2001-02-04 00:06:08 +00:00
Andrei Zmievski
088a4b7151
Set the correct function state during execution. This is mainly to have
...
get_active_function_name() to return proper value.
2001-02-03 07:21:35 +00:00
Zeev Suraski
cec94760fd
More aggressive protection in call_user_function_ex()
2000-12-24 00:29:14 +00:00
Zeev Suraski
f052eab681
Fix a possible crash bug in call_user_function_ex(), if the function is
...
in fact not a user function
2000-12-23 12:54:42 +00:00
Zeev Suraski
be895bcb96
Fix call_user_function() with objects - it could leak under certain circumstances
2000-12-13 22:50:10 +00:00
Zeev Suraski
dee2d85e77
Fix -a interactive mode (no idea how the previous commit got committed)
2000-10-11 18:51:52 +00:00
Zeev Suraski
5286b3971c
Make compile_string() accept a description of the code
2000-09-12 19:47:25 +00:00
Andi Gutmans
207814916d
- Fix bug report by Andrei when using a method as a sort user function
...
- parameter in usort() like functions
2000-08-22 18:35:42 +00:00
Zeev Suraski
c06692e9ec
The patch we promised - redesigned the compilation/execution API:
...
Advantages:
- Smaller memory footprint for the op arrays
- Slightly faster compilation times (due to saved erealloc() calls and faster zend_op
initialization)
- include_once() & require_once() share the same file list
- Consistency between include() and require() - this mostly means that return()
works inside require()'d files just as it does in include() files (it used to
be meaningless in require()'d files, most of the time (see below))
- Made require() consistent with itself. Before, if the argument was not a constant
string, require() took the include() behavior (with return()).
- Removed lots of duplicate code.
Bottom line - require() and include() are very similar now; require() is simply an include()
which isn't allowed to fail. Due to the erealloc() calls for large op arrays, require()
didn't end up being any faster than include() in the Zend engine.
2000-08-09 19:22:35 +00:00
Stanislav Malyshev
91130b6a00
Unblock SIGPROF signal when starting timer.
...
On Linux, this signal is blocked by default after first signal is run
2000-07-03 16:53:39 +00:00
Andi Gutmans
b72a2738dc
- Forgot ZEND_API
2000-07-02 15:39:54 +00:00
Zeev Suraski
fde2e61d54
error_reporting fix
2000-06-30 11:45:32 +00:00
Zeev Suraski
202b8100ab
Make max_execution_time work properly when set to 0 under Win32 (disable)
2000-06-26 15:17:36 +00:00
Zeev Suraski
34c2b0a07c
- Add restore_error_handler()
...
error_handler's are now stored in a stack
2000-06-17 18:04:58 +00:00
Zeev Suraski
3cda6a750e
Allow the symbol_table to be passed to call_user_function_ex()
2000-06-17 16:50:38 +00:00
Zeev Suraski
84eb48f0a1
Ok, this time here's some real Win32 system programming :)
...
Redesigned the timeout system using a single timeout thread and a single window,
and used a much quicker check.
2000-06-16 14:27:28 +00:00
Andi Gutmans
ae11748038
Fix UNIX build
2000-06-16 02:49:21 +00:00
Zeev Suraski
ef0bd3d102
- Move timeout code to Zend
...
- Implement timeouts in Win32
2000-06-16 01:54:56 +00:00
Sascha Schumann
df74f1dfab
Add optional support for C0x inline semantics.
...
These are enabled by specifying `--enable-c0x-inline' on the command
line. We might add an autoconf check for this particular feature
later.
2000-06-13 17:58:33 +00:00
Sascha Schumann
039551788b
Add a couple of casts
2000-06-08 06:07:38 +00:00
Zeev Suraski
1c36e3472f
Change shutdown order to sort out a crash when assigning a resource id to a static.
2000-06-04 22:09:16 +00:00
Zeev Suraski
5a35a6bafc
Improve call_user_function() to support array($obj, $method)
2000-06-03 03:28:08 +00:00
Zeev Suraski
13b67621cf
Fix a bug in static initializers/default values/class member variables that contained
...
array values
2000-05-31 19:07:09 +00:00
Andi Gutmans
dc704e26fe
- Make zend_eval_string() return SUCCESS/FAILURE
2000-05-06 18:49:46 +00:00
Zeev Suraski
fa7c418b79
Fix - forgot to split away if refcount>1
2000-04-26 22:10:06 +00:00
Zeev Suraski
67f6974373
Initial support for trapping errors (not complete and disabled; will be enabled only
...
post-PHP 4.0.0)
2000-04-19 15:08:06 +00:00
Zeev Suraski
4cb9a483d2
- Clean up resource lists namespace
...
- Prepare extended resource list destructor APIs (currently unused)
2000-04-15 13:02:22 +00:00
Andi Gutmans
804861c5ac
- Fix memory leak
2000-04-11 18:16:58 +00:00
Zeev Suraski
e663d856b3
Fix object overloading support
2000-04-10 20:21:13 +00:00
Andi Gutmans
7fd92b524d
- Stop zend_func_args() and co. from crashing
2000-03-26 18:40:24 +00:00
Zeev Suraski
5dba477467
- Some header dependencies cleanup
...
- Generalize zval_print() and zval_print_r()
2000-03-25 19:10:07 +00:00
Andi Gutmans
6db18997bb
- Nuke hash_*_ptr functions
2000-03-24 11:12:30 +00:00
Andi Gutmans
5951b166c8
- Quick way of supporting include_once().
...
Good enough for RC1.
2000-03-10 16:36:30 +00:00
Zeev Suraski
5e55e47f7f
It's official now...
2000-03-06 05:26:39 +00:00
Zeev Suraski
0ac9536d99
(c) patch
2000-02-19 22:46:42 +00:00
Zeev Suraski
f207b3623e
Pass the executor globals to internal functions
2000-02-05 15:40:05 +00:00
Zeev Suraski
9f51f154aa
- Stop passing list/plist to internal functions
...
- Add a typedef for the pCopyConstructor function pointer
- Minor hacks
2000-02-05 15:11:24 +00:00
Zeev Suraski
b6197bcf90
Maintain a state of whether we're compiling and/or executing
2000-02-04 14:45:58 +00:00
Zeev Suraski
485412ecb1
Improve dependencies
2000-02-01 22:04:52 +00:00
Andi Gutmans
131e3a06fb
- Get rid of remains of garbage.
...
- This should fix Thies' UMR
2000-02-01 16:02:38 +00:00
Thies C. Arntzen
11f53347c7
moved destroying of garbage before resource-list gets destroyed - (see my previous mail)
...
zeev, andi - please comment!
2000-02-01 11:41:15 +00:00
Zeev Suraski
f2d3ce4170
- Optimized garbage mechanism
...
- Fixed another buglet in the parser
2000-01-31 19:18:07 +00:00
Andi Gutmans
8b9765a917
- Keep objects as references.
2000-01-26 21:10:46 +00:00
Andi Gutmans
4585f7bf1f
- Allow is_ref to become 0 in case the refcount is back to 1.
2000-01-26 05:03:22 +00:00
Zeev Suraski
fafbf6d8da
- Implement declare() with declarables framework
...
- Implement ticks - Germany&Norway - 5 points!
2000-01-24 19:00:30 +00:00
Zeev Suraski
adec56938e
Fixes
2000-01-24 17:29:15 +00:00
Zeev Suraski
e6ba28b680
Fix an elusive bug
2000-01-22 17:02:48 +00:00
Zeev Suraski
62114c1806
Destructors no longer return ints, the low level problem it was intended to solve is long gone now...
2000-01-17 17:33:37 +00:00
Zeev Suraski
ee08b81aab
- Make zend_hash_apply() (and friends) reentrant and much, much quicker
...
- Introduce zend_hash_graceful_destroy(), which allows the destructor functions to
use zend_hash_apply() and/or zend_hash_graceful_destroy()
- Switch to zend_hash_graceful_destroy() in the resource list shutdowns
2000-01-16 20:59:03 +00:00
Zeev Suraski
caaeb9ff12
Fix a bug in call_user_function_ex()
2000-01-15 22:52:24 +00:00
Andi Gutmans
bdefd5da15
- Change IS_UNSET -> IS_NULL
2000-01-04 13:22:58 +00:00
Zeev Suraski
f2d703e916
- Nuke undefined_variable_string
...
- Introduce IS_UNSET
1999-12-31 13:56:59 +00:00
Zeev Suraski
b7a5b3c309
- Generalize the fast cache mechanism
...
- Add the HashTable struct to the fast cache mechanism
1999-12-27 19:07:33 +00:00
Zeev Suraski
235386b245
Change ALLOC_ZVAL() semantics
1999-12-26 21:21:33 +00:00
Andi Gutmans
62b2087a84
- Create two new macro's. ALLOC_ZVAL() and FREE_ZVAL(z) and make Zend use
...
them.
1999-12-24 15:22:11 +00:00
Andrei Zmievski
80bab9d939
We're using ZVAL's now.
1999-12-21 17:14:31 +00:00
Zeev Suraski
223c674c2a
- Made things work again (Thies, everybody - please check the latest CVS and see if you're
...
still getting any problems)
- Changed the interface of call_user_function_ex() to support returning of references
1999-12-19 18:54:40 +00:00
Andi Gutmans
213d0e2fb2
- More fixes related to the return references patch
...
- eval_string() and call_user_function_ex() still don't work.
- The libzend tree is untested and might not be stabl yet.
1999-12-19 06:39:17 +00:00
Zeev Suraski
ced9cee10c
- Implement return by reference:
...
- In function declaration instead of the return statement
- In the assignment phase
- Implement ability to turn off support for call-time pass by reference
1999-12-15 20:15:32 +00:00
Sascha Schumann
70df2d7478
Fix some warnings
1999-12-05 16:23:45 +00:00
Andi Gutmans
5463dd5b38
- Add use support (behaves like require, but will not use the same file twice)
...
- Add import support (behaves like include, but requires parentheses; will not
use the same file twice; Currently, it is not yet properly implemented, and
only behaves like include)
1999-11-30 20:15:04 +00:00
Zeev Suraski
6358c6631b
- Optimize class instanciation
...
- Fix constant instanciation for array elements inside objects
1999-11-21 18:11:10 +00:00
Andi Gutmans
3cd140cdef
- Weird that this compiled for me.
1999-11-16 20:31:29 +00:00
Andi Gutmans
1c0f136405
- Hooray. This might actually work. (I hope)
1999-10-03 20:06:21 +00:00
Andi Gutmans
86357a9c27
- Move is_ref back to being an unsigned char and not a bit field.
1999-10-01 23:31:39 +00:00
Andi Gutmans
4dd47ffbc1
- Remove locking support completely
1999-10-01 23:26:00 +00:00
Andi Gutmans
59d5462a6a
- Stop using the locking mechanism and start using refcount.
...
Now we know when we need to free but we still need to support it
1999-09-28 17:37:14 +00:00
Andi Gutmans
b56fd4602f
- First part of the patch which makes reads use ptr and not ptr_ptr.
1999-09-28 16:03:09 +00:00
Andi Gutmans
4fff0386ac
- Changed Ts{}.var to Ts{}.var.ptr_ptr.
1999-09-26 05:45:18 +00:00
Thies C. Arntzen
20ee106672
no // in the sources please
1999-09-17 12:16:21 +00:00
Zeev Suraski
023cb6474b
Fix a crash bug in case of aborted execution
1999-08-27 21:21:04 +00:00
Zeev Suraski
aa8b27ba1d
Better debug macros
1999-08-27 19:17:19 +00:00
Andi Gutmans
02822cbc33
- Damn. It wasn't a correct fix. This should do it.
...
When the zval ** are equal we don't want to assign_ref, in any other case
I can think of we do want to assign_ref.
1999-08-26 07:33:53 +00:00
Andi Gutmans
2c88f2950c
- Fix leak when global is used in the global scope.
1999-08-26 07:26:15 +00:00
Zeev Suraski
50bfff5502
Fix #2012
1999-08-17 22:31:45 +00:00
Zeev Suraski
720d32f581
Fix a few leaks
1999-08-07 23:04:01 +00:00
Zeev Suraski
0487650536
Fix a bug in call_user_func_ex()
1999-08-06 21:43:49 +00:00
Zeev Suraski
f95edc016b
Introduce call_user_func_ex()
1999-08-06 15:24:10 +00:00
Andi Gutmans
741ca16711
- Fixed various inheritance problems & Andrey's leak
1999-07-28 17:59:55 +00:00
Andi Gutmans
bf8c6dbd99
- Get rid of C++ comments
1999-07-20 13:01:30 +00:00
Zeev Suraski
8d1de13aef
0.91 update
1999-07-19 20:02:12 +00:00
Andi Gutmans
e3daad2d67
- Should fix the memory leak when returning from the main scope.
1999-07-18 17:33:51 +00:00
Zeev Suraski
b5b1117760
License update
1999-07-16 14:58:16 +00:00
Sascha Schumann
138dd94c8d
disable zend_handle_sigsegv
1999-07-15 12:17:34 +00:00
Zeev Suraski
dc933fc50b
Woops, fix.
1999-07-10 12:44:56 +00:00
Zeev Suraski
909590ba7b
Put the garbage in the garbage bin
1999-07-10 11:47:16 +00:00
Zeev Suraski
cccd2445ee
Get rid of AiCount completely
1999-07-10 11:45:23 +00:00
Zeev Suraski
2a6da7814c
Step 4:
...
Move to a 7-bit counter (not fully implemented yet)
1999-07-09 20:43:59 +00:00
Zeev Suraski
6ec1acbe32
Phase 3:
...
Use a single bit to mark IS_REF variables
1999-07-09 18:19:48 +00:00
Zeev Suraski
5f62c347c7
Step 2:
...
Rename is_ref to EA
1999-07-09 17:44:41 +00:00
Zeev Suraski
81d901b14d
Step 1 in nuking the garbage collector:
...
- Change the hash destructor to return int
- Don't kill the bucket on hash_destroy if the destructor returns 0
1999-07-09 17:24:47 +00:00
Zeev Suraski
81f5522210
Fix the mess in SIGSEGV handling, hopefully
1999-07-09 07:35:13 +00:00
Zeev Suraski
da9faa2c3a
* Make the output handling of variables much, much cooler.
...
Uses zend_make_printable_zval() instead of convert_to_string() now:
$foo = true;
print "\$foo is $foo";
will now print
$foo is true
(instead of "$foo is 1", earlier).
Also, with objects, it automatically tries to call __print() and use it as a printing
function.
For example:
class foo {
function __print() { return "Foo Object"; }
};
$foo = new foo;
print $foo;
will print "Foo Object".
1999-06-11 10:44:26 +00:00
Zeev Suraski
b484f40c31
* Fix foreach() that receives a non array argument
...
* Clean up some C++ comments
1999-06-09 21:02:59 +00:00
Zeev Suraski
cf757f7c89
Fix that GLOBALS leak. We were explicitly adding GLOBALS to the main symbol table,
...
but there's no reason to do it (INIT_GLOBALS takes care of it if necessary.)
1999-06-04 12:22:19 +00:00
Andi Gutmans
52ec64359c
Fixes
1999-05-31 18:33:12 +00:00
Sascha Schumann
88029643d0
* fix some casts
...
* introduce unary_op_type - cleaner than casting data voids to function ptrs
1999-05-30 13:28:56 +00:00
Zeev Suraski
cf4a2c3bfc
That got fucked up when we went back to using uninitialized_zval
1999-05-29 23:37:26 +00:00
Zeev Suraski
7068d4a201
*** empty log message ***
1999-05-29 11:02:37 +00:00
Zeev Suraski
741b816136
* Support getThis() for internal functions.
...
* Fix 'new object or die' and AiCount issue thoroughly (earlier fix didn't
work with the optimizer).
* Add new macros for standardized definition of classes.
* Only report AiCount problems if shutdown was not silent.
1999-05-28 12:06:59 +00:00
Zeev Suraski
033858e13d
Avoid crashing if an error occurs before we open the first file.
1999-05-25 22:55:13 +00:00
Zeev Suraski
1250c43a39
* Add struct name to all typedef's so that they can be debugged with MSVC
...
* Fix an AiCount bug - list(...) = $var was using $var multiple times, and thus
causing AiCount to be decreased multiple times even though it was increased only
once for $var. Mark all FETCH_DIM's so that they won't decrease AiCount, and only
decrease AiCount on the last FETCH_DIM.
* Fix a stupid bug - forgot to pass CLS_C to some compiler function. For some reason
MSVC doesn't report these :I
1999-05-22 16:10:51 +00:00
Zeev Suraski
080105f79f
Give more information and save log lines in memory leak reports
1999-05-22 11:20:56 +00:00
Zeev Suraski
2493f68018
* Fix debugger+interactive mode bug
...
* Recognize whether an extension is with debug information or not
1999-04-27 11:00:59 +00:00
Zeev Suraski
7a87fcbbda
Thread safety patch. We're still not quite there but it compiles again, and
...
more logic has been implemented.
1999-04-21 03:49:09 +00:00
Andi Gutmans
e1e2226b92
- Fix various memory leaks.
1999-04-13 19:28:03 +00:00
Andi Gutmans
3fcc6511f6
* Optimize argument_stack top lookup
...
* Fix a nasty bug in zend_ptr_stack_clean()
1999-04-13 17:03:10 +00:00
Zeev Suraski
533f135987
Remove unnecessary stack
1999-04-12 21:50:49 +00:00
Zeev Suraski
15be5f0b4a
Destroy the resource list after destroying the symbol table, otherwise the
...
auto-destructor for resources are run when the resource list is no longer valid
1999-04-12 18:40:18 +00:00
Zeev Suraski
39a7f4c306
This patch is a go. Not fully optimized yet, but working properly.
...
Prepatch tagged as BEFORE_STACK_PATCH.
1999-04-12 18:29:09 +00:00
Zeev Suraski
d1d96d04c6
Remove an unused variable
1999-04-07 23:09:09 +00:00
Andi Gutmans
573b46022c
Zend Library
1999-04-07 18:10:10 +00:00