[Haskell] GUI bouwen, ervaringen met FRAN

Pagina: 1
Acties:

  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Voor een raytracer die ik wil schrijven in Haskell, zou ik graag ook een GUI bouwen er rond (naast de renderer), die het liefst ook de vooruitgang van het renderen kan weergeven, zoals een 'echte' renderer dat doet.
Ik heb geen ervaring met GUI's in Haskell, wel in Java, en ben dus vertrouwd met event-based modelleren van GUI's (wat ook in FRAN mogelijk is geloof ik).

Zijn er mensen die ervaring hebben met het bouwen van GUI's in Haskell, en die tips hebben hieromtrent? Daarmee bedoel ik, betere systemen dan FRAN om GUI's te bouwen, zaken die vooral verschillen met Java, enz...

En weet iemand in hoeverre het mogelijk is om in Haskell een image die gerenderd wordt beetje bij beetje weer te geven in een GUI ?

edit: typo in titel, fix zou handig zijn :D

[ Voor 6% gewijzigd door Boegel op 22-07-2004 11:32 ]

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

in de mailing list zijn ze lovend over http://wxhaskell.sourceforge.net/ aanknopings puntje?

je kunt natuurlijk ook direct in OpenGL een frontend maken zoals bijvoorbeeld bij http://www.wings3d.com is gedaan, die schrijven overigens in erlang, ook een functionele taal.

Steun Elkaar, Kopieer Nederlands Waar!


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Skinkie schreef op 22 juli 2004 @ 11:40:
in de mailing list zijn ze lovend over http://wxhaskell.sourceforge.net/ aanknopings puntje?

je kunt natuurlijk ook direct in OpenGL een frontend maken zoals bijvoorbeeld bij http://www.wings3d.com is gedaan, die schrijven overigens in erlang, ook een functionele taal.
Die wxHaskell ziet er idd ook wel goed uit... Mooie GUI's iig, wat denk ik niet meevalt als je geen deftige library hebt...

OpenGL is geen optie, ik zal zo al werk genoeg hebben met de raytracer zelf, dat ik niet nog eens moet geen uitvogelen hoe je met OpenGL werkt...

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Ik heb zelf positieve ervaring met wxHaskell. Let er wel op dat dit geen echt 'functionele' bibliotheek is; je programmeert je gui net zoals in bijv. java. Daardoor is het wel intuitief met een lage leercurve en bevat het bijna al de mogelijkheden die wxWidgets ook heeft (de wxWidgets library documentatie zul je ook nodig hebben). Hoe het precies in elkaar steekt kan je beter zelf uitzoeken.

Verder is de bibliotheek opgezet door Daan Leijen, die momenteel op de Universiteit van Utrecht werkt.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Infinitive schreef op 22 juli 2004 @ 12:29:
Ik heb zelf positieve ervaring met wxHaskell. Let er wel op dat dit geen echt 'functionele' bibliotheek is; je programmeert je gui net zoals in bijv. java. Daardoor is het wel intuitief met een lage leercurve en bevat het bijna al de mogelijkheden die wxWidgets ook heeft (de wxWidgets library documentatie zul je ook nodig hebben). Hoe het precies in elkaar steekt kan je beter zelf uitzoeken.

Verder is de bibliotheek opgezet door Daan Leijen, die momenteel op de Universiteit van Utrecht werkt.
Aï, dat kan dan meteen al een nadeel zijn...
De raytracer die ik wil schrijven is in het kader van een eindwerk, en dient volledig in een functionele taal geschreven te zijn, omdat er ook theoretische ondersteuning bijhoort in een functioneel model...

Damn, that's a shame :/

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Boegel schreef op 22 juli 2004 @ 13:14:
[...]


Aï, dat kan dan meteen al een nadeel zijn...
De raytracer die ik wil schrijven is in het kader van een eindwerk, en dient volledig in een functionele taal geschreven te zijn, omdat er ook theoretische ondersteuning bijhoort in een functioneel model...

Damn, that's a shame :/
kan iemand me eens vertellen hoe je een frontend wel functioneel zou kunnen programmeren :?

Steun Elkaar, Kopieer Nederlands Waar!


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Skinkie schreef op 22 juli 2004 @ 13:16:
[...]

kan iemand me eens vertellen hoe je een frontend wel functioneel zou kunnen programmeren :?
Met FRAN (Functional Reactive ANimation) volgens mij... Ik heb er nog niet mee gewerkt, maar de dingen die ik er over gelezen heb, leidden me ertoe te denken dat alles functioneel gebeurde...
Je behandelt als een IO functie ofzo geloof ik... Het is me ook allemaal nog niet 100% duidelijk, maar dat komt wel (hoop ik). B)

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Boegel: en dient volledig in een functionele taal geschreven te zijn.
Je schrijft de GUI met wxHaskell natuurlijk wel in Haskell, maar zoals Infinitive al aangaf is de de stijl van de library niet puur functioneel: erg veel ge-do.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
mbravenboer schreef op 22 juli 2004 @ 13:40:
[...]

Je schrijft de GUI met wxHaskell natuurlijk wel in Haskell, maar zoals Infinitive al aangaf is de de stijl van de library niet puur functioneel: erg veel ge-do.
Welja, dat is dan ook het probleem eh :+ Ik weet wel dat je die zaken in Haskell gaat schrijven, maar als de stijl niet functioneel is, dan kan ik daar ook geen theoretische ondersteuning voor geven... Ik vraag het wel effe na bij promotor enzo, misschien is het toch mogelijk...

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Maar de grafische representatie staat toch los van je raytracer? Deze twee onderdelen heb je toch gescheiden van elkaar? Ik zie niet zo'n probleem daarin hoor. Juist door deze twee onderdelen te combineren kan je laten zien dat dit best hand in hand gaat. Beschrijf je GUI op een manier waarmee je bekend bent.

Daan Leijen vertelende mij ooit dat hij dit project begonnen was omdat alle mensen die een mooie functionele GUI lib willen maken, geen consensus konden krijgen en dat daardoor zo'n bibliotheek niet van de grond komt. Eventueel kunnen mensen nu een abstracter laagje bovenop de lowlevel laag bouwen.

offtopic:
mbravenboer, was jouw kamer niet naast het hok van Daan Lejien?

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • unclero
  • Registratie: Juni 2001
  • Laatst online: 20-05 18:42

unclero

MB EQA ftw \o/

Boegel schreef op 22 juli 2004 @ 13:14:
Aï, dat kan dan meteen al een nadeel zijn...
De raytracer die ik wil schrijven is in het kader van een eindwerk, en dient volledig in een functionele taal geschreven te zijn, omdat er ook theoretische ondersteuning bijhoort in een functioneel model...
Als ze zeggen een functionele taal, kan ik je van harte Clean aanraden. Daar zit een uitgebreide GUI library bij, en zelfs een redelijk complete Game library ;).

