Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

megaparsec 6.0 #2666

Closed
8 of 12 tasks
snoyberg opened this issue Jul 27, 2017 · 26 comments
Closed
8 of 12 tasks

megaparsec 6.0 #2666

snoyberg opened this issue Jul 27, 2017 · 26 comments

Comments

@snoyberg
Copy link
Contributor

snoyberg commented Jul 27, 2017

megaparsec-6.0.0 (Mark Karpov [email protected] @mrkkrp) is out of bounds for:

@fosskers
Copy link
Contributor

versions updated.

@DanBurton
Copy link
Contributor

DanBurton commented Jul 27, 2017

Entirely redundant with the above, but do also note:

hspec-megaparsec-1.0.0 (Mark Karpov [email protected] @mrkkrp) is out of bounds for:

@bartavelle
Copy link
Contributor

My parser seems to break when doing a naive move to v6. It will take me a while to find out why.

@simonmichael
Copy link
Contributor

Some porting notes, perhaps better here than on reddit:

added where needed:

import Text.Megaparsec.Char

replaced Dec with MPErr and added:

-- build with old or new megaparsec
#if MIN_VERSION_megaparsec(6,0,0)
type MPErr = ErrorFancy Void
#else
type MPErr = Dec
#endif

added these as Text.Megaparsec.String/Text.Megaparsec.Text seem to have gone away:

type SimpleStringParser = Parsec MPErr String 
type SimpleTextParser = Parsec MPErr Text 

@fosskers
Copy link
Contributor

The library itself recommends setting the error type (where MPErr is used above) to Void if its not needed.

@simonmichael
Copy link
Contributor

Here's a Text.Megaparsec.Compat module, useful for supporting megaparsec <6 and >=6.

@mrkkrp
Copy link
Contributor

mrkkrp commented Jul 28, 2017

@bartavelle If you have any trouble switching please open an issue, I'll help.

@DanBurton
Copy link
Contributor

@fosskers: this was unfortunate, but I removed "versions" from the build plan since it could not satisfy both the new version of base (which we are upgrading to now) and the old version of Megaparsec (which we are upgrading later).

@bartavelle
Copy link
Contributor

@mrkkrp I'll try to pinpoint the problem next week. The only meaningful change I did was changing an integer into a decimal, but this gave really weird results (change in whitespace handling, 0x800 parsed as 0). I am sure I did something wrong, so will do that when I have plenty of time to do it properly.

@fosskers
Copy link
Contributor

fosskers commented Jul 28, 2017

@DanBurton but I bumped my base upper bound too... :(

Hmm... actually I don't think I can support any megaparsecs less than 6 now, since a user requested that I expose some of the internal parsers that versions uses in case they wanted to include version number parsers in a larger parser of their own. Exposing these puts a bit of a stranglehold on versions' major version and dep ranges.

@mrkkrp
Copy link
Contributor

mrkkrp commented Jul 28, 2017

Updated:

  • hspec-megaparsec
  • stache
  • cue-sheet

@bartavelle
Copy link
Contributor

@mrkkrp Turned out my parser had bugs, but they did not surface with megaparsec 5!

@bartavelle
Copy link
Contributor

released language-puppet-1.3.9

@juanpaucar
Copy link
Contributor

Fixed for dotenv in version 0.4.0.0

snoyberg added a commit that referenced this issue Aug 4, 2017
@CristhianMotoche
Copy link
Contributor

inflections-hs updated! inflections-0.4.0.0 in hackage

@mrkkrp
Copy link
Contributor

mrkkrp commented Aug 8, 2017

Can we perhaps update the checkboxes in the first post?

@mihaimaruseac
Copy link
Contributor

Checkboxes updated

@CristhianMotoche
Copy link
Contributor

@mihaimaruseac inflections and dotenv-hs are already updated. Could you please give check our packages in the todo? or are we missing something else?

@mihaimaruseac
Copy link
Contributor

I see they are updated already.

@CristhianMotoche
Copy link
Contributor

Yeah. I see they are already checked. Thanks! @mihaimaruseac

@PierreR
Copy link
Contributor

PierreR commented Aug 23, 2017

I would love to see megaparsec updated to 6.1.1 in stackage-nightly. It looks like many packages are currently on hold for nightly waiting for the others to make the megaparsec update. As time goes on, this seems less fair ;-)

@simonmichael
Copy link
Contributor

You are right! and I am sorry for being the laggard here. I updated the hledger packages early but have been hung up on the release process. I will release them today.

@cdornan
Copy link
Contributor

cdornan commented Aug 24, 2017

@simonmichael totally cool: will get them right back as soon as the releases have been made. Thanks!

@simonmichael
Copy link
Contributor

Thanks @cdornan.

@cdornan
Copy link
Contributor

cdornan commented Aug 24, 2017

Megaparsec-6 has been blocked for 4 weeks so we have decided to (temporarily we hope) evict the remaining blockers and restore them as soon as they are compatible with megaparsec-6.

I have raised issue in the three projects concerned:

@mrkkrp
Copy link
Contributor

mrkkrp commented Aug 25, 2017

Now that Megaparsec 6 is in nightly builds, can we allow newest stache (1.1.1)?

simonmichael added a commit to simonmichael/stackage that referenced this issue Sep 4, 2017
These packages now support megaparsec 6 and should be free of other dep issues.
decentral1se pushed a commit that referenced this issue Sep 4, 2017
These packages now support megaparsec 6 and should be free of other dep issues.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests