<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>I’m trying to set up the handin-server to use in my class this semester and I’ve run into a few problems that I hope someone can help with.</div><div><br></div><div>I’ve got the server up and running and the Handin button appears in DrRacket. I currently have only one assignment, called a1. Everything works fine when submitting this sample homework file (on the client machine):</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font face="Courier">;; contents of student submission a1.rkt</font></div><div><div><font face="Courier">(check-expect (double-inc 4) 9)</font></div></div><div><div><font face="Courier">(check-expect (double-inc 0) 1)</font></div></div><div><div><font face="Courier"><br></font></div></div><div><div><font face="Courier">(define (double-inc x)</font></div></div><div><div><font face="Courier">  (add1 (* 2 x)))</font></div></div><div><font face="Courier"><br></font></div></blockquote>with this checker (on the server machine):<br><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><br></div><div><font face="Courier">;; contents of a1/checker.rkt</font></div><div><font face="Courier">(module checker handin-server/checker</font></div><div><font face="Courier">  (require handin-server/grading-utils)</font></div><div><font face="Courier">  (pre:</font></div><div><font face="Courier">   (check-deadline))</font></div><div><font face="Courier"><br></font></div><div><font face="Courier">  (check: :language  '(special beginner)</font></div><div><font face="Courier">   (update-submission-timestamp!)</font></div><div><font face="Courier">   (add-header-line! (get-submission-timestamp))</font></div><div><font face="Courier">   (add-report-line! (get-submission-timestamp))</font></div><div><font face="Courier"><br></font></div><div><font face="Courier">   (!test (double-inc 2) 5)</font></div><div><font face="Courier">   (!test (double-inc 3) 7)</font></div><div><font face="Courier">   (!test (double-inc 0) 1)</font></div><div><font face="Courier">   (!test (double-inc -5) -9))</font></div><div><font face="Courier"><br></font></div><div><font face="Courier">  (post:                                                           </font></div><div><font face="Courier">   #f)</font></div><div><font face="Courier">  )</font></div></blockquote><div><br></div><div>So far, so good. Now, I want to add a <font face="Courier">!procedure</font> check before the tests for <font face="Courier">double-inc</font>, like this:</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><div style="margin: 0px; font-family: Menlo;">(!procedure double-inc 1)</div></div></blockquote><div><br></div><div>This produces the following error:</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font face="Courier">submit error: while evaluating double-inc:</font></div><div><font face="Courier">  eval:1:0: double-inc: expected a function call, but there is no open parenthesis before this function</font></div><div><font face="Courier">  in: double-inc</font></div></blockquote><div><br></div><div>So, I change the language to <font face="Courier">(special advanced)</font> and the error goes away. This brings me to my first question:</div><div><br></div><div>(1) How can I set it up so that the checker runs in racket and the evaluator for the tests run in BSL (for example)?</div><div><br></div><div>Next, I tried putting in the coverage check. </div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font face="Courier">coverage? #t</font></div></blockquote><div><br></div><div>This produces the error (even though all lines are covered by <font face="Courier">check-expect</font>s):</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font face="Courier">submit error: your code is not completely covered by tests: uncovered expression at 1:0 ()</font></div></blockquote><div><br></div><div>(2) How can I get the coverage check to work?</div><div><br></div><div>Finally, I tried putting <font face="Courier">write-report</font> in the <font face="Courier">post</font>:</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font face="Courier">(write-report)</font></div></blockquote><div><br></div><div>And here’s the error:</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font face="Courier">commit error: start-timer: arity mismatch;</font></div><div><font face="Courier"> the expected number of arguments does not match the given number</font></div><div><font face="Courier">  expected: 3</font></div><div><font face="Courier">  given: 2</font></div><div><font face="Courier">  arguments...:</font></div><div><font face="Courier">   0</font></div><div><font face="Courier">   #<procedure></font></div></blockquote><div><br></div><div>(3) What’s up with the error from <font face="Courier">start-timer</font>?!</div><div><br></div><div>Any advice would be greatly appreciated. Also, if anyone has any sample checkers that they wouldn’t mind sharing with me, that would be terrific. I’d love to see what others have already developed.</div><div><br></div><div>Thanks,</div><div>Suzanne</div><div><br></div><div>––––––––––––––––––––––––––––––––––––</div><div><br></div><div>For completeness, here’s my <font face="Courier">config.rktd</font>:</div><div><br></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><font face="Courier">((active-dirs ("a1"))</font></div><div><font face="Courier"> (port-number 17979)</font></div><div><font face="Courier"> (use-https #t)</font></div><div><font face="Courier"> (session-timeout 500) ;; default is 300                                            </font></div><div><font face="Courier"> (session-memory-limit 40000000)</font></div><div><font face="Courier"> (allow-web-upload #f)</font></div><div><font face="Courier"> (default-file-name "handin.rkt")</font></div><div><font face="Courier"> (max-upload 500000)</font></div><div><font face="Courier"> (max-upload-keep 5)</font></div><div><font face="Courier"> (user-regexp #rx"^[a-z][a-z0-9]+$")</font></div><div><font face="Courier"> (user-desc "alphanumeric string")</font></div><div><font face="Courier"> (username-case-sensitive #f)</font></div><div><font face="Courier"> (allow-new-users #t)</font></div><div><font face="Courier"> (allow-change-info #t)</font></div><div><font face="Courier"> (master-password "9f8699ae058b59f72f179789519817fb") ;; default is #f              </font></div><div><font face="Courier"> (log-output #t)</font></div><div><font face="Courier"> (log-file "log")</font></div><div><font face="Courier"> (web-log-file "web-log") ;; default is #f                                          </font></div><div><font face="Courier"> (extra-fields</font></div><div><font face="Courier">  (("Full Name"</font></div><div><font face="Courier">    #rx"^[A-Z][a-zA-Z-]+(?: [A-Z][a-zA-Z-]+)+$"</font></div><div><font face="Courier">    "your full name, no punctuation, properly capitalized")</font></div><div><font face="Courier">   ("Email"</font></div><div><font face="Courier">    #rx"^[a-z]+[0-9]*@(indiana|iupui|iupuc|iue|iuk|iun|iusb|ius)<a href="smb://.edu$">\\.edu$</a>"</font></div><div><font face="Courier">    "your Indiana University email address")</font></div><div><font face="Courier">   ("Lab Section"</font></div><div><font face="Courier">    ("A" "B" "C" "D" "E" "F" "G" "H")</font></div><div><font face="Courier">    "the name of the lab in which you are enrolled: A, B, C, D, E, F, G, or H")))</font></div><div><font face="Courier"> (hook-file "hook.rkt")</font></div><div><font face="Courier"> (deadline (("a1" (2015 1 20 23 59 59) 9)))</font></div><div><font face="Courier"> )</font></div></blockquote><div><br></div><div><br></div><div><div style="margin: 0px; font-family: Menlo;"><br></div></div><div><br></div><div><br></div></body></html>