Quelle chimère est-ce donc que l'homme? Quelle nouveauté, quel monstre, quel chaos, quel sujet de contradiction, quel prodige!


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Boegel schreef op 22 juli 2004 @ 13:31:
...
Je behandelt als een IO functie ofzo geloof ik... Het is me ook allemaal nog niet 100% duidelijk, maar dat komt wel (hoop ik). B)
Maar als het een IO functie oplevert dat is het al niet 'functioneel' meer (het is nog wel functioneel, maar een beter woord schiet me niet te binnen).

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

unclero schreef op 22 juli 2004 @ 15:59:
[...]


Als ze zeggen een functionele taal, kan ik je van harte Clean aanraden. Daar zit een uitgebreide GUI library bij, en zelfs een redelijk complete Game library ;).
Je bedoelt waarschijnlijk ObjectIO. Die is al meer dan een jaar geleden geport naar Haskell. Ik vond het totaal *niet* intuïtief.

WxHaskell is dat een stuk meer, alleen moet je als een simpel rondje wil tekenen wel iets van 6 argumenten meegeven, omdat je de devicecontext etc (zeg maar state) de hele tijd moet doorgeven. Ik heb de sources van wxHaskell niet meer gezien sinds 0.3 ofzo, en toen zat er volgens mij nog geen State Monad in. Nu wel?

Ik heb de Clean documentatie ook een jaar geleden ofzo doorgelezen en vergeleken met Haskell vond ik het extreem lelijk.

Het enige goede is misschien dat als je een bedrijf bent, dat je dan professionele support kunt krijgen voor Clean. Maar ja, voor Haskell zou je ook wel iemand kunnen inhuren, en daarbij als je in Haskell developed, waarom zou jij daarbij om hulp moeten vragen?

  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Heb het even nagevraagd bij mijn promotor, en die raadt mij FranTk aan (http://www.haskell.org/FranTk), met als hoofdreden dat die wiskundig onderbouwd is, en volledig gebaseerd is op events en listeners...

Bovendien lijken de mensen van Haskell zelf er nogal tevreden over te zijn, anders zouden ze er geen info over plaatsen op hun website :)

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Boegel schreef op 23 juli 2004 @ 23:00:
Heb het even nagevraagd bij mijn promotor, en die raadt mij FranTk aan (http://www.haskell.org/FranTk), met als hoofdreden dat die wiskundig onderbouwd is, en volledig gebaseerd is op events en listeners...
leuk... maar het wordt er zeker geen mooiere applicatie van als in uiterlijk :(

Steun Elkaar, Kopieer Nederlands Waar!


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Skinkie schreef op 23 juli 2004 @ 23:46:
[...]

leuk... maar het wordt er zeker geen mooiere applicatie van als in uiterlijk :(
Het gaat ook helemaal niet om de mooie GUI, het is helemaal niet bedoelt om beschikbaar te maken ofzo... Ik weet zelfs nog niet 100% zeker of er een GUI bijkomt, of dat ik me gewoon concentreer op het maken van de engine...
Alles moet wiskundig onderbouwd worden, dus kan ik beter een GUI library gebruiken die zich daartoe leent...

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Wat bedoel je precies met wiskundig onderbouwd, als ik vragen mag?

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
De opbouw van het volledige programma, moet theoretisch ondersteund worden in een formeel systeem (FunMath, maar ik twijfel er sterk aan dat iemand daar al van gehoord zou hebben). Het schrijven van die Ray Tracer (en eventuele GUI) kadert in mijn afstudeerwerk aan de UGent.
De bedoeling ervan is om aan te tonen dat een ray tracer ( 'iets grafisch' ) kan gemaakt worden louter dmv functies (in een functionele programmeertaal, onderbouwd in een functioneel systeem). Daarbij komt dat ik op die manier makkelijk aan optimimalisatie kan doen zonder aan de code te komen (eerst theoretisch, dan programmeren), en dat ik eigenschappen van die ray tracer kan gaan bewijzen (een voorbeeld schiet me niet direct te binnen).
Als je meer uitleg wil, of als het onduidelijk is, vraag je het maar...

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
FunMath ken ik niet, maar is het de bedoeling dat je de correctheid van je raytracer formeel wilt gaan bewijzen?

Maar een formele specificatie van een raytracer lijkt me al een probleem, laat staan het bewijs dat de implementatie aan de specificatie voldoet...

(en dan heb je ook misschien nog dingen als octrees, bsp-bomen, matrices (numerieke stabiliteit), kansverdelingen, radiocity, ...)
Veel succes! :o

Btw: een eigenschap van je raytracer zou kunnen zijn dat als er geen lichtbron aanwezig is en geen ambiente verlichting, je een egaal plaatje krijgt ;)

offtopic:
Soms zou het wel handig zijn als je de correctheid kan bewijzen. Ik kan me nog herinneren dat ik een raytracertje had geschreven in C#, maar bij een klein foutje had gemaakt bij de inverse-operatie van een matrix, wat zeer sporadisch een probleem gaf. Ik kan je zeggen dat je dan hele rare plaatjes kan krijgen (een box die opeens half rond was enzo).

[ Voor 25% gewijzigd door Infinitive op 26-07-2004 01:24 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Boegel: De bedoeling ervan is om aan te tonen dat een ray tracer ( 'iets grafisch' ) kan gemaakt worden louter dmv functies (in een functionele programmeertaal, onderbouwd in een functioneel systeem).
Enkele jaren geleden (weet niet meer precies wanneer) had ICFP programmeerwedstrijd iets te maken met ray tracing. Heb je al eens naar de uitwerkingen hiervan gekeken? Ik heb geen idee hoe jouw plannen zich verhouden tot hetgene wat hiervoor geproduceerd is, maar misschien is het handig om even te onderzoeken wat er nog aan valt te tonen ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Infinitive schreef op 26 juli 2004 @ 01:19:
FunMath ken ik niet, maar is het de bedoeling dat je de correctheid van je raytracer formeel wilt gaan bewijzen?

Maar een formele specificatie van een raytracer lijkt me al een probleem, laat staan het bewijs dat de implementatie aan de specificatie voldoet...

(en dan heb je ook misschien nog dingen als octrees, bsp-bomen, matrices (numerieke stabiliteit), kansverdelingen, radiocity, ...)
Veel succes! :o

Btw: een eigenschap van je raytracer zou kunnen zijn dat als er geen lichtbron aanwezig is en geen ambiente verlichting, je een egaal plaatje krijgt ;)

offtopic:
Soms zou het wel handig zijn als je de correctheid kan bewijzen. Ik kan me nog herinneren dat ik een raytracertje had geschreven in C#, maar bij een klein foutje had gemaakt bij de inverse-operatie van een matrix, wat zeer sporadisch een probleem gaf. Ik kan je zeggen dat je dan hele rare plaatjes kan krijgen (een box die opeens half rond was enzo).
Het idee is om de implementatie van de ray tracer op papier te zetten, zonder een bepaalde taal in gedachten te hebben (wel een functionele taal). Aan de hand van die implementatie (die gepaard gaat met type-specificatie van de gebruikte functies) is het dan wsl de bedoeling dat er eerst een paar dingen aangetoond worden (zoals je voorbeeld: geen lichtbron = egaal plaatje, enz) om weer te geven dat de implementatie doet wat je wil, en dan, in principe als laatste (maar dit gebeurt dikwijls eerst), het eigenlijke programmeren...
Ik ken nog niet genoeg van ray tracers om te begrijpen waar je al die termen (octrees, bsp-bomen, matrices (numerieke stabiliteit), kansverdelingen, radiocity, ...)) vandaan haalt, maar volgens mijn promotor moet het doenbaar zijn om een ray tracer op die manier te schrijven... Het zal wsl een vrij primitieve ray tracer zijn, en geen 1337 programma die de meest ingewikkelde meshes kan renderen in 5 min B)
Het is gewoon een studie eigenlijk in hoeverre dit haalbaar is (ook qua snelheid, optimalisatie, enz...)
mbravenboer schreef op 26 juli 2004 @ 08:44:
[...]

