Skip to content

Updating package for SOLLVE#12607

Merged
adamjstewart merged 4 commits intospack:developfrom
vlkale:develop
Nov 26, 2019
Merged

Updating package for SOLLVE#12607
adamjstewart merged 4 commits intospack:developfrom
vlkale:develop

Conversation

@vlkale
Copy link
Copy Markdown
Contributor

@vlkale vlkale commented Aug 28, 2019

I'm creating a pull request for a Spack package for the SOLLVE project, which will be built based on the Spack package for the LLVM project. The Spack package for the SOLLVE project would be used by application programmers of OpenMP applications, especially ECP OpenMP applications, to experiment with the latest features in SOLLVE project's software technologies.

Copy link
Copy Markdown
Member

@adamjstewart adamjstewart left a comment

Choose a reason for hiding this comment

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

I assume this package is largely the same as the LLVM package in Spack? You can actually subclass that package if you want so there isn't so much code duplication.

@vlkale
Copy link
Copy Markdown
Contributor Author

vlkale commented Sep 16, 2019

I assume this package is largely the same as the LLVM package in Spack? You can actually subclass that package if you want so there isn't so much code duplication.

SOLLVE goes in depth on certain features for exascale. LLVM development is rapid. SOLLVE shouldn’t and doesn’t need to keep up with all the changes in LLVM, so we think it’s best that SOLLVE shouldn't be a subclass of LLVM.

@shintaro-iwasaki
Copy link
Copy Markdown
Contributor

Sorry for the long delay to clean up this PR. @adamjstewart Could you please review it again?

I believe we fixed the issues you pointed out. About the subclass, in addition to @vlkale's comments, I think now the SOLLVE's code is not simply a duplication of LLVM. (Actually I tried to use LLVM as a subclass of SOLLVE, but it was quite hard to use their functions and class member variables). I believe making this package independent of the LLVM package is cleaner and simpler (and less troublesome to maintain since the LLVM package should be updated much more frequently).

@vlkale
Copy link
Copy Markdown
Contributor Author

vlkale commented Nov 25, 2019

Hi @adamjstewart,

Can you look at this pull request again when you have a chance?

@shintaro-iwasaki and I have worked on this package, and we think that it's in a reasonable state to be merged.

Vivek

Copy link
Copy Markdown
Member

@adamjstewart adamjstewart left a comment

Choose a reason for hiding this comment

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

Sorry it took me so long to review! Just a few recommended changes to make.

@shintaro-iwasaki
Copy link
Copy Markdown
Contributor

Thanks for reviewing this! I rebased the whole branch to the latest develop since the master was outdated.

The second commit is to reflect your suggestions.
The third commit updates the architecture detection code.

Copy link
Copy Markdown
Member

@adamjstewart adamjstewart left a comment

Choose a reason for hiding this comment

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

You have a lot of variants that add flags to disable things. It would be better to always be explicit and say:

if '+foo' in spec:
    args.append('-DENABLE_FOO=ON')
else:
    args.append('-DENABLE_FOO=OFF')

CMake likes to switch the default based on what it can find on your OS, leading to non-deterministic builds if you aren't explicit like this.

"""

homepage = 'https://www.bnl.gov/compsci/projects/SOLLVE/'
url = "https://github.com/SOLLVE"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

You can get rid of this url since it isn't used. You can actually move the git up here like so:

Suggested change
url = "https://github.com/SOLLVE"
git = "https://github.com/SOLLVE/llvm.git"

Then it won't need to be specified in every version() directive below.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thanks! You're right. I updated urlt and git in version() as you suggested.

@vlkale
Copy link
Copy Markdown
Contributor Author

vlkale commented Nov 26, 2019

Hi @shintaro-iwasaki,

Thanks for revising the file for SOLLVE’s Spack package given Adam’s suggestions from today.

Hi @adamjstewart,

I agree with all of Shintaro’s changes.

Your suggestion to always be explicit for disabling makes sense and I agree with it. Thanks for pointing out Cmake’s behavior. (@shintaro-iwasaki: can you quickly search for cases where we are disabling things in our python file for Spack package of SOLLVE, and fix them according to Adam’s suggestion and corresponding example? Let me know if you need my help with this and I’ll get on it as soon as possible).

Vivek

- url -> git
- remove git in version()
- explicit cmake options in else clauses
- add newlines for better readability
@shintaro-iwasaki
Copy link
Copy Markdown
Contributor

Thanks for reviewing the PR!
The fourth commit I pushed should address issues recommended by @adamjstewart

Copy link
Copy Markdown
Member

@adamjstewart adamjstewart 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 to me. If there are any additional changes required they can happen in another PR.

@adamjstewart adamjstewart merged commit 07cda58 into spack:develop Nov 26, 2019
@vlkale
Copy link
Copy Markdown
Contributor Author

vlkale commented Dec 19, 2019

Referencing #14188 for Pull Request of Release of SOLLVE’s Spack package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants