Wednesday, June 15, 2011

How to prepare an environment for testing your submission in advance

For people who are still having difficulties in preparing the environment for testing your submission in advance, here is a summary.  All the information here is unofficial, unsupported, unguaranteed and may be corrected or updated anytime with no explicit notice.  (In particular, we cannot answer questions like "how do I install XXX" where XXX is not our software.)  Additional information from the readers (as comments to this post) is welcome (though we cannot guarantee their correctness, either).
  • If you own a Windows (or Linux) PC with any Intel VT capable processor (or almost any AMD64 processor), turn it on in the BIOS of your PC (if necessary), install VirtualBox or VMware Player (or whatever virtual machine software you like), and install Debian squeeze for amd64 (which also supports Intel 64) on it.
  • If you own a 64-bit Intel Mac, install VirtualBox (or whatever virtual machine software you like) and install Debian squeeze for amd64 (which also supports Intel 64) on it.
  • Of course, you may also install Debian squeeze for amd64 (which also supports Intel 64) on a physical (as opposed to virtual) machine if you can.
  • Otherwise, install Debian squeeze for i386 on any virtual (or physical) machine with any x86 processor, including 32-bit PCs and 32-bit Intel Mac.  In this case, be sure to include in your submission all the dynamically linked libraries (if any) needed for your program, except for those already provided in the ia32-libs package of Debian.
  • Only in the worst case, submit source code with an automatic compilation script.  (Of course, interpreted programs that do not need compilation are no problem at all, as long as the interpreter is available on our environment or included in your submission.)  Details of the submission procedure will be announced along with the task description when the contest starts.
Please do not be afraid - all of these are much easier than they might seem.  (The contest chair had no experience of installing any 64-bit OS or any recent Linux distribution—and had not even heard of VirtualBox!—but it took only a little more than an hour to install Debian squeeze for amd64 on VirtualBox, including the time for searching the Web and reading the documents.)  Thank you for your cooperation!

13 comments:

  1. Well, is there some registration for contest available? Contest will start in two days, so it'll be good to register for it (and take our old good team name =) ).

    ReplyDelete
  2. No, as stated in

    http://www.icfpcontest.org/2011/05/contest-announcement.html

    no advance registration or entry fee is required. Just submit your
    program according to the instructions on the web page. We recommend
    you read all the posts in http://www.icfpcontest.org/ carefully.

    ReplyDelete
  3. Just wanted to report that I too have very little experience with VMs or with Linux, and was able to set up Debian under VirtualBox quite easily. I was also able to write a run a few simple programs in my favorite languages, and finally figured out how to share my home directory to Windows machines with Samba (although I'm sure shared folders would have worked too). Lastly, I set up a DropBox account so I should have no problems uploading my final submission.

    For a while I was only going to have access to a 32-bit machine, so I was a bit concerned about putting 72 hours of hard work in only to be disqualified in the end, concerned enough to consider changing my choice of language (C++). But it sounds like most 32 bit binaries should just work, the organizers will be accomodating to those that don't, and anyways I have a 64 bit machine now, so it's all good. :-)

    Thanks for all the hard work you've put in organizing this year's competition! I know you have to put up with a lot of complaining, but all in all the ICFP contest is a consistently fantastic competition, put together entirely by hardworking volunteers, and I look forward to it every year. I have every reason to believe this year will be no different.

    ReplyDelete
  4. IRC: #icfp-contest on Freenode

    (The usual channel which has so far been reused every year. There are already quite a few people there, come join us!)

    ReplyDelete
  5. It seems to be impossible to install debian squeeze on my MacBook Pro, neither by Parallels nor by VirtualBox.
    Anyway, so I have to send you my solution untested on a "supported client".
    Nevertheless I thank you for the organization of this contest and wish all of us good luck.

    ReplyDelete
  6. Although we cannot provide technical support for everyone, details about your problem (why it seems impossible, error messages etc.) may help other people (and us). Thanks!

    ReplyDelete
  7. ... VirtualBox freezes while starting the installation process (expert install says not a valid kernel: "this kernel requires an x86-64 CPU, but only detected an i686 CPU. Unable to boot - please use a kernel appropriate for your CPU") and Parallels is unable to detect the cdrom. After several hours of googling and trying to fix my issues I give up. ;-)

    ReplyDelete
  8. I too have a Macbook Pro; I surmise that it is only a 32-bit system. You might try one of the 32-bit Debians: http://cdimage.debian.org/debian-cd/6.0.1a/i386/iso-cd/debian-6.0.1a-i386-netinst.iso for example.

    ReplyDelete
  9. I am impatient to see the task description. :)
    Isn't it the time to announce it?

    ReplyDelete
  10. I had the same problem. While creating the new VM in VirtualBox just make sure you choose Debian (64-bit) as your OS. Hope this helps !!

    ReplyDelete
  11. For what it is worth, VirtualBox + Debian64 works on an ancient 2006 MacBook, even with a 32 bit OS. Note that when creating a virtual machine, you have to explicitly set the virtual processor to be a 64 bit one.

    ReplyDelete
  12. The contest starts at 00:00 June 17 UTC.
    It's very soon, within 10 miniutes.

    ReplyDelete
  13. ... thank you guys! The explicit setting of the 64-bit Debian does the trick.

    ReplyDelete