Enkele jaren geleden (weet niet meer precies wanneer) had ICFP programmeerwedstrijd iets te maken met ray tracing. Heb je al eens naar de uitwerkingen hiervan gekeken? Ik heb geen idee hoe jouw plannen zich verhouden tot hetgene wat hiervoor geproduceerd is, maar misschien is het handig om even te onderzoeken wat er nog aan valt te tonen ;) .
Dat heb ik idd ook al gezien, daar kwam deels mijn inspiratie uit om het onderwerp ray tracing te kiezen... Het nadeel is dat ze daar heel wat 'beperkingen' opgelegd krijgen (om de implementaties wat in dezelfde richting te houden wsl), en daar wil ik niet aan verbonden zijn... Maar het is natuurlijk een zeer goede en betrouwbare informatiebron. O-)

[ Voor 17% gewijzigd door Boegel op 26-07-2004 08:47 ]

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Even vraagje in dezelfde lijn, maar beetje anders...

Ik heb gisteren geprobeerd om een 'Hello World' GUI te schrijven mbv FranTk, maar het lukt me niet om het ding lopende te krijgen... De Tcl/Tk 8.0 is geinstalleerd, en het bat-bestandje dat gebruikt wordt om Hugs op te starten is correct (meen ik toch) aangepast, zodat alle paden juist staan (Tcl, Hugs, de 3 FranTk 'paketten').
Toch krijg ik steeds een error die me doet vermoeden dat ie die bestanden van FranTk zelf niet vindt (terwijl de paden zeker juist zijn)... Errors in de aard van 'Undefined variable text' bij
code:
1
2
main :: IO ()
main = start $ render withRootWin $ mkLabel [text "Hello World"]

en

'Undefined type Component' bij
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
main :: IO ()
main = display $ withRootWindow [] $ scaleAndButton

scaleAndButton :: Component
scaleAndButton = do {m <- newBVar 0; composite m}

composite,scale,counterB,lbl,incb,decb :: BVar Int -> Component

composite m = above (counterB m) (scale m) 

scale m = mkHScale [scaleValB (bvarBehavior m)] (bvarInput m)
counterB m = above (lbl m) (beside (incb m) (decb m))

