On Mon, 2008-04-21 at 17:02 -0700, Mark Glines wrote:
> 1.  It seemed more relevant than some stuff that's already in
> parrot.  (I have more machines with OpenGL installed than have
> postgresql, for example.)

Ditto, but of course, I'm biased.  :-)

> 2.  The author (Geoff) was responsive, willing and able to fix issues as
> they arose.  Thus, if someone had a problem, we also had someone
> motivated to fix it.

Very much so.  I figured if I wasn't responsive, my patch had no hope.

> 3.  We didn't have a release pending, thus we are not in feature freeze.

As I mentioned in another message, this timing was intentional on my
part.

> And we also need a document defining what steps an implementer should
> follow when adding or modifying configuration steps.  You are right, the
> process for OpenGL was a bit rocky, but in my defense, "I didn't know
> any better".  Actually, I don't really know much at all about the
> config system, or the testing thereof.

Ditto that.  And for someone who is also trying to learn the ins and
outs of Parrot itself, this was a significant part of the challenge to
creating an acceptable patch.  I finally had to say "I expect breakage,
so best to choose my timing well, tell people I expect failures, and
respond to bug reports as fast as possible."

> docs/configuration.pod doesn't
> seem to mention tests at all.  Maybe if it did, then the next time
> someone like me comes along and breaks everything, then you'll have
> something to whack them over the head with.

This seems a bit harsh.  It's been some years since I followed Linux
kernel development, but as I recall there used to be a 1-2 week period
after each point release when new and possibly risky stuff was allowed
to go in, knowing that there would be time to deal with the issues
before the next freeze.  Since we have fixed monthly release cycles, I
propose the same for Parrot -- the week following each release, the
barriers to entry for risky patches should be lowered somewhat.  At the
very least, this would allow new contributors like myself (or existing
contributors working on unfamiliar parts of Parrot) to have a chance to
get in-progress work accepted, knowing there will be time to fix
problems, without always facing too many hurdles to acceptance.

> So I guess my idea of the the status quo is, "until we can split our
> thousands of obscure features into separate packages, we sorta just
> have to live with them".  But maybe we could have a happy medium:
> suppose you only get opengl when you specify --enable-opengl on the
> command line?  Or it could be generated from "make opengl" or by
> running "make" in a special directory or some such?  This kind of
> mechanism might not be good in the long term, but in the short term, it
> should prevent people from stomping on each other so much.

Actually, I would reverse these.  In the long term, a scheme including
--enable-foo flags seems reasonable (we already have --disable-foo, and
the OpenGL steps respect --disable-opengl).  In the short term, I think
it's a bad idea, for the same reason that I think optimized parrots
should be built by default.  Anything that is not built by default risks
not getting tested sufficiently now (when there is ample time to fix
problems) before we get close to Parrot 1.0 (at which time if we
discover a large problem, we are stuck with some hard decisions).

> Another note, slightly off-topic: does OpenGL actually need a
> configuration/detection step at all?  I notice neither SDL or
> PostgreSQL seem to have one.  Maybe they're detecting everything at
> runtime, or maybe their generated stuff runs from make instead of from
> configure?

I don't know this for a fact, but I believe that both of these predate
the modern configuration/detection system, are not really integrated in
the sense that everything Just Works after "perl Configure.pl; make",
and don't have to address issues like different vendors providing
incompatible headers.  (In my case, different GLUT vendors disagreed
about what the different GLUT API versions meant, which makes API
versioning ... suboptimal.)

> On the other hand, the config system is modularized into
> nice neat little steps, which makes them terribly easy to write and
> maintain, so it seems a shame not to use them. :)

Well, I wouldn't call them "terribly easy to write", but I do think the
basic config design makes a lot of sense, and legacy components (like
the aforementioned SDL and PostgreSQL) should probably be updated to use
this system.  For what it's worth, though the process was difficult, I
am happy with the results of using the official config system for my
OpenGL code.


-'f


Reply via email to