<story><title>Autoconf makes me think we stopped evolving too soon</title><url>https://rachelbythebay.com/w/2024/04/02/autoconf/</url></story><parent_chain></parent_chain><comment><author>titzer</author><text>Autoconf is one of the absolutely hilarious things about UNIX. On the one hand, we&amp;#x27;ve got people optimizing kernels down to the individual instructions (often doing very unsafe dirty C tricks underneath), sometimes with super-clunky and overly complex APIs as a result...and on the other hand you have all the shell script absolute nuttery like the behemoth heap of kludges that is autoconf. It&amp;#x27;s crazy to me the disconnect.&lt;p&gt;And, oh by the way, underneath? Shells have some of the absolutely bonkersly dumb parsers and interpreters; absolutely embarrassingly dumb stuff like aliases that can override keywords and change the parsing of shell script. The fact that some (most) shells interpret a shell script one line at a time, and that &amp;quot;built-ins&amp;quot; like the syntax for conditions in ifs looks like syntax but might be little binaries underneath (look up how &amp;quot;[&amp;quot; and &amp;quot;]&amp;quot; is handled in some shells--it might not be!).&lt;p&gt;What a wild irony that all the ickiest parts of UNIX--shells and scripts and autoconf and all that stringly-typed pipe stuff, ended up becoming (IMHO) the most reusable, pluggable programming environment yet devised...</text></comment>
<story><title>Autoconf makes me think we stopped evolving too soon</title><url>https://rachelbythebay.com/w/2024/04/02/autoconf/</url></story><parent_chain></parent_chain><comment><author>mid-kid</author><text>You can pre-answer most autoconf sections using &amp;#x2F;etc&amp;#x2F;config.site, and a system distributor can create an &amp;#x2F;usr&amp;#x2F;share&amp;#x2F;config.site[1]. It&amp;#x27;s just really hard to get right, nobody uses it effectively.&lt;p&gt;Autoconf also has a config.cache[2], which it uses to store answers to reuse across multiple of the same checks and reruns of the configure script.&lt;p&gt;[1]: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.gnu.org&amp;#x2F;software&amp;#x2F;autoconf&amp;#x2F;manual&amp;#x2F;autoconf-2.63&amp;#x2F;html_node&amp;#x2F;Site-Defaults.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.gnu.org&amp;#x2F;software&amp;#x2F;autoconf&amp;#x2F;manual&amp;#x2F;autoconf-2.63&amp;#x2F;h...&lt;/a&gt;&lt;p&gt;[2]: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.gnu.org&amp;#x2F;software&amp;#x2F;autoconf&amp;#x2F;manual&amp;#x2F;autoconf-2.65&amp;#x2F;html_node&amp;#x2F;Cache-Files.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.gnu.org&amp;#x2F;software&amp;#x2F;autoconf&amp;#x2F;manual&amp;#x2F;autoconf-2.65&amp;#x2F;h...&lt;/a&gt;</text></comment>