[LWN Logo]

To:	linux-kernel@vger.rutgers.edu
Subject: OT: PerlOS---the horrible, horrible dream
From:	buhr@stat.wisc.edu (Kevin Buhr)
Date:	02 Mar 2000 11:42:01 -0600

I had a nightmare last night.

See, Perl 6 had been released, and it wasn't a standalone
interpreter---it was a free POSIX wannabe implemented entirely in
Perl.  The usual suite of unixy system calls was there, though most
took regular expressions, like so:

        stat /\.c$/;
        kill /\bforkbomb\b/;

I was subscribed to the Perl 6.0 development mailing list,
"linux-perl@vger.rutgers.edu", though "perl-kernel" would have been a
more suitable name---bad dream-logic, I guess.

Anyway, the list regulars were giving patient explanations to new Perl
developers who wanted to reimplement the kernel in C++ or gratuitously
break Perl or POSIX compatibility.  There were also the usual angry
messages from new Perl users who had stumbled across the list and were
demanding to know why upgrading from Perl 5.005 (the intepreter) to
Perl 6.001 (the OS) had replaced Windows.

In a (dream-logic) twist on Linux odd/even version numbering, I seem
to remember knowing that odd major version numbers were interpreters
while even major version numbers were operating systems (used to
develop new feature sets to be released in the next interpreter).  Of
course, this fact was clearly documented, so it was their own fault
for installing beta operating system code instead of the stable
interpreter code they really wanted.

I forget who the key contact was for the stable Perl 5 interpreter
release---I know it wasn't Alan Cox, because he was busy coordinating
an important security patch release for Perl 4, the old OS version.

Anyway, someone had just sent a 9500-line patch to the list.  It added
explicit reference counting to all kernel data structures.  In
addition to the expected barrage of hate mail, Linus had joined the
fray---there was no way in HELL he was going to add this UGLY, UGLY
code to the Perl kernel when Perl already supported internal reference
counting and there was a kernel interface to break circular references.

Again, thanks to dream-logic, even though this was definitely a
mailing list, it was also interactive, so I was explaining, in real
time, that it was a serious security hole to allow the system call
hash to be modified by non-root users: $Kernel::_syscall{setuid} = &mysub.

Alan, together with Alexander Viro, were ganging up on me, making fun
of me and telling me that you *had* to trust your users because there
was no way to secure the system from someone who could log in.

That's all I remember.  Except, if anyone is interested, the source
code for Perl 6.0 (written in Perl, of course---don't ask me how one
bootstraps an interpreter to run on itself) uses Linux-style indenting
and is quite readable.  It also uses C-style comments.  I do not know
if there are quotations from Tolkien at the top.

Kevin <buhr@stat.wisc.edu>

P.S.  I just remembered that Linus was *also* explaining, in another
thread, why a Perl microkernel would be far inferior, performance-wise
to the current monolithic kernel.

I think I'm going to take a break from computers.  I hear organic
farming is rewarding.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/