<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>