lbl m = mkLabel [textB (lift1 show (bvarBehavior m)] 

incb m = mkButton [text "inc"] (tellL (bvarUpdInput m) (+1))
decb m = mkButton [text "dec"] (tellL (bvarUpdInput m) (subtract 1))


Zijn er mensen die FranTk gebruiken (in Hugs of GHC, laatste heb ik nog niet geprobeerd, omdat Hugs me makkelijker leek :s), en die een idee hebben hoe dit komt ? :?

[ Voor 4% gewijzigd door Boegel op 26-07-2004 11:19 ]

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • j-w
  • Registratie: Augustus 1999
  • Niet online

j-w

Boegel schreef op 26 juli 2004 @ 11:19:
Even vraagje in dezelfde lijn, maar beetje anders...

Ik heb gisteren geprobeerd om een 'Hello World' GUI te schrijven mbv FranTk, maar het lukt me niet om het ding lopende te krijgen... De Tcl/Tk 8.0 is geinstalleerd, en het bat-bestandje dat gebruikt wordt om Hugs op te starten is correct (meen ik toch) aangepast, zodat alle paden juist staan (Tcl, Hugs, de 3 FranTk 'paketten').
Toch krijg ik steeds een error die me doet vermoeden dat ie die bestanden van FranTk zelf niet vindt (terwijl de paden zeker juist zijn)... Errors in de aard van 'Undefined variable text' bij
code:
1
2
main :: IO ()
main = start $ render withRootWin $ mkLabel [text "Hello World"]

en

'Undefined type Component' bij
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
main :: IO ()
main = display $ withRootWindow [] $ scaleAndButton

scaleAndButton :: Component
scaleAndButton = do {m <- newBVar 0; composite m}

composite,scale,counterB,lbl,incb,decb :: BVar Int -> Component

composite m = above (counterB m) (scale m) 

scale m = mkHScale [scaleValB (bvarBehavior m)] (bvarInput m)
counterB m = above (lbl m) (beside (incb m) (decb m))

lbl m = mkLabel [textB (lift1 show (bvarBehavior m)] 

incb m = mkButton [text "inc"] (tellL (bvarUpdInput m) (+1))
decb m = mkButton [text "dec"] (tellL (bvarUpdInput m) (subtract 1))


Zijn er mensen die FranTk gebruiken (in Hugs of GHC, laatste heb ik nog niet geprobeerd, omdat Hugs me makkelijker leek :s), en die een idee hebben hoe dit komt ? :?
je moet natuurlijk nog wel de FranTK library importeren.

  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
j-w schreef op 26 juli 2004 @ 11:24:
[...]


je moet natuurlijk nog wel de FranTK library importeren.
Ik dacht dat het voldoende was om de 3 library's te vermelden in het path dat je opgeeft wanneer je Hugs opstart (dmv -P parameter, vandaar starten met die bat)...
Zo had ik het toch begrepen uit de readme... Als je het wil gebruiken met GHC moet je compileren, met Hugs is het voldoende om de parameters in de bat juist te zetten, en die te gebruiken om Hugs te starten... Of zit ik er zo naast :?

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Importeer je in de code wel de FranTK bibliotheek? Je moet via de commandline de package meegeven en daarnaast in je source files de benodigde import statements hebben staan.

Aangezien je met allerlei extra libraries werkt, is het niet handiger om met GHC te werken (met GHCi als interpreter). De kwaliteit van foutmeldingen van GHC was vroeger in ieder geval beter dan die van Hugs bijvoorbeeld.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Infinitive schreef op 26 juli 2004 @ 13:04:
Importeer je in de code wel de FranTK bibliotheek? Je moet via de commandline de package meegeven en daarnaast in je source files de benodigde import statements hebben staan.
In Java en C enzovoort werkt dit zo idd :>

Maar volgens mij niet met Haskell, en FranTk... In de user manual (http://www.rz.unibw-muenc...documentation/FranTk.html) is daar iig niets van terug te vinden... De voorbeelden die ik wil gebruiken komen daar letterlijk uit, en dus zouden ze toch moeten werken zou je zo denken :/

Met GHC moet je trouwens ook geen imports doen, maar gewoon de source van de 3 library's die bij FranTk zitten compileren, en in de GHC directory gooien (denk ik)...

Nu kan ik er natuurlijk volledig naast zitten, maar dan is hun user manual toch wel van ondermaatse kwaliteit (tenzij ik er overlees :+ )

edit:

http://www.rz.unibw-muenc...ace.html#sectfrantkimport

Het ziet er naar uit dat je gelijk hebt Infinitive, en dat hun user manual dus erg ondermaats is }:O

Zal het vanavond nog iesj proberen :) Nu kan het nog leuk worden om uit te zoeken welke modules enzo ik moet importeren... Erg stom toch dat ze daar niets over vermelden in de user manual :r

[ Voor 22% gewijzigd door Boegel op 26-07-2004 13:20 ]

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


Verwijderd

"FranTk works under hugs98 and ghc-4.04." van de FranTk website...

Aangezien die ghc versie uit de pruikentijd komt, wordt er misschien ook alleen maar een hele oude versie van hugs98 ondersteund...

Als ik die website zie, dan lijkt het nl. een beetje een dood project.

  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Het zou nogal vreemd zijn als mijn promotor voor mijn eindwerk (die de hele tijd me Haskell en functionele zaken werkt), met een systeem zou aanraden dat niet (meer) werkt met Hugs en GHC...
Er is al een nieuwere versie uit van FranTk, maar de user manual is er niet naar aangepast, en er zijn zo goed als geen veranderingen aan gemaakt, voor zover ik die ene pagina kan geloven...

Ik heb eens zitten proberen met import, en met de code die ik nu heb

code:
1
2
3
4
import FranCore

main :: IO()
main = start $ render withRootWin $ mkLabel [text "Hello World"]


krijg ik dit als error:

code:
1
2
3
4
Prelude> :load F:/THESIS/GUItest/HelloWorld.hs
ERROR "F:\THESIS\FranTk\src\FranSrc\Compatibility.hs":27 - Undefined variable "r
unAllFinalizers"
Monad>


Volgens mij is dit geen probleem met library's ofzo die niet gevonden worden, maar iets anders :?
Zijn er mensen die een idee hebben, want mbv google is hier niets over te vinden 8)7

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


Verwijderd

Boegel schreef op 26 juli 2004 @ 21:59:
Het zou nogal vreemd zijn als mijn promotor voor mijn eindwerk (die de hele tijd me Haskell en functionele zaken werkt), met een systeem zou aanraden dat niet (meer) werkt met Hugs en GHC...
Er is al een nieuwere versie uit van FranTk, maar de user manual is er niet naar aangepast, en er zijn zo goed als geen veranderingen aan gemaakt, voor zover ik die ene pagina kan geloven...

Ik heb eens zitten proberen met import, en met de code die ik nu heb

code:
1
2
3
4
import FranCore

main :: IO()
main = start $ render withRootWin $ mkLabel [text "Hello World"]


krijg ik dit als error:

code:
1
2
3
4
Prelude> :load F:/THESIS/GUItest/HelloWorld.hs
ERROR "F:\THESIS\FranTk\src\FranSrc\Compatibility.hs":27 - Undefined variable "r
unAllFinalizers"
Monad>


Volgens mij is dit geen probleem met library's ofzo die niet gevonden worden, maar iets anders :?
Zijn er mensen die een idee hebben, want mbv google is hier niets over te vinden 8)7
Die fout zegt imho genoeg. Er zit een fout in F:\THESIS\FranTk\src\FranSrc\Compatibility.hs om precies te zijn op regel 27 en de fout is dat er een variabele genaamd runAllFinalisers niet gedefinieerd is. Ik zou de mensen even mailen die FranTk gemaakt hebben en even vertellen wat er allemaal wel niet werkt. Ik begrijp alleen niet dat je iets met Haskell wilt gaan maken. Het lijkt niet alsof je ooit echt geleerd hebt functioneel te programmeren. Ik bedoel daar niet een of ander web tutorialtje mee.

  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Verwijderd schreef op 26 juli 2004 @ 22:09:
[...]


Die fout zegt imho genoeg. Er zit een fout in F:\THESIS\FranTk\src\FranSrc\Compatibility.hs om precies te zijn op regel 27 en de fout is dat er een variabele genaamd runAllFinalisers niet gedefinieerd is. Ik zou de mensen even mailen die FranTk gemaakt hebben en even vertellen wat er allemaal wel niet werkt. Ik begrijp alleen niet dat je iets met Haskell wilt gaan maken. Het lijkt niet alsof je ooit echt geleerd hebt functioneel te programmeren. Ik bedoel daar niet een of ander web tutorialtje mee.
We hebben een project moeten maken in Haskell :+ (Het lights out spel, was vrij uitgebreid, paar weekjes aan gewerkt, maar dat was dan ook eerste kennismaking met Haskell). Bovendien hebben we een heel semester gewerkt met FunMath, dat theoretisch systeem om eigenschappen van systemen en programma's enzo te bewijzen... Ik ga heus niet aan iets beginnen waar ik niets van af weet :z

