Btw, for people who truly need the Unicode support I actually do think we might want to consider requiring them to fetch the input variables through a new API and/or object. I don't think we need to make it seamless if the "default" behavior we provide (whatever that ends up being) isn't good enough...
Andi > -----Original Message----- > From: Andi Gutmans [mailto:[EMAIL PROTECTED] > Sent: Saturday, January 27, 2007 9:15 AM > To: 'Sara Golemon'; 'internals@lists.php.net'; 'Andrei > Zmievski'; 'Dmitry Stogov' > Subject: RE: [PHP-DEV] Autoglobal CVs without silence -- Summary > > Hi Sara, > I don't feel to great with this patch. It kind of feels like > twisting the language implementation around for some very > specific problem which probably shouldn't be fixed at this > level. Andrei says performance of Unicode isn't great so it > shouldn't matter too much, but I think a) it's not only about > performance but also about maintainability. The code in PHP 6 > is already much more complex than that of PHP 5 and has > become much harder to maintain. Such additional changes will > make it worse b) There will still be plenty of people who use > PHP 6 in PHP 5 mode. > > I still haven't quite understood why not just do the > detection on the whole auto-global when it's being fetched > (or even during request startup). As Andrei said, it's slow > anyway so for people who need Unicode that should be an > affordable hit. > > Maybe I don't understand the problem in enough detail and it > might make sense for me to talk to Andrei via voice directly, > but I really don't think we should be over eager commiting > this patch. It'll not be good for the engine long term (not > that I don't appreciate your efforts and hard work on this patch). > > Andi > > > -----Original Message----- > > From: Sara Golemon [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, January 23, 2007 11:02 AM > > To: internals@lists.php.net; Andrei Zmievski; Andi Gutmans; Dmitry > > Stogov > > Subject: [PHP-DEV] Autoglobal CVs without silence -- Summary > > > > >> OK. Now your patch will work, but I would like to >> > think about > > more elegant solution. > > >> The problem that I am busy with other work. > > >> Could you please wait a week and then commit it if >> I won't > > return (on the next Tuesday). > > >> > > > Argh. Can we please accelerate this somehow? > > > This patch is necessary for the HTTP request > decoding work in > > PHP 6 and we really should > get it done sooner than later. > > > > > Okay, rewind and reset time. > > > > Dmitry, here's a quick summary of what's being done, how, and why. > > > > Initial Problem: PHP6 needs better http input encoding detection, > > preferably with minimal wasted effort in conversion and limited > > vectors for conversion failure based attacks. > > > > Proposed Solution: Wait until the first time a given input > argument is > > requested before actually converting it. This allows scripts to > > perform their own (potentially more > > relevant) determination of what the correct input encoding is. > > > > Proposed Implementation for this solution: Make JIT be > runtime based > > and fine-grained enough to signal not just the autoglobal being > > fetched, but what specific dimension/property within that > auto global > > is being requested. Using runtime-dimension-JIT to decode input > > arguments as they are requested. > > > > Rejected Implementation: Use object/array-access overloading to JIT > > the values instead. While this solution is the simplest and can be > > done with relatively few LOCs, it breaks assumptions about the GPC > > auto globals (is_array() fails, > > is_object() succeeds, assignments of the autoglobals becomes > > "reference-like"*). In short, this solution introduces BC issues. > > > > ---------------------------------------------------------------- > > > > Next Problem: How to actually make runtime-JIT with dim/prop level > > granularity? > > > > Proposed Solution: Catch fetches during FETCH_DIM/FETCH_OBJ > execution > > handlers. > > > > ---------------------------------------------------------------- > > > > Next Problem: auto_globals aren't processed as CVs, meaning that > > during FETCH_DIM, there's no way to tell if op1 came from an auto > > global or not (since the fetch happened earlier). > > > > Solution (Implemented last week): Remove restriction on CVing auto > > globals by adding a fetch_type field to auto global structure. > > > > ---------------------------------------------------------------- > > > > Next Problem: Silence operator forces non-CV even in > situations where > > a CV is appropriate since the associated fetch_dim/obj op would not > > fall outside of silence scoping. > > > > Proposed Solution (patch from prior email): modify the variable > > parsing routines slightly to rewrite simple fetch ops to CV'd > > fetch_dim/obj ops when appropriate. > > > > ---------------------------------------------------------------- > > > > I'm not meaning to apply pressure (a week doesn't effect my > timetable > > any), I can even move-forward with the next (and > > last) ZE related patch (FETCH_DIM/FETCH_OBJ handling) separate from > > this one. I'm just trying to balance Andrei's timetable on > one side, > > with a desired to not overwhelm you and Andi with ZE patches on the > > other. Hopefully this summary helps everyone get on the same page. > > > > -Sara > > > > * - Sidenote: I refuse to call object behavior "reference > by default", > > I've had too many people notice that it's not actually true > and expect > > me to explain why in 2 minutes without the aid of a whiteboard.in > > > > -- > > PHP Internals - PHP Runtime Development Mailing List To > unsubscribe, > > visit: http://www.php.net/unsub.php > > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php