Network.CGI changes

Bjorn Bringert bringert at cs.chalmers.se
Thu Jan 24 17:03:58 EST 2008


Hi Frederik,

I agree with your comments about the headaches of Haskell library  
stability. I made the change because it seemed like the old library  
had no users. I should put my money where my mouth is,  
Network.CGI.Compat is now back in the cgi package.

/Bjorn

On Jan 22, 2008, at 18:28 , Frederik Eaton wrote:

> Hi Bjorn,
>
> Well, I don't know what the solution is. As I have said, I think it
> would be best to keep Network.CGI.Compat. That way, users of the old
> module just have to change the module name, plus they don't have to
> hack cgi-compat to get it to compile when cgi is already working.
>
> A typical project of mine uses 10 or more packages, and something that
> makes me reluctant to use Haskell is the experience that after a few
> years I will end up having to maintain separate versions of
> significant numbers of those packages if I want something I wrote to
> stay working. Haskell is supposed to be good for writing large
> projects, but large projects need stable libraries or they become a
> maintenance nightmare. It's rather worrying to see that people seem to
> think that if I don't have time to participate actively in the mailing
> lists or upload stuff to hackage, then my code doesn't exist...
>
> Maybe there is a high cost to keeping Network.CGI.Compat in the cgi
> package, but I don't see any reason other than an aesthetics, which
> seems like less of a priority than backwards compatibility.
>
> Frederik
>
> On Tue, Jan 22, 2008 at 05:31:01PM +0100, Björn Bringert wrote:
>> Hi Frederik,
>>
>> (I'm CC:ing the libraries list, so that anyone who wants to have  
>> Network.CGI.Compat back in
>> the cgi package can shout.)
>>
>> That exact module actually used to exist in the cgi package as  
>> well (it implemented the
>> complete API of the old Network.CGI), but after a few releases I  
>> removed it since it didn't
>> seem to have any users. That was quite a long time ago, and you  
>> are the first person to
>> complain.
>>
>> The purpose of cgi-compat is actually not to provide  
>> Network.CGI.Compat, but rather to be
>> installable on older GHC versions, hence the main module name  
>> Network.NewCGI.
>>
>> I'm not sure if there is sufficient demand for adding  
>> Network.CGI.Compat back into the cgi
>> package. The old Network.CGI seemed to have very few users, due to  
>> to it's restrictions.
>> You can always get Network.CGI.Compat from here, and include it in  
>> your program:
>> http://www.cs.chalmers.se/~bringert/darcs/cgi-compat/Network/CGI/ 
>> Compat.hs
>>
>> /Björn
>>
>> Frederik Eaton wrote:
>>> Dear Johannes,
>>> Thanks, that works for me.
>>> Bjorn, perhaps it would be easier to put these five lines in a  
>>> module
>>> (Network.CGI.Compat?) in the new package, rather than having people
>>> maintain and download a separate cgi-compat package? Perhaps the two
>>> other functions in the old CGI interface can be implemented in terms
>>> of the new API as well?
>>> Best wishes,
>>> Frederik
>>> On Mon, Jan 21, 2008 at 09:50:46AM +0100, Johannes Waldmann wrote:
>>>> If you need the old "wrapper" function, then use something like  
>>>> this:
>>>>
>>>> wrapper :: ([(String,String)] -> IO Html) -> IO ()
>>>> wrapper f = runCGI $ do
>>>>
>>>>    e <- getInputs
>>>>    a <- lift $ f $ e
>>>>    output $ renderHtml a
>>>>
>>>> best regards, Johannes Waldmann.
>>>>
>>
>
> -- 
> http://ofb.net/~frederik/



More information about the Libraries mailing list