Re: [Haskell-cafe] hClose: invalid argument (Invalid or incomplete multibyte or wide character)

2010-10-06 Thread Bertram Felgenhauer
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

2010-10-06 Thread Ketil Malde
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

2010-10-06 Thread Michael Snoyman
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

2010-10-06 Thread Ivan Lazar Miljenovic
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

2010-10-06 Thread Hemanth Kapila
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

2010-10-06 Thread Simon Marlow

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-06 Thread Serguey Zefirov
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

2010-10-06 Thread Michael Snoyman
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

2010-10-06 Thread C K Kashyap
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

2010-10-06 Thread Michael Snoyman
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-06 Thread Serguey Zefirov
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

2010-10-06 Thread Christopher Done
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

2010-10-06 Thread Henning Thielemann


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

2010-10-06 Thread Christopher Done
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

2010-10-06 Thread Michael Snoyman
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

2010-10-06 Thread Michael Snoyman
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

2010-10-06 Thread Henning Thielemann


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

2010-10-06 Thread Neil Brown

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

2010-10-06 Thread Christopher Done
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

2010-10-06 Thread 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


Re: [Haskell-cafe] Lambda-case / lambda-if

2010-10-06 Thread Matthew Gruen
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

2010-10-06 Thread Henning Thielemann


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

2010-10-06 Thread Daniel Santa Cruz
   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

2010-10-06 Thread Christopher Done
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

2010-10-06 Thread Daniel Santa Cruz
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

2010-10-06 Thread Christopher Done
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

2010-10-06 Thread John Lato
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

2010-10-06 Thread Stephen Tetley
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

2010-10-06 Thread Henning Thielemann
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

2010-10-06 Thread Michael Snoyman
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

2010-10-06 Thread Brent Yorgey
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

2010-10-06 Thread Don Stewart
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

2010-10-06 Thread Petr Pudlak

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

2010-10-06 Thread Donn Cave
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

2010-10-06 Thread Luke Palmer
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

2010-10-06 Thread steffen
  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

2010-10-06 Thread Dominique Devriese
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

2010-10-06 Thread Gregory Crosswhite

 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

2010-10-06 Thread Sterling Clover

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

2010-10-06 Thread Vincent Hanquez
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?

2010-10-06 Thread Günther Schmidt

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

2010-10-06 Thread bieniusa
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?

2010-10-06 Thread Johannes Waldmann
 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

2010-10-06 Thread Christopher Done
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

2010-10-06 Thread steffen
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

2010-10-06 Thread Bas van Dijk
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

2010-10-06 Thread Christopher Done
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?

2010-10-06 Thread Gregory Collins
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

2010-10-06 Thread Dean Herington

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

2010-10-06 Thread Carl Howells
 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

2010-10-06 Thread Evan Laforge
 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

2010-10-06 Thread Bryan O'Sullivan
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

2010-10-06 Thread Jason Dagit
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

2010-10-06 Thread Conrad Parker
(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

2010-10-06 Thread Jason Dagit
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

2010-10-06 Thread Michael Snoyman
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