Re: [Haskell-cafe] Haskell-Cafe Digest, Vol 113, Issue 11

OK. It tells me the same error message in popup, but all the projections
are running after that.
I'll make sure that it does not say any strange errors on empty DB in new
version.
Does it start projections for you as well (even if it says error)?
On Tue, Jan 8, 2013 at 1:00 PM,
Send Haskell-Cafe mailing list submissions to haskell-cafe@haskell.org
To subscribe or unsubscribe via the World Wide Web, visit http://www.haskell.org/mailman/listinfo/haskell-cafe or, via email, send a message with subject or body 'help' to haskell-cafe-request@haskell.org
You can reach the person managing the list at haskell-cafe-owner@haskell.org
When replying, please edit your Subject line so it is more specific than "Re: Contents of Haskell-Cafe digest..."
Today's Topics:
1. Example programs with ample use of deepseq? (Joachim Breitner) 2. Re: Example programs with ample use of deepseq? (Edward Z. Yang) 3. Re: Example programs with ample use of deepseq? (Joachim Breitner) 4. Re: Example programs with ample use of deepseq? (Johan Tibell) 5. Re: Announce: Leksah 0.13.1 (a bit experimental) (Peter Simons) 6. Re: Announce: Leksah 0.13.1 (a bit experimental) (Hamish Mackenzie)
---------- Forwarded message ---------- From: Joachim Breitner
To: Haskell Cafe Cc: Date: Mon, 07 Jan 2013 13:06:35 +0100 Subject: [Haskell-cafe] Example programs with ample use of deepseq? Dear Haskellers, I’m wondering if the use of deepseq to avoid unwanted lazyness might be a too large hammer in some use cases. Therefore, I’m looking for real world programs with ample use of deepseq, and ideally easy ways to test performance (so preferably no GUI applications).
I’ll try to find out, by runtime observerations, which of the calls ot deepseq could be replaced by id, seq, or „shallow seqs“ that, for example, calls seq on the elements of a tuple.
Thanks, Joachim
-- Joachim "nomeata" Breitner mail@joachim-breitner.de | nomeata@debian.org | GPG: 0x4743206C xmpp: nomeata@joachim-breitner.de | http://www.joachim-breitner.de/
---------- Forwarded message ---------- From: "Edward Z. Yang"
To: Joachim Breitner Cc: Haskell Cafe Date: Mon, 07 Jan 2013 04:20:43 -0800 Subject: Re: [Haskell-cafe] Example programs with ample use of deepseq? There are two senses in which deepseq can be overkill: 1. The structure was already strict, and deepseq just forces another no-op traversal of the entire structure. This hypothetically affects seq too, although seq is quite cheap so it's not a problem.
2. deepseq evaluates too much, when it was actually sufficient only to force parts of the structure, e.g. the spine of a list. This is less common for the common use-cases of deepseq; e.g. if I want to force pending exceptions I am usually interested in all exceptions in a (finite) data structure; a space leak may be due to an errant closure---if I don't know which it is, deepseq will force all of them, ditto with work in parallel programs. Certainly there will be cases where you will want snip evaluation at some point, but that is somewhat difficult to encode as a typeclass, since the criterion varies from structure to structure. (Though, perhaps, this structure would be useful:
data Indirection a = Indirection a class DeepSeq Indirection rnf _ = () )
Cheers, Edward
Excerpts from Joachim Breitner's message of Mon Jan 07 04:06:35 -0800 2013:
Dear Haskellers,
I’m wondering if the use of deepseq to avoid unwanted lazyness might be a too large hammer in some use cases. Therefore, I’m looking for real world programs with ample use of deepseq, and ideally easy ways to test performance (so preferably no GUI applications).
I’ll try to find out, by runtime observerations, which of the calls ot deepseq could be replaced by id, seq, or „shallow seqs“ that, for example, calls seq on the elements of a tuple.
Thanks, Joachim
---------- Forwarded message ---------- From: Joachim Breitner
To: haskell-cafe@haskell.org Cc: Date: Mon, 07 Jan 2013 16:59:45 +0100 Subject: Re: [Haskell-cafe] Example programs with ample use of deepseq? Hi, Am Montag, den 07.01.2013, 13:06 +0100 schrieb Joachim Breitner: I’m wondering if the use of deepseq to avoid unwanted lazyness might be a too large hammer in some use cases. Therefore, I’m looking for real world programs with ample use of deepseq, and ideally easy ways to test performance (so preferably no GUI applications).
surprisingly, deepseq is not used as much as I thought. http://packdeps.haskellers.com/reverse/deepseq lists a lot of packages, but (after grepping through some of the code) most just define NFData instances and/or use it in tests, but rarely in the „real“ code. For some reason I expected it to be in more widespread use.
But therefore I am even more interested in non-hackaged applications that I can be allowed to stud – in return I might be able to tell you way to speed up your application.
Greetings, Joachim
-- Joachim "nomeata" Breitner mail@joachim-breitner.de | nomeata@debian.org | GPG: 0x4743206C xmpp: nomeata@joachim-breitner.de | http://www.joachim-breitner.de/
---------- Forwarded message ---------- From: Johan Tibell
To: Joachim Breitner Cc: Haskell Cafe Date: Mon, 7 Jan 2013 08:12:31 -0800 Subject: Re: [Haskell-cafe] Example programs with ample use of deepseq? On Mon, Jan 7, 2013 at 4:06 AM, Joachim Breitner wrote: I’m wondering if the use of deepseq to avoid unwanted lazyness might be a too large hammer in some use cases. Therefore, I’m looking for real world programs with ample use of deepseq, and ideally easy ways to test performance (so preferably no GUI applications).
I never use deepseq, except when setting up benchmark data where it's a convenient way to make sure that the data is evaluated before the benchmark is run.
When removing space leaks you want to avoid creating the thunks in the first place, not remove them after the fact. Consider a leak caused by a list of N thunks. Even if you deepseq that list to eventually remove those thunks, you won't lower your peak memory usage if the list was materialized at some point.
In addition, by not creating the thunks in the first place you avoid some allocation costs.
-- Johan
---------- Forwarded message ---------- From: Peter Simons
To: haskell-cafe@haskell.org Cc: gtk2hs-devel@lists.sourceforge.net Date: Mon, 07 Jan 2013 19:25:22 +0100 Subject: Re: [Haskell-cafe] Announce: Leksah 0.13.1 (a bit experimental) Hi Hamish, would it be possible to get an update for process-leksah that works with recent versions of the 'filepath' package? I cannot build leksah-server with GCC 7.4.2 because of this issue.
Take care, Peter
---------- Forwarded message ---------- From: Hamish Mackenzie
To: Peter Simons Cc: gtk2hs-devel@lists.sourceforge.net, haskell-cafe@haskell.org Date: Tue, 8 Jan 2013 14:05:08 +1300 Subject: Re: [Haskell-cafe] Announce: Leksah 0.13.1 (a bit experimental) Features in process-leksah have been merged into process. For newer versions of GHC leksah-server just depends on process. If it is trying to install process-leksah then something else has probably gone wrong.
Check "ghc-pkg list" for old versions of leksah. Make sure you have the latest versions of ltk, leksah and leksah-server from github. (if you use cabal-meta they will be in the "leksah/vendor" subdirectory).
Here are the steps for installing from scratch... https://github.com/leksah/leksah/blob/master/.travis.yml
Here is what it should look like when it installs... https://travis-ci.org/leksah/leksah
On 8 Jan 2013, at 07:25, Peter Simons
wrote: Hi Hamish,
would it be possible to get an update for process-leksah that works with recent versions of the 'filepath' package? I cannot build leksah-server with GCC 7.4.2 because of this issue.
Take care, Peter
_______________________________________________ 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
-- Yuriy Solodkyy (y.solodkyy@gmail.com)
participants (1)
-
Yuriy Solodkyy