Arrow Development

2015-02-19 Thread Thomas Bereknyei
I am looking at the proc notation de-sugar and I see results like this when
using a Free Arrow (mostly copied from [1]):
line2 = proc n -> do
  Effect getURLSum *** Effect getURLSum -< n

Seq [Pure ] (Seq [Pure ] (Seq [Pure ] (Seq [Pure ](Par 
{Effect } ) ) ) )

while this is so much simpler:
line2 = Effect getURLSum *** Effect getURLSum

Par  {Effect }

Those `Seq [Pure ]` sequences come from application of (.) and I have
noticed many similar inefficiencies in the Arrow preprocessor. Eventually
the goal would be to optimize when possible, for example I started looking
into this in order to use `concurrently` for (***) when in IO.

There was a rewrite mentioned here [2]. The deSugar/DsArrows.hs [3] looks
convoluted. Any progress or work needed? Or are Arrows not used much and
not worth the effort?

[1]
http://stackoverflow.com/questions/12001350/useful-operations-on-free-arrows
[2]https://mail.haskell.org/pipermail/haskell-cafe/2013-August/109795.html
[3]https://github.com/ghc/ghc/blob/master/compiler/deSugar/DsArrows.hs

-Tom
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


RE: Behavior change of Data.Char

2015-02-19 Thread Simon Peyton Jones
It'd be good to document this condition/invariant in the Haddocks, wouldn't it?!

Simon

|  -Original Message-
|  From: ghc-devs [mailto:ghc-devs-boun...@haskell.org] On Behalf Of
|  Herbert Valerio Riedel
|  Sent: 19 February 2015 10:42
|  To: Kazu Yamamoto
|  Cc: librar...@haskell.org; ghc-devs@haskell.org
|  Subject: Re: Behavior change of Data.Char
|  
|  On 2015-02-19 at 06:19:18 +0100, Kazu Yamamoto (山本和彦) wrote:
|  > It seems to me that some characters of GHC 7.10.1RC2 behave
|  > differently from those of GHC 7.8.4:
|  >
|  >   7.8.4   7.10.1RC2
|  > isLower (char 170)TrueFalse
|  
|  Fwiw, the motivation for that particular change may be (I'm just
|  guessing here) to have the following condition hold:
|  
|\c -> isLower c `implies` (not . isLower . toUpper) c
|  
|  i.e. if something is 'lower-case', then applying 'toUpper' should
|  result in a character that is not 'lower-case' anymore. This didn't
|  hold with 7.8.4's Unicode 6, but now holds with 7.10.1's Unicode 7
|  definitions.
|  
|  Cheers,
|hvr
|  ___
|  ghc-devs mailing list
|  ghc-devs@haskell.org
|  http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Behavior change of Data.Char

2015-02-19 Thread Herbert Valerio Riedel
On 2015-02-19 at 06:19:18 +0100, Kazu Yamamoto (山本和彦) wrote:
> It seems to me that some characters of GHC 7.10.1RC2 behave
> differently from those of GHC 7.8.4:
>
>   7.8.4   7.10.1RC2
> isLower (char 170)TrueFalse  

Fwiw, the motivation for that particular change may be (I'm just
guessing here) to have the following condition hold:

  \c -> isLower c `implies` (not . isLower . toUpper) c

i.e. if something is 'lower-case', then applying 'toUpper' should result
in a character that is not 'lower-case' anymore. This didn't hold with
7.8.4's Unicode 6, but now holds with 7.10.1's Unicode 7 definitions.

Cheers,
  hvr
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Behavior change of Data.Char

2015-02-19 Thread Roman Cheplyaka
These are not bugs — these are changes in the Unicode standard.

See
http://www.unicode.org/Public/6.0.0/ucd/UnicodeData.txt (old)
http://www.unicode.org/Public/7.0.0/ucd/UnicodeData.txt (new)

On 19/02/15 12:14, Kazu Yamamoto (山本和彦) wrote:
> David,
> 
> Thank you for the information.
> 
> I would like to know whether or not this behavior changes are
> intentional.  If they are bugs, we need to fix them before releasing
> GHC 7.10.1.
> 
> --Kazu
> 
>> 7.10 uses a newer version of Unicode, which could explain differences.
>>
>> On Thu, Feb 19, 2015 at 12:19 AM, Kazu Yamamoto  wrote:
>>> Hi,
>>>
>>> It seems to me that some characters of GHC 7.10.1RC2 behave
>>> differently from those of GHC 7.8.4:
>>>
>>>   7.8.4   7.10.1RC2
>>> isLower (char 170)TrueFalse
>>> isSymbol (chr 182)TrueFalse
>>> isPunctuation (chr 182)   FaseTrue
>>>
>>> Is this intentional?
>>>
>>> I noticed this because I received a bug report:
>>>
>>> https://github.com/kazu-yamamoto/word8/issues/3
>>>
>>> As you can see, 167 also behaves differently.
>>>
>>> --Kazu
>>> ___
>>> Libraries mailing list
>>> librar...@haskell.org
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
> ___
> Libraries mailing list
> librar...@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
> 

___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Behavior change of Data.Char

2015-02-19 Thread 山本和彦
David,

Thank you for the information.

I would like to know whether or not this behavior changes are
intentional.  If they are bugs, we need to fix them before releasing
GHC 7.10.1.

--Kazu

> 7.10 uses a newer version of Unicode, which could explain differences.
> 
> On Thu, Feb 19, 2015 at 12:19 AM, Kazu Yamamoto  wrote:
>> Hi,
>>
>> It seems to me that some characters of GHC 7.10.1RC2 behave
>> differently from those of GHC 7.8.4:
>>
>>   7.8.4   7.10.1RC2
>> isLower (char 170)TrueFalse
>> isSymbol (chr 182)TrueFalse
>> isPunctuation (chr 182)   FaseTrue
>>
>> Is this intentional?
>>
>> I noticed this because I received a bug report:
>>
>> https://github.com/kazu-yamamoto/word8/issues/3
>>
>> As you can see, 167 also behaves differently.
>>
>> --Kazu
>> ___
>> Libraries mailing list
>> librar...@haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs