Re: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-06 Thread John Lato
I've put my benchmarking code online at: http://inmachina.net/~jwlato/haskell/research-iteratee.tar.bz2 unpack it so you have this directory structure: ./iteratee ./research-iteratee/ Also download my criterionProcessor programs. The darcs repo is at

Re: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-05 Thread Nicolas Pouillard
On Thu, 4 Feb 2010 12:51:59 -0800, John Millikin jmilli...@gmail.com wrote: Both have advantages and disadvantages. The primary advantage of lazy IO over iteratees is that it's much, *much* easier to understand -- existing experience with monads can be used immediately. The downsides of lazy

Re: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-05 Thread John Millikin
). On Fri, Feb 5, 2010 at 06:04, John Lato jwl...@gmail.com wrote: Subject: Re: [Haskell-cafe] safe lazy IO or Iteratee? Downside: iteratees are very hard to understand. I wrote a decently-sized article about them trying to figure out how to make them useful, and some comments in one of Oleg's

Re: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-05 Thread Valery V. Vorotyntsev
John Lato jwl...@gmail.com wrote: Both designs appear to offer similar performance in aggregate, although there are differences for particular functions. I haven't yet had a chance to test the performance of the CPS variant, although Oleg has indicated he expects it will be higher.

Re: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-05 Thread John Lato
On Fri, Feb 5, 2010 at 4:31 PM, Valery V. Vorotyntsev valery...@gmail.com wrote: John Lato jwl...@gmail.com wrote: Both designs appear to offer similar performance in aggregate, although there are differences for particular functions.  I haven't yet had a chance to test the performance of the

Re: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-05 Thread John Millikin
Benchmark attached. It just enumerates a list until EOF is reached. An interesting thing I've noticed is that IterateeMCPS performs better with no optimization, but -O2 gives IterateeM the advantage. Their relative performance depends heavily on the chunk size -- for example, CPS is much faster

[Haskell-cafe] safe lazy IO or Iteratee?

2010-02-04 Thread David Leimbach
Hi everyone, This is not an attempt to start a flame war. I'm just trying to get a good feel for the advantages and disadvantages of the newer safe lazy io lib available on Hackage vs using Iteratee. It does appear to me that using something like Itereatee gives a bit of room to really tweak

Re: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-04 Thread John Millikin
Both have advantages and disadvantages. The primary advantage of lazy IO over iteratees is that it's much, *much* easier to understand -- existing experience with monads can be used immediately. The downsides of lazy IO, of course, are well documented[1][2][3]. Some are fixed by the safe/strict

Re: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-04 Thread David Leimbach
Thanks for the detailed response below... I must be able to understand how the resources will be used in my system for mission-critical, long-running applications. Dave On Thu, Feb 4, 2010 at 12:51 PM, John Millikin jmilli...@gmail.com wrote: Both have advantages and disadvantages. The

Re[2]: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-04 Thread Bulat Ziganshin
Hello John, Thursday, February 4, 2010, 11:51:59 PM, you wrote: tl;dr: Lots of smart people, with a history of being right about this sort of thing, say iteratees are better. Evidence suggests iteratee-based IO is faster and more predictable than lazy IO. Iteratees are really hard to

Re: Re[2]: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-04 Thread David Leimbach
On Thu, Feb 4, 2010 at 1:26 PM, Bulat Ziganshin bulat.zigans...@gmail.comwrote: Hello John, Thursday, February 4, 2010, 11:51:59 PM, you wrote: tl;dr: Lots of smart people, with a history of being right about this sort of thing, say iteratees are better. Evidence suggests iteratee-based

Re: [Haskell-cafe] safe lazy IO or Iteratee?

2010-02-04 Thread John Lato
Hello, From: David Leimbach leim...@gmail.com Hi everyone, Yet at the same time, I'm quite enamored with the beauty of interact and functions of that sort.  I realize mixing the effects of the lazy IO and pure code may not be the clearest way to write code for everyone, but there is