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

Windows support for the C target #532

Merged
merged 120 commits into from Oct 6, 2021
Merged

Windows support for the C target #532

merged 120 commits into from Oct 6, 2021

Conversation

Soroosh129
Copy link
Contributor

@Soroosh129 Soroosh129 commented Sep 23, 2021

This is an ongoing work-in-progress to enable native Windows support in our C target.

There are three main tasks remaining:

  • Ensure that all tests pass for Linux and MacOS (currently, some are broken)
  • Enable Windows tests for the C target on GitHub Actions, and make sure that all pass (some tests should be excluded, see below)
  • Exclude federated and serialization tests (i.e., Protobuf-based tests) for Windows in our testing framework (org.lflang.tests)

Fixes #531.

The following tests are skipped on Windows:

C

  • Federated
  • AsFederated (run every test as federated)
  • Serialization
  • Target (target-specific tests, like ones with no CMake)
  • CCpp (run everything as CCpp)

Python

  • Federated
  • AsFederated
  • Serialization

@Soroosh129 Soroosh129 self-assigned this Sep 23, 2021
@Soroosh129 Soroosh129 added this to In progress in Testing via automation Sep 23, 2021
@Soroosh129 Soroosh129 added this to In progress in Development Tooling via automation Sep 23, 2021
@Soroosh129 Soroosh129 added this to the 0.1.0 RC1 milestone Sep 23, 2021
@Soroosh129 Soroosh129 added c Related to C target enhancement Enhancement of existing feature help wanted Extra attention is needed labels Sep 23, 2021
@Soroosh129 Soroosh129 changed the title Windows c target Windows support for the C target Sep 24, 2021
@Soroosh129
Copy link
Contributor Author

Thanks @petervdonovan for testing this out. The issue seems to be that the ReflexGame.lf example was using pthread functions. I've now pushed a change that uses lf_thread functions. I will look for other examples and update them as I find them.

Copy link
Collaborator

@edwardalee edwardalee left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, this is a tour-de-force!! Let's merge it ASAP! Note very minor suggestions.

org.lflang/src/org/lflang/generator/c/CCompiler.java Outdated Show resolved Hide resolved
org.lflang/src/org/lflang/generator/c/CGenerator.xtend Outdated Show resolved Hide resolved
org.lflang/src/org/lflang/generator/c/CGenerator.xtend Outdated Show resolved Hide resolved
org.lflang/src/org/lflang/generator/c/CGenerator.xtend Outdated Show resolved Hide resolved
Copy link
Member

@lhstrh lhstrh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good and ready to merge, @Soroosh129! Only left some minor comments.

@lhstrh lhstrh merged commit 22b1bb0 into master Oct 6, 2021
Testing automation moved this from In progress to Done Oct 6, 2021
Development Tooling automation moved this from In progress to Done Oct 6, 2021
@lhstrh lhstrh deleted the windows-c-target branch October 6, 2021 00:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c Related to C target enhancement Enhancement of existing feature help wanted Extra attention is needed python Related to the Python target
Projects
Testing
  
Done
Development

Successfully merging this pull request may close these issues.

handle_t: Windows-specific name collision
5 participants