Nothing Special   »   [go: up one dir, main page]

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

BNFC 2.9: cleanup, introducing breaking changes #265

Closed
8 of 12 tasks
andreasabel opened this issue Nov 5, 2019 · 1 comment
Closed
8 of 12 tasks

BNFC 2.9: cleanup, introducing breaking changes #265

andreasabel opened this issue Nov 5, 2019 · 1 comment
Assignees
Milestone

Comments

@andreasabel
Copy link
Member
andreasabel commented Nov 5, 2019

This is an umbrella issues collecting breaking changes we might want to introduce in BNFC.
The goal is to remove exotic features and make BNFC more robust.

More permissive license (see #308):

  • Change to BSD-3

LBNF:

  • Remove profiles?
  • Remove views?

Haskell backend:

  • Remove ErrM, use Either and ExceptT instead (already in 2.8.4)
  • Use a standard pretty-printing framework for the printer instead of the own hand-rolled one
  • Drop Alex1 and Alex2 (Peter Gammie) support and --sharestrings (Björn Bringert)
  • Make -d option default
  • Make --ghc option default and drop support for non-GHC Haskell in ErrM.hs

Java backend:

  • remove A arg from generated visitor, at least by option

Remove backends:

@andreasabel andreasabel added this to the 2.9 milestone Nov 5, 2019
andreasabel added a commit that referenced this issue Oct 14, 2020
This experimental feature has never been integrated into BNFC.
It is dead code from the point of view of BNFC.
There was some dedicated driver `MultiView.hs` not part of the
compilation process or the testsuite.

This feature, should interest exist, could be maintained in a fork
of BNFC.
andreasabel added a commit that referenced this issue Oct 14, 2020
Alex 1 has long disappeared, it is not even on hackage.
This backend has not been untested for a long time.
It is just a burden to keep it compilable when refactorings happen.
andreasabel added a commit that referenced this issue Oct 14, 2020
Alex version 2 does not support unicode and requires GHC <= 7.0 to
build.  It is unlikely that Alex 2 is still used actively.

The --alex2 backend has not been tested for a while.
(BNFC requires now GHC >= 7.10.)
andreasabel added a commit that referenced this issue Oct 14, 2020
This option has been untested for a long time.
The code produced by this module does not readily compile with GHC.
andreasabel added a commit that referenced this issue Oct 14, 2020
There is only one Alex backend left: Alex3.
andreasabel added a commit that referenced this issue Oct 14, 2020
This backend hasn't had a maintainer and has never been covered by the
testsuite.  Alternative language-agnostic tools to generate C# parsers
exist, e.g. https://www.npmjs.com/package/syntax-cli .
andreasabel added a commit that referenced this issue Oct 14, 2020
This module might have been used in isolation, or it was the start of
a project to add a GF backend.
andreasabel added a commit that referenced this issue Oct 14, 2020
Tool https://hackage.haskell.org/package/weeder suggested some unused
functions of which I removed some.
andreasabel added a commit that referenced this issue Oct 14, 2020
Profiles were documented but not tested and did not work out of the
box.  The profile mode was not really core functionality of BNFC, and
design never progressed over the initial stage.  (The syntax
remained ad-hoc: lists/tuples, no nice syntax for the default cases.)

Profiles could be maintained on a fork of BNFC.
andreasabel added a commit that referenced this issue Oct 14, 2020
Labels can only be identifiers since profiles have been removed.
@andreasabel andreasabel self-assigned this Oct 25, 2020
andreasabel added a commit that referenced this issue Oct 25, 2020
This backend is released under GPL and the author does not want to
release it under MIT or BSD.
andreasabel added a commit that referenced this issue Oct 25, 2020
This feature is licensed under GPL can cannot be released under a more
permissive license such as BSD or MIT.
andreasabel added a commit that referenced this issue Oct 25, 2020
This backend is released under GPL and the author does not want to
release it under MIT or BSD.
andreasabel added a commit that referenced this issue Oct 25, 2020
This feature is licensed under GPL can cannot be released under a more
permissive license such as BSD or MIT.
andreasabel added a commit that referenced this issue Oct 26, 2020
…l file

The include paths given to GHCI for running the doctests are more
stable by using dist/build/bnfc-doctests/autogen/ instead of
dist/build/autogen/ which is only present if BNFC is also a library.
andreasabel added a commit that referenced this issue Oct 26, 2020
This backend is released under GPL and the author does not want to
release it under MIT or BSD.
andreasabel added a commit that referenced this issue Oct 26, 2020
This feature is licensed under GPL can cannot be released under a more
permissive license such as BSD or MIT.
andreasabel added a commit that referenced this issue Nov 12, 2020
Integer list(s) (lists) were used in profiles and are now obsolete.
@andreasabel
Copy link
Member Author

BNFC 2.9 will be dedicated to the license change to BSD-3-clause.
Other breaking changes can be part of 2.10 or 3.0.

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

1 participant