Использование грандиозной центральной диспетчеризации в Linux - PullRequest
15 голосов
/ 30 июня 2010

Возможно ли это, так как Apple открыла исходный код (libdispatch?). Я немного озадачен тем, как можно использовать это. Это как библиотека с API, которую может использовать любое приложение, или функция ОС, встроенная в Mac OS X? Может ли приложение, созданное «для» Mac и iPhone (с iOS 4), использовать эту библиотеку?

Я предполагаю, что нужно запустить порт, чтобы сделать gcc также совместимым с новой семантикой, представленной Apple.

Ответы [ 2 ]

14 голосов
/ 31 июля 2011

Это почти год спустя, но я пользуюсь им довольно счастливо на Ubuntu Natty. В Oneiric приходят правильные пакеты.

9 голосов
/ 02 июля 2010

Прочитав обзор Ars Technica , вы увидите, что есть несколько проблем

  • GCD широко использует блоки (расширение Apple до C, которое приблизительно соответствует замыканиям), что означает, что вашКомпилятор должен поддерживать блоки.Стандартная версия gcc не поддерживает блоки, поэтому вам придется либо перенести изменения Apple в Linux gcc, либо использовать clang / llvm.
  • Версия GCD для Mac OS X включает некоторый код в ядре,Понятно, что если для поддержки GCD требуются изменения в ядре Linux, это важная часть работы.Однако, кажется, что возможен только порт пользовательского пространства.
  • GCD лицензируется по лицензии Apache.По-видимому, эта лицензия не совместима с GPL v2.Таким образом, вы не можете использовать GCD в любом приложении, распространяемом под GPL v2.Впрочем, с GPL v3 все в порядке, поэтому с лицензией GPL v2 «или более поздней версии» все в порядке.

Сказав все это, порт FreeBSD уже готов, поэтому онвозможно.

...