-
Notifications
You must be signed in to change notification settings - Fork 469
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
SR-2309: embed BlocksRuntime in libdispatch to eliminate external dep… #139
Conversation
…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.
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. |
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 |
sounds reasonable |
Perhaps I do not understand the implications of this change but doesn't this change make this un-necessary? |
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). |
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. Thank you for the work you are contributing here. 🖖 |
SR-2309: embed BlocksRuntime in libdispatch to eliminate external dep… Signed-off-by: Daniel A. Steffen <dsteffen@apple.com>
…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.