2010-06-30 57 views
12

Est-ce possible, puisque Apple a ouvert le code (libdispatch?) Je suis un peu confus quant à la façon dont on peut faire usage de cela. Est-ce comme une bibliothèque avec une API utilisable par n'importe quelle application, ou une fonctionnalité OS intégrée à Mac OS X? Est-ce que l'application construite "pour" les Mac et iPhone (avec iOS 4) seule peut utiliser cette bibliothèque?Utiliser grand dispatch central dans Linux

Je suppose que l'on doit exécuter un port pour rendre gcc également compatible avec la nouvelle sémantique qu'Apple a introduite.

Répondre

8

Après avoir lu les Ars Technica overview, il semble qu'il existe plusieurs défis

  • GCD utilise beaucoup de blocs (une extension Apple C qui se rapproche de la fermeture) qui signifie que votre compilateur doit prendre en charge les blocs. La version standard de gcc ne prend pas en charge les blocs, donc vous devrez soit porter les modifications d'Apple sur Linux gcc, soit utiliser clang/llvm.
  • La version Mac OS X de GCD implique du code dans le noyau. De toute évidence, si les modifications du noyau sont nécessaires à Linux pour prendre en charge GCD, c'est un travail majeur. Cependant, il semble qu'un port d'espace utilisateur seul est possible.
  • GCD est sous la licence Apache. Apparemment, cette licence n'est pas compatible avec GPL v2. Vous ne pouvez donc pas utiliser GCD dans une application distribuée sous GPL v2. GPL v3 est OK, donc une application sous licence GPL v2 "ou ultérieure" est OK. Cela dit,

Après avoir dit tout cela, le FreeBSD port a été fait, il doit donc être possible.

+5

Je voudrais passer à Clang de toute façon. Ses erreurs sont beaucoup plus pratiques. :) –

+0

@Time Machine: Je suis d'accord. Je suis déjà passé à clanger pour mes projets Xcode. Apparemment, il se compile plus vite et produit un code mieux optimisé, même si je n'ai jamais vu de benchmarks pour le prouver. – JeremyP

14

C'est presque un an plus tard, mais je suis using it quite happily sur Ubuntu Natty. Les paquets appropriés viennent à Oneiric.

+0

Merci pour le suivi, Chris. – prabhu

+0

Plus disponible :(Pourriez-vous svp mettre à jour le lien? – bacchus

+0

@bacchus Depuis Twitter cannibalisé Posterous (et mon blog!) Je n'ai pas eu le temps de le remonter quelque part, merci de me le rappeler! Je vais vous laisser savoir quand il revient en ligne –