Alleen zat daar niets van GUI toestanden in. Volgens mij ligt die fout trouwens aan mij, en niet aan de mensen van FranTk B)
Zou nogal straf zijn denk ik, gezien er wel nog mensen zijn die van FranTk gebruik hebben gemaakt (onder meer voor die ICFP contest enzo)...
Ik vraag het wel eens na bij mijn promotor enzo (moet ik diene mens weer lastig vallen :/ ), tenzij iemand hier meer info kan geven over die fout ?

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Ik heb net ook geprobeerd dat FranTk te bouwen, maar dat is echt rampzalig. Niet alleen gaat de code nog uit van oude ghc en hugs libraries, maar ook van een oude gtk.

De "runAllFinalizers" is bijvoorbeeld een oude Hugs functie uit de Weak module. Zo zijn er nog wel meer problemen, zoals oude conversie functie als toInt en fromDouble. Toen uiteindelijk Hugs een oude dll file van gtk wilde hebben heb ik het opgegeven.

Dus ik denk dat als je deze library wilt gebruiken, dat je dan je hugs en gtk moet downgraden naar de in de manual genoemde versies (hugs uit 1999 bijv). Als dat nog mogelijk is.

Maar ik adviseer je nog steeds om maar gewoon gebruik te maken van wxWidgets. Ik kan me dan zo voorstellen dat je een raytracer module maakt met een functie die voor een gegeven camera standpunt en pixel een kleur berekend. Gebruik dat in de achtergrond om een bitmapje mee te vullen en teken dat op je scherm. In termen van wxWidgets moet dat niet al te moeilijk te maken zijn. En die wiskundige onderbouwing zou ik alleen toepassen op je raytracer module, dat is bij wijze van spreke al lastig zat, laat daar je gui maar buiten. Maar goed, ik ben natuurlijk niet je docent :)
Verwijderd schreef op 26 juli 2004 @ 22:09:
[...]
Die fout zegt imho genoeg. Er zit een fout in Ik zou de mensen even mailen die FranTk gemaakt hebben en even vertellen wat er allemaal wel niet werkt.
Dit is geen fout van de FranTk library. Het enige wat aan die library verkeerd is, is dat die out-dated is. Zo'n mailtje zal dan denk ik ook weinig nut hebben, als die library toch niet onderhouden wordt...

[ Voor 17% gewijzigd door Infinitive op 27-07-2004 00:08 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Infinitive schreef op 27 juli 2004 @ 00:04:
Ik heb net ook geprobeerd dat FranTk te bouwen, maar dat is echt rampzalig. Niet alleen gaat de code nog uit van oude ghc en hugs libraries, maar ook van een oude gtk.

De "runAllFinalizers" is bijvoorbeeld een oude Hugs functie uit de Weak module. Zo zijn er nog wel meer problemen, zoals oude conversie functie als toInt en fromDouble. Toen uiteindelijk Hugs een oude dll file van gtk wilde hebben heb ik het opgegeven.

Dus ik denk dat als je deze library wilt gebruiken, dat je dan je hugs en gtk moet downgraden naar de in de manual genoemde versies (hugs uit 1999 bijv). Als dat nog mogelijk is.

Maar ik adviseer je nog steeds om maar gewoon gebruik te maken van wxWidgets. Ik kan me dan zo voorstellen dat je een raytracer module maakt met een functie die voor een gegeven camera standpunt en pixel een kleur berekend. Gebruik dat in de achtergrond om een bitmapje mee te vullen en teken dat op je scherm. In termen van wxWidgets moet dat niet al te moeilijk te maken zijn. En die wiskundige onderbouwing zou ik alleen toepassen op je raytracer module, dat is bij wijze van spreke al lastig zat, laat daar je gui maar buiten. Maar goed, ik ben natuurlijk niet je docent :)


[...]

Dit is geen fout van de FranTk library. Het enige wat aan die library verkeerd is, is dat die out-dated is. Zo'n mailtje zal dan denk ik ook weinig nut hebben, als die library toch niet onderhouden wordt...
Dat klinkt al een heel stuk logischer :>

Ik ga dit toch even aankaarten bij mijn promotor, want om nu een oude Hugs of GHC versie te gaan gebruiken opdat mijn programma zou draaien is wat over the top vind ik... Hij mag me dan wel FranTk aanraden voor de mooie stijl van programmeren, maar als het 2 jaar out of date is heb ik weinig aan de mooie stijl...

Bedankt voor de hulp/raad Infinitive

* Boegel tikt een mailtje B)

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


Verwijderd

Infinitive schreef op 27 juli 2004 @ 00:04:
Dit is geen fout van de FranTk library. Het enige wat aan die library verkeerd is, is dat die out-dated is. Zo'n mailtje zal dan denk ik ook weinig nut hebben, als die library toch niet onderhouden wordt...
Out-dated zijn kan ook een fout zijn. :z

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Out-dated is geen fout maar een eigenschap. Tenzij Hugs backwards compatibility zou garanderen, want dan zou het een fout van Hugs zijn geweest.

offtopic:
@Boegel: al reactie van je promotor gehad? (wat is een promotor eigenlijk??)

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Infinitive schreef op 27 juli 2004 @ 17:28:
Out-dated is geen fout maar een eigenschap. Tenzij Hugs backwards compatibility zou garanderen, want dan zou het een fout van Hugs zijn geweest.

offtopic:
@Boegel: al reactie van je promotor gehad? (wat is een promotor eigenlijk??)
Nog geen reactie nee, I'll keep you guys posted, don't worry :)

Een promotor is iemand waarbij je altijd terecht kan met vragen ivm je eindwerk... In mijn geval is dat een assistent van de prof die het vak geeft waarrond ik mijn thesis doe (is meestal wel zo)... Die hebben meer tijd dan de prof zelf, en staan vaak ook dichter bij de studenten, omdat het leeftijdsverschil een stuk lager is (en dus ook de drempel om vragen te gaan stellen)...

Laatste poging tot nu toe :

code:
1
2
3
4
5
import FranCore
import Hugs.Weak

main :: IO()
main = start $ render withRootWin $ mkLabel [text "Hello World"]


Vreemd dat het zo niet werkt, want runAllFinalizers staat in de module Weak van Hugs. Het is niet zo dat Hugs de module Weak niet kan vinden, want als ik 'import Hugs.Weakx' doe, dan geeftie een fout dat Weak niet gevonden kan worden... Vaag allemaal |:(

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • j-w
  • Registratie: Augustus 1999
  • Niet online

j-w

Boegel schreef op 27 juli 2004 @ 17:33:
[...]


Nog geen reactie nee, I'll keep you guys posted, don't worry :)

Een promotor is iemand waarbij je altijd terecht kan met vragen ivm je eindwerk... In mijn geval is dat een assistent van de prof die het vak geeft waarrond ik mijn thesis doe (is meestal wel zo)... Die hebben meer tijd dan de prof zelf, en staan vaak ook dichter bij de studenten, omdat het leeftijdsverschil een stuk lager is (en dus ook de drempel om vragen te gaan stellen)...

