Skip to content

SR-2309: embed BlocksRuntime in libdispatch to eliminate external dep… #139

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

Merged
merged 1 commit into from
Aug 10, 2016

Conversation

dgrove-oss
Copy link
Contributor

…endency

Eliminate the external dependency on libBlocksRuntime.so by
copying the blocks runtime code from swift-corelibs-foundation/closure
and building it into libdispatch. Added a configure option to control
whether or not the blocks runtime is embedded; defaults to embedded on
Linux and not embedded on other platforms. Since the blocks runtime is
embedded; we can take the link directive out of the module.modulemap file.

This change enables dispatch to be built and run on a system without
the libblocksruntime-dev package installed.

…endency

Eliminate the external dependency on libBlocksRuntime.so by
copying the blocks runtime code from swift-corelibs-foundation/closure
and building it into libdispatch.  Added a configure option to control
whether or not the blocks runtime is embedded; defaults to embedded on
Linux and not embedded on other platforms.  Since the blocks runtime is
embedded; we can take the link directive out of the module.modulemap file.

This change enables dispatch to be built and run on a system without
the libblocksruntime-dev package installed.
@MadCoder
Copy link
Contributor

Can you remove the mention to libblocksruntime-dev from INSTALL then please? or maybe have it removed from the ohter pull-request that already is changing it right now? whichever you prefer.

@dgrove-oss
Copy link
Contributor Author

yes. I was going to update the list of dependencies after the other pull request landed. I don't want to cause a conflict for @amraboelela. We also should update to say that libpwq and libkqueue are optional. I'll do both once the dust settles on INSTALL.md

@MadCoder
Copy link
Contributor

sounds reasonable

@MadCoder MadCoder merged commit 4c588e9 into swiftlang:master Aug 10, 2016
@dgrove-oss dgrove-oss deleted the integrated-blocks-runtime branch August 10, 2016 19:38
@RLovelett
Copy link

Perhaps I do not understand the implications of this change but doesn't this change make this un-necessary?

@dgrove-oss
Copy link
Contributor Author

Hi Ryan, sorry if I got the help-string wrong. I'll take a look and open a PR to fix it. On linux configure should enable the embedded blocks runtime by default (so you don't need the configure flag).

@RLovelett
Copy link

RLovelett commented Aug 15, 2016

It is no trouble @dgrove-oss. I merely wanted to bring it to your attention.

I realized that I did not actually need the flag after a few hours of playing around over the weekend. The reason I was exploring the flag in the first place was because I couldn't get it to build with the bundled blocks runtime.

After banging my head against a wall for a few hours I realized I was checking out a fork of the repository that did not have these changes. Suffice it to say I had a long weekend. :hurtrealbad:

Thank you for the work you are contributing here. 🖖

das pushed a commit that referenced this pull request Feb 21, 2017
SR-2309: embed BlocksRuntime in libdispatch to eliminate external dep…

Signed-off-by: Daniel A. Steffen <dsteffen@apple.com>
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.

4 participants