<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<font face="Helvetica, Arial, sans-serif">Hi,<br>
<br>
With all the recent list sign-ups we've had some questions raised
off-list. I'd like to address these one time, for the group,
instead of one-by-one. The questions:<br>
</font>
<ol>
<li><font face="Helvetica, Arial, sans-serif">I want to write to a
<b>destroyed-on-exit</b> in-memory database (SQLite) or <b>destroyed-on-exit
</b>tied hash (BDB) = THIS IS OK</font></li>
<li><font face="Helvetica, Arial, sans-serif">My code depends on
modules that write temp files that persist between executions
= THIS IS BENT*</font></li>
<li><font face="Helvetica, Arial, sans-serif">My code requires a C
compiler on the system = THIS IS BENT**</font></li>
</ol>
<font face="Helvetica, Arial, sans-serif">If your code/design looks
like item number 1 in the list above, we're not so concerned about
your tied hash writing to the filesystem or /dev/shm because we've
decided to completely roll back the server before every code
execution that happens. Yup. It will take mere seconds to roll
back the server to its state before any code ran. Because of
this, we still discourage other kinds of disk-writes; we'd rather
not deviate from rules around which existing code has already been
designed. We're just going to make darn sure that any sneaky disk
writes are completely non-existent between your test runs.
Fairness must be assured.<br>
<br>
**Now if your code falls into a "THIS IS BENT" category, you're
still welcome to compete, and even win, but <u>you'll be doing so
in a separate competition category</u>, simply called "rule
benders".<br>
<br>
Why allow rule benders? Because we still want to see how fast
things can go. We asked for a Pure Perl solution, with the only
exception being that your code could depend on XS-based (that
means compiled C extensions) modules from the CPAN that were
released <i>prior</i> to the beginning of the hackathon.
Strangely enough, those rules get blurry when you start using CPAN
modules that depend on Inline::C or that otherwise need access to
a C compiler on the system at the time when the code runs.<br>
<br>
To John and I, this is a type of code optimization that isn't
based on Perl, but instead based on C. You can argue how much of
it is Perl and how much of it is C in terms of lines of code in
one language or the other, but you can't really easily prove how
much of the performance gains were Perl-based and how much of them
were XS-based) and we aren't going to NYTprof your code just to
find out.<br>
<br>
What it comes down to in terms of fairness is that Perl code which
might have lost the competition on its own will then have won by
virtue of the inclusion of low-level optimizations that just
aren't in keeping with the spirit of the contest as it was
intended -- but which are still awesome! We'd like to see what
can be achieved through this kind of go-baby-go,
nitrous-oxide-injected, turbocharged Perl, but in your own
category of competition.<br>
<br>
So go for it. If you want to be a bender, let's see what you've
got. Bring it, benders.<br>
<br>
--Tommy Butler, John Fields<br>
<br>
<br>
</font>
</body>
</html>