I've finished a new version of Configure which splits up the giant
script into a bunch of small files and moves all of Configure's files
into a new config/ directory.  I just need a few guinea pigs^W^Wtesters
to make sure it works okay on various systems, especially systems with
hint files.

I would send this as a patch, but it moves a lot of files and creates
many new directories, so the patch would be huge.  Instead, I'm putting
a copy of Parrot with the new Configure in it.  In a few hours, a 600KB
tarball should appear on the CPAN:

        $CPAN/authors/id/B/BR/BRENTDAX/parrot/parrot-cfg.tar.gz

This is a full Parrot distribution with the new Configure.  Unpack it to
an empty directory, run the normal Configure/make/make test, and report
the results.

The new Configure is fully functional, except for reconfig, which needs
some reworking to work under the new model.  A screen paste of one of my
Configure sessions is below my sig.

It's been tested on Windows and Linux; all tests pass.  The directory
was last cvs updated a few days ago, so some recent bugs may not be
fixed.

Special thanks to Melvin--I had been trying to figure out a bug for two
days, and he took ten minutes to diagnose the problem.  Thanks also to
Robert, who pushed me to write this (and then pointed out all the
deficiencies in the design :^) ).  (And yes, this time Configure *does*
have an actual design, described in the ~200 lines of POD at the bottom
of Configure.pl.)

Share and enjoy.

--Brent Dax <[EMAIL PROTECTED]>
@roles=map {"Parrot $_"} qw(embedding regexen Configure)

blink:  Text blinks (alternates between visible and invisible).
Conforming user agents are not required to support this value.
    --The W3C CSS-2 Specification


C:\Brent\Visual Studio Projects\Perl 6\parrot-cfg\parrot>perl
Configure.pl
Parrot Version 0.0.5 Configure 2.0
Copyright (C) 2001-2002 Yet Another Society

Hello, I'm Configure.  My job is to poke and prod your system to figure
out
how to build Parrot.  I'll also ask a few questions along the way,
unless you
passed in the '--defaults' flag on the command line.

Since you're running this script, you obviously have Perl 5--I'll be
pulling
some defaults from its configuration.

Checking MANIFEST...done.
Setting up Configure's data structures...done.
Loading platform hints file...done.

Okay, I'm going to start by asking you a couple questions about your
compiler and linker.  Default values are in square brackets; you can
hit ENTER to accept them.  If you don't understand a question, the
default will usually work--they've been intuited from your Perl 5
configuration.

What C compiler do you want to use? [cl]
How about your linker? [link]
What flags should your C compiler receive? [-nologo -O1 -MD -DNDEBUG
-DWIN32 -D_CONSOLE -DNO_STRICT ]
And your linker? [-nologo -nodefaultlib -release    -machine:x86]
What libraries should your C compiler use? [oldnames.lib kernel32.lib
user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib
ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib
winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib]
Do you want a debugging build of Parrot? [n]

Thanks.  Now I need a little information on certain types.
Same rules as the last section.

How big would you like your integers to be? [long]
And your floats? [double]
What's your native opcode type? [long]

Now I have to find out what opcode files you would like to compile into
your
Parrot.

The following opcode files are available:
  core.ops io.ops obscure.ops rx.ops
Which opcode files would you like? [core.ops io.ops rx.ops]

Parrot sometimes has experimental systems.  I'll now ask about
any that currently exist.  Answer 'n' unless you know otherwise.

Enable experimental networking? [n]

Probing for C headers...done.
Determining some sizes...done.
Computing native byteorder for Parrot's wordsize...done.
Figuring out how to pack() Parrot's types...done.
Figuring out what formats should be used for sprintf...done.
Determining if your C compiler is actually gcc...done.
Determining architecture, OS and JIT capability...done.
Verifying that the compiler supports function pointer casts...done.
Determining if your compiler supports computed goto...done.
Generating config.h...done.
Writing Parrot::Config module...done.
Generating Makefiles...done.
Moving platform files into place...done.
Okay, we're done!

You can now use `make' (or your platform's equivalent to `make') to
build your
Parrot. After that, you can use `make test' to run the test suite.

Happy Hacking,
        The Parrot Team

Reply via email to