OpenMP, l’Application Programming Interface (API) per il parallel programming già implementata con successo da GCC, potrebbe essere supportata al più presto da LLVM/Clang. Al momento, l’infrastruttura di LLVM-IR non permette l’utilizzo delle specifiche di OpenMP: l’unica soluzione è compilare i sorgenti ottimizzati da LLVM con GCC.
Questa situazione sembra essere destinata a cambiare: tuttavia, non è ancora stata definita la tabella di marcia per l’integrazione di OpenMP. Il supporto potrebbe essere escluso da LLVM 3.1, l’imminente aggiornamento della piattaforma. Clang, ad ogni modo, non permetterebbe la compilazione di tutti i linguaggi supportati da OpenMP.
Mi riferisco, in particolare, a Fortran. Previsto da OpenMP e supportato da GCC, il linguaggio è escluso da Clang — che prevede soltanto C/C++ e Obj-C/Obj-C++. Quando OpenMP dovesse essere implementato da LLVM, il multi-threading per Fortran resterebbe legato all’utilizzo di GCC e DragonEgg sarebbe comunque fondamentale per OpenMP.
Via | Phoronix

Gradiator è il primo ed unico generatore di gradienti per GNU/Linux in CSS3. Gli sviluppatori hanno da poco rilasciato la prima versione disponibile per GNU/Linux sotto forma di sorgenti e PPA per Ubuntu e derivate; questo tool farà sicuramente felici gli sviluppatori web che avranno a disposizione un tool “nativo” e di conseguenza non dovranno ricorrere a strumenti esterni.
L’applicazione risulta essere molto semplice ed intuitiva, si possono notare alcune somiglianze con il classico “select color” messo a disposizione da The Gimp. Gradiator di default si presenta con un tema nero molto elegante ed in linea con le applicazioni GNOME come eog e Totem.
Come possiamo notare dalla pagina del progetto, Gradiator è stato creato su Windows con software proprietario, questo piccolo dettaglio spero che non ne pregiudichi l’utilizzo, data anche la bontà del software. Come già affermato è disponibile il tarball con i sorgenti software nella pagina “Download” del progetto, insieme ad un apposito PPA per Ubuntu 11.10 e superiori.
Via | Gradient
LLVM 3.1, la prossima minor release dell’avanzata infrastruttura per la compilazione dei sorgenti in C/C++ e Obj-C/Obj-C++, supporterà le estensioni AVX e – soprattutto – AVX2 di Intel. L’annuncio risale a circa dieci giorni fa, ma è stato sottovalutato per il rilascio del compilatore di CUDA 4.1 come open source da parte di nVdia.
È un aspetto da considerare per due motivi: il primo riguarda il fatto che GCC 4.6 ha introdotto a sua volta il supporto ad AVX, il secondo è l’utilizzo del SDK per OpenCL di Intel da parte di LLVM 3.1. La ragione più “curiosa” è un’altra. Nessun processore implementerà AVX2 prima di Haswell, il successore di Sandy Bridge, nel 2013.
Salvo ritardi, però, il rilascio di LLVM 3.1 dovrebbe avvenire già nell’aprile del 2012. Con almeno un anno d’anticipo rispetto all’effettiva disponibilità di processori che supportino le funzionalità di AVX2. La novità è resa possibile grazie alla versione 1.5 di Intel OpenCL SDK, che permette il debug in assenza delle estensioni.
Via | LLVM
The Lives They Lived (lett. “le vite che hanno vissuto”) è una rubrica del magazine di The New York Times: il numero domenicale, pubblicato a Natale, ha proposto un riassunto della vita di Dennis Ritchie. È il creatore di C, che è morto nella prima metà dell’ottobre di quest’anno. Una delle grandi personalità che ci hanno lasciati.
Il titolo assegnato al numero su Ritchie non poteva essere che hello, world: il testo stampato a video dal primissimo esempio di The C Programming Language, il libro scritto a quattro mani da Ritchie e Brian Kernighan. Quella frase – spesso, con una sintassi diversa – è diventata il simbolo ricorrente degli esempi di programmazione.
Il 2011 porta via con sé un intero “mondo” di persone che hanno contribuito alla realizzazione delle tecnologie del presente. L’ultima in ordine di tempo è stata Jacob Goldman — il creatore di Xerox Lab, morto settimana scorsa. Ritchie e Goldman sono legati da UNIX, il sistema operativo che ha stimolato la nascita dell’open source.
Via | The New York Times
Work for Pie è un social network dedicato ai programmatori che vogliono mettersi in mostra per essere assunti. È un ibrido fra Klout, la piattaforma che misura il livello d’influenza sul web, e LinkedIn, il portale per le assunzioni. Gli avvisi e gli aggiornamenti proposti da Work for Pie sono ridotti al minimo per evitare lo SPAM.
Il portfolio redatto da Work for Pie somma il recupero dei commit effettuati su GitHub e Bitbucket all’attività su Stack Overflow. Il curriculum vitæ può essere completato dalle informazioni fornite al profilo di LinkedIn, qualora fosse stato connesso a Work for Pie, e gli utenti ricevono un punteggio basato sulle operazioni svolte.
Il social network è stato appena completato e, di conseguenza, alcune popolari piattaforme per l’hosting dei progetti open source potrebbero ancora risultare assenti. Work for Pie è uno strumento interessante per condividere le proprie esperienze di programmazione e, magari, ottenere un giusto riconoscimento nell’ambito lavorativo.
Via | The Next Web
Dopo la lunga attesa, finalmente arriva la versione 3.0 di LLVM. Di fatto questo è un rilascio incrementale, ma gli sviluppatori non hanno perso l’occasione per eliminare qualche vecchio modulo. Sono stati necessari sei mesi di sviluppo dalla versione 2.9 per introdurre importanti novità: un nuovo register allocator per migliorare ulteriormente le prestazioni, il supporto completo per operazioni atomiche e il nuovo memory model per C++.
Avevamo già trattato l’abbandono di llvm-gcc in favore di CLang e DragonEgg. E proprio CLang offre numerose correzioni e migliorie: ridotta lunghezza nei messaggi di errore, ricavando così un’informazione più immediata e suggerimenti in caso di errori di digitazione. Quest’ultima si rivela utile nel caso di errori di digitazione: maiuscole/minuscole nella battitura dei tipi. Gli sviluppatori potranno inoltre fare affidamento nei nuovi messaggi di warning, il tutto a beneficio dell’espressività della diagnostica.
Lo sforzo degli sviluppatori si è concentrato non solo nelle prestazioni, migliorate rispetto alla precedente versione, ma anche per quanto riguarda l’aderenza ai recenti standard per C/C++. Ad esempio sono state introdotte molte caratteristiche del C++11 come il supporto agli alias, i cicli for basati su intervalli e le espressioni noexcept. Infine per quanto riguarda il plugin DragonEgg, non sarà più necessario apportare la patch ed effettuare la compilazione di GCC. La versione 4.6 è pienamente supportata.
Via | Phoronix

