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

Multi-locale libraries fail to compile due to types returned from exported functions in standard modules #13394

Closed
dlongnecke-cray opened this issue Jul 8, 2019 · 8 comments · Fixed by #13403
Assignees

Comments

@dlongnecke-cray
Copy link
Contributor

dlongnecke-cray commented Jul 8, 2019

$CHPL_HOME/modules/standard/IO.chpl:941: error: Multi-locale libraries do not support return type: syserr

MLL compilation has started to fail due to encountering unsupported types returned by functions exported in the Chapel standard modules.

What I am not sure of is the commit that introduced this failure.

This issue is blocking resolution of https://github.com/Cray/chapel-private/issues/278.

@dlongnecke-cray dlongnecke-cray self-assigned this Jul 8, 2019
@bradcray
Copy link
Member

bradcray commented Jul 8, 2019

This sounds potentially related to @lydia-duncan's #13372, but only because issue #13373 mentions related modules. I don't know the code well enough to have a theory as to why it would matter, though...

@dlongnecke-cray
Copy link
Contributor Author

I looked over the code for that PR and haven't the slightest idea how it might have induced this failure, but hopefully @lydia-duncan might have a more promising lead...

@bradcray
Copy link
Member

bradcray commented Jul 8, 2019

There's always git bisect...

@dlongnecke-cray
Copy link
Contributor Author

I'll give it a go. This will be fun!

@dlongnecke-cray
Copy link
Contributor Author

Well that wasn't what I was expecting! Nothing to do with the PR of @lydia-duncan at all, but rather it looks like something to do with #13327 from @mppf.

Investigating why now.

@dlongnecke-cray
Copy link
Contributor Author

dlongnecke-cray commented Jul 9, 2019

Ah. A rather silly logical error on my part.

It seems I skip internal modules with exported functions in my codegen, but not standard modules. It looks like the IO plugins @mppf migrated to the standard modules ended up triggering this error. Understandably, he didn't catch it, because there are no tests for MLL compilation yet.

@lydia-duncan
Copy link
Member

Michael asked me about skipping the standard module functions, but I think he only saw the single locale case.

There are tests for MLL compilation, they just only run on Macs nightly due to #278 (which you are working on this sprint)

@lydia-duncan
Copy link
Member

I wonder what it would take to allow functions that use extern types for their argument or return types to be exported . . . it shouldn't be bad in single locale but multilocale will for sure be tricky . . .

dlongnecke-cray added a commit that referenced this issue Jul 10, 2019
…pe-errors

Skip standard modules when generating MLL wrappers

This PR will resolve #13394.

Standard modules export functions with types that multi-locale
libraries are not ready to support yet. This PR causes the code
generation for exported functions in multi-locale libraries to skip
over standard modules as well as internal.

In addition, this PR also absorbs changes from closed PR #13393,
since that PR's testing was dependent on this.

Testing:

- [x] interop/C/multilocale on darwin when CHPL_COMM=gasnet
- [x] interop/python/multilocale on darwin when CHPL_COMM=gasnet
- [x] ALL on linux64 when CHPL_COMM=gasnet
- [x] ALL on linux64 when CHPL_COMM=none

Thanks @lydia-duncan for review.
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 a pull request may close this issue.

3 participants