[Haskell] ANNOUNCE: haskell-src-exts 1.14.0

Niklas Broberg niklas.broberg at gmail.com
Tue Aug 20 16:49:12 CEST 2013


HSE parses based on pragmas by default. This can be configured through the
ParseMode [1].

But your question regards HSP, Haskell Server Pages, which indeed just
enables most extensions by default. Right now there's no way to configure
that, but it shouldn't be hard for a skilled programmer to fix. Patches
most welcome.  :-)

Cheers, Niklas

[1]
http://hackage.haskell.org/packages/archive/haskell-src-exts/1.13.5/doc/html/Language-Haskell-Exts-Parser.html#t:ParseMode
On 20 Aug 2013 12:57, "Dag Odenhall" <dag.odenhall at gmail.com> wrote:

> Good stuff!
>
> Is there any way, or plans for a way, to parse a file based on its
> LANGUAGE pragmas? Last I checked e.g. HSP simply enabled all extensions
> when parsing, which can cause code to be parsed incorrectly in some cases.
>
>
> On Tue, Aug 20, 2013 at 10:15 AM, Niklas Broberg <niklas.broberg at gmail.com
> > wrote:
>
>> Fellow Haskelleers,
>>
>> I'm pleased to announce the release of haskell-src-exts-1.14.0!
>>
>> * On hackage: http://hackage.haskell.org/package/haskell-src-exts
>> * Via cabal: cabal install haskell-src-exts
>> * git repo: https://github.com/haskell-suite/haskell-src-exts<http://code.haskell.org/haskell-src-exts>
>>
>> There are two primary reasons for this release, and a number of smaller
>> ones.
>>
>> The first primary reason is technical: haskell-src-exts 1.14 revamps the
>> Extension datatype, among other things to allow turning extensions on and
>> off (similar to what Cabal allows). We also introduce the concept of a
>> Language, separate from a set of extensions. This is the only
>> backwards-incompatible change in this release.
>>
>> The second reason is structural: haskell-src-exts is now part of a larger
>> context -- the Haskell Suite. The package has a new home on github (see
>> above), alongside its new cool friends: haskell-names and haskell-packages.
>> There is also a really nice issue tracker there - please help me fill it,
>> or better yet, empty it!
>>
>> What this release does *not* cover is support for the extensions added to
>> GHC in recent time (with the exceptions of CApiFFI and InterruptibleFFI).
>> Work is in progress on many of these, and there will be another major
>> release not far off in the future.
>>
>>
>> This release owes many thanks to Roman Cheplyaka in particular, as well
>> as Erik Hesselink, Simon Meier and David Fox. Thanks a lot!
>>
>>
>> Complete changelog:
>>
>> 1.13.6 --> 1.14.0
>> ===============
>>
>> * Modernize the Extension datatype in L.H.E.Extension, following the lead
>>   of Cabal, to allow negative and positive extension modifiers (turning
>>   features on and off). You need to worry about backwards-incompatible
>>   changes if any of the following pertains to you:
>>   1) If you use the Extension datatype programmatically - it has changed
>>      significantly (see documentation).
>>   2) The ParseMode record now has one more field
>>      (baseLanguage :: Language), which might give you a type error.
>>   3) The behavior of the (extensions :: [Extension]) field has changed,
>>      which could bite you if you pass custom extensions in the ParseMode.
>>      Previously, the ParseMode defaulted to the list of extensions
>> accepted
>>      by Haskell2010, and if you set the list explicitly you would
>> override
>>      this. Now, the defaults are { baseLanguage = Haskell2010, extensions
>> = [] },
>>      and explicitly setting a list of extensions will be interpreted on
>> top of
>>      Haskell2010. See further the documentation for L.H.E.Extension.
>>
>> * Add support for the 'capi' calling convention. It is enabled with the
>> CApiFFI
>>   extension. It's been included since GHC 7.4, and advertised since 7.6.
>>
>> * Add support for the 'interruptible' FFI safety annotation, enabled with
>>   the InterruptibleFFI extension.
>>
>> * Give better error message when lexing newline fails. In particular, fix
>> the bug
>>   when the parser would crash if the file didn't end with a newline.
>>
>> * Support unboxed tuple expressions and patterns.
>>
>> * Fix bug in lexing of primitive integer literals in hex or octal
>> notation.
>>
>> * Disallow negative primitive word literals
>>   (such as W# (-0x8000000000000000##)).
>>
>> * Allow phase control for SPECIALIZE pragma.
>>
>> * Derive Foldable and Traversable instances for all annotated AST types.
>>
>> * Fix bug with pretty-printing WARNING and DEPRECATED pragmas.
>>
>>
>> Cheers, Niklas
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Haskell Server Pages" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to haskell-server-pages+unsubscribe at googlegroups.com.
>> To post to this group, send email to
>> haskell-server-pages at googlegroups.com.
>> Visit this group at http://groups.google.com/group/haskell-server-pages.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Haskell Server Pages" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to haskell-server-pages+unsubscribe at googlegroups.com.
> To post to this group, send email to haskell-server-pages at googlegroups.com
> .
> Visit this group at http://groups.google.com/group/haskell-server-pages.
> For more options, visit https://groups.google.com/groups/opt_out.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell/attachments/20130820/873e2eb2/attachment.htm>


More information about the Haskell mailing list