Re: Records in Haskell

2012-02-25 Thread Henrik Nilsson
Hi, Just checking my understanding here as I have not followed this thread in all its details. Gabor Lehel wrote: I agree completely. This is what I like about DORF: the D stands for Declared, which is referring to the fact that the contracts are explicit. Record fields aren't automatically

Re: Records in Haskell

2012-02-25 Thread Gábor Lehel
2012/2/25 Gábor Lehel illiss...@gmail.com: Please correct me if I've misunderstood or mischaracterized any aspect of DORF. Okay, I did end up misunderstanding and mischaracterizing at least two aspects of DORF. Re-reading the wiki page:

Re: Records in Haskell

2012-02-25 Thread Barney Hilken
After more pondering, I finally think I understand what the DORFistas want. Here is an example: You want to define records which describe people, and include (among other things) a field called name. There might be several different record types with a name field, depending on whether the

Re: Records in Haskell

2012-02-25 Thread Gábor Lehel
On Sat, Feb 25, 2012 at 3:54 PM, Barney Hilken b.hil...@ntlworld.com wrote: After more pondering, I finally think I understand what the DORFistas want. Here is an example: You want to define records which describe people, and include (among other things) a field called name. There might be

Understanding the -A and the -H flags

2012-02-25 Thread Johan Tibell
Hi! I'm trying to understand the interaction between the -A and -H RTS flags. The documentation at http://www.haskell.org/ghc/docs/7.4.1/html/users_guide/runtime-control.html says that if you use -H (with or without an argument) it implicitly implies some value of -A. However, it's not clear

Increasing number of worker tasks in RTS (GHC 7.4.1) - how to debug?

2012-02-25 Thread Sanket Agrawal
I wrote a program that uses a timed thread to collect data from a C producer (using FFI). The number of threads in C producer are fixed (and created at init). One haskell timer thread uses threadDelay to run itself on timed interval. When I look at RTS output after killing the program after couple

Re: Increasing number of worker tasks in RTS (GHC 7.4.1) - how to debug?

2012-02-25 Thread Sanket Agrawal
On further investigation, it seems to be very specific to Mac OS Lion (I am running 10.7.3) - all tests were with -N3 option: - I can reliably crash the code with seg fault or bus error if I create more than 8 threads in C FFI (each thread creates its own mutex, for 1-1 coordination with Haskell

Re: Records in Haskell

2012-02-25 Thread Isaac Dupree
On 02/25/2012 10:18 AM, Gábor Lehel wrote: This seems to me a much simpler approach than building the mechanism in to the language as DORF does, and it's also more general, because it isn't hard linked to the module system. Does it have any disadvantages? I can't tell offhand whether it has

Re: Records in Haskell

2012-02-25 Thread Gábor Lehel
On Sat, Feb 25, 2012 at 10:09 PM, Isaac Dupree m...@isaac.cedarswampstudios.org wrote: On 02/25/2012 10:18 AM, Gábor Lehel wrote: This seems to me a much simpler approach than building the mechanism in to the language as DORF does, and it's also more general, because it isn't hard linked to

Re: Records in Haskell

2012-02-25 Thread Barney Hilken
My objection is that I'm not sure if there is ever a case where you really want things to be polymorphic over all records. Well, I don't have a simple, really convincing example, but there are certainly things I want to play with. More importantly, DORF automatically attaches one class to each

Re: Records in Haskell

2012-02-25 Thread Isaac Dupree
On 02/25/2012 05:10 PM, Gábor Lehel wrote: Could you elaborate on this? (What's the way I don't want? What do you mean by field-name-prefixes versus new-style overloading?) With DORF I have control over which fields are polymorphic over which records, very much like how I have control over which

Re: Understanding the -A and the -H flags

2012-02-25 Thread wren ng thornton
On 2/25/12 11:51 AM, Johan Tibell wrote: Perhaps it would make sense to document the actual algorithm used to set -A given -H (with and without argument.) +1. I've always been a bit hazy on how the two are related. -- Live well, ~wren ___

Re: Records in Haskell

2012-02-25 Thread wren ng thornton
On 2/24/12 5:40 PM, Johan Tibell wrote: I share Greg's concerns about polymorphic projections. For example, given a function sort :: Ord a = ... we don't allow any 'a' that happens to export a operator that's spelled= to be passed to 'sort'. We have the user explicitly create an instance

Re: Records in Haskell

2012-02-25 Thread wren ng thornton
On 2/25/12 10:18 AM, Gábor Lehel wrote: On Sat, Feb 25, 2012 at 3:54 PM, Barney Hilkenb.hil...@ntlworld.com wrote: After more pondering, I finally think I understand what the DORFistas want. Here is an example: You want to define records which describe people, and include (among other

Re: Increasing number of worker tasks in RTS (GHC 7.4.1) - how to debug?

2012-02-25 Thread Sanket Agrawal
I have to take back what I said about the increase in worker tasks being related to some Mac OS pthread bug. I can now reproduce the issue on Linux (Redhat x86_64) too (and cause a segmentation fault once in a while). So, now, it seems the issue might be due to either some kind of interaction

Re: Records in Haskell

2012-02-25 Thread Anthony Clayden
Whoa! suddenly a deluge over the DORF proposal. I don't have time to reply fully now, but I must say: Barney you have got it all wrong. No, DORF does not attach one class to each label. There is only one class 'Has', with methods get and set. Each record decl generates an instance for the

Re: Records in Haskell

2012-02-25 Thread Anthony Clayden
Wren/all Please remember SPJ's request on the Records wiki to stick to the namespace issue. We're trying to make something better that H98's name clash. We are not trying to build some ideal polymorphic record system. To take the field labelled name: in H98 you have to declare each record in a