Kategorie
Nejnovější článek
- Building a shared library in Haskell
- Real World Haskell se šíří Brnem
- Benchmarky pro quad-core na shootoutu
- fotopaste.cz: webová služba psaná v Haskellu
- Haskell a Ruby on Rails II: sessions
- Google summer of code 2008
- Haskell a Ruby on Rails I.
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ě.
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.
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.
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.
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.
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 ;)
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ě.
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