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

cpp: remove cpp addr/deref handling in sem #290

Merged
merged 1 commit into from
Apr 25, 2022

Conversation

saem
Copy link
Collaborator

@saem saem commented Apr 24, 2022

In semexprs there was a path that changed addr/deref handling for cpp.
This is a layering violation and led to non-idempotent sem. Removal
will result in many code gen issues for the cpp backend.

This commit includes a number of changes to tests in order to ensure
that CI still passes. Identifying tests modified due to cpp related
failures with knownIssues.

Additionally, a few small issues with testament were found and fixed:

  • tests weren't always skipped when they weren't in requested targets
  • megatest always ran, even if the c target wasn't specified

Notes for Reviewers

Relates to the discussion here: #289
It's not fully disabling or removing cpp features, but at least we can make honest fixes
instead of hacks.

In semexprs there was a path that changed addr/deref handling for cpp.
This is a layering violation and led to non-idempotent sem. Removal
will result in many code gen issues for the cpp backend.

This commit includes a number of changes to tests in order to ensure
that CI still passes. Identifying tests modified due to cpp related
failures with knownIssues.

Additionally, a few small issues with testament were found and fixed:
- tests weren't always skipped when they weren't in requested targets
- megatest always ran, even if the c target wasn't specified
@saem saem marked this pull request as ready for review April 24, 2022 21:47
@saem
Copy link
Collaborator Author

saem commented Apr 24, 2022

bors r+

@bors
Copy link
Contributor

bors bot commented Apr 24, 2022

👎 Rejected by PR status

@saem
Copy link
Collaborator Author

saem commented Apr 24, 2022

bors r+

@bors
Copy link
Contributor

bors bot commented Apr 24, 2022

👎 Rejected by PR status

@saem
Copy link
Collaborator Author

saem commented Apr 24, 2022

bors r+

@bors
Copy link
Contributor

bors bot commented Apr 24, 2022

👎 Rejected by PR status

@saem saem marked this pull request as draft April 24, 2022 22:40
@saem saem marked this pull request as ready for review April 24, 2022 22:40
@saem
Copy link
Collaborator Author

saem commented Apr 25, 2022

bors r+

@bors
Copy link
Contributor

bors bot commented Apr 25, 2022

👎 Rejected by PR status

@saem
Copy link
Collaborator Author

saem commented Apr 25, 2022

bors r+

@bors
Copy link
Contributor

bors bot commented Apr 25, 2022

👎 Rejected by PR status

@saem saem closed this Apr 25, 2022
@saem saem reopened this Apr 25, 2022
@saem
Copy link
Collaborator Author

saem commented Apr 25, 2022

bors r+

@bors
Copy link
Contributor

bors bot commented Apr 25, 2022

Build succeeded:

@bors bors bot merged commit 9d5bbd2 into nim-works:devel Apr 25, 2022
zerbina added a commit to zerbina/nimskull that referenced this pull request May 1, 2022
Fixes at least some of the code-gen issues introduced by
nim-works#290. All previously
deactived tests work again.

Since temporaries are now also used in places where they previously
weren't (for the C back-end), this is a breaking change.
zerbina added a commit to zerbina/nimskull that referenced this pull request May 1, 2022
Fixes at least some of the code-gen issues introduced by
nim-works#290. All previously
deactived tests work again.

Since temporaries are now also used in places where they previously
weren't (for the C back-end), this is a breaking change.
bors bot added a commit that referenced this pull request May 1, 2022
294: cpp: fix `var` parameter regression r=saem a=zerbina

Fixes at least some of the code-gen issues introduced by
#290. All previously
disabled tests work again.

For more details, refer to ``tests/ccgbugs/tvar_param.nim``.

Since temporaries are now also used in places where they previously
weren't (for the C back-end), this is a breaking change.



Co-authored-by: zerbina <[email protected]>
@haxscramper haxscramper added this to the VM backend refactoring milestone Nov 21, 2022
@saem saem deleted the remove-cpp-hack-in-sem branch January 22, 2023 18:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants