-
Notifications
You must be signed in to change notification settings - Fork 84
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
Modernizing the Packaging #187
Comments
I think @knothed already made some progress in that direction. Since hackage doesn't support multi public library packages yet, we settled on one cabal file for each subcomponent, which means more administrative overhead each release. Maybe some script/configure/Makefile can automate the process. |
The current example is at https://github.com/knothed/modular-happy. Still a few refactorings away from being feasible to merge back into happy mainline, but hopefully not too long. The general ideas of #167 (comment) are still valid, there's but one more package: main = do
options <- parseOptions =<< getArgs
grammar <- try $ runFrontend (frontendOpts options)
(action, goto, lr1Items, unused_rules) <- runMiddleend (middleendOpts options) grammar
case backend options of
Normal opts -> runBackend opts grammar action goto
RAD opts -> runRADBackend opts grammar action goto lr1Items unused_rules This seems like an acceptable maintenance overhead for extension developers, compared to having to closely follow the |
This way we can also make |
What is the way forward here? Does this issue still apply? |
I would like us to take a critical look at what we're trying to achieve. Why wouldn't a single library |
Happy 2.0 shipped with said |
We have some discussion in #167 and #149, but let's lay out the first steps in a separate issue.
ReadP
from base (see Optional bootstrapping #175 (comment))At this point the bootstrap will be as simple as it's ever been, and we still support GHCs 7 and up, so I would like to do a release.
Afterwords I would like to take more radical changes:
The text was updated successfully, but these errors were encountered: