[racket-dev] New error messages for *SL

From: Guillaume Marceau (gmarceau at gmail.com)
Date: Wed Jul 6 05:59:30 EDT 2011

I just pushed a commit that updates the error messages of the teaching
languages.  With this update, *SL now agrees with the rules of the error
composition guidelines we sent last month.

If you try the *SL languages from the git repository, you will now see that
error messages restrain themselves to a smaller vocabulary base. The
are now simpler, and more consistent between error messages. The error
of check-expect, world and universe are now consistent with those of the
language itself. I also updated the documentation to the new vocabulary, and
cleaned their layout a bit.

Here are a few examples of the changes you will see.

      old error message                        new error message
---------------------------------      ------------------------------------

image: name is not defined, not a      image: this variable is not defined
parameter, and not a primitive name

planes-direction: this selector        planes-direction: expects 1 argument,

expects 1 argument, here it is         but found none

provided 0 arguments

define: expected a name for the        define: expected a variable, but
function's 1st argument, but found     found something else
something else

function call: expected a defined      function call: expected a function

function name or a primitive           after the open parenthesis, but found

operation name after an open           a number

parenthesis, but found a number

cons: second argument must be of       cons: second argument must be a
type <list or cyclic list>, given 1    list, but received 1 and 2
and 2


This is a somewhat large patch, and it does not limit itself to changing
strings, as one might expect. I had to change a fair amount of code to get
new error messages working, notably in places where *SL leaked error
messages from the professional language.

So, to everyone reading this,

[1]    Please make sure all the code you use to teach it still works
      If something breaks, e-mail me and I will try to address the problem
      right away.

[2]    If you are the author of a teachpack, please update your error
      to match this new style. You can follow the error message completion
      guidelines, which are now in the main documentation under the "How to
      Design Programs Teachpacks" header. Send me e-mail if you need help.

[3]    There is a layout problem in my new documentation I need help with.
      tried to abstract the common text between the documentation of the
      different levels. Possibly because I didn't do it correctly, the macro
      am using confuses the layout engine, and it is now inserting lots of
      spurious new lines whenever there is a @defform. Look at the
      documentation for beginner's COND, you'll see what the problem is.

As always, let us know what you think, feedback is welcome, etc.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20110706/2a5cae31/attachment.html>

Posted on the dev mailing list.