Re: [PATCH] Deprecate use of stdio
| From: | Wez Furlong | Date: | Fri, 02 May 2003 10:56:08 +0000 |
| Subject: | Re: [PATCH] Deprecate use of stdio | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-1157@lists.php.net to get a copy of this message | ||
+1 from me, but we need to make an extra effort to stress test the
lexer (the ini file parser as well as the language parser) in our QA
process.
Also, for the sake of binary compatibility (not sure just how much of an
issue this is here), its "nicer" to add the zend_open function pointer
to the end of the utility functions structure, rather than in the
middle.
What do Zeev/Andi think of this?
--Wez.
On Fri, 2 May 2003, Sascha Schumann wrote:
> The following patches are aimed at deprecating the use of
> stdio by the script lexer in PHP 4, because certain stdio
> libraries impose restrictive limits on the number of open
> handles*.
>
> The patches have been split functionally for the benefit of
> the reviewer.
>
> Patch 1 adds a stream interface which fills in a
> zend_file_handle. This is simply a modified copy of the
> open_as_file function.
>
> Patch 2 adds zend_open() which expects the implementation to
> fill in a zend_file_handle.
>
> Patch 3 makes PHP supply a zend_open implementation.
>
> Patch 4 modifies the lexer skeleton so that it can read using
> POSIX functions and stdio. It also makes
> open_file_for_scanning use zend_open.
>
> * Background: Even the most modern Solaris ships with a stdio
> library which cannot handle fds over 255. This severely
> limits any web server which may open more than 255 fds per
> process, because it won't be able to parse PHP scripts
> anymore.
>
> I've evaluated integrating sfio into the build process, but
> as it turns out, a full and complete integration would be a
> lot more complex than addressing the issue up-front.
>
> - Sascha