Laatste poging tot nu toe :

code:
1
2
3
4
5
import FranCore
import Hugs.Weak

main :: IO()
main = start $ render withRootWin $ mkLabel [text "Hello World"]


Vreemd dat het zo niet werkt, want runAllFinalizers staat in de module Weak van Hugs. Het is niet zo dat Hugs de module Weak niet kan vinden, want als ik 'import Hugs.Weakx' doe, dan geeftie een fout dat Weak niet gevonden kan worden... Vaag allemaal |:(
hint:
http://www.haskell.org/onlinereport/modules.html

[ Voor 42% gewijzigd door j-w op 27-07-2004 17:39 ]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Mooi, maar onderstaande geeft nog steeds dezelfde error :

code:
1
2
3
4
5
import FranCore
import Hugs.Weak (runAllFinalizers)

main :: IO()
main = start $ render withRootWin $ mkLabel [text "Hello World"]

code:
1
2
ERROR "F:\THESIS\FranTk\src\FranSrc\Compatibility.hs":27 - Undefined variable "r
unAllFinalizers"


*zucht*

[ Voor 11% gewijzigd door Boegel op 27-07-2004 19:06 ]

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Importen werkt iets anders dan dat je waarschijnlijk in een taal als C gewent bent: imports hebben effect op slechts één module (tenzij zo'n import weer geëxporteerd wordt). Tijdens het compileren van Compatibility.hs kan Hugs de functie niet vinden. Waarschijnlijk omdat Hugs.Weak niet geïmporteerd wordt, of om een andere reden. Dus waar denk je dat je het beste die import kan plaatsen ;)

[ Voor 23% gewijzigd door Infinitive op 27-07-2004 21:16 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Infinitive schreef op 27 juli 2004 @ 21:14:
Importen werkt iets anders dan dat je waarschijnlijk in een taal als C gewent bent: imports hebben effect op slechts één module (tenzij zo'n import weer geëxporteerd wordt). Tijdens het compileren van Compatibility.hs kan Hugs de functie niet vinden. Waarschijnlijk omdat Hugs.Weak niet geïmporteerd wordt, of om een andere reden. Dus waar denk je dat je het beste die import kan plaatsen ;)
Je bedoelt vast in Compatibility.hs... Wel :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- Hugs/GHC incompatibility work-arounds.  Hugs version.

module Compatibility ( double2Float, trace, hSetBuffering, 
                       yield,
               debugMsgLn, setDebug, mkWeakIORef)
where
import Addr (Addr)
import IOExts
import Weak
import Monad

<knip, niet belangrijk>

yield = runAllFinalizers

<nog eens knip>


De import staat er dus al in... Ik heb het even geprobeerd met een oudere versie van Hugs, zijnde de versie van november 2002, en dan krijg ik dit:

proggie:

code:
1
2
3
4
import FranTk

main :: IO()
main = start $ render withRootWin $ mkLabel [text "Hello World"]


Hugs output:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
Prelude> :load F:/THESIS/GUItest/HelloWorld.hs
Reading file "F:/THESIS/GUItest/HelloWorld.hs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\FranTk.lhs":
Reading file "F:\THESIS\FranTk\src\FranSrc\FranCore.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\BehaviorTypes.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\ColorCoreB.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\BaseTypes.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\Utils.hs":
Reading file "C:\Program Files\Hugs982002\lib\exts\IOExts.hs":
Reading file "C:\Program Files\Hugs982002\lib\IO.hs":
Reading file "C:\Program Files\Hugs982002\lib\Ix.hs":
Reading file "C:\Program Files\Hugs982002\lib\IO.hs":
Reading file "C:\Program Files\Hugs982002\lib\Array.hs":
Reading file "C:\Program Files\Hugs982002\lib\List.hs":
Reading file "C:\Program Files\Hugs982002\lib\Maybe.hs":
Reading file "C:\Program Files\Hugs982002\lib\List.hs":
Reading file "C:\Program Files\Hugs982002\lib\Array.hs":
Reading file "C:\Program Files\Hugs982002\lib\exts\IORef.lhs":
Reading file "C:\Program Files\Hugs982002\lib\exts\IOExts.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\Utils.hs":
Reading file "C:\Program Files\Hugs982002\lib\exts\Int.hs":
Reading file "C:\Program Files\Hugs982002\lib\exts\Bits.hs":
Reading file "C:\Program Files\Hugs982002\lib\exts\Int.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Compatibility.hs":
Reading file "C:\Program Files\Hugs982002\lib\exts\Addr.hs":
Reading file "C:\Program Files\Hugs982002\lib\exts\Weak.hs":
Reading file "C:\Program Files\Hugs982002\lib\Monad.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Compatibility.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\BaseTypes.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\ColorCore.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Behavior.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\BPrim.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Event.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\MutSet.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\Remover.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\MutSet.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Listener.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\FranTime.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Listener.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Event.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\BPrim.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Behavior.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\ColorCoreB.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Point2B.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Point2.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\VectorSpace.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Vector2.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Force.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Vector2.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Point2.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Point2B.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Point3B.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Point3.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Vector3.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Point3.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Vector3B.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Point3B.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\RectB.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Rect.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Transform2.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Rect.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Vector2B.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\RectB.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Transform2B.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Transform3B.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Transform3.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\Transform3B.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\VectorSpaceB.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\BehaviorTypes.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\FranPrim.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\WorkPool.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\FranPrim.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\BehaviorIO.hs":
Reading file "F:\THESIS\FranTk\src\FranSrc\FranCore.hs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\Component.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\Widget.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\Identify.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\WH.lhs":
Reading file "F:\THESIS\FranTk\src\FranSrc\StaticTypes.hs":
Reading file "C:\Program Files\Hugs982002\lib\exts\Dynamic.lhs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\PlacePos.hs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\WidgetExports.lhs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclPrimImpl.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclPrimWidgets.hs":
Reading file "C:\Program Files\Hugs982002\lib\Char.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclGUI.hs":
Reading file "C:\Program Files\Hugs982002\lib\System.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclCompatibility.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclPrim.hs":
Reading file "C:\Program Files\Hugs982002\lib\exts\Word.hs":
Reading file "C:\Program Files\Hugs982002\lib\Numeric.hs":
Reading file "C:\Program Files\Hugs982002\lib\Ratio.hs":
Reading file "C:\Program Files\Hugs982002\lib\Numeric.hs":
Reading file "C:\Program Files\Hugs982002\lib\exts\Word.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclPrim.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclCompatibility.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclTrie.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TrieIO.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclTrie.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\ExtArray.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclTime.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclGUI.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclPrimCore.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclPrimWidgets.hs":
Reading file "F:\THESIS\FranTk\src\TclHaskellSrc\TclPrimImpl.hs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\WidgetExports.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\WH.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\ListB.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\CollectionB.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\MapG.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\BVar.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\CollectionB.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\ListB.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\PrimWidget.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\GUI.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\BVars.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\SetB.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\FiniteMap.hs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\SetB.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\CollectionBVar.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\BVars.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\GUIDef.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\GUI.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\Conf.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\PrimWidget.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\HasInput.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\Widget.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\DisplayWidget.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\PileArray.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\Group.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\PileArray.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\DisplaySimple.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\DisplayPItem.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\DisplayCItem.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\DisplayWidget.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\Component.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\WidgetConf.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\WidgetSetImpl.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\AbstractInterface.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\WidgetSetImpl.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\WidgetConf.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\ComponentWidgets.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\WidgetSet.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\Widgets.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\CItem.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\RectInfo.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\CItem.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\MItem.lhs":
Reading file "F:\THESIS\FranTk\src\FranTkSrc\Widgets.lhs":
Dependency analysis
ERROR "F:\THESIS\FranTk\src\FranTkSrc\Widgets.lhs":920 - Ambiguous variable occurrence "updateIORef"
*** Could refer to: IORef.updateIORef Utils.updateIORef

MItem>


Sorry voor de lengte hiervan, maar beter volledig zijn eh :+

Op lijn 26 wordt weergegeven dat Weak.hs nu wel probleemloos gelezen wordt, maar nu zit het probleem ergens anders (zie error op laatste lijnen)...

Dit lijkt er meer en meer op te lijken dat Hugs helemaal niet backward compatible is, en dat de mensen van FranTk er niet echt meer mee bezig zijn... Mijn promotor zal zich mogen verantwoorden :P

Iemand die toevallig een oudere versie van Hugs heeft staan draaien, of weet waar die te downen is... Misschien lukt het zo wel dan :X

[ Voor 12% gewijzigd door Boegel op 27-07-2004 22:39 ]

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • j-w
  • Registratie: Augustus 1999
  • Niet online

j-w

Boegel schreef op 27 juli 2004 @ 22:38:
[...]


Op lijn 26 wordt weergegeven dat Weak.hs nu wel probleemloos gelezen wordt, maar nu zit het probleem ergens anders (zie error op laatste lijnen)...

Dit lijkt er meer en meer op te lijken dat Hugs helemaal niet backward compatible is, en dat de mensen van FranTk er niet echt meer mee bezig zijn... Mijn promotor zal zich mogen verantwoorden :P

Iemand die toevallig een oudere versie van Hugs heeft staan draaien, of weet waar die te downen is... Misschien lukt het zo wel dan :X
ik zou zeggen: drop FranTK, en gebruik wxhaskell

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Wat die ambigues reference betreft: IORef functies zijn gedefinieerd in Data.IORef (met een IORef zou je assignment kunnen modelleren en samen met de IO monad dingen als een loopje - maar goed, ik dwaal af).

Probleem is dat de library ook een implementatie geeft van updateIORef. Waarschijnlijk omdat zoiets er toen nog niet was.

Je kan de code natuurlijk nu fixen, of door updateIORef uit Data.IORef te hiden, of door de functie uit Util.hs weg te mikken en updateIORef te importeren uit Data.IORef. Maar ik heb zo het idee dat je dan nog wel een tijdje door kunt gaan. Ben je problemen als fromDouble al tegengekomen, zoniet dan krijg je die ook nog.

Downgraden naar oude hugs lijkt me ook niet zo fijn om te doen en de vraag is in hoeverre je daarmee op schiet want je moet dan eigenlijk ook nog een oude versie van die TclTk library hebben.

Trouwens, nog een draft van een artikeltje van Daan Leijen over wxWidgets: http://www.cs.uu.nl/~daan/download/papers/wxhaskell.pdf. Op zijn publication pagina staan bovendien nog wel meer leuke artikeltjes. De titel van zijn artikel "Calling Hell from Heaven and Heaven from Hell" vind ik echt steengoed, maar dat mag ook wel als je naar het rijtje auteurs kijkt.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Infinitive schreef op 27 juli 2004 @ 23:21:
...
Je kan de code natuurlijk nu fixen, of door updateIORef uit Data.IORef te hiden, of door de functie uit Util.hs weg te mikken en updateIORef te importeren uit Data.IORef. Maar ik heb zo het idee dat je dan nog wel een tijdje door kunt gaan. Ben je problemen als fromDouble al tegengekomen, zoniet dan krijg je die ook nog.

Downgraden naar oude hugs lijkt me ook niet zo fijn om te doen en de vraag is in hoeverre je daarmee op schiet want je moet dan eigenlijk ook nog een oude versie van die TclTk library hebben.
Die heb ik eigenlijk al 8) In de readme staat dat ze Tcl/Tk 8.0 willen (en dat zie je ook aan de errors als je een nieuwere versie gebruikt, dan blijftie zoeken naar tcl8.0 en tk8.0 paketjes); dus heb ik dat ook maar gedaan (was makkelijk te vinden).
Ik heb inderdaad ook de indruk dat ik zo bezig kan blijven, en dit is enkel nog maar bij een 'Hello World' voorbeeldje, laten we zwijgen over wat er allemaal zou moeten gebeuren als ik een volledige GUI in elkaar wil prutsen :r
Het blijft wachten op een reply van mijn promotor, en alsie me niet gelooft dat FranTk outdated is, dan toon ik hem deze thread wel O-)
Infinitive schreef op 27 juli 2004 @ 23:21:
Trouwens, nog een draft van een artikeltje van Daan Leijen over wxWidgets: http://www.cs.uu.nl/~daan/download/papers/wxhaskell.pdf. Op zijn publication pagina staan bovendien nog wel meer leuke artikeltjes. De titel van zijn artikel "Calling Hell from Heaven and Heaven from Hell" vind ik echt steengoed, maar dat mag ook wel als je naar het rijtje auteurs kijkt.
Checking it out...

[edit]

In het eerste document zie je duidelijk het verschil met FranTk, en nu begrijp ik ook waarom mijn promotor meer niegt naar FranTk dan wxHaskell : stijl.
Het theoretisch modelleren van een GUI zou in wxHaskell veel moeilijker en minder mooi zijn dan in FranTk, maar dan moet die laatste wel werken natuurlijk >:)

Het tweede document dat je aanhaalt kan ik nu niet lezen, want ik zit op mijn werk (vakantiejob), en het hier geen ps-viewer (en kan ook niets installeren :| )...

Hopelijk krijg ik vandaag reply van mijn promotor, maar ik heb het gevoel dattie naar een conferentie ofzo is

[ Voor 16% gewijzigd door Boegel op 28-07-2004 08:51 ]

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Reply ipv edit, omdat er 'nieuwe ontwikkelingen' zijn :p

Heb mail gekregen van mijn promotor, en hij opteert nog steeds voor FranTk, en het zou hem verbazen moest FranTk niet meer werken met nieuwere versies van Hugs B)

