This seems wrong and the doc string for eval-when-compile doesn't suggest
otherwise. If it is right, it would be helpful to explain the difference
between load and eval in the manual.
I see now the difference is because I'm loading the _compiled_ program.
Sorry for the noise.
Nick
(eval-when-compile (require 'cl))
If I do load-library RET gud RET
then gud is loaded and cl is not, as you would expect.
Try M-x load-library RET gud.el RET and discover that your problem has
nothing to do with eval vs load but with source vs byte-compiled code.
Stefan