On Sun, 25 Feb 2007 08:26:45 -0800, Jeffrey Cunningham jeffrey@cunningham.net wrote:
If I try to access a page like that using: links, lynx, wget, mozilla, firefox, or any html parsing entity I can think of they don't stop functioning, signal an error, or whatever you want to call it. They give me their best approximation of the content. Seems like that ought be the goal here, or at least a possibility.
In an automated process, signaling an error means that processing has stopped (or 'died'). The source of the error signal may be in flexi-streams (I have read the discussions in the that list), but its drakma that has to deal with its consequences.
You are missing two crucial points:
1. The applications you listed are just that - monolithic applications. You either use them for what they are intended or you leave them alone. They'd better be as permissible as possible.
Drakma, OTOH, is a library - a tool or building block used by programmers to build applications. It should do what it advertises to do correctly - not more and not less. And if that's not what the programmer expected, he can tweak it as much as he wants. (That doesn't imply that he modifies the library itself, but as Drakma is open source he can do even that, if deemed necessary.)
2. In Common Lisp, signalling an error doesn't mean that processing has stopped. If that is news to you, you might want to read, for example, the chapter about conditions and restarts in Peter Seibel's book.
How do the above mentioned applications manage this problem? Certainly not by magic.
In this specific case, they're usually doing it the same way you can do it with Drakma and FLEXI-STREAMS - they insert some kind of replacement character. I don't see where the problem is.
Cheers, Edi.