[plt-scheme] Handin Server checkers for v4?
I was playing around with the handin-server using the 4.0.2.6 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 4.0.2.6
: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/4.0.2.6/doc.....
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).
Thanks,
/Keith
Dr. Keith Decker
Assoc. Professor, Computer & Information Sciences
University of Delaware