At 07:23 PM 3/10/00 -0800, [EMAIL PROTECTED] wrote:

>Here is a patch that trims configure.com + subconfigure.com down by
>1300 + bytes by removing redundancies between the two and trimming down
>some of the C<$ IF var .eqs. "Yes"> stuff in the latter.  There is a _lot_
>more room for improvement as we move toward stuffing redundant code (like
>compiling, linking, writing out findhdr programs etc.) into gosub labels
>and/or subroutines.  We should also be thinking about using the config.sh ->
>config.com as well as the Policy.sh -> Policy.com type methods that are
>already in place on more posixly oriented systems.

All on the list 'o things for 5.6.1.

>BTW I just noticed that for those variables that are determined by
>configure.com the general design is:
>
>   $!configure.com  EXAMPLE 0
>   $ foo = "bar"
>   $ @subconfigure.com
>--->
>   $!subconfigure.com
>   $ perl_foo = "''foo'"
>   ...
>   $ WC "foo='" + perl_foo + "'"
>
>but notice that instead of using only one local symbol for every significant
>config.sh variable the design uses two: foo and perl_foo.  This is wasteful
>of local symbol table space and won't run on CLI constrained machines.

There aren't that many symbols in configure.com, though it has grown since 
the original. Subconfigure.com, on the other hand, has scads of them--one 
for each variable in config.sh. That's way too many, but it seemed like a 
good idea at the time. You'll notice that all the variables that hit 
config.sh are in a perl_ format. I'd intended originally to have a loop 
through all the symbols that matched perl_* and write them out rather than 
write them all individually, but that didn't work out.

>We should instead be doing things like this:
>
>   $!configure.com  EXAMPLE 1
>   $ foo = "bar"
>   $ @subconfigure.com
>--->
>   $!subconfigure.com
>   $ WC "foo='" + foo + "'"

I don't think any of the symbols in configure.com actually get written 
directly to config.sh.

>   $!configure.com  EXAMPLE 2
>   $ if f$search("[-]config.com") .nes. "" then @[-]config.com
>   ...
>   $ if f$type(foo).eqs."" then foo = "bar"
>   $ @subconfigure.com
>--->
>   $!subconfigure.com
>   $ WC "foo='" + foo + "'"

I'd planned something similar, though not quite like that. Local symbols 
defined in config.com would go away, and global ones would pollute.

>The design of the Bourne shell version is such that it pauses to let you
>edit config.sh before it even tries to use it to do Makefile.SH -> Makefile
>et al.  Another thing is that if the Bourne shell version finds a config.sh
>it will run:
>
>      . ./config.sh
>
>which is equivalent to @config.com on VMS.
>
>In other words the design allows you to influence the build with shell
>scripts and/or env vars.

I like that idea--we'll get something like it for 5.6.1. (I hadn't figured 
on allowing command-line overrides, but it's simple enough to do, and makes 
life easier.


>OK enough babbling here's the patch, Dan provided you don't disagree with
>any of it I'd appreciate it if you could fold this into your working copy
>before doing your diff.  Please note that I've not sent this to p5p, Jarkko,
>or Sarathy and they won't see any of it unless one of us does send it in.

It's a bit big, but it looks OK. I'm holding off until RC2 only because 
we're so close and Charles was in there too. It might wait until the 
overhaul, though I'd rather see it in sooner than later.

                                        Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to