[plt-scheme] Handin Server checkers for v4?

From: Keith S. Decker (decker at cis.udel.edu)
Date: Wed Aug 6 09:22:27 EDT 2008

I was playing around with the handin-server using the full  
distribution, and was able to get everything work except the example  
checker; I wondered if anyone had a few working checker examples, as  
the checker source has a lot of Scheme macros and I admit my macro  
experience is Common Lisp only :-).

The example I was trying, based on a small change to the example in  
the scribbled doc, was:

(module checker (lib "checker.ss" "handin-server")
   (check: :language  'lang/htdp-intermediate ;;Note :language  
'intermediate didn't work in
           :users     pairs-or-singles-with-warning
           :coverage? #t
           (!procedure Fahrenheit->Celsius 1)
           (!test (Fahrenheit->Celsius  32)   0)
           (!test (Fahrenheit->Celsius 212) 100)
           (!test (Fahrenheit->Celsius  -4) -20)))

placed in a file checker.ss inside an active handin directory. When  
handing in any program, however, this throws the error

"ERROR: Error in your code -- program:1:0: function call: expected a  
name after an open parenthesis, but nothing's there in: (#%app)"

Any thoughts?

Other Notes:

1) For future-Google-searching posterity, if you are new to PLT and  
are trying to install the handin server, the magic incantation (after  
getting the full distribution) is
	setup-plt -l handin-server
The documentation will then be in your local library, so for example  
on a Mac it is in ~/Library/PLTScheme/

2) There are 2 errors in the (otherwise very nice) handin documentation.

First, the Quick Start works great until you get to the last line:  
"Check the status of your submission by pointing a web browser  
athttps://localhost:7980/servlets/status.ss. " Unfortunately, the  
status server is disabled by default, so you need to add  (https-port- 
number 7980) to the config.ss file before trying the web browser bit.  
Took me a while to figure that one out (basically by giving up and  
reading the rest of the doc :-)

Second, by default the Master Password is disabled, and set to #f.  
However, this interacts badly with unix or plaintext passwords because  
the #f (first in the passwords list) causes the good? test inside the  
ormap inside has-password? to throw an immediate error. Works fine if  
you just set a master password.

3) submission directories must be created by hand prior to entry in  
active-dirs in config.ss. The error message was quite clear, but you  
might want to note that in the doc (since all the other directories  
are created on-the-fly by the server code).

Dr. Keith Decker
Assoc. Professor, Computer & Information Sciences
University of Delaware

Posted on the users mailing list.