Hi Sara,

Sorry but I wasn't on IRC so I don't quite understand what you're trying to 
accomplish ;)
Can you please explain? Once I understand what you're trying to accomplish I'll 
be more than happy to provide feedback to the
options list.

Thanks,

Andi 

> -----Original Message-----
> From: Sara Golemon [mailto:[EMAIL PROTECTED] 
> Sent: Sunday, January 14, 2007 8:25 PM
> To: internals@lists.php.net
> Subject: [PHP-DEV] Runtime JIT Proposals
> 
> For reasons best left on IRC, it looks like I'll be working 
> on runtime JIT.  To that end, I've come up with a few 
> proposals of varying complexity and feature-set completeness:
> 
> Option 1:
> Dump support for compile-time JIT and replace it with a call 
> at runtime using the same semantics.
> 
> Advantages: No change in the API (well, no further change 
> anyway, Unicode support pretty much guarantees that things 
> will change regardless).
> 
> Disadvantages: Could someone be relying on compile-time JIT 
> for something already?  Maybe activation triggers an action 
> which has to take place prior to script execution?  For what 
> I've seen JIT isn't in heavy use, but my perceptions on the 
> topic aren't definitive.
> 
> 
> Option 2:
> Leave compile-time JIT alone, and add a second callback for 
> runtime JIT.
> 
> Advantages: Doesn't break BC, and offers extensions the 
> chance to know that the code contains autoglobal references 
> without actually having to act on them unless they're needed.
> 
> Disadvantages: Adds to complexity/confusion by having two 
> separate callbacks for essentially the same action.
> 
> 
> Option 3:
> Extend JIT signature with a "stage" parameter to indicate if the JIT 
> trigger is occuring during compile-time or run-time.  The 
> callback can 
> decide when/if it performs processing using current return value 
> disarming semantics.
> 
> 
> Option 4:
> Include fetchtype and subelement during runtime JIT callback allowing 
> JIT callback to only do work necessary to prepare for the read/write 
> call being performed.
> 
> e.g.
> 
> int php_example_jit_callback(int str_type, zstr str, int str_len,
>      int stage, zval *container, int fetch_type, zval *element);
> 
> Where str_type/str/str_len indicate the name of the variable being 
> JITed, stage is one of COMPILETIME or RUNTIME, container is the 
> autoglobal itself.
> Fetch_type is ZEND_FETCH_(DIM_|OBJ_)?_(R|W|RW), and element is the 
> specific property/offset (only applicable for DIM/OBJ 
> fetches, NULL for 
> plain fetch.
> 
> Advantages: Gives maximum flexibility to the implementation.  In the 
> case of http request encoding, it allows the decoder to differentiate 
> between requests for a single element and fetches which want 
> to retreive 
> the entire array (e.g. foreach).
> 
> Disadvantages: Adds a lot of complexity to the fetching of 
> autoglobals 
> and qand effectively doubles the amount of callback work 
> being done for 
> autoglobal objects.  Will also confuse implementers on what the 
> difference between this fetch callback is and the 
> (read|write)_(dimension|property) callbacks used by objects.
> 
> 
> In response to the suggestion to just turn $_REQUEST (et.al.) into 
> objects with overloaded array access, the big danger there is 
> that the 
> following behavior would change:
> 
> $postdata = $_REQUEST;
> foreach($postdata as $idx => $val) {
>    $postdata[$idx] = some_filter_func($val);
> }
> 
> Were $_REQUEST turned into an object with overloaded array 
> access, these 
> changes to $postdata would modify the values in the original 
> $_REQUEST 
> (due to the reference-like behavior of PHP5+ objects).
> 
> 
> Personally, I like Option 4, but then I like complexity.  I can 
> certainly see going for any of the others, but I want to go with 
> something that the rest of the group can see being 
> appropriately useful.
> 
> If I can get something approaching a semi-consensus on 
> direction, I can 
> have an implementation (or a couple, depending on feelings on the 
> matter) in a few days.
> 
> -Sara
> 
> -- 
> 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

Reply via email to