ahoj, jsem v haskellu porad na zacatku, prochazim priklady, zkousim implementovat veci ze zakladni knihovny, zbezne se orientuju v typech, funkcich vyssiho radu, obcas se rekurzivne zacyklim, jasne monady jsou jako burritos, ale
mozna spis ani ne. atd. dobre se mi uci podle programming in haskell od g. huttona, obcas kouknu do LYHGG. ve druhem opakovacim kole bych si dal rad nejaky projektove orientovany pristup...
protoze delam trochu do hudby a jeste specificteji do livecodingu (mame dokonce
kapelu :-) - kdyby chtel treba nekdo zahrat na programatorske party tak posta :-)) , tak jsem zkusil
tidal, coz je pomerne expresivni nadstavba nad haskellem k vytvareni rytmickych sekvecni (daji se i vizualizovat). tidal cabal zvladne nainstalovat bez problemu. krom toho ale existuje jeste
conductive, kterou jsem chtel vyzkoust. jsou toho 4 balicky, pricemz tri nainstaluju bez problemu, ale pri cabal install conductive-hsc3 to hodi error. >> conductive-hsc3-0.3.1 depends on hosc-0.11.1 which failed to install. >> hosc-0.11.1 je implementace OSC protokolu a tahle knihovna je uz dost stara, aktualni verye je 0.15.
pojal jsem mozna pro zacatecnika az prilis ambiciozni pristup a rekl jsem si, ze bych na conductive-hsc3 zapracoval a pokusil se ji aktualizovat tak, aby fungovala s hosc-0.15. vsehovsudy jsouto jen dva kratke zdrojaky. autor kodu renick bell je ted zaneprazdnen a nema na to cas. xoxo. no tady se dostavam k tomu, ze pokud by nahodou nekdo ze zkusenejsich tady mohl poradit / nakopnout / podivat se na to, tak budu moc vdecny... tak k popisu problemu, ehm:
jsem na ubuntu 14.04, ghc 7.10.2.20151102, cabal 1.22.4.0 - instaluju do sandboxu.
po prvni neuspesne kompilaci jsem v balicku conductive-hsc3-0.3.1 zkusil zmenit v souboru conductive-hsc3.cabal sekci Build-depends a zvysil verzi balicku hsc na: hsc3 >= 0.11 && *mensi nez* 0.16. cabal pak zacne tahat a pokouset se kompilovat s aktualni verzi knihovny hosc-0.15. tohle samozrejme vyplivlo take chyby (Sound/Conductive/HSC3Utilities.hs:12:8: Could not find module ‘Sound.OpenSoundControl’ a pak jeste Sound/Conductive/Synths.hs:21:8: Could not find module ‘Sound.SC3.ID’) protoze knihovny se kteryma byla conductive puvodne psana se posunuly dopredu...
takze jsem si prosel hackage a podival se jak se balicek hosc od verze 0.11 k 0.15 zmenil a provedl jsem drobnejsi upravy ve zdrojacich conductive. v souboru HSC3Utilities.hs jsem zmenil "import Sound.OpenSoundControl" na "import Sound.OSC" a to same v souboru Synths.hs, ve kterem jsem jeste nevic vykomentoval radek, takze: "--import Sound.SC3.ID". tohle pak vede k dalsi chybe, ktera se v kodu opakuje - obecne jde o radky, kde jsou definovany typy funkci. (napr. pingDef :: IO OSC nebo defineSynth :: UGen -> String -> IO OSC). a chybova hlaska je: "Expecting one more argument to ‘OSC’ The first argument of ‘IO’ should have kind ‘*’, but ‘OSC’ has kind ‘* -> ghc-prim-0.4.0.0:GHC.Prim.Constraint’" takze se ocividne nekde v historii s tema typama nejak pohnulo. hm, ja zkousel experimentovat, dohledavat definice typu na hackage, taky jsem ty definice typu zkousel vykomentovat aby si je kompiler moudre doplnil sam, ale nic nepomohlo. je to na me jeste moc... xixi...
odhaduji, ze navstevnici tohoto auditka asi maji na starosti jine veci nez se hrabat v obskurnich knihovnach a resit takovehle zavislosti, ale kdyby se tu nejaky odvazlivec nahodou nasel, tak budu za nejakou radu / tipy jak se timhle probrat ke zdarnemu reseni fakt vdecny... (pivka a tak... :)) pokud ne, tak treba aspon mrknete na ten tidal, je to celkem zabava...