[Haskell-cafe] source code for haskell web server?

Bjorn Bringert bringert at cs.chalmers.se
Wed Sep 27 07:15:06 EDT 2006

On 4 sep 2006, at 20.24, Tim Newsham wrote:

>> Since there are a lot of modifications of HWS around now, it seems  
>> to be
>> worthwhile to combine the efforts. E.g. I adapted the HWS adaption
>> provided by WASH
>>  http://www.informatik.uni-freiburg.de/~thiemann/WASH/#wsp
>>    for my needs. For instance in Request.hs I removed the call to
>> 'Network.URI.unEscapeString' (which is 'deHex' in fptools/HWS/ 
>> Request.hs,
>> but 'deHex' is 'id') because that affects interpretation of CGI
>> parameters. I also think that this package needs some cleanup and  
>> Cabal.
>> What about a darcs repository at http://darcs.haskell.org/ ?
> I agree its worthwhile to combine efforts.  My only concern is to  
> maintain the code quality.  The original HWS was written quite  
> well.  The plugins extension I found was not of the same code  
> quality. I haven't looked at the WASH modifications, so I don't  
> know how they compare.
> I dont know much about using the haskell.org repository, but I'd be
> happy to contribute to it if there was an HWS repository there...

I seem to have duplicated Tim's efforts before I noticed this thread.  
In order to keep this from happening again, I have put up a darcs  
repo at http://darcs.haskell.org/hws/

It contains the version from fptools-hws (http://cvs.haskell.org/cgi- 
bin/cvsweb.cgi/fptools/hws/) with the following modifications:

- Use the hierarchical libraries.
- Use Data.Map instead of FiniteMap.
- Use Parsec from the hierarchical libraries and removed
   the included old parsec copy.
- Removed ifdefs for compatibility with GHC 4.x and 5.x
   (they wouldn't work with the new imports anyway).
- Use IOUArray in Response.squirt
- Use Cabal for the build system.

It now builds with GHC 6.4.1 and GHC 6.5 (if you add html and regex- 
compat to the build-depends).

If any of you have any other updates, bugfixes etc., you are welcome  
to add them. Maybe we can even get Simon Marlow to update it with the  
current state-of-the art in high-performance concurrent Haskell?

I'm thinking that we should try to keep this version reasonably close  
to Simon's original version, or at least its intent, and work on  
extra features in separate branches.


More information about the Haskell-Cafe mailing list