[9fans] origins of configure

2015-07-09 Thread arnold
So, the history is more than this.

Larry Wall's Configure (capital C) for rn and Perl was the first step
at a shell script to examine system features and generate a config.h.
It was inspirational for autoconf, but autoconf doesn't use any of
its code, as far as I know.

Autoconf was designed to solve real portability problems. In the late 80s
and early 90s there was a huge variety of Unix systems and it was really
hard to know what was available and what wasn't based on simple ifdefs.
The variations were bigger than Erik makes out.

Today, the scale of the problem is reduced, since we have POSIX and
also fewer systems out there. Much of the bloat in the Autotools is
from legacy. But there are still very real portability issues, especially
among some of the fringe *BSD systems. MirBSD in particular is one of
the worst, but that's another rant.

If one were to start over today, one could likely arrive at a simpler
system, but portability problems remain, and they are real.

Arnold


erik quanstrom quans...@quanstro.net wrote:

 confirmed.  it's existence is due to early gnu programs fighting with
 small variations in unix and compilers.  byron's rc used a small script
 to the same effect.  but for the most part, this all could be avoided
 with careful planning and not using esoteric functions.

 gcc also had its own configuration step.  the header rewriting is a vestage 
 of this system.

 - erik


 On Jul 9, 2015 05:31, Jeff Sickel j...@corpus-callosum.com wrote:
 
 
   On Jul 9, 2015, at 5:19 AM, Steve Simon st...@quintile.net wrote: 
   
   FWIW: fgb did a stirling script called config which sets up some 
   environment and runs configure under ape. It doesn't always work but 
   often gets close 
   to generating a config.h as linux intended. 
 
  Configure predates Linux.  That, or my memory of using it to bang my head 
  against the perl wall in the 1980s damaged the register. 
 
  -jas 
 
  … at least you’re not using Xenix 
 
 
 
 From 9fans-boun...@9fans.net  Thu Jul  9 07:52:09 2015
 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
   frenzy.freefriends.org
 X-Spam-Level: 
 X-Spam-Status: No, score=0.0 required=5.0 tests=TIME_LIMIT_EXCEEDED
   autolearn=unavailable version=3.3.1
 X-Envelope-From: 9fans-boun...@9fans.net
 Return-Path: 9fans-boun...@9fans.net
 X-Virus-Scanned: by MailRoute
 Date: Thu, 09 Jul 2015 06:50:06 -0700
 X-Android-Message-ID: 8f71c132-1b4d-4d0c-a741-d0738945f...@email.android.com
 From: erik quanstrom quans...@quanstro.net
 To: Fans of the OS Plan 9 from Bell Labs 9fans@9fans.net
 Content-Type: text/plain; charset=utf-8
 Subject: Re: [9fans] Gawk in 9front-ports
 X-BeenThere: 9fans@9fans.net
 X-Mailman-Version: 2.1.13
 Precedence: list
 Reply-To: Fans of the OS Plan 9 from Bell Labs 9fans@9fans.net
 List-Id: Fans of the OS Plan 9 from Bell Labs 9fans.9fans.net
 List-Unsubscribe: http://mail.9fans.net/options/9fans,
   mailto:9fans-requ...@9fans.net?subject=unsubscribe
 List-Archive: http://mail.9fans.net/private/9fans
 List-Post: mailto:9fans@9fans.net
 List-Help: mailto:9fans-requ...@9fans.net?subject=help
 List-Subscribe: http://mail.9fans.net/listinfo/9fans,
   mailto:9fans-requ...@9fans.net?subject=subscribe
 Sender: 9fans-boun...@9fans.net
 Errors-To: 9fans-boun...@9fans.net
 X-MIME-Autoconverted: from base64 to 8bit by freefriends.org id t69Dq5Ri006148
 Status: R

 confirmed.  it's existence is due to early gnu programs fighting with small 
 variations in unix and compilers.  byron's rc used a small script to the same 
 effect.  but for the most part, this all could be avoided with careful 
 planning and not using esoteric functions.  

 gcc also had its own configuration step.  the header rewriting is a vestage 
 of this system.

 - erik


 On Jul 9, 2015 05:31, Jeff Sickel j...@corpus-callosum.com wrote:
 
 
   On Jul 9, 2015, at 5:19 AM, Steve Simon st...@quintile.net wrote: 
   
   FWIW: fgb did a stirling script called config which sets up some 
   environment and runs configure under ape. It doesn't always work but 
   often gets close 
   to generating a config.h as linux intended. 
 
  Configure predates Linux.  That, or my memory of using it to bang my head 
  against the perl wall in the 1980s damaged the register. 
 
  -jas 
 
  … at least you’re not using Xenix 
 
 
 





