Poco più di tre settimane fa Apple aveva distribuito i sorgenti di Grand Central Dispatch (GCD), una delle tecnologie più interessanti di Snow Leopard. Oggi, nel FreeBSD Quarterly Status Report, viene annunciato un primo porting di GCD proprio su FreeBSD.
Quanti di voi erano in attesa di una news simile nel mondo Linux resteranno delusi, GCD ancora non sbarca ufficialmente sul pinguino. FreeBSD ha fatto prima, e gli utenti di questo sistema operativo saranno certamente contenti.
In realtà, leggendo attentamente il report quadrimestrale si apprende che il lavoro è solo all’inizio.
Ricordiamo infatti che GCD comprende sia la libreria libdispatch, che un insieme di estensioni al linguaggio C, note queste col nome di “blocks”. Supportare GCD significa effettuare il porting di libdispatch e dotarsi di un compilatore in grado di gestire i blocks.
FreeBSD probabilmente rispetto a Linux è risultato più avvantaggiato. Il supporto ai block è stato garantito dalle pre-esistenti estensioni del compilatore LLVM/clang; e il team di FreeBSD in questi ultimi mesi ha lavorato proprio alla compilazione del sistema operativo con questo tool. Quindi il lavoro di porting è consistito semplicemente nell’adeguare libdispatch all’ambiente FreeBSD, rendendola più Posix-Friendly. O meglio, il lavoro iniziale compiuto in queste settimane ha gettato le base per il porting da completare nelle prossime.
Chiudiamo questo post con un piccola chicca. Eccovi il programma “Hello World” scritto usando GCD.
int main(int argc, char* argv[])
{
dispatch_queue_t queue = dispatch_queue_get_main();
dispatch_async(queue, ^{ printf("%s: Hello Worldn", argv[0]); });
dispatch_main();
}
Se volete più informazioni sullo stato del porting di Grand Central Dispatch vi consigliamo di consultare i documenti pubblicati nel recente FreeBSd Developer Summit 2009.

Non sono un esperto di informatica, quindi perdonatemi se dico scorrettezze, ma freeBSD è arrivata “prima” forse perché si fanno meno problemi con le licenze?
di ArTaX - 15 ottobre 2009 - 16:00
ArTaX se scrivi software su Linux usi la licenza che vuoi.
Su linux sono presenti un infinità di software commerciali, parzialmente commerciali, con licenze ibride, gpl, ecc.
di bpm - 15 ottobre 2009 - 20:38
Bè in realtà non sono un esperto di licenze, però mi sembra di aver capito che il problema sia con GCC:
http://arstechnica.com/open-source/news/2009/09/apple-opens-gcd-challenges-impede-adoption-on-linux.ars
di ArTaX - 22 ottobre 2009 - 20:25