<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments on: PHP pains</title>
	<atom:link href="http://jfxpt.com/2022/php-pains/feed/" rel="self" type="application/rss+xml" />
	<link>http://jfxpt.com/2022/php-pains/</link>
	<description>The search for invariants</description>
	<pubDate>Tue, 28 Apr 2026 13:41:44 +0000</pubDate>
	<generator>http://polimedia.us</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jacob Welsh</title>
		<link>http://jfxpt.com/2022/php-pains/#comment-2645</link>
		<dc:creator>Jacob Welsh</dc:creator>
		<pubDate>Fri, 29 Mar 2024 18:56:39 +0000</pubDate>
		<guid isPermaLink="false">http://fixpoint.welshcomputing.com/?p=179#comment-2645</guid>
		<description>There was a "direct IO" but it was removed in 5.1.0 because "In all other cases, the standard filesystem functions are more than adequate."

The interactive shell mode (php -a) doesn't work, even when built with readline support (as confirmed by php -m).</description>
		<content:encoded><![CDATA[<p>There was a "direct IO" but it was removed in 5.1.0 because "In all other cases, the standard filesystem functions are more than adequate."</p>
<p>The interactive shell mode (php -a) doesn't work, even when built with readline support (as confirmed by php -m).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob Welsh</title>
		<link>http://jfxpt.com/2022/php-pains/#comment-2644</link>
		<dc:creator>Jacob Welsh</dc:creator>
		<pubDate>Fri, 29 Mar 2024 18:43:06 +0000</pubDate>
		<guid isPermaLink="false">http://fixpoint.welshcomputing.com/?p=179#comment-2644</guid>
		<description>A &lt;a href="http://jfxpt.com/library/php5-manual/function.stream-set-write-buffer.html" rel="nofollow"&gt;nice example&lt;/a&gt; of the "manual" talking straight nonsense:

&lt;blockquote&gt;If buffer is 0 then write operations are unbuffered. This ensures that all writes with fwrite() are completed before other processes are allowed to write to that output stream.&lt;/blockquote&gt;

Otherwise, some things that we learn can't be done reliably in php:

&lt;ul&gt;&lt;li&gt;Getting random bytes from the OS (random_bytes requires v7)&lt;/li&gt;
&lt;li&gt;Opening a file such as /dev/urandom without buffering (the 'read' counterpart to the above requires v5.3.3)&lt;/li&gt;
&lt;li&gt;Opening a file at all (thanks fopenwrappers)&lt;/li&gt;
&lt;li&gt;Getting the length of a string (thanks mbstring.func_overload)&lt;/li&gt;
&lt;li&gt;Creating a new session (i.e. new identifier) without touching any that might exist at the current identifier&lt;/li&gt;
&lt;li&gt;Loading a session if one exists, without creating a new one&lt;/li&gt;
&lt;/ul&gt;

Basically, you're required to think like a monkey in order to get anything done here.</description>
		<content:encoded><![CDATA[<p>A <a href="http://jfxpt.com/library/php5-manual/function.stream-set-write-buffer.html" rel="nofollow">nice example</a> of the "manual" talking straight nonsense:</p>
<blockquote><p>If buffer is 0 then write operations are unbuffered. This ensures that all writes with fwrite() are completed before other processes are allowed to write to that output stream.</p></blockquote>
<p>Otherwise, some things that we learn can't be done reliably in php:</p>
<ul>
<li>Getting random bytes from the OS (random_bytes requires v7)</li>
<li>Opening a file such as /dev/urandom without buffering (the 'read' counterpart to the above requires v5.3.3)</li>
<li>Opening a file at all (thanks fopenwrappers)</li>
<li>Getting the length of a string (thanks mbstring.func_overload)</li>
<li>Creating a new session (i.e. new identifier) without touching any that might exist at the current identifier</li>
<li>Loading a session if one exists, without creating a new one</li>
</ul>
<p>Basically, you're required to think like a monkey in order to get anything done here.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
