Arrow Development
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
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
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
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
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