graceful degradation in the case of errors

Claus Reinke claus.reinke at talk21.com
Thu Feb 15 19:11:06 EST 2007


Hi Neil,

>> 1. when any source module has an error on load, Hugs stops in the middle
>>     of that module, being entirely useless until I comment out the offending
>>     lines, save and reload, or unload everything but the Prelude.
> 
> I find that annoying too, and generally keep a separate WinHugs copy
> open at all times to do :t commands when things break. I thought this
> might be a big architectural change, or I would have suggested it.

if it was haskell, one could just keep a list of successfully loaded modules,
and reload only those after an error message. but even with Mark's functional
c coding, c isn't haskell, so you might be right - being in c certainly keeps me
from looking into it;-). I just thought I'd report it for the record, and for the
brave folks who keep the innards of Hugs up to date.
 
> that for beginners (esp those without loads of computer experience) if
> you have this turned off then they get loads of issues with evaluating
> code which is different to that which is saved. One term demonstrating
> programming and watching people make this error will convince you this
> should be the default of everything! 

I don't think so!-) I've been there with all kinds of other computing issues
for beginners, and even non-beginners. yes, it is annoying if one spends time
debugging non-bugs because of invisible version mismatch (meta-programming 
adds new levels to that kind of fun..).

what I would like to see instead is winhugs changing colour or giving a message
if the loaded version is not the newest version on disk (that is also more or 
less standard behaviour in good editors, I think). a gui ought to assist, not
to dictate presumably better behaviour - beware of the paper clip:-)

that way, beginners, teachers, and advanced programmers out of their depth
have a visual reminder that they are not working with the newest version, but
they remain in control (eg, I sometimes use hugs to experiment with the code
I'm putting together in the editor, referring to definitions already tested and
successfully loaded in the old Hugs session, and I tend to save the editor
session before I switch windows; autoload forces me either to skip the save,
or to interrupt my train of thought to edit the current fragment into something
loadable).

that said, having the option of automatic reload is probably useful, and many 
will just select it for themselves or for their students. but for many others, old
habits die hard!-) 

> That said, its still just an option:
> File / Options / Compile Time / Automatically Reload Modified Files

or :set -A, which I missed. thanks, now switched off. one problem solved!

claus



More information about the Hugs-Bugs mailing list