Hij vernoemde ook Clean en 'Generic Haskell', maar vreest dat er daar geen library's voor Haskell voor bestaan...
Als ik gebruik wil maken van wxHaskell, dan kan ik dat doen, maar dan vermeld ik daar best niet overdreven veel van in mijn 'academische tekst', gewoon omdat wxHaskell niet puur functioneel is...

Moeilijke beslissing lijkt me, maar ik stuur hem wel eerst nog een reply'tje met mijn argumenten (mijn probeersels met FranTk, duidelijk out of date, enz...)

Mensen die meer weet hebben over Clean (werd hier reeds vernoemd), of andere systemen voor GUI's in Haskell zijn zeer welkom om die hier te vermelden... :+

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Generic Haskell is in ieder geval geen GUI... ;)
En volgens mij heb je niet zo veel andere GUIs in Haskell.... Ik kan me herinneren dat bij Hugs nog een simpele soort van GUI zat wat door Paul Hudak in zijn boek werd behandeld. Ben even kwijt hoe dat heette.

[ Voor 49% gewijzigd door Infinitive op 28-07-2004 13:45 ]

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Infinitive schreef op 28 juli 2004 @ 13:43:
Generic Haskell is in ieder geval geen GUI... ;)
En volgens mij heb je niet zo veel andere GUIs in Haskell.... Ik kan me herinneren dat bij Hugs nog een simpele soort van GUI zat wat door Paul Hudak in zijn boek werd behandeld. Ben even kwijt hoe dat heette.
Ja sorry, het waren functionele talen waarop GecT gebaseerd was...

