Tuesday, June 21, 2011

YAUJ-ICFPC2011 Specification

    Language Support for the Submissions 

    for the user "yauj",
    • python is /usr/bin/python2, which is python 2.7.2
    • ruby is ruby 1.9.2p180
    • for F# and other .NET based subissions, we have mono runtime environemnt installed.
    • for java, Sun's jre is installed.

    League Table Format
    Written in haste during the contest, the judge output is minimalistic and includes some tricks I must explain for. Each submission is matched as player0 to every other submission being player1. For the table element for each match, name on the left is player0 and name at the top is player1. It shows three lines:

    601/1 Score Fraction
    242:0 Survivors
    494  Turns

    The denominator of the score fraction is incremented when the match has started. The numerator of the score fraction is incremented when the match is finished, and 100 times the score earned by player0 is added. So, "0/0" means the match is not yet scheduled; "0/1" means that either match is running or something has crashed so that the client failed to report the match result; "1/1" or greater means that the match is finished and is reported to the server.

    The survivors and turns are those reported from the official ltg simulator. The survivors line saying "-1:-1" indicates the official simulator reported invalid output. This may indicate that the submitted program was terminated by failure to execute, wrong output format, timeout, etc... , or bug in my judge system, or...

    For the total score element (rightmost in the league table) the numerator is sum of the numerators from the match elements, and the denominator is 100 times sum of denominators from the match elements, plus one (to avoid division by zero error).

    The ranking table shows the name sorted by the total score element.


    1. Our F# submission is failing to run (Eta-LOng Normal Form). Could you make the output available, I may be able to help explain the problem.

    2. Hello, thanks for your cooperation!

      I have following packages installed:
      extra/mono 2.10.2-1 [installed]
      Free implementation of the .NET platform including runtime and compiler

      When I try to execute it manually, it prints out following error messages:

      installing fsharp from AUR didn't change the result (it's a development, not a runtime library, anyway.)

      [nushio@p01 6_EtaLOngNormalForm]$ ls
      FSharp.Core.dll install p.tgz README run run.exe
      [nushio@p01 6_EtaLOngNormalForm]$ ./run 0
      Missing method .ctor in assembly /home/nushio/ICFP2011/league/yauj/6_EtaLOngNormalForm/run.exe, type Microsoft.FSharp.Core.FSharpInterfaceDataVersionAttribute
      Can't find custom attr constructor image: /home/nushio/ICFP2011/league/yauj/6_EtaLOngNormalForm/run.exe mtoken: 0x0a000001

      Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'FSharp.Core, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
      File name: 'FSharp.Core, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
      [nushio@p01 6_EtaLOngNormalForm]$ ./run.exe 0
      -bash: ./run.exe: cannot execute binary file
      [nushio@p01 6_EtaLOngNormalForm]$

    3. Somehow I had the wrong FSharp.Core.dll! Luckily that is not the case in the version I submitted to the actual contest. I have changed slim-eta.tar.gz so it has the right version.

    4. Now your submission works well on the master node. And I found I forgot to install mono to worker nodes. Your submision will run correctly now, and now we have support for other .NET based submissions. Thank you for participation!

    5. Dear team "The Invisible Imp,"

      your submission assumed a fixed path for java, namely /usr/lib/jvm/java-6-sun/jre/bin/java, but java is not there on our machine.

      We have added the symbolic link for java on that path.

      Thank you for your submission!

    6. dear team yarunee,

      To run your submission, we have created /usr/bin/ruby1.9.1 as a symbolic link to ruby (which is, 1.9.2).