[racket] handin-server errors

From: jmj at fellowhuman.com (jmj at fellowhuman.com)
Date: Mon Jan 23 16:54:58 EST 2012

Hi all,

Continuing my quest to get the handin-server set up, I've been trying to
get a simple checker working.  Two problems have arisen:

1) I followed the procedure in the help docs, creating a checker.rkt file
in the assignment directory, and headed the file with
  #lang handin-server/checker
which provoked an error saying that handin-server/checker/lang was not
found in my collections path.  I found that it worked if I modified the
line to
  #lang s-exp handin-server/checker
So my question is, is that what I should be doing?  (For the record, the
handin-server collection _is_ in my collections path.)

2) With that modification, I tried writing a simple checker:

;; -- checker.rkt --
#lang s-exp handin-server/checker

(check: :language   '(special beginner)
        :users      pairs-or-singles-with-warning
        (!integer TRY)
        (!procedure f 1))
;; -- end checker.rkt --

When I attempt to hand in a file from DrR, it behaves as I would expect
when f is not defined in the file -- i.e., it signals an error -- but when
f *is* defined, I get this error:

"submit error: while evaluating f:
  eval:2:0: f: expected a function call, but there is no open parenthesis
before this function in: f"

This suggests to me that the handin server is evaluating ``f'' in the
(check: ...) expression, using BSL.  My assumption based on the docs was
that !procedure is a macro, and thus shouldn't be evaluating its first
argument as an expression.  Is there something I'm misunderstanding?  What
can I do to fix this?


Posted on the users mailing list.