http://www.google.be/search?q=GECt+plasmeijer

My fault :P

Ivm die GUI van Hudak, bedoel je dit ?

http://www.programming-re...ultimedia_0521644089.html

Dat boek heb ik liggen, dat is eigenlijk een Haskell cursus, maar met leuke vb'tjes ipv met priemgetallen of Fibonacci getallen :z

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
Volgens mij besprak Paul Hudak in het boek ook een GUI. Alleen dat eentje die alleen tekeningetjes maakte en niet zozeer te maken heeft met knopjes enzo... daar heb je bij nader inzien dus niet zo veel aan.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Infinitive schreef op 28 juli 2004 @ 14:23:
Volgens mij besprak Paul Hudak in het boek ook een GUI. Alleen dat eentje die alleen tekeningetjes maakte en niet zozeer te maken heeft met knopjes enzo... daar heb je bij nader inzien dus niet zo veel aan.
Idd, GUI-wise heb ik er niet veel aan, maar het is wel handig om een paar dingen na te slaan over Haskell zelf (vandaar ook dat ik het gekocht heb).

Promotor heeft reeds een mailtje terug, en binnen een dikke week ofzo ga ik ook eens op zijn bureau, want zo kunnen we blijven over en weer mailen, en komt er nooit niets van... Ik heb zo het gevoel dat het toch FranTk zal worden, en dat ik de nodige aanpassingen zelf ga maken... Dan kan ik die aanpassingen enzo ook vermelden in mijn thesis, en misschien geef ik ondertussen FranTk zelf ook een boost (wishfull thinking O-) )

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Weer updatetje:

Promotor heeft de FranTk library beetje aangepast, zodat in ieder geval het 'Hello World' voorbeeldje al werkt.
De volgende voorbeeldjes moeten een beetje aanpassing, want die in de user manual blijken niet 100% te kloppen...
Ik weet niet of mijn promotor er erg blij mee zou zijn moest ik de aanpassingen die hij gemaakt heeft hier zomaar online gooien, dus mensen die echt geintresseerd zijn kunnen me wel mailen ofzo, dan kijk ik wel wat ik kan doen...

Werkende code met aangepaste FranTk library:

code:
1
2
3
4
import FranTk

main :: IO()
main = display $ withRootWindow [] (mkLabel [text "Hello World"])


edit:

voor de volledigheid:
code:
1
display $ withRootWindow...

is hetzelfde als
code:
1
start $ render $ withRootWindow...

[ Voor 21% gewijzigd door Boegel op 28-07-2004 21:51 ]

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
Voor de volledigheid wil ik je nog even wijzen op dit overzicht van GUI libraries voor haskell.

Pas de replâtrage, la structure est pourrie.


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
@TS: Aangezien je met Fran gaat werken, dan zijn wij natuurlijk ook geïnteresseerd in je (hernieuwde) ervaring ermee. Laat je ter zijner tijd weten wat ervan terecht gekomen is?

Ow ja, en mocht je uiteindelijk toch wxHaskell gebruiken, dan is het volgende thread op de mailinglist wellicht interessant omdat het gaat over iemand die met bitmaps en pixels daarin werkt: http://sourceforge.net/ma...id=5231700&forum_id=34197.

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Infinitive schreef op 30 juli 2004 @ 19:14:
@TS: Aangezien je met Fran gaat werken, dan zijn wij natuurlijk ook geïnteresseerd in je (hernieuwde) ervaring ermee. Laat je ter zijner tijd weten wat ervan terecht gekomen is?

Ow ja, en mocht je uiteindelijk toch wxHaskell gebruiken, dan is het volgende thread op de mailinglist wellicht interessant omdat het gaat over iemand die met bitmaps en pixels daarin werkt: http://sourceforge.net/ma...id=5231700&forum_id=34197.
Natuurlijk :) Nu ga ik eerst wat rustig aan doen, wat vakantie nemen (juist maandje vakantiejob gedaan), en zo nu en dan ga ik me wat bezig houden met die ray tracer en alles er rond (parser voor SDL en GUI)...
Jullie horen nog van me B)

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen


  • Boegel
  • Registratie: Maart 2002
  • Laatst online: 07-01-2018

Boegel

just boegel

Topicstarter
Voor de mensen die geïnstresseerd waren in de eventuele resultaten van mijn ray tracer in Haskell:

http://studwww.ugent.be/~kehoste/thesisPublic/website

boegel - er zijn maar 10 soorten mensen in de wereld: diegene die het binaire stelsel kennen en diegene die het niet kennen

Pagina: 1