Kategorie

Nejnovější článek

Archiv

Odkazy


Hledání




Google summer of code 2008

Akci na podporu open source software s názvem Summer of Code, kterou už pár let Google pravidelně pořádá, asi znáte. Haskell.org se účastní již potřetí a v minulosti díky summer of code vznikl například ghci debuger, který je již součástí ghc 6.8, nebo podpora ByteStringu pro knihovnu Parsec. Letošní účastníci jsou již vybráni a akce je v plném proudu. Stručně se podíváme se, co nového by měla přinést Haskellu a jeho komunitě.

GHC API Improvements
by Thomas Schilling, mentored by Simon Marlow

Na tenhle projekt se osobně velmi těším. Jde o vylepšení API kompilátoru GHC. Již teď je možné používat GHC jako knihovnu, ale má omezené možnosti. Tento projekt si klade za cíl API rozšířit, poskytnout mezifáze překladu (parse tree, typovou kontrolu, odstranění syntaktického cukru, ...) a také řádně API zdokumentovat, což je slabé místo spousty knihoven. Více se dozvíte z proposalu. Otevře to nové možnosti pro různá IDE, interprety, debuggery a další aplikace, které by mohly využít některou z fází kompilace haskellového kódu. Doufejme, že se projekt podaří dotáhnout do zdárného konce.

Dynamically Loaded Plugins for the Glasgow Haskell Compiler
by Maximilian Conroy Bolingbroke, mentored by Sean Seefried

Další zajímavý projekt týkající se kompilátoru GHC. Klade si za cíl přidat "pluginovatelnost" kompilátoru. Tedy umožnit psát pluginy do GHC a tak ovlivňovat jeho vlastnosti ke svému účelu. Využití může být dost široké, napadá mě např. pluginy pro statickou analýzu či verifikaci kódu (např. integrace programu catch), optimalizace specializované pro konkrétní typ programu nebo CPU, ale jsem si jistý, že komunita přijde s ještě kreativnějšími nápady, jak možnost psaní pluginů využít.

Haskell API Search as an interface to Hackage
by Neil Mitchell, mentored by Niklas Broberg

Hojně používaný nástroj pro vyhledávání v API haskellových knihoven Hoogle je předmětem práce na dalším projektu. Letos se v rámci SoC plánuje jeho další verze, která slibuje opravy chyb, zrychlení a přidání dalších vlastností vyhledávače.

Language.C, a standalone parser/pretty printer library for C99
by Benedikt Huber, mentored by Iavor S. Diatchki

Dalším přijatým projektem je samostatná knihovna parsující zdrojový kód v jazyce C podle normy C99. Autor plánuje použít existující parser z projektu c2hs a udělat z něj samostatnou knihovnu.

Cabal 'make-like' dependency framework
by Andrea Vezzosi, mentored by Duncan Coutts

Tento projekt má přinést lepší řešení závislostí Cabalových balíků, což my koncoví uživatelé poznáme při instalaci balíků např. z hackage. Dnes není cabal schopen postihnout všechny závoslosti (např. na programech pro preprocessing, jako cpp, includované hlavičkové soubory a podobně). Takže po dokončení projektu by měl být Cabal ješte křupavější a krémovější, než byl doposud ;)

#1560 Efficient maps using generalised tries
by Jamie Brandon, mentored by Adrian Charles Hey

Nejefektivnější čistě funkcionální asociativni pole ve standardních knihovnách GHC je v současné době IntMap. Operace vkládání nebo vyhledávání má složitost O(min(n,W)), kde n je počet prvků a W je počet bitů v integeru. Tudíž na 32bitové architektuře je složitost nejhůře O(32), v případě, že je v IntMap méně prvků, tak menší. Nevýhodou je, že typ klíče je omezen na Int. Cílem tohot projektu je efektivní implementace datového typu Map pomocí struktury trie, na které je založen i IntMap. Taková struktura je už potřeba jako sůl. Efektivnější je v GHC už jen HashTable, ta je ovšem kvůli destruktivním modifikacím struktury zabalená v IO monádě.

Data parallel physics engine
by Roman Cheplyaka, mentored by Manuel M. T. Chakravarty

A konečně poslední projekt, který byl přijat na letošní SoC, má prakticky demonstrovat rozšíření GHC -- nested data paralellism (NDP). Jde o něco, o čem sní programátoři v těch nejdivočejších snech ;-) Představte si datové struktury, jako pole, mapy a podobně s tím rozdílem, že operace, které se nad nimi provádějí, se transparentně provádí paralelně na dostupných procesorech. A pro programátora to neznamená žádnou práci navíc. Prostě používá správné datové struktury a pracuje s nimi tak, jak byl zvyklý doposud. Haskell díky referenční transparentnosti vytváří podobným paralelním extravagancím přátelské prostředí. Ale abych se vrátil k SoC. Cílem projektu je implementace fyzikálního modelu využívající NDP. Má jít o knihovnu, která by měla být snadno rozšiřitelná a použitelná ve vlastním programu. Že by se vzrůstajícím počtem procesorů na běžném PC přicházela doba programování her v Haskellu? ;-) Je to samozřejmě nadsázka, ale kdo ví, co bude za 5 let...

Autor: jh Květen 2008


Jeden komentář k článku „Google summer of code 2008“

roman Says: 21. 5. 2008, 23:38

jen skoda jiriku, ze jsi se neprihlasil :)

Přidání komentáře