On 12/29/06, Abigail <abig...@abigail.be> wrote:
On Thu, Dec 28, 2006 at 12:10:13PM -0600, Peter da Silva wrote:
>
> 1. Perl is not an open system. There's only one source tree for Perl, and
> the API is still under Larry Wall's control.

Yes, for Perl5, there's currently one source tree. But this wasn't
true in the past (Perl on for Windows; macperl), and isn't true for
perl6. For perl6 there are currently two ongoing implementations:
Pugs, implemented in Haskell, and Parrot, a virtual machine for dynamic
languages implemented in C.

The fact that there's one source tree for Perl has several not unrelated
causes: Perl is a moving target; there's no formal specification; perl
is complex, there just aren't enough people who are both willing and
knowledgable to do another implementation of Perl. There's probably also
less reason to have more than one Perl implementation than there is to
have more than one Unix implementation, or more than one C compiler.

Part of the reason there is only one source tree is the source control
system and patch application model that we use.

We use perforce with a small number of committers. Only committers
have direct access to the source control repository in any way.

I personally would prefer we switch to an alternate source control
system that supports distributed repositories. In fact at some point
in the future I plan to propose that we switch to git for exactly this
reason.

I have no problem with a small number of committer having control of
the main tree. However it annoys me no end that I cant have read
access to the repository, and that the only way I can interact with it
is via the web or by synchorinizing patches. I would very much prefer
to be able to provide a git patch with my full local change history
than the current approach.

The truth is however that doing any of this is work, and that
Activestate currently funds the source control set up in terms of
server maint and etc and unless they agree or somebody else sets up
with the required funds it probably wont happen.

OTOH, there is PCRE (Perl Compatible Regular Expressions), a C library
implementing Perl style regular expressions.

And there is dialog between Philip and myself regarding syntax changes
in the regex engine. In fact some changes made in the 5.9.5 line are
now effectively locked in because Philip implemented them for
compatibility in PCRE 7 (released a few weeks ago.)

As for the API under Larry Wall's control, perl5 is maintained/developed
by p5p, an open mailinglist where anyone can send in patches, propose
change, etc. A handful of people have commit bits, and one person acts
as chief executer officer. A function that rotates.

The only annoying thing about our model is that non committers have no
direct access to the repository.

I'd say that Perl is an open system. One is free to write a another
implementation - and you can freely use the current source code to
seed your implementation.

Yes, its always possible to fork. Why one would do so I dont know, but
it is possible.

Yves

--
perl -Mre=debug -e "/just|another|perl|hacker/"

Reply via email to