Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:1164 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 36646 invoked by uid 1007); 2 May 2003 15:38:13 -0000 Message-ID: <20030502153813.36640.qmail@pb1.pair.com> To: internals@lists.php.net Reply-To: jay@php.net Mail-Copies-To: jay@php.net Date: Fri, 02 May 2003 11:38:11 -0400 References: Lines: 53 User-Agent: KNode/0.7.2 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit X-Posted-By: 216.94.11.234 Subject: Re: [PATCH] Deprecate use of stdio From: jay@php.net (Jay Smith) I've been playing with sfio on Solaris quite a bit recently and I've had our site working on iPlanet with sfio for a couple of weeks. Seems to be doing okay so far with something between 4.3.1 and 4.3.2. Getting sfio to link was a bit of pain in the arse at first, but it came down to a couple of simple LIBS arguments to get it going. As you say, fixing the problem at the root would be preferable, but sfio might be a decent intermediary step. I can test the patches and such on Solaris 8 SPARC, and if you (or anybody who needs it, within reason of course) would like access to a Solaris shell, I can arrange it. (It's slightly limited by a 300 MB quota, but that's pretty much it.) J 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