Re: [Haskell-cafe] hClose: invalid argument (Invalid or incomplete multibyte or wide character)
Hi, Daniel Fischer wrote: On Tuesday 05 October 2010 23:34:56, Johannes Waldmann wrote: main = writeFile check.out ü that's u-umlaut, and the source file is utf-8-encoded and ghc-6.12.3 compiles it without problems but when running, I get hClose: invalid argument (Invalid or incomplete multibyte or wide character) In order to make the behaviour independent of the locale (which is desirable for programs storing state in text files), you can use functions like writeFileUTF8 and readFileUTF8 here: import System.IO writeFileUTF8 file text = withFile file WriteMode $ \handle - do hSetEncoding handle utf8 hPutStr handle text readFileUTF8 file = do handle - openFile file ReadMode hSetEncoding handle utf8 hGetContents handle main = do let s = äöü writeFileUTF8 test.out s s' - readFileUTF8 test.out putStrLn $ unwords [s, ==, s'] Of course using System.IO.UTF8 from utf8-string would also work. HTH, Bertram ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Big Arrays
Hemanth Kapila saihema...@gmail.com writes: Let us say, we are using a bit-array of size 2^43 (that is, a byte array of size 2^40) to store a bloom filter. And let us further assume that we are interested in a false-positive probability of 0.01 Since we are just making up numbers, let us instead say we are using a bit array of size 2^32 - still too large for Int indexing (which was the issue here) but only 500MB in size. That means, I will be able to use this array to represent a set of cardinality 9.18e11 ~ 10^12 ...bringing it down to less than 10^9, easily reached for building an indexing of k-words (tuples) in e.g. the human genome (3GB). But: I'm about to start analyzing Illumina sequencing data, where we have sequences from two individuals of the same species. I'm interesting in the differences between these species, so I might want to index both data sets and screen the sequences of each against the other to identify bits that don't appear in the other. Since I'll have easily tens, maybe a hundred gigabytes of sequence from each, it's not impossible to get into the territory you describe. (In practice, things will be limited by available RAM, sadly still some orders of magnitude less than 2^40 - although apparently SGI can deliver it. I guess I just need a bigger budget.) I was curious to know what sort of programs would be dealing with sets of 10^12 elements. Most likely a program using mutation, and probably not copying, multi-generation GC. Other data sets that have considerable size are acoustics data (I understand a modern sonar deliver about a Gbit/sec continously), and seismic data. Also, for more moderate bodies of data and more complex analysis, you might want to use less frugal data structure, like suffix arrays. -k -- If I haven't seen further, it is by standing in the footprints of giants ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Haskellers.com profiles: advice requested
Hi all, After finally getting OpenID 2 support worked out, I've now put up the Haskellers.com website[1]. Not all features are implemented yet, but the basics are in. One of the most important features is going to be the user profiles, and I wanted some community input on the kind of stuff they'd like to see. For now, I collect email address (spam-protected, don't worry), website, number of years of Haskell experience, and a free-form description. I've also added a skills section, but have purposely not added many. I wanted community input on the kinds of skills. Some ideas: * Web programming * Compiler writing * Write a monad tutorial :/ I see two main questions when it comes to selecting this list of skills: * How granular should we get? For web programming, for instance, should we ask about Yesod, Happstack, Snap, etc? * Should we include non-Haskell skills. I can imagine that employers would like to know that people also have experience with Java/C#/etc, but on the other hand we might want to make this Haskell-specific. One recommendation (from my wife actually) is to have two separate lists: a static list of Haskell-specific skills that users simply checkmark off, and then additional skills that everyone makes up themselves. Other things to consider for the profile: Twitter/Facebook/GChat/AIM accounts, Hackage username, list of packages authored. I'm also planning on adding a real Haskeller feature, which would mean a site admin (they don't exist yet) has verified that you really are a contributing member of the community. I would imagine the threshold for this status would be very low, eg you've written a package or sent email to one of the mailing lists. One last point: for those of you wondering why your profiles aren't showing up on the homepage: you need to verify your email address first. I just added this feature this morning which is why your profiles are not visible. This is simply an anti-spam measure. If it turns out to be insufficient, I might need to add a recaptcha, and if that is still not enough we can make things moderated. But I doubt spam will end up being a real problem. Cheers, Michael [1] http://www.haskellers.com/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskellers.com profiles: advice requested
On 6 October 2010 20:11, Michael Snoyman mich...@snoyman.com wrote: Hi all, After finally getting OpenID 2 support worked out, I've now put up the Haskellers.com website[1]. For me at least, when I try to use my wordpress.com OpenID, I get this message: Do you want to pass your http://ivanmiljenovic.wordpress.com/ identity to ? Should that be saying haskellers.com or something there? For now, I collect email address (spam-protected, don't worry), website, number of years of Haskell experience, and a free-form description. I've also added a skills section, but have purposely not added many. I wanted community input on the kinds of skills. Some ideas: * Web programming * Compiler writing * Write a monad tutorial :/ Well, I've failed to do all three of those... (Then again, I'm not claiming to be a professional Haskeller or wanting work, which makes me question why I just created a profile on haskellers.com...) -- Ivan Lazar Miljenovic ivan.miljeno...@gmail.com IvanMiljenovic.wordpress.com ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Big Arrays
Thanks for the response. That sounds sequence comparison seems very impressive On Wed, Oct 6, 2010 at 2:23 PM, Ketil Malde ke...@malde.org wrote: Hemanth Kapila saihema...@gmail.com writes: Let us say, we are using a bit-array of size 2^43 (that is, a byte array of size 2^40) to store a bloom filter. And let us further assume that we are interested in a false-positive probability of 0.01 Since we are just making up numbers, let us instead say we are using a bit array of size 2^32 - still too large for Int indexing (which was the issue here) but only 500MB in size. That means, I will be able to use this array to represent a set of cardinality 9.18e11 ~ 10^12 ...bringing it down to less than 10^9, easily reached for building an indexing of k-words (tuples) in e.g. the human genome (3GB). But: I'm about to start analyzing Illumina sequencing data, where we have sequences from two individuals of the same species. I'm interesting in the differences between these species, so I might want to index both data sets and screen the sequences of each against the other to identify bits that don't appear in the other. Since I'll have easily tens, maybe a hundred gigabytes of sequence from each, it's not impossible to get into the territory you describe. (In practice, things will be limited by available RAM, sadly still some orders of magnitude less than 2^40 - although apparently SGI can deliver it. I guess I just need a bigger budget.) I was curious to know what sort of programs would be dealing with sets of 10^12 elements. Most likely a program using mutation, and probably not copying, multi-generation GC. Other data sets that have considerable size are acoustics data (I understand a modern sonar deliver about a Gbit/sec continously), and seismic data. Also, for more moderate bodies of data and more complex analysis, you might want to use less frugal data structure, like suffix arrays. -k -- If I haven't seen further, it is by standing in the footprints of giants ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Lambda-case / lambda-if
On 06/10/2010 00:04, Max Bolingbroke wrote: On 5 October 2010 17:38, Henning Thielemann schlepp...@henning-thielemann.de wrote: Richard O'Keefe schrieb: I'd prefer to see something like \ 1 - f | 2 - g but I'm sure something could be worked out. In order to be consistent with current case, maybe in layout mode: \1 - f 2 - g and in non-layout mode \{1 - f; 2 - g} Duncan Coutts also suggested this possibility to me - once I saw it actually liked it rather better than the lambda-case stuff, particularly since it generalises nicely to multiple arguments. I may try to write a patch for this extension instead when I get some free time. A slightly different suggestion from Simon PJ and myself (we agreed on something syntax-related :-) is the following: \case 1 - f 2 - g where the two-token sequence '\ case' introduces a new optional layout context, the body of which is exactly the same as in a case expression. So you could also write \case { 1 - f; 2 - g } if you want. Guards are allowed of course. The motivation for this syntax is: * easy to mentally parse: \ still introduces a function. (better than 'case of' in this respect) * a bit more noisy than just \: I'm not sure what the ramifications of having \ introduce a layout context on its own would be, but I suspect there would be difficulties. Certainly some existing code would fail to parse, e.g. (case e of [] - \x - x+1; (x:xs) - \x - x+2) Cheers, Simon ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskellers.com profiles: advice requested
2010/10/6 Michael Snoyman mich...@snoyman.com: Hi all, After finally getting OpenID 2 support worked out, I've now put up the Haskellers.com website[1]. Not all features are implemented yet, but the basics are in. Would it be possible to be able to login or consolidate two (or more) different OpenID? For example, I would like to identify myself using GMail or Livejournal OpenID. For now, I collect email address (spam-protected, don't worry), website, number of years of Haskell experience, and a free-form description. I've also added a skills section, but have purposely not added many. I wanted community input on the kinds of skills. Some ideas: * Web programming * Compiler writing * Write a monad tutorial :/ I see two main questions when it comes to selecting this list of skills: * How granular should we get? For web programming, for instance, should we ask about Yesod, Happstack, Snap, etc? I think that skill cloud would be nice so I can add my new skills (packages, programs, domain specific knowledge) as I acquire them (or write them). * Should we include non-Haskell skills. I can imagine that employers would like to know that people also have experience with Java/C#/etc, but on the other hand we might want to make this Haskell-specific. One recommendation (from my wife actually) is to have two separate lists: a static list of Haskell-specific skills that users simply checkmark off, and then additional skills that everyone makes up themselves. If we provide some links associated with tags, it would be possible to classify skills according to their relevance to haskell community. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskellers.com profiles: advice requested
On Wed, Oct 6, 2010 at 11:28 AM, Ivan Lazar Miljenovic ivan.miljeno...@gmail.com wrote: On 6 October 2010 20:11, Michael Snoyman mich...@snoyman.com wrote: Hi all, After finally getting OpenID 2 support worked out, I've now put up the Haskellers.com website[1]. For me at least, when I try to use my wordpress.com OpenID, I get this message: Do you want to pass your http://ivanmiljenovic.wordpress.com/ identity to ? Should that be saying haskellers.com or something there? I'll try and see if there's some extra parameter I can provide there. Michael ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Lazy evaluation from Why Functional programming matters
On Tue, Oct 5, 2010 at 9:19 PM, steffen steffen.sier...@googlemail.com wrote: Don't be to disappointed. One can always kinda fake lazy evaluation using mutable cells. But not that elegantly. In the example given above, all being used is iterators as streams... this can also be expressed using lazy lists, true. But one big difference between e.g. lazy lists and iterators is, that lazy values are (operationally) replaced by their result wheres values generated from iterators and streams are not. For example one can use Iterators and chain them together in Java, to achieve more or less the same space and runtime-efficiency found by Stream-fusion in haskell (the Java JIT can abstract loads away, once the iterators are build together). But If you need to access the iterator's values more then once, you have to either force the full iterator into a list or rerun/reevaluate the iterator every time you need a value. Lazy lists are nice, but haskell's laziness is not about lazy lists only. For example lazy evaluation also matters when creating elegant Embedded DSLs... have you ever tried to build a more complex EDSL without laziness and macros? Thanks Ertugrul for the nice primes example. Steffen, Thanks for the explanation. Is there some literature around other lazy entities from the imperative side. I'm currently trying to get my Makefile EDSL to work - not sure, if that could turn complex. My ultimate aim it to write an EDSL for x86 - as in, describe a micro-kernel in haskell, compiling and running which would generate C code ( not sure if it's even possible - but I am really hopeful). Could you send me a sample on how I could use the reader monad for my Makefile EDSL. Regards, Kashyap ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskellers.com profiles: advice requested
On Wed, Oct 6, 2010 at 11:49 AM, Serguey Zefirov sergu...@gmail.com wrote: 2010/10/6 Michael Snoyman mich...@snoyman.com: Hi all, After finally getting OpenID 2 support worked out, I've now put up the Haskellers.com website[1]. Not all features are implemented yet, but the basics are in. Would it be possible to be able to login or consolidate two (or more) different OpenID? For example, I would like to identify myself using GMail or Livejournal OpenID. That's a planned feature, and the database is already designed to support this. For now, I collect email address (spam-protected, don't worry), website, number of years of Haskell experience, and a free-form description. I've also added a skills section, but have purposely not added many. I wanted community input on the kinds of skills. Some ideas: * Web programming * Compiler writing * Write a monad tutorial :/ I see two main questions when it comes to selecting this list of skills: * How granular should we get? For web programming, for instance, should we ask about Yesod, Happstack, Snap, etc? I think that skill cloud would be nice so I can add my new skills (packages, programs, domain specific knowledge) as I acquire them (or write them). Could you describe what you mean by skill cloud here? I was more focused right now on the skills available for selection versus the manner of displaying them. * Should we include non-Haskell skills. I can imagine that employers would like to know that people also have experience with Java/C#/etc, but on the other hand we might want to make this Haskell-specific. One recommendation (from my wife actually) is to have two separate lists: a static list of Haskell-specific skills that users simply checkmark off, and then additional skills that everyone makes up themselves. If we provide some links associated with tags, it would be possible to classify skills according to their relevance to haskell community. Once again, I'm not quite sure what you mean here; could you clarify? Michael ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskellers.com profiles: advice requested
2010/10/6 Michael Snoyman mich...@snoyman.com: * How granular should we get? For web programming, for instance, should we ask about Yesod, Happstack, Snap, etc? I think that skill cloud would be nice so I can add my new skills (packages, programs, domain specific knowledge) as I acquire them (or write them). Could you describe what you mean by skill cloud here? I was more focused right now on the skills available for selection versus the manner of displaying them. Just let us haskellers to specify list of skills in comma-separated list. If someone enters a new skill, it should became visible only when some member of community provide links to information about them. That way I can say C, VHDL, hardware modeling, dynamic dataflow sorting machine and it would meand that I am proficient in C, VHDL, that I specialize in hardware modeling and that I wrote a model of dynamic dataflow CPU. If we provide some links associated with tags, it would be possible to classify skills according to their relevance to haskell community. Once again, I'm not quite sure what you mean here; could you clarify? Each tag will have associated links. Some from community, some from haskeller itself. That way someone can review tags and decide whether they relevant for Haskell community. For example, my dataflow sorting machine was implemented in Haskell, so it is relevant. My C, VHDL and hardware modeling skills aren't that relevant. That way it is up to community to decide the list of skills. It is up to selected members of community to decide their relevance. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Haskell web development entries on the Wiki
On 6 October 2010 12:47, Henning Thielemann thunderb...@henning-thielemann.de wrote: I for instance use http-shed and mohws all the time. They do what they shall do for me. I maintain mohws Please move the ones you use and maintain to the active list! ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Haskell web development entries on the Wiki
On Wed, 6 Oct 2010, Christopher Done wrote: On 6 October 2010 12:47, Henning Thielemann thunderb...@henning-thielemann.de wrote: I for instance use http-shed and mohws all the time. They do what they shall do for me. I maintain mohws Please move the ones you use and maintain to the active list! I'm generally not glad that some people rearrange existing structure and expect that all of the affected authors follow. It's already tedious to catch up with the yearly changes in GHC's package and other base packages (e.g. transformers recently), and annoying when people propose to mark packages as inactive or unmaintained in Hackage whenever the package authors did not update their packages so far (and certainly lose compatibility to older 'base' versions this way). I would be glad if there is no further action to be taken for package authors, who added their packages somewhen in the past and don't see a reason to regularly check whether their packages are still listed in the Wiki, without being marked inactive or so. If you think the re-structuring is necessary, then at least ask the maintainers, whether they still maintain their packages, or just sort the packages according to the degree of activity you assume, but stay away from categorizing the packages in active and inactive based on speculation. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Haskell web development entries on the Wiki
On 6 October 2010 14:16, Henning Thielemann lemm...@henning-thielemann.de wrote: I'm generally not glad that some people rearrange existing structure and expect that all of the affected authors follow. It's already tedious to catch up with the yearly changes in GHC's package and other base packages (e.g. transformers recently), and annoying when people propose to mark packages as inactive or unmaintained in Hackage whenever the package authors did not update their packages so far (and certainly lose compatibility to older 'base' versions this way). I would be glad if there is no further action to be taken for package authors, who added their packages somewhen in the past and don't see a reason to regularly check whether their packages are still listed in the Wiki, without being marked inactive or so. If you think the re-structuring is necessary, then at least ask the maintainers, whether they still maintain their packages, or just sort the packages according to the degree of activity you assume, but stay away from categorizing the packages in active and inactive based on speculation. Okay, don't worry about it, I'll do it! ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Haskell web development entries on the Wiki
On Wed, Oct 6, 2010 at 2:16 PM, Henning Thielemann lemm...@henning-thielemann.de wrote: On Wed, 6 Oct 2010, Christopher Done wrote: On 6 October 2010 12:47, Henning Thielemann thunderb...@henning-thielemann.de wrote: I for instance use http-shed and mohws all the time. They do what they shall do for me. I maintain mohws Please move the ones you use and maintain to the active list! I'm generally not glad that some people rearrange existing structure and expect that all of the affected authors follow. It's already tedious to catch up with the yearly changes in GHC's package and other base packages (e.g. transformers recently), and annoying when people propose to mark packages as inactive or unmaintained in Hackage whenever the package authors did not update their packages so far (and certainly lose compatibility to older 'base' versions this way). I would be glad if there is no further action to be taken for package authors, who added their packages somewhen in the past and don't see a reason to regularly check whether their packages are still listed in the Wiki, without being marked inactive or so. If you think the re-structuring is necessary, then at least ask the maintainers, whether they still maintain their packages, or just sort the packages according to the degree of activity you assume, but stay away from categorizing the packages in active and inactive based on speculation. I agree that it can be tedious to keep up with these changes, but the alternative is stagnation. Just a few years ago, I was in the place of the newbie staring at the wiki pages talking about all the wonderful ways of combining the CGI monad with fastcgi and xhtml and combinators, and something about monad transformer stacks (which I'd never even heard of). If I remember correctly, I gave up on Haskell for a month or so after the intimidation that kind of page introduces. Chris has done an amazing job here of cleaning up content and making it approachable by new users. I think that should be the main purpose of the wiki. If you want to have some documentation that no one else can edit, you can put it on your own site. That's what I've done for Yesod, and appears to be the approach of most of the other actively developed projects out there. It's true that in such a large reworking as Chris has undertaken there will be some accidental miscategorizations, but the alternate you mention (contacting each author before moving an article) is simply untenable: it's difficult to track people down sometimes, it takes a long time to get a response, etc. I'd much rather have a very clean looking wiki page that's missing a few packages than the jumble of confusion we had before hand. Michael ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskellers.com profiles: advice requested
On Wed, Oct 6, 2010 at 11:49 AM, Serguey Zefirov sergu...@gmail.com wrote: 2010/10/6 Michael Snoyman mich...@snoyman.com: Hi all, After finally getting OpenID 2 support worked out, I've now put up the Haskellers.com website[1]. Not all features are implemented yet, but the basics are in. Would it be possible to be able to login or consolidate two (or more) different OpenID? For example, I would like to identify myself using GMail or Livejournal OpenID. By the way, it's now possible to associate multiple identifiers with a single account. Once you're logged in and on your edit profile page, click on the Identifiers tab and log in with your new ID. There's also Facebook support, for those so inclined ;). Michael ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Haskell web development entries on the Wiki
On Wed, 6 Oct 2010, Christopher Done wrote: On 6 October 2010 14:16, Henning Thielemann If you think the re-structuring is necessary, then at least ask the maintainers, whether they still maintain their packages, or just sort the packages according to the degree of activity you assume, but stay away from categorizing the packages in active and inactive based on speculation. Okay, don't worry about it, I'll do it! Thank you! How about mailing to the package maintainers in order to inform they, that the Web application list on the Wiki has changed? I'm afraid not all authors follow haskell-cafe or haskell-web. httpd-shed seems to be missing in Servers. I also like to see HWS mentioned in Servers as it is the ancestor of some Haskell Web Server projects (WASH-wsp, MoHWS, and what was the name of the CGI thing?). For me the Wiki is not only a place that describes cutting edge software but also a place to help understand how things evolved. HWS is still interesting, because its quite basic, so it's still a good start if you like to program your own server. It is not necessary to be maintained in order to be interesting. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Lazy evaluation from Why Functional programming matters
On 06/10/10 11:00, C K Kashyap wrote: My ultimate aim it to write an EDSL for x86 - as in, describe a micro-kernel in haskell, compiling and running which would generate C code ( not sure if it's even possible - but I am really hopeful). Have you seen Potential (http://intoverflow.wordpress.com/2010/05/21/announcing-potential-x86-64-assembler-as-a-haskell-edsl/)? Quote: The language’s goal is to provide a solid foundation for the development of a useful (multi-tasked, multi-processor, etc) microkernel Which sounds like it's exactly what you want. Also, see Harpy (http://uebb.cs.tu-berlin.de/harpy/). Thanks, Neil. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Haskell web development entries on the Wiki
On 6 October 2010 16:33, Henning Thielemann lemm...@henning-thielemann.de wrote: How about mailing to the package maintainers in order to inform they, that the Web application list on the Wiki has changed? I'm afraid not all authors follow haskell-cafe or haskell-web. I could send out a bulk mail requesting authors to have a look and help out improve this part of the wiki. httpd-shed seems to be missing in Servers. I also like to see HWS mentioned in Servers as it is the ancestor of some Haskell Web Server projects (WASH-wsp, MoHWS, and what was the name of the CGI thing?). For me the Wiki is not only a place that describes cutting edge software but also a place to help understand how things evolved. HWS is still interesting, because its quite basic, so it's still a good start if you like to program your own server. It is not necessary to be maintained in order to be interesting. I hadn't heard of httpd-shed. Will you add it to Servers? I think a page about HWS would also be good that shows the history of it and derived projects, if you feel like writing it! I also agree that even the simple examples like HWS are interesting, like CGI; I cleaned up the old CGI article: http://www.haskell.org/haskellwiki/Practical_web_programming_in_Haskell I condensed it visually, and updated links to be more within the wiki and separated, e.g. this page http://www.haskell.org/haskellwiki/Web/Literature/Static_linking because it's useful as a general idea and not focused on CGI specifically. It's definitely not my intention to discard useful information, just to make it more accessible and remove misleading data. Regarding the active/inactive, I think it's a good idea to separate what we know to be actively maintaned -- i.e., * what people are using, * what still has someone maintaining it, * what actually still *compiles*. Here's my reasoning, there are three uses of listing frameworks on the wiki: 1) People looking to survey what's currently available and stable -- i.e. what's alive? 2) People looking to try out Haskell web programming, who want something that they know will have some support and be current, therefore easy. 3) People who are serious about web development and want to survey the whole existing landscape. (1) and (2) don't care or want to have to sift through or waste time on libraries that don't work, or might not work. (3) has the motivation to sift through everything and they want to see the history of everything too. These people too will want to know what's current and working, I think. In this sense I think we are optimising access to the information. What do you think? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] [Off-topic]Functional parsing theory
Hi, all, I've been working in a tool that reads a grammar with associated actions and act on input based on that grammar. I would like to rewrite it in a functional style, but I've not been able to find a theory that would handle any possible grammar with cyclicity and empty productions, and flexibility is more important for this tool than performance. Do you have a suggestion on that? What I'm using now is this (non-functional) article on Earley method: http://www.springerlink.com/content/602270808666074p Thanks, Maurício ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Lambda-case / lambda-if
On 10/2/10, Christopher Done chrisd...@googlemail.com wrote: On 2 October 2010 20:23, Max Bolingbroke batterseapo...@hotmail.com wrote: Do you like this feature and think it would be worth incorporating this into GHC? Or is it too specialised to be of use? If there is enough support, I'll create a ticket and see what GHC HQ make of it. Nice work! I like it and have wanted it for a while, and I know many in the #haskell IRC channel would like it. The case is especially useful. Maybe the if is only useful sometimes. +1 for `case of'... I have called for it on many an occasion in #haskell. Thanks for implementing it, Max! I primarily see it as a way to remove a point from `\x - case x of ...', not a way to augment lambdas with pattern matching, like in `\0 - 1 \n k - k-1'. I suppose both of them work with monadic casing, with the `m =' trick. `\case' or `\case of' would work okay as well, the former Simon suggested, but some keywords *somewhere* would be nice, to avoid a perl-like procession of punctuation. (But the code golfer in me says otherwise.) Matt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Haskell web development entries on the Wiki
On Wed, 6 Oct 2010, Christopher Done wrote: I hadn't heard of httpd-shed. Will you add it to Servers? I think a page about HWS would also be good that shows the history of it and derived projects, if you feel like writing it! It's everything there: http://www.haskell.org/haskellwiki/Haskell_Web_Server I wonder, whether it was mentioned on the old Applications_and_Libraries/Web page - and where is this page, at all? I think we should maintain all the packages mentioned there, also if they are currently not up-to-date. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Haskell Weekly News: Issue 153 - October 06, 2010
Welcome to issue 153 of the HWN, a newsletter covering developments in the [1]Haskell community. It sure has been a while since we last saw one of these. Hopefully the dry spell for the newsletter is now a thing of the past. I sure hope you enjoy it, and give plenty of feedback. As you can see, there are some changes to the contents of the letter. The first, and major change, is the use of Reddit and StackOverflow as aggregators to interesting links around the net. The number of links on each sections is rather arbitrary, I'd be interested in hearing your thoughts about them. This current issue is missing an Announcements section, as I did not have any to put there this time around. Hopefully that will be solved as soon as you start sending them in. I decided that rather than keep on waiting to have all the right pieces in perfectly working order, the priority was to get the newsletter back in circulation as soon as possible. Tweaking can always be done along the way. Some of the sections that I would like to add are: a Hackage report, interesting conversations from the different mailing lists, general community announcements, job opportunities, and the occasional interview with some of Haskell's celebrities. A major event last week were the meetings in Baltimore. Don Stewart collected a list of some of [2]the papers that were presented at the Haskell Symposium. You can find [3]videos from the Haskell Implementors' Workshop, posted by Simon Marlow. From the looks of things, seems like we sure need more than a 767 to fit all Haskellers! Ok. So, what was hot last week? Top Reddit Stories * ANNOUNCE: GHC 7.0.1 Release Candidate 1 -- From (haskell.org), scored 79 with 39 comments. Read on [4]reddit or the [5]original post. * GHC Blog: Let generalisation in GHC 7.0 -- From (hackage.haskell.org), scored 64 with 3 comments. Read on [6]reddit or the [7]original post. * Simon Peyton Jones : GHC 7 Status Update : Video -- From (vimeo.com), scored 51 with 15 comments. Read on [8]reddit or the [9]original post. * Haskell at Google: for the hard problems in the server management team -- From (k1024.org), scored 47 with 42 comments. Read on [10]reddit or the [11]original post. * Enumerators Tutorial Part 1: Iteratee -- From (docs.yesodweb.com), scored 30 with 2 comments. Read on [12]reddit or the [13]original post. * Introducing the programming language eff, monad transformer stacks for everyone -- From (math.andrej.com), scored 27 with 0 comments. Read on [14]reddit or the [15]original post. * Help me find something interesting... -- From (self.haskell), scored 22 with 10 comments. Read on [16]reddit or the [17]original post. * Papers from the Haskell Symposium 2010 -- From (self.haskell), scored 22 with 0 comments. Read on [18]reddit or the [19]original post. * Nikola: array computations embedded in Haskell that compiles to GPUs via CUDA -- From (eecs.harvard.edu), scored 20 with 4 comments. Read on [20]reddit or the [21]original post. * ICFP 2010 - Tribute to Robin Milner (video) -- From (vimeo.com), scored 17 with 2 comments. Read on [22]reddit or the [23]original post. Top StackOverflow Questions * haskell regex substitution (votes: 8, answers: 1) [24]read * Why am I getting Non-exhaustive patterns in function when I invoke my Haskell substring function? (votes: 6, answers: 1) [25]read * Why am I getting this warning from GHCi? (votes: 6, answers: 2) [26]read * In Haskell, why non-exhaustive patterns are not compile-time errors? (votes: 5, answers: 2) [27]read * Represent sequence of tetrahedral numbers in Haskell (votes: 5, answers: 2) [28]read Quotes of the Week * anonymous: Why is haskell-platform 138MB? Does it include monad of the entire world? * conal: everything is matter, and using matter you can implement cucumbers, therefore everything is a cucumber. About the Haskell Weekly News New editions are posted to [29]the Haskell mailing list as well as to [30]the Haskell Sequence and [31]Planet Haskell. [32]RSS is also available, and headlines appear on [33]haskell.org. To help create new editions of this newsletter, please send stories to dstcruz * at * gmail * dot * com. The code used to produce this version of the newsletter is not yet publicly available, as it is a complete hack design to get things started again. Until next time, Daniel Santa Cruz References 1. http://haskell.org/ 2. http://www.reddit.com/r/haskell/comments/dkzn4/papers_from_the_haskell_symposium_2010/ 3. http://vimeo.com/user2191865/videos/sort:date 4.
Re: [Haskell-cafe] Re: Lambda-case / lambda-if
On 6 October 2010 11:39, Simon Marlow marlo...@gmail.com wrote: Certainly some existing code would fail to parse, e.g. (case e of [] - \x - x+1; (x:xs) - \x - x+2) That's definitely a problem. The multi-pattern lambda is nice as I think it follows naturally from function definitions (indeed, I think many a Haskeller including myself have written (\x - k; \y - l) once expecting it to work), but problems like this are kind of a deal breaker. A slightly different suggestion from Simon PJ and myself (we agreed on something syntax-related :-) is the following: \case 1 - f 2 - g ... \case { 1 - f; 2 - g } +1 I like this because it has exactly the same properties of Max's case-of, but is shorter and still reads with sense. I created a poll about for/against the case-of idea, but it seems, just from the messages here, unanimous that people *do* want something like this, mostly to solve the unnecessary/dummy formal parameters problem. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Haskell Weekly News: Issue 153 - October 06, 2010
Hopefully Joe can upload the Html version to http://sequence.complete.org/hwn later today. If that is not the case, maybe someone with upload powers can lend me a hand. Daniel ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskell Weekly News: Issue 153 - October 06, 2010
Excellent! Thanks for putting this together. It's nice to have. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] pointers for EDSL design
Hi Stephen, From: Stephen Tetley stephen.tet...@gmail.com Hi John For the user level stuff, I don't think CSound really has functions - either for the score or orchestra. The score I think is just a list of /notes/ with many, many parameters and the orchestra is a graph description saying how the UGens are connected. This is good news - I believe Pan, Feldspar, Lava etc. generate functions or procedures in the output code which means they have to involve the complicated techniques for embedding lambdas and functions in the EDSL. If they didn't, there would be massive code blow up. However because CSound is more or less straight line code - i.e. lines are interpreted sequentially, there are no procedures or functions to define and call - generating it should be much simpler. Yes, exactly. I'm not interested in anything nearly as sophisticated, so those aren't great examples for me. Andy Gill's Dot package on Hackage has a crafty, but simple technique to allow you to reference graph nodes and link them within a monad and output as foreign code - here dot files. Something similar might be satisfactory for orchestra files. The orchestra graph is basically the issue I'm looking at (ignoring the score for now). My first implementation used an Orch monad very similar to the one used in Andy Gill's dotgen. It worked and the implementation was very straightforward, however I wanted to see if it was possible to create a non-monadic interface. That is, change my classes from class GenM repr a where sigGenM :: a - repr (ASig repr) to class Gen repr a where sigGen :: repr a - repr (ASig repr) This is in tagless-final style (which really is slick BTW); that's why everything is represented through type classes. The second version is really the one I want to use, although it was more work to implement. For the Csound interpreter, I needed a naming mechanism like TH's Q monad, along with some other machinery. So here's a very simple expression: t1 = let v = sigGen (cnst 1) in outs v v which is what led to my question. I'm binding the sigGen to 'v' to introduce sharing at the meta-level. Would it be better to introduce support for this in the dsl? Anyway, here are a few simple test expressions to provide the flavor of what I'm doing: -- additive synthesis, 20 partials of constant amplitude t6 = let so = sum . zipWith (oscil (cnst 1000)) [ cnst (110*f) | f - [4..]] (replicate 20 1) in outs so so -- stacked frequency modulation using 4 oscillators t8 = let stack = foldr ($) (csig 40) (replicate 4 \fq - oscil (cnst 1000) fq 1) in outs stack stack The edsl provides the functions oscil, cnst, csig, and outs, but most of the magic happens in the csound interpreter. Cheers, John ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] [Off-topic]Functional parsing theory
Maybe Peter Ljunglöf's thesis will be useful? http://www.ling.gu.se/~peb/pubs.html http://www.ling.gu.se/~peb/pubs/Ljunglof-2002a.pdf It covers chart, GLR and CYK parsing - isn't Earley's parsing method related to either chart or CYK? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] pointers for EDSL design
John Lato schrieb: Thanks for these, and also Stephen's extensive list. I think it's fair to say that I'm just exploring the space and don't know what I'm doing yet. As such, I'm pretty open to exploring ideas. I'm only familiar with a small fraction of these, so I've got some reading to do now! For my toy language I've been working on a csound-like DSP language which is compiled to Csound code (I am slightly familiar with Atom, and moreso with Feldspar, but they're both quite different in usage style from what I'm aiming at). Essentially the Csound module from Haskore, but less verbose and typed. I've implemented it in a final-tagless style (at least as far as I understand Kiselyov, Carette, and Shan), which has the very nice benefit that even though I'm currently targetting csound I could target other languages relatively simply. Have I already advertised my realtime LLVM sound signal processing package? http://arxiv.org/abs/1004.4796 http://hackage.haskell.org/package/synthesizer-llvm http://www.youtube.com/watch?v=GNiAqBTVa6U ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskellers.com profiles: advice requested
On Wed, Oct 6, 2010 at 11:28 AM, Ivan Lazar Miljenovic ivan.miljeno...@gmail.com wrote: On 6 October 2010 20:11, Michael Snoyman mich...@snoyman.com wrote: Hi all, After finally getting OpenID 2 support worked out, I've now put up the Haskellers.com website[1]. For me at least, when I try to use my wordpress.com OpenID, I get this message: Do you want to pass your http://ivanmiljenovic.wordpress.com/ identity to ? Should that be saying haskellers.com or something there? It's fixed now. It's because wordpress is not following the recommendations in the OpenID 1.1 spec[1]. In particular, if trust_root is missing, the OP should default the value to return_to, which Wordpress is not doing. Easy enough to fix: simply send trust_root along with return_to. Complete side note: it's kind of funny that OpenID let's you specify some completely arbitrary string to appear in the resulting webpage[2]. Cheers, Michael [1] http://openid.net/specs/openid-authentication-1_1.html#anchor16 [2] http://i.imgur.com/wviSW.png ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskellers.com profiles: advice requested
One (slightly off-topic) question: at the top of the site it says the meeting place for professional Haskell programmers. Is this supposed to be geared towards Haskell programmers who get paid (or want to get paid) to write Haskell? If so, fine; if not, in my opinion the word professional ought to be dropped. -Brent ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Notes from Haskell takes over the world BoF at ICFP
Here are the notes transcribed from the Future of Haskell BoF held after the Haskell Symposium last week. -- Don = Future of Haskell BoF Notes = A birds of a feather meeting was held at ICFP, organized by Bryan and Johan. We had 30 (?) people in a room, for 2 hours, discussing how to ensure Haskell succeeds. These are the transcribed notes. == Libraries == * Need to encourage special interest groups (SIGs) to form around particular domain areas in the libraries. AI, BioInf, Networking, etc. * Document the SIG process: what resources they have, how you get results. * Missing SIGs for certain platforms: Mac, CentOS etc. * More tutorials on use of Haskell in particular domains. * Keen for Hackage 2.0 quality review tools: embedded wikis, voting * Hackage analysis tools: reverse indexing of the code base. * There is no PVP tool. * Library fragmentation occuring due to type duplication (String, Text, ...) * Focus on intitiatives for common, core types. HP polish. * What is the Son of Containers going to be? * Build reports would help the community a lot. Integrated with Hackage. Haddock pages on hackage should be editable wikis (per-top-level function, dvcs backed? record history, captchas. roll back spam, by default assume good contributions) * Need to register patches to packages with lost maintainers. * Belgium Hackathon coming up. * Improve libraries process: esp. for small contributions. * Hackage maintainance: + maintainer timeout. + hackage package clobbering. + tweaks. hackage-local .cabal fixes. * Unclear what the rules for contributing are. Document them! * In particular, document how to contribute to: * ghc * cabal * core and HP * hackage * dockathon == IDEs == * A new ghci. + scriptable, scion-server? + repls on top of ghc-api + ruby repl + .ghci + documentation + hpaste/ghci. * IDE + scion. contributions. market places. + documentation. + EclipseFP, scion? + NetBeans. * Special Interest Groups + as the vehicle for domain projects. + formal process for forming a group. + a small amount of structure for groups + document process for forming a strike team. * haskell.org + polishing the wiki. + wikibooks. + call for sig. * haskell visual design group? + consistent color themes across haskell.org sites. + consistent haskell branding. * community server mailing lists in poor state * Move community more online ? Community services. + google groups + digests. + reply at the right point in the threads. + serious lists. + ghc users. libraries. + announces. + stackoverflow for new questions? + keep refering to SO. + reddit for news? == GHC == * ghc status + 50% split in room on moving ghc from darcs to git. + bug reports and interaction load with ghc + well documented workflow for lightweight changes + heavy weight process for major work. + bugs, tickets. + Simon Marlow contributions are going up, and process is working well * Release schedule. + RC at ICFP. + GHC release page. + HP/GHC release. + stage releases. + more clearly announced that ghc will be a beta prior to GHC HP. * HP, uses GHC installers as is. GHC zip. == Teaching / tutorials == * Tutorials. Documentation. + Writing a blog post that is wrong is a pretty good way to get feedback. + Find a forum to ask the question, so the answer is findable. + Ask on SO. + Clojure and Scala communities have active blog spheres. + they love descriptions of data structures + e.g. high fanout trees. + Aggregating the ephemera. + Archives: Haskell Reddit has all the interesting blog posts. -- Haskell Wikibook. * Cabal and integration with other languages. + Easier integration with C. + Higher barrier to entry on the Mac. + Playing well with other languages? ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Pronouncing Curry and currying
Hi all, I have a question for native English speakers: What is the correct pronunciation of the name Curry (in Haskell Curry) and the derived verb currying? I found on Wikitonary the name is (probably) of Irish orgin, so I suppose that the pronunciation may by nonstandard. Probably the best way to answer would be either a link to some voice sample or written using some standard phonetic alphabet. Thanks a lot, Petr signature.asc Description: Digital signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Pronouncing Curry and currying
Quoth Petr Pudlak d...@pudlak.name, I have a question for native English speakers: What is the correct pronunciation of the name Curry (in Haskell Curry) and the derived verb currying? I found on Wikitonary the name is (probably) of Irish orgin, so I suppose that the pronunciation may by nonstandard. I'm going to vote for `rhymes with hurry(ing).' Stress on the first syllable, where the vowel is mid-position and unrounded, the null vowel that's often spelled 'u'. My Irish neighbor might pronounce it a little different - more like Car-y - but he's kind of hard to understand, so I wouldn't take him as an example! Is that nonstandard? I don't know - is there a standard? The only one I know is that for any English name, the main stress falls on the first syllable. (I think even including Gaelic origins, but of course not counting Mac/Mc/O prefixes.) The only exception I can think of is that most people with the Scottish name Monroe seem to put the stress on the second syllable. Donn ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Pronouncing Curry and currying
Here's how I say it (literally): http://hubrisarts.com/curry.wav On Wed, Oct 6, 2010 at 1:21 PM, Petr Pudlak d...@pudlak.name wrote: Hi all, I have a question for native English speakers: What is the correct pronunciation of the name Curry (in Haskell Curry) and the derived verb currying? I found on Wikitonary the name is (probably) of Irish orgin, so I suppose that the pronunciation may by nonstandard. Probably the best way to answer would be either a link to some voice sample or written using some standard phonetic alphabet. Thanks a lot, Petr -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (GNU/Linux) iQEcBAEBAgAGBQJMrMwlAAoJEC5dcKNjBzhnG8UH/0E2D76OkcFwgJg4MFMEjQlI YlUoFxPurNakvcnSEtInP0uIpheDHzXqiZGnmcnq/3gwh/fapESh6pDFIxvgf7KW ikhRFlatE7dMmRVgr72qIeWD/cVF71w9FkYhDavgpMhLyzQQV4i/SyGABkHZEds6 b6VSnqWHoa1k15RxTWt30hOaqqE8+4mLQDrIBAAL9z5jBTOgeKVVq07JgeFYiioU 7wwXFM8kx+z5MsVQKKBUtRZ/+It3KRBTKW7NvhYehLn7mp/tLEIXrsJtlgqZrbHr K0rsIFeKoocih+iCm2T3lwYZI196FreVWzhFwpHAc4DJ0+86ghGLiH+lqFhjgn4= =OMQc -END PGP SIGNATURE- ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Lambda-case / lambda-if
A slightly different suggestion from Simon PJ and myself (we agreed on something syntax-related :-) is the following: \case 1 - f 2 - g ... \case { 1 - f; 2 - g } +1 I like this because it has exactly the same properties of Max's case-of, but is shorter and still reads with sense. +1 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] [Off-topic]Functional parsing theory
Mauricio, 2010/10/6 Maurício CA mauricio.antu...@gmail.com: I've been working in a tool that reads a grammar with associated actions and act on input based on that grammar. I would like to rewrite it in a functional style, but I've not been able to find a theory that would handle any possible grammar with cyclicity and empty productions, and flexibility is more important for this tool than performance. Do you have a suggestion on that? What I'm using now is this (non-functional) article on Earley method: I'm not sure what you're looking for exactly, but my grammar-combinators library [1] might be interesting for you. It is not yet industry-proof at the moment, but might benefit from some more real-world use and comments. It is a novel functional parsing library using an explicit representation of recursion which allows it to support many different parsing algorithms and grammar transformations. Anyway, in the functional world, parsing algorithms used are often LL parsing algorithms, often used with parser combinators. Other algorithms can sometimes be emulated in a functional style using a top-down parsing algorithm on a transformed grammar (e.g. left-corner transform, but I also suspect you can emulate LR parsing using what I call the uniform Paull transformation). My library automates two such important transformations (supporting for example left-recursion). Dominique Footnotes: [1] http://projects.haskell.org/grammar-combinators/ ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Lambda-case / lambda-if
On 10/06/10 13:32, steffen wrote: A slightly different suggestion from Simon PJ and myself (we agreed on something syntax-related :-) is the following: \case 1 - f 2 - g ... \case { 1 - f; 2 - g } +1 I like this because it has exactly the same properties of Max's case-of, but is shorter and still reads with sense. +1 ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe +1...million Cheers, Greg ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Lambda-case / lambda-if
On Oct 6, 2010, at 5:39 AM, Simon Marlow wrote: A slightly different suggestion from Simon PJ and myself (we agreed on something syntax-related :-) is the following: \case 1 - f 2 - g where the two-token sequence '\ case' introduces a new optional layout context, the body of which is exactly the same as in a case expression. So you could also write \case { 1 - f; 2 - g } if you want. Guards are allowed of course. * a bit more noisy than just \: I'm not sure what the ramifications of having \ introduce a layout context on its own would be, but I suspect there would be difficulties. Certainly some existing code would fail to parse, e.g. (case e of [] - \x - x+1; (x:xs) - \x - x+2) \ introducing a layout context is a no-go because, as in the example given, it breaks too much code. However, \case as described is somewhat less powerful. In particular, \ with a layout context lets us have multi-argument pattern matching, while both \case and case of give only single argument pattern matching. I don't know if the extra functionality is that important, but I don't see why we can't provide for it anyway, as in: \case (x:xs) n - go xs; _ n - n; Cheers, Sterl.___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] ANNOUNCE: tls, native TLS/SSL protocol implementation
Hi haskellers, I'ld like to announce the tls package [1][2], which is a native implementation of the TLS protocol, client and server. It's currently mostly supporting SSL3, TLS1.0 and TLS1.1. It's got *lots* of rough edges, and a bunch of unsupported features, but it's humming along, and at each iteration it's becoming more tighly secure and featureful. I would recommend against using this implementation in a production system just yet, or in an aggressive environment either (specially for the server side); I don't think it should necessary fail, but it's still an early implementation with probable API changes on the way. [1] http://github.com/vincenthz/hs-tls [2] http://hackage.haskell.org/package/tls -- Vincent Hanquez ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] HTML library with DOM?
Hi all, is there an HTML parsing library that creates a DOM from a page? Günther ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] [Off-topic]Functional parsing theory
It's not entirely clear what you mean: Do you want to describe grammars or parsers functionally: In the first case, parser combinators are what you want (or some encoding of them). There are many variations on these: LL(k), context-free, dependent. Cyclicity (of what kind?) or empty productions are not necessarily a problem. If you already parsed the input to an abstract syntax tree, and want to act on this input in terms of your grammar, then attribute grammars are what you are looking for. - Arie Am 06.10.2010 17:43, schrieb Maurício CA: Hi, all, I've been working in a tool that reads a grammar with associated actions and act on input based on that grammar. I would like to rewrite it in a functional style, but I've not been able to find a theory that would handle any possible grammar with cyclicity and empty productions, and flexibility is more important for this tool than performance. Do you have a suggestion on that? What I'm using now is this (non-functional) article on Earley method: http://www.springerlink.com/content/602270808666074p Thanks, Maurício ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: HTML library with DOM?
is there an HTML parsing library that creates a DOM from a page? tagsoup produces trees ( http://hackage.haskell.org/package/tagsoup ) I use it with hxt ( http://hackage.haskell.org/package/hxt ) to tree-walk HTML pages. J.W. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANNOUNCE: tls, native TLS/SSL protocol implementation
On 6 October 2010 23:26, Vincent Hanquez t...@snarc.org wrote: I'ld like to announce the tls package [1][2], which is a native implementation of the TLS protocol, client and server. It's currently mostly supporting SSL3, TLS1.0 and TLS1.1. It's got *lots* of rough edges, and a bunch of unsupported features, but it's humming along, and at each iteration it's becoming more tighly secure and featureful. Wow, great! So might we be able to combine this with Network.HTTP some day? I am interested in moving away from C libraries (curl) to pure Haskell libraries, for a safer, richer Haskell ecosystem and for solving the interesting problems. Will you eventually add benchmarks? Reading this source code will be educational. Thanks. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: EDSL for Makefile
The Reader monad just establishes an environment, so you can use ask to retrieve a value from the environment. Let's say you have the following types representing you Make- Environment: data MakeInfo = MakeInfo { target_ :: String , sources_ :: [String] } then inside your Monad you can access MakeInfo using ask. Because you may want to have IO available, let's use the Monad Transformer version of the Reader Monad, to define our MakeMonad: type MakeMonad = ReaderT MakeInfo IO runMake :: MakeMonad () - MakeInfo - IO () runMake m makeInfo = runReaderT m makeInfo and runMake will run it. Then you can access source and target e.g. with Applicatives: test = do sources - sources_ $ ask target - target_ $ ask system $ gcc -o ++ target ++ ++ (foldl (++) $ map (' ':) sources) Since using sources_ $ ask and such may still be annoying, this gist[1] uses some (questionable) TypeClass-hackery and some extension to overcome this problem... Using this solution one can simply write: test = sh $ gcc -o target sources which looks somewhat nicer. This example also defines runTest and a test function (which calls the shell command echo to print some lines) you can try in ghci by typing runTest test... [1] http://gist.github.com/614246 On 3 Okt., 16:56, C K Kashyap ckkash...@gmail.com wrote: On Sun, Oct 3, 2010 at 5:22 PM, steffen steffen.sier...@googlemail.com wrote: If you don't want to mention r1 explicitly, but want to refer to target, sources and such only a monadic approach (e.g. Reader Monad) might be what you want. Thanks Steffen ... would you be able to give me an example? -- Regards, Kashyap ___ Haskell-Cafe mailing list haskell-c...@haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskellers.com profiles: advice requested
Feature suggestion: Allow users to provide their location and show it (and the aggregate of all Haskellers) in a (Google) map. (I Just uploaded my initial profile) Bas ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Notes from Haskell takes over the world BoF at ICFP
A big thank you, by the way, to you, Simon Marlow, Malcom Wallace and everyone who helped getting the videos online and those that gave talks at the Haskell Implementors' Workshop 2010. It was exciting to watch all the videos! There was a lot of interesting and fertile discussion. On 6 October 2010 21:10, Don Stewart d...@galois.com wrote: * Library fragmentation occuring due to type duplication (String, Text, ...) This one is a big issue for me personally. On hpaste[1] I spent some time converting between String/Text/ByteString/Lazy-ByteString and did not have fun. * Belgium Hackathon coming up. See you there! * A new ghci. + hpaste/ghci. What were the ideas regarding hpaste? Creating a REPL for pastes? * IDE + scion. contributions. market places. + documentation. + EclipseFP, scion? + NetBeans. I am personally interested in scion. I have the Emacs chops to hack on that. So far I've been making one-off scripts but it seems like ultimately the best approach is to focus on using scion to make Emacs a real quality Haskell environment -- and resulting contributions to Scion can only benefit other IDEs. Phyx- from the IRC has been working on some fairly advanced features for Haskell Visual Studio, for those interested. * haskell.org + polishing the wiki. + wikibooks. + call for sig. I am looking forward to having the new Haskell.org wiki[1] rolled out. I and Michael Snoyman have been working on cleaning up the web development area of the wiki[2]. We really want to make it a central and useful place for current information on web. dev in Haskell. [1]: http://new-www.haskell.org/haskellwiki [2]: http://www.haskell.org/haskellwiki/Web * haskell visual design group? + consistent color themes across haskell.org sites. + consistent haskell branding. Can we get real web designers on this? Has a colour theme / logo incarnation been decided yet? Should we make a poll with proposals? I might whip up a simple web app for posting proposal text + image attachments and allowing people to vote, if I can't find an existing one. At least if the choices are static Google Docs suffices for this and makes it easy to ask the community something. At the moment I'm still clinging to the old colour theme of purple and green[3][4], I like this theme but I'm open to switching both of these web sites to a new theme if we have a consistent, re-usable stylesheet, palette and SVG logo. I think a consistent theme is very important. Domains are also possibly important, too... Haskell.org, hackage, haddock, Planet Haskell, hpaste, tryhaskell, Hoogle, Hayoo, the soon-to-be Haskellers.com, etc. I think all these sites that are really part of the Haskell web network and should have a consistent theme and quick way to get home to Haskell.org. Imho I suppose it might be great to also have domain consistency, e.g. haskell.org, hackage.haskell.org, paste.haskell.org, try.haskell.org, hoogle/hayoo.haskell.org, planet.haskell.org, etc. We already have a few of these in use. Digressing a little, can anyone interested in doing so merge hoogle and Hayoo and make them part of Hackage? I plan on making a complete interface to the #haskell IRC channel with browsing, full text search, stats, common links, marking of interesting conversations, top posted links, active hours, etc. basically what pisg provides but... utilizing IRC as a real source of community knowledge and activity and not just a statistical curiousity. What I think would be neat but probably won't happen is irc.haskell.org, but I can always put it on hsirc.org or something. hpaste.org will interface with this site to provide context for pastes, e.g. when I'm viewing a paste, I should see maybe ten lines of conversation and a link to view more, so that I can see what the paste was about. I think both hpaste and the IRC channel are untapped sources of information and I intend on making these two sites utilise that information. I recently imported the last ten years' worth of IRC into a postgresql database[5]. I used the clogparse library[6]. For a bit of fun here's the top-ten Haskell chatters ever: amelie= select count(*),nick from ircevent where type = 'talk' group by nick order by 1 desc limit 10; count |nick +- 643917 | lambdabot 265466 | Cale 248069 | dons 224690 | shapr 139449 | quicksilver 88745 | SamB 81229 | ski 75148 | Pseudonym 73043 | dcoutts 72337 | ivanm (10 rows) [3]: http://tryhaskell.org/ [4]: http://hpaste.org/ [5]: If anyone's interested in the dump, I have uploaded it and can email you the link. It's 174MB lzma-compressed and 900MB uncompressed. [6]: http://mainisusuallyafunction.blogspot.com/2010/09/clogparse-parsing-haskell-irc-logs.html + stackoverflow for new questions? + keep refering to SO. Does this suggest that I should first direct my Haskell technical questions to SO rather than
Re: [Haskell-cafe] HTML library with DOM?
Günther Schmidt gue.schm...@web.de writes: Hi all, is there an HTML parsing library that creates a DOM from a page? I've got the month of October off, and one of the things I've been planning on working on is a compliant HTML5 parser for Haskell -- something which is sorely needed! I will ping the list back if/when I get it finished. G -- Gregory Collins g...@gregorycollins.net ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Lambda-case / lambda-if
At 4:43 PM -0400 10/6/10, Sterling Clover wrote: On Oct 6, 2010, at 5:39 AM, Simon Marlow wrote: A slightly different suggestion from Simon PJ and myself (we agreed on something syntax-related :-) is the following: \case 1 - f 2 - g where the two-token sequence '\ case' introduces a new optional layout context, the body of which is exactly the same as in a case expression. So you could also write \case { 1 - f; 2 - g } if you want. Guards are allowed of course. * a bit more noisy than just \: I'm not sure what the ramifications of having \ introduce a layout context on its own would be, but I suspect there would be difficulties. Certainly some existing code would fail to parse, e.g. (case e of [] - \x - x+1; (x:xs) - \x - x+2) \ introducing a layout context is a no-go because, as in the example given, it breaks too much code. However, \case as described is somewhat less powerful. In particular, \ with a layout context lets us have multi-argument pattern matching, while both \case and case of give only single argument pattern matching. I don't know if the extra functionality is that important, but I don't see why we can't provide for it anyway, as in: \case (x:xs) n - go xs; _ n - n; Cheers, Sterl.___ I would also very much like to have multi-argument pattern matching, but in \case a b - ... ... it sure suggests to me that `a` should be applied to `b` before casing. Dean ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Haskellers.com profiles: advice requested
Complete side note: it's kind of funny that OpenID let's you specify some completely arbitrary string to appear in the resulting webpage[2]. Any server with that behavior is out of spec. Operating securely requires checking the return_to value against the trust_root, and checking that the return_to value is a valid url. But wordpress being out of spec is what was observed to start this, anyway. So what's the surprise? Carl ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Lambda-case / lambda-if
I would also very much like to have multi-argument pattern matching, but in \case a b - ... ... it sure suggests to me that `a` should be applied to `b` before casing. I feel like sugar is designed to make a couple of specific uses nicer. Being as general and orthogonal as possible is the job of the primitives. So I don't mind too much if sugar is a little ad-hoc. Single argument \case addresses the monadic case problem. Does someone have some examples of nice expressions that you need a multi argument case-lambda for? I don't mind writing 'case (a, b) of ...' very much. Seems like you could get the same effect with 'curry': (\case { a b - ... ; a b - ...}) x y can be written (curry $ \case { (a, b) - ... }) x y Not as pretty, but still point-free. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: Notes from Haskell takes over the world BoF at ICFP
On Wed, Oct 6, 2010 at 12:10 PM, Don Stewart d...@galois.com wrote: Here are the notes transcribed from the Future of Haskell BoF held after the Haskell Symposium last week. Thanks for sending out the notes, Don! It was a very helpful and constructive session for me, to let me see some interesting opportunities for helping out the community over the coming year. I very much appreciate all that people had to say, ugly bits and all :-) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Notes from Haskell takes over the world BoF at ICFP
At the risk of starting a darcs vs. git discussion I have some thoughts about the tension. On Wed, Oct 6, 2010 at 12:10 PM, Don Stewart d...@galois.com wrote: [snip] == GHC == * ghc status + 50% split in room on moving ghc from darcs to git. I don't see that tension resolving itself easily. VCS tools are subject to network effects. If your friends are using VCS Foo and you want to work with them, then you adopt Foo too. It's also a part of the toolchain that people tend to have strong opinions about. One possible way to lessen the tension would be good vcs bridge tools. There have been numerous repo converter projects, some even supporting synchronization. There is already a git-svn tool. Maybe there should be a git-darcs (and a darcs-git)? If a git hacker out there wants to add darcs support to git, I'd certainly be willing to help them get started. Pushing on this a bit more, I'm fairly convinced that darcs and git are dual to each other in terms of underlying models. As such, I have some ideas on how to unify them/convert between models. Unfortunately, actually having something to use is very far off as the ideas themselves are still immature. As far as I can tell, the main reasons to vote for git: * Some people simply love git and want to use it for every project * Git is faster and/or more memory efficient for some operations (most? all?) * Github As far as I can tell, the main reasons to vote for darcs: * GHC already uses it (inertia) * The windows support appears to be more mature (I admit, this is somewhat subjective as neither has a spotless record here) * Key players, such as the Simons, prefer the darcs UI over the git UI (i.e., some people prefer darcs) * Darcs 2.x has consistently improved in robustness and efficiency over the last several years, continues to improve, and incorporates ideas from git. (there is currently an experimental 'rebase' command in the development branch of darcs) * Cherry picking Note: I didn't mention feature branches as a reason to prefer one over the other. Both darcs and git support this. Git uses in-repo branches and with darcs you can simply do a local lazy get. Some people prefer one mechanism over the other, but the point is they both support the workflow. I also didn't mention server side bare repos. I'm trying to focus on the context of what GHC should use and as Simon Marlow points out, the current darcs workflow is scaling well so it seems that the lack of darcs bare repos is not an issue at the moment. I would like to see the tension of darcs vs git for GHC reduced. I think it ultimately amounts to: Contributors need to be able to use the one they prefer, instead of being forced to use the one GHC devs use. Us haskellers could build a tool to solve that problem. + bug reports and interaction load with ghc I'd love to get elaboration on this point. + well documented workflow for lightweight changes + heavy weight process for major work. + bugs, tickets. + Simon Marlow contributions are going up, and process is working well That's reassuring. Is their workflow documented for the benefit of other Haskell projects and the greater FOSS community in general? Thanks, Jason ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] darcs vs. git
(subject changed for easy filtering of flamebait, removed libraries@) On 7 October 2010 10:45, Jason Dagit da...@codersbase.com wrote: At the risk of starting a darcs vs. git discussion I have some thoughts about the tension. On Wed, Oct 6, 2010 at 12:10 PM, Don Stewart d...@galois.com wrote: [snip] == GHC == * ghc status + 50% split in room on moving ghc from darcs to git. I don't see that tension resolving itself easily. VCS tools are subject to network effects. If your friends are using VCS Foo and you want to work with them, then you adopt Foo too. It's also a part of the toolchain that people tend to have strong opinions about. One possible way to lessen the tension would be good vcs bridge tools. There have been numerous repo converter projects, some even supporting synchronization. There is already a git-svn tool. Maybe there should be a git-darcs (and a darcs-git)? If a git hacker out there wants to add darcs support to git, I'd certainly be willing to help them get started. Pushing on this a bit more, I'm fairly convinced that darcs and git are dual to each other in terms of underlying models. As such, I have some ideas on how to unify them/convert between models. Unfortunately, actually having something to use is very far off as the ideas themselves are still immature. As far as I can tell, the main reasons to vote for git: * Some people simply love git and want to use it for every project * Git is faster and/or more memory efficient for some operations (most? all?) * Github As far as I can tell, the main reasons to vote for darcs: * GHC already uses it (inertia) * The windows support appears to be more mature (I admit, this is somewhat subjective as neither has a spotless record here) * Key players, such as the Simons, prefer the darcs UI over the git UI (i.e., some people prefer darcs) * Darcs 2.x has consistently improved in robustness and efficiency over the last several years, continues to improve, and incorporates ideas from git. (there is currently an experimental 'rebase' command in the development branch of darcs) * Cherry picking Note: I didn't mention feature branches as a reason to prefer one over the other. Both darcs and git support this. Git uses in-repo branches and with darcs you can simply do a local lazy get. Some people prefer one mechanism over the other, but the point is they both support the workflow. I hope they do :) With darcs, is it possible to refer to various other (local and remote) branch names, eg. to do diffs between branches? What I mean is that with git, I can do: $ git fetch origin $ git diff my-foo origin/random-bar to see changes between my local branch my-branch-foo and the remote branch random-bar without having to make an explicit checkout of origin/random-bar. When the origin repo contains many branches that other people are working on, this is a pretty neat way of keeping track of those. I'd really like to be able to get an overview of what branches are available (on my local copy and remotely), like with git's various graphing tools; I just use a git log --graph alias to get a tree view in the console: http://blog.kfish.org/2010/04/git-lola.html Does something similar exist for darcs? I would like to see the tension of darcs vs git for GHC reduced. I think it ultimately amounts to: Contributors need to be able to use the one they prefer, instead of being forced to use the one GHC devs use. I agree with that, and I don't mind switching between the two for different projects. Perhaps some standard subcommand aliases would go a long way to making that easier though (log vs. changes etc.) cheers, Conrad. ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Re: darcs vs. git
On Wed, Oct 6, 2010 at 7:42 PM, Conrad Parker con...@metadecks.org wrote: (subject changed for easy filtering of flamebait, removed libraries@) On 7 October 2010 10:45, Jason Dagit da...@codersbase.com wrote: At the risk of starting a darcs vs. git discussion I have some thoughts about the tension. On Wed, Oct 6, 2010 at 12:10 PM, Don Stewart d...@galois.com wrote: [snip] == GHC == * ghc status + 50% split in room on moving ghc from darcs to git. I don't see that tension resolving itself easily. VCS tools are subject to network effects. If your friends are using VCS Foo and you want to work with them, then you adopt Foo too. It's also a part of the toolchain that people tend to have strong opinions about. One possible way to lessen the tension would be good vcs bridge tools. There have been numerous repo converter projects, some even supporting synchronization. There is already a git-svn tool. Maybe there should be a git-darcs (and a darcs-git)? If a git hacker out there wants to add darcs support to git, I'd certainly be willing to help them get started. Pushing on this a bit more, I'm fairly convinced that darcs and git are dual to each other in terms of underlying models. As such, I have some ideas on how to unify them/convert between models. Unfortunately, actually having something to use is very far off as the ideas themselves are still immature. As far as I can tell, the main reasons to vote for git: * Some people simply love git and want to use it for every project * Git is faster and/or more memory efficient for some operations (most? all?) * Github As far as I can tell, the main reasons to vote for darcs: * GHC already uses it (inertia) * The windows support appears to be more mature (I admit, this is somewhat subjective as neither has a spotless record here) * Key players, such as the Simons, prefer the darcs UI over the git UI (i.e., some people prefer darcs) * Darcs 2.x has consistently improved in robustness and efficiency over the last several years, continues to improve, and incorporates ideas from git. (there is currently an experimental 'rebase' command in the development branch of darcs) * Cherry picking Note: I didn't mention feature branches as a reason to prefer one over the other. Both darcs and git support this. Git uses in-repo branches and with darcs you can simply do a local lazy get. Some people prefer one mechanism over the other, but the point is they both support the workflow. I hope they do :) With darcs, is it possible to refer to various other (local and remote) branch names, eg. to do diffs between branches? What I mean is that with git, I can do: $ git fetch origin $ git diff my-foo origin/random-bar You can see the difference of the recorded changes using push or pull. If you want a read-only view, add --dry-run. $ darcs pull --dry-run http://foo.com/random-bar to see changes between my local branch my-branch-foo and the remote branch random-bar without having to make an explicit checkout of origin/random-bar. When the origin repo contains many branches that other people are working on, this is a pretty neat way of keeping track of those. I'd really like to be able to get an overview of what branches are available (on my local copy and remotely), like with git's various graphing tools; I just use a git log --graph alias to get a tree view in the console: http://blog.kfish.org/2010/04/git-lola.html Does something similar exist for darcs? Yes and no. Because darcs chooses to keep each branch as a separate directory it doesn't have a notion that a change can have multiple children. Currently when you type 'darcs log' you do see the graph, it's just perfectly straight. What you might want to know is, when can a change come after some other change? Answering that question is computationally a bit inefficient. I think I heard someone suggest it is quadratic in the number of changes. You might like this video that demonstrates a proof of concept graphing tool like you're looking for: http://www.youtube.com/watch?v=iOGmwA5yBn0 I would like to see the tension of darcs vs git for GHC reduced. I think it ultimately amounts to: Contributors need to be able to use the one they prefer, instead of being forced to use the one GHC devs use. I agree with that, and I don't mind switching between the two for different projects. Perhaps some standard subcommand aliases would go a long way to making that easier though (log vs. changes etc.) Done. Already supported in at least one released version :) In general, you might want to look here: http://wiki.darcs.net/RosettaStone Darcs has a fair number of undocumented command aliases to handle requests like yours. I hope that helps, Jason ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANNOUNCE: tls, native TLS/SSL protocol implementation
On Thu, Oct 7, 2010 at 12:29 AM, Christopher Done chrisd...@googlemail.com wrote: On 6 October 2010 23:26, Vincent Hanquez t...@snarc.org wrote: I'ld like to announce the tls package [1][2], which is a native implementation of the TLS protocol, client and server. It's currently mostly supporting SSL3, TLS1.0 and TLS1.1. It's got *lots* of rough edges, and a bunch of unsupported features, but it's humming along, and at each iteration it's becoming more tighly secure and featureful. Wow, great! So might we be able to combine this with Network.HTTP some day? I am interested in moving away from C libraries (curl) to pure Haskell libraries, for a safer, richer Haskell ecosystem and for solving the interesting problems. Will you eventually add benchmarks? Reading this source code will be educational. Thanks. The http-enumerator package[1] actually uses either the tls package or OpenSSL as its backend. [1] http://hackage.haskell.org/package/http-enumerator ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe