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.