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

RFC 68: Mandatory FFI declarations #3739

Merged
merged 10 commits into from
May 3, 2021
Merged

RFC 68: Mandatory FFI declarations #3739

merged 10 commits into from
May 3, 2021

Conversation

ergl
Copy link
Member

@ergl ergl commented Apr 5, 2021

Changes related to the implementation of RFC 68.


Opening the PR now although it's not ready, to ask for feedback, etc

Tasks:

  • Add FFI declarations for all Pony libraries under the ponylang org
  • Add FFI declarations to the standard library and tests
  • Remove FFI call return type declaration syntax
  • Update tutorial

This closes #3735

@SeanTAllen SeanTAllen added the changelog - changed Automatically add "Changed" CHANGELOG entry on merge label Apr 5, 2021
@ergl ergl added do not merge This PR should not be merged at this time and removed changelog - changed Automatically add "Changed" CHANGELOG entry on merge labels Apr 5, 2021
@ponylang-main
Copy link
Contributor

Hi @ergl,

The changelog - changed label was added to this pull request; all PRs with a changelog label need to have release notes included as part of the PR. If you haven't added release notes already, please do.

Release notes are added by creating a uniquely named file in the .release-notes directory. We suggest you call the file 3739.md to match the number of this pull request.

The basic format of the release notes (using markdown) should be:

## Title

End user description of changes, why it's important,
problems it solves etc.

If a breaking change, make sure to include 1 or more
examples what code would look like prior to this change
and how to update it to work after this change.

Thanks.

@ergl ergl added the changelog - changed Automatically add "Changed" CHANGELOG entry on merge label Apr 5, 2021
@SeanTAllen
Copy link
Member

Release notes for this should be pretty detailed with examples of code that was previously valid and how to fix it to make it valid after the change. If there are any tricky bits, those should be highlighted.

packages/builtin/unsigned.pony Outdated Show resolved Hide resolved
@ergl ergl force-pushed the ergl/rfc-68 branch 4 times, most recently from c1e5045 to f19b3f6 Compare April 9, 2021 17:28
@ergl
Copy link
Member Author

ergl commented Apr 10, 2021

Okay, I think all the changes in the compiler are done. I know the diff is quite large, since there are a lot of declarations going on. Probably the most important things I'd like some review on would be the last two commits, where I enforce that FFI declarations exists, and where I remove the syntax for specifying the return type on FFI calls.

@ergl
Copy link
Member Author

ergl commented Apr 10, 2021

The CI errors are due to the test-validate-grammar step. I don't have a good idea on how to update the pony.g file to reflect the changes I've done.

@mfelsche
Copy link
Contributor

@ergl You can generate the new grammar file using your newly compilerd ponyc from your PR and do: ponyc --antlr > pony.g.

@ergl
Copy link
Member Author

ergl commented Apr 10, 2021

Ah, great!

@ergl ergl marked this pull request as ready for review April 25, 2021 16:07
@ergl ergl removed the do not merge This PR should not be merged at this time label Apr 25, 2021
@ergl
Copy link
Member Author

ergl commented Apr 25, 2021

This is ready for review

@SeanTAllen
Copy link
Member

I'm holding off on the next release (that contains a "triggers release" fix) as this other large change might be ready soon. My target for the release is no later than this Friday.

@SeanTAllen
Copy link
Member

@jemc can you give this a review?

@SeanTAllen
Copy link
Member

@ergl are there corresponding tutorial and other changes associated with this that I would need to merge after this is released?

Copy link
Member

@jemc jemc 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 was a big initiative. Great work!

@ergl
Copy link
Member Author

ergl commented May 3, 2021

@SeanTAllen Yes, the tutorial changes are in pony-tutorial#468

@jemc Thanks! Thank you for also helping me with all LLVM comments and guiding me through the compiler

@SeanTAllen SeanTAllen merged commit a4abbba into main May 3, 2021
@SeanTAllen SeanTAllen deleted the ergl/rfc-68 branch May 3, 2021 18:42
github-actions bot pushed a commit that referenced this pull request May 3, 2021
github-actions bot pushed a commit that referenced this pull request May 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog - changed Automatically add "Changed" CHANGELOG entry on merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

RFC 68: Force declaration of FFI functions
5 participants