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

Adds Mac OS implementation to hpx_main.hpp #3367

Merged
merged 1 commit into from Aug 8, 2018

Conversation

Projects
None yet
3 participants
@NK-Nikunj
Contributor

NK-Nikunj commented Jul 7, 2018

Proposed Changes

  • Changes current hpx_main.hpp's implementation of #define to a more robust solution using linker flags.

Any background context you want to provide?

In this PR I'm extending my Linux implementation for hpx_main to Mac OS X. The implementation here is achieved using another linker flag to change the entry point of the system to initialize_main instead of main.
Using some linker tricks function stack is determined at runtime depending upon the inclusion of hpx_main.hpp.

@hkaiser

Do you think there is a way to further unify the two implementations (Linux and Apple) with the goal to reduce code duplication?

@NK-Nikunj

This comment has been minimized.

Contributor

NK-Nikunj commented Jul 7, 2018

@hkaiser yes I can unify the two implementations using PPs wherever necessary. I kept it separated so as to keep code look clearer. Should I unify the two?

@hkaiser

This comment has been minimized.

Member

hkaiser commented Jul 7, 2018

@hkaiser yes I can unify the two implementations using PPs wherever necessary. I kept it separated so as to keep code look clearer. Should I unify the two?

@NK-Nikunj: yes, please try to unify the two, but within reason ;-) This will probably be a balance between code duplication and readability.

@hkaiser

hkaiser approved these changes Aug 7, 2018

This should have been merged a long time ago, I apologize. Everything LGTM, I'm not able to verify the correctness, however.

Is there any Mac user willing to verify?

@the-bat-hunter

This comment has been minimized.

the-bat-hunter commented Aug 8, 2018

@hkaiser I ran a build for it and tests seems to run fine (except for 1 which constantly fails). You can find the gist to the tests here: https://gist.github.com/ac-alpha/e1efd4e078ce8577148596949da7bfc9

I ran it on a 2015 Macbook Air running macOS High Sierra. It has a core i5 CPU along with 8Gb of RAM.

@hkaiser

This comment has been minimized.

Member

hkaiser commented Aug 8, 2018

@ac-alpha thanks very much! That is very helpful.

@hkaiser hkaiser merged commit 04088b5 into STEllAR-GROUP:master Aug 8, 2018

60 of 62 checks passed

pycicle daint-3367-gcc-6.2.0-Boost-1.65.0-Release Test errors 1
Details
pycicle daint-gcc-4.9.3-boost-1.58.0-c++11-Debug Test errors 2
Details
ci/circleci: checkout_code Your tests passed on CircleCI!
Details
ci/circleci: clang_tidy Your tests passed on CircleCI!
Details
ci/circleci: configure Your tests passed on CircleCI!
Details
ci/circleci: core Your tests passed on CircleCI!
Details
ci/circleci: examples Your tests passed on CircleCI!
Details
ci/circleci: inspect Your tests passed on CircleCI!
Details
ci/circleci: install Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.compat Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.components Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.compute Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.config Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.include Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.lcos Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.parallel Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.performance_counters Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.plugins Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.runtime Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.traits Your tests passed on CircleCI!
Details
ci/circleci: tests.headers.util Your tests passed on CircleCI!
Details
ci/circleci: tests.performance Your tests passed on CircleCI!
Details
ci/circleci: tests.regressions Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.actions Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.agas Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.build Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.component Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.computeapi Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.diagnostics Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.lcos Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.algorithms Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.block Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.container_algorithms Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.datapar_algorithms Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.executors Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parallel.segmented_algorithms Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.parcelset Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.performance_counter Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.resource Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.serialization Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.threads Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.traits Your tests passed on CircleCI!
Details
ci/circleci: tests.unit.util Your tests passed on CircleCI!
Details
pycicle daint-3367-clang-6.0.0-Boost-1.65.0-Release Build errors 0
Details
pycicle daint-3367-clang-6.0.0-Boost-1.65.0-Release Config errors 0
Details
pycicle daint-3367-clang-6.0.0-Boost-1.65.0-Release Test errors 0
Details
pycicle daint-3367-gcc-6.2.0-Boost-1.65.0-Release Build errors 0
Details
pycicle daint-3367-gcc-6.2.0-Boost-1.65.0-Release Config errors 0
Details
pycicle daint-clang-3.8-boost-1.58.0-c++11-Release Build errors 0
Details
pycicle daint-clang-3.8-boost-1.58.0-c++11-Release Config errors 0
Details
pycicle daint-clang-3.8-boost-1.58.0-c++11-Release Test errors 0
Details
pycicle daint-gcc-4.9.3-boost-1.58.0-c++11-Debug Build errors 0
Details
pycicle daint-gcc-4.9.3-boost-1.58.0-c++11-Debug Config errors 0
Details
pycicle daint-gcc-4.9.3-boost-1.58.0-c++11-gcc-4.9.3-boost-1.58.0-c++11-Debug Build errors 0
Details
pycicle daint-gcc-4.9.3-boost-1.58.0-c++11-gcc-4.9.3-boost-1.58.0-c++11-Debug Config errors 0
Details
pycicle daint-gcc-4.9.3-boost-1.58.0-c++11-gcc-4.9.3-boost-1.58.0-c++11-Debug Test errors 0
Details
pycicle daint-gcc-7.3.0-boost-1.67.0-c++17-Release Build errors 0
Details
pycicle daint-gcc-7.3.0-boost-1.67.0-c++17-Release Config errors 0
Details
pycicle daint-gcc-7.3.0-boost-1.67.0-c++17-Release Test errors 0
Details
pycicle daint-gcc-7.3.0-boost-1.67.0-c++17-gcc-7.3.0-boost-1.67.0-c++17-Release Build errors 0
Details
pycicle daint-gcc-7.3.0-boost-1.67.0-c++17-gcc-7.3.0-boost-1.67.0-c++17-Release Config errors 0
Details
pycicle daint-gcc-7.3.0-boost-1.67.0-c++17-gcc-7.3.0-boost-1.67.0-c++17-Release Test errors 0
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment