-
Notifications
You must be signed in to change notification settings - Fork 56
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
Add C# support to Canopy #70
base: main
Are you sure you want to change the base?
Conversation
This looks really interesting, I never expected anyone to add a whole new backend to Canopy. As I'm not familiar with C# at all, this may take a while to review, and it may happen that I decide I'm not able to take responsibility for maintaining this code, but I want to see if I can get things running. The first issue I'm running into is that the tests don't run; I've installed the
Can you help me with what I need to install or configure to get this running? I would also be interested in knowing what the general experience of running C# on macOS is like. One major maintenance expense this project faces is running on many versions of many languages and we try to to reduce the impact of things by keeping things as simple of possible -- using a small subset of each language, not using any features that aren't really stable, not using any third party dependencies, and so on. Not being familiar with C#, it's impossible for me to assess this code in that way so I'd appreciate your opinion on how stable this code is likely to be and what issues I might run into. |
M1 is officially supported only from .net 6, the Makefile requires you to set the framework otherwise it defaults to 3.1. See line 56: |
Apologies, I have not had time to work on this over the summer but would be keen to get it integrated. The version of .NET on my machine now seems to be 7.0 (I guess due to a Homebrew update), and running the tests doesn't seem to have any effect:
The build prints a series of messages like this, one for each Could you fix the build so that it runs the tests, and preferably put all the tests under a single project so thr Makefile does not need to enumerate each test suite individually? |
I'd also be obliged if you could rework the GitHub Actions config to use the |
Did you make meaningful changes to |
I have found that adding Trying to place multiple test suites in the same directory causes a problem of |
My apologies, on re-examining the Java tests, these helpers are defined once per suite because they need to make use of package-scoped definitions of |
A bit of experimentation indicates that I can get the tests working by wrapping each suite This exposes a further problem: for Java, each public class is required by the platform to be in its own source file. Does the same restriction apply to C#? If not I would like to reduce the number of files generated as much as possible to reduce the boilerplate that end users need to make use of the generated parsers. |
Apologies for the flurry of comments yesterday, I believe I can resolve most of these issues myself. I'll make some changes on top of your work and then ask you to have a look at the final result to check it still meets your needs. |
Add C# support to Canopy.
Took most of the concept and also code from the Java support.