Re: [9fans] origins of configure

2015-07-09 Thread tlaronde
On Thu, Jul 09, 2015 at 09:24:57AM -0600, arn...@skeeve.com wrote:
 So, the history is more than this.
 
 Larry Wall's Configure (capital C) for rn and Perl was the first step
 at a shell script to examine system features and generate a config.h.

Using a shell script to generate commands to compile on diverging Unices
was, by the date, already used in G.R.A.S.S. from C.E.R.L. and this
predates Perl and so on. I guess it is not the only example.

[...] 
 Autoconf was designed to solve real portability problems. 

There are two problems with the autotools stuff:

1) Features are fixed for OSes, but the configuring is done other and
other again for every program. What a system offers shall be known; and
what the developers require shall be known too. Autotools was designed
in a world where neither the OS nor the developers exactly know what
they use;

2) Cross-compilation was not in mind, with some features tested by
compiling and running programs. The result is that the majority of
software built with autotools needs to be compiled natively (even
installed on an equal system since the layout is searched on the 
building node);

3) To try to understand what's going on with several steps and huge
configs is out of reach.

Rule: when it takes less time to build a solution from scratch than to
try to understand how to _use_ an existing solution (not to mention
understand), this solution has to be safely stored in /dev/null.

Note: I have put my money where my mouth is : I have built such a
solution: the one publicly used with kerTeX---but it is a side
effect, it was not meant to be released.  And it solves the 1) and
2) and solves too the space problem: when an object is not any
longer necessary, it can be automatically removed, limiting the
space needed to compile to the bare minimum.

-- 
Thierry Laronde tlaronde +AT+ polynum +dot+ com
 http://www.kergis.com/
 http://www.arts-po.fr/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89  250D 52B1 AE95 6006 F40C



Re: [9fans] origins of configure

2015-07-09 Thread arnold
I don't intend to engage in yet another 9fans flame war.  I do not
argue with your analysis or proposal. However, it's based on considerable
hindsight and experience that wasn't available when autotools started.
Additionally, systems in that time period were changing continually.
So it was not always true that what any given system provides is known
in advance.

The autotools (and especially gnulib) are bloated. A better design
is possible.  But it's unfair to say that at the time they could
have done a lot better; I don't think that's true. Hindsight is
always 20/20.

That's all I'll say on the topic.

Arnold

tlaro...@polynum.com wrote:

 On Thu, Jul 09, 2015 at 09:24:57AM -0600, arn...@skeeve.com wrote:
  So, the history is more than this.
  
  Larry Wall's Configure (capital C) for rn and Perl was the first step
  at a shell script to examine system features and generate a config.h.

 Using a shell script to generate commands to compile on diverging Unices
 was, by the date, already used in G.R.A.S.S. from C.E.R.L. and this
 predates Perl and so on. I guess it is not the only example.

 [...] 
  Autoconf was designed to solve real portability problems. 

 There are two problems with the autotools stuff:

 1) Features are fixed for OSes, but the configuring is done other and
 other again for every program. What a system offers shall be known; and
 what the developers require shall be known too. Autotools was designed
 in a world where neither the OS nor the developers exactly know what
 they use;

 2) Cross-compilation was not in mind, with some features tested by
 compiling and running programs. The result is that the majority of
 software built with autotools needs to be compiled natively (even
 installed on an equal system since the layout is searched on the 
 building node);

 3) To try to understand what's going on with several steps and huge
 configs is out of reach.

 Rule: when it takes less time to build a solution from scratch than to
 try to understand how to _use_ an existing solution (not to mention
 understand), this solution has to be safely stored in /dev/null.

 Note: I have put my money where my mouth is : I have built such a
 solution: the one publicly used with kerTeX---but it is a side
 effect, it was not meant to be released.  And it solves the 1) and
 2) and solves too the space problem: when an object is not any
 longer necessary, it can be automatically removed, limiting the
 space needed to compile to the bare minimum.

 -- 
 Thierry Laronde tlaronde +AT+ polynum +dot+ com
  http://www.kergis.com/
  http://www.arts-po.fr/
 Key fingerprint = 0FF7 E906 FBAF FE95 FD89  250D 52B1 AE95 6006 F40C