Later on we will want to delay the write fetches even longer until after their
resulting expression is parsed. The way it is now, will make it very easy
to delay as long as we need.
- Fix switch() freeing code to only free current function's switch expressions.
- I have a feeling break expr; in a switch where expr > 1 leaks because it
won't free all of the expressions. Fix is probably not trivial.
- Fixed a stack leak. Functions that had late argument binding were set up as
INIT_FCALL_BY_NAME but were using DO_FCALL and not the corresponding
DO_FCALL_BY_NAME.
- I commented PHP_FUNCTION(strtotime) in datetime.c because it stopped
win32 from compiling. This needs to be fixed!!!
- Check out libzend to compile the tree now.
* The error generated by a failed class inheritence wasn't properly
displaying the file in which he error occured.
* Inheritence didn't work if the parent class had uppercase letters in it.
* 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.
* 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
to char[1], these checks should have been changed to Bucket.nKeyLength==0
* Support runtime declaration of functions. I ended up changing the grammar
to catch top level functions vs. nested functions. The reason is simple -
if we don't have functions properly declared at compile-time, function calls
cannot be resolved at compile time, and have to be resolved at runtime, which
ends up being much much slower (without the optimizer, that is).
It's no biggy though, the grammar change isn't that bad.