Il team 280 North ha annunciato recentemente la disponibilità della versione 0.9.5 di Cappuccino, il framework open source creato per aiutare gli sviluppatori nella creazione di applicazioni web in stile Mac OS X. Questa nuova versione, introduce più di 90 nuove feature e miglioramenti oltre ad un massiccio bugfix.
Le novità sono parecchie, possiamo iniziare a parlare di delle nuove e moderne scrollbars che vengono nascoste quando non utilizzate, permettendo così di avere maggior spazio nell’area di lavoro, concettualmente molto simili alla Ayatana Scrollbars; Cappuccino inoltre nel caso in cui il browser non dovesse supportare queste nuove scroolbars utilizzerà la versione precedente e compatibile col browser in questione. Altra feature interessante è l’introduzione di un widget che ci indica il livello di utilizzo del CPLevelIndicator.
Possiamo trovare maggiori informazioni riguardo questo interessante rilascio consultando il corposo changelog. È stata anche aggiornata tutta al documentazione. Possiamo scaricare questa versione di Cappuccino direttamente dal sito ufficiale del progetto.
Via | Cappuccino
Gli sviluppatori di LLVM sono stati «distratti» da un meeting previsto per domani e, perciò, il rilascio della versione 3.0 è slittato di due settimane: LLVM 3.0 uscirà il 30 novembre. Soltanto ieri, infatti, è cominciata la quarta fase di test che terminerà il 28. Oggi è disponibile l’ultima Release Candidate (RC) del compilatore.
Il rilascio di LLVM 3.0 è particolarmente importante perché determinerà il ritiro di LLVM-GCC: l’integrazione col compilatore più utilizzato sui sistemi operativi UNIX–like è già stata “rimpiazzata” da un nuovo plugin — a partire dal ramo di LLVM 2.7. DragonEgg 3.0 per GCC 4.5 o superiore segnerà il definitivo abbandono di LLVM-GCC.
La stessa release schedule è prevista per CLang 3.0, il compilatore di C, Objective-C, C++ e Objective-C++ basato su LLVM. Quest’ultimo non è ancora pronto per un’implementazione su larga scala, benché in molti casi garantisca delle prestazioni superiori a GCC. Per il momento CLang è disponibile esclusivamente su x86, x86_64 e ARM.
Via | Phoronix
Open64 è un compilatore open source, rilasciato sotto il nome di Pro64 nel 2000 e ribattezzato con la denominazione attuale nel 2002. Supporta linguaggi come Fortran 77/95 e C/C++, inclusa la programmazione parallela con OpenMP.
Open64 è stato progettato per compilare i programmi su processori MIPS, ma dopo molti anni è diventato un’ottima alternativa per diverse architetture. Attualmente è noto anche per l’efficienza del codice prodotto in architetture IA-64, CISC, RISC, x86 e ARM. Le sue caratteristiche consentono di condurre ottimizzazioni di vario genere, oltre ad analisi inter-procedurali, analisi delle dipendenze e analisi del flusso dei dati.
Allo sviluppo di questo compilatore partecipano molte aziende, diversi istituti universitari e di ricerca. AMD considera Open64 come la principale alternativa a GCC, fornendo un importante supporto al suo sviluppo. In questa release, infatti, sono presenti miglioramenti per la generazione di codice per AVX, SSE e il set di istruzioni FMA. Il tutto per fornire un importante vantaggio per i futuri processori con architettura Bulldozer.
Xtend è un nuovo linguaggio di programmazione, l’ennesimo, realizzato da Eclipse per estendere le funzionalità di Java. Anzi, per evitare di sostituirlo: le premesse della fondazione sono confuse. Sembra che Eclipse debba giustificarsi per lo sviluppo di Xtend con la base degli estimatori di Java e il perché è facilmente intuibile.
Eclipse non intende “rimpiazzare” Java, però sostiene che Xtend sia più leggibile e possa colmarne le lacune. Insomma, risolvere i problemi di Java. Xtend consiste d’una serie di plugin per l’ambiente di sviluppo in Java di Eclipse, del quale mantiene tutte le caratteristiche: ne semplifica la sintassi, riducendo il codice prodotto.
È «uno strato sottile» che lavora al di sopra del Java Development Kit (JDK) per rendere più naturale la programmazione. Ad esempio, Xtend riduce le ridondanze nella sintassi degli oggetti. Il linguaggio è stato creato con Xtext, un framework di Eclipse per controllare l’intero ciclo di sviluppo d’un Domain-Specific Language (DSL).
Via | The Register