On Apr 20, 2009, at 9:23 AM, Ramana Kumar wrote:

I put some calls to display in the gears.scm file... the one right
below the import line fires (after a second), but the one right above
the begin form at the end of the file doesn't. It looks like there are
only procedure definitions between them. Any idea why it might not be
getting to the end of the file?

Try tracing all the foreign calls and see where it gets stuck.

=== modified file 'lib/ypsilon-compat.ikarus.ss'
--- lib/ypsilon-compat.ikarus.ss        2009-04-13 13:43:20 +0000
+++ lib/ypsilon-compat.ikarus.ss        2009-04-20 06:51:31 +0000
@@ -287,7 +287,7 @@
                       (convert-type return-type)
                       (list (convert-type arg-type*) ...))
                     (lookup-shared-object lib 'foreign-name))])
-             (lambda (t* ...)
+             (trace-lambda foreign-name (t* ...)
(let ([u* (convert-arg x foreign-name t* arg- type*)] ...)
                  (let ([v (callout u* ...)])
                    (convert-out-arg x foreign-name t* u* arg-type*)

Running glut-demo.ss, you should get something like:

|(glutInitDisplayMode 18)
|#<void>
|(glutInitWindowPosition 100 100)
|#<void>
|(glutInitWindowSize 500 500)
|#<void>
|(glutInit #(1) #("glut-demo.scm"))
|#<void>
|(glutCreateWindow "Hello GLUT")
|1
|(glLightfv 16384 4608 #vu8(0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 63))
|#<void>
|(glLightfv 16384 4609 #vu8(0 0 128 63 0 0 128 63 0 0 128 63 0 0 128 63))
|#<void>
|(glLightfv 16384 4611 #vu8(0 0 0 0 0 0 64 64 0 0 64 64 0 0 0 0))
|#<void>
|(glLightModelfv 2899 #vu8(205 204 76 62 205 204 76 62 205 204 76 62 0 0 128 63))
|#<void>
|(glLightModelfv 2897 #vu8(0 0 0 0))
|#<void>
|(glShadeModel 7424)
|#<void>
|(glFrontFace 2304)
|#<void>
|(glEnable 2896)
|#<void>
|(glEnable 16384)
|#<void>
|(glEnable 3456)
|#<void>
|(glEnable 2977)
|#<void>
|(glEnable 2929)
|#<void>
|(glDepthFunc 513)
|#<void>
|(glutDisplayFunc #<procedure display [char 492 of glut-demo.scm]>)
|#<void>
|(glutReshapeFunc #<procedure reshape [char 2806 of glut-demo.scm]>)
|#<void>
|(glutVisibilityFunc #<procedure visibility [char 3240 of glut- demo.scm]>)
|#<void>
|(glutMouseFunc #<procedure mouse [char 1784 of glut-demo.scm]>)
|#<void>
|(glutIdleFunc #<procedure rotate [char 1176 of glut-demo.scm]>)
|#<void>
|(glutCreateMenu #<procedure menu [char 2296 of glut-demo.scm]>)
|#<void>
|(glutAddMenuEntry "Icosahedron" 1)
|#<void>
|(glutAddMenuEntry "Octahedron" 2)
|#<void>
|(glutAddMenuEntry "Tetrahedron" 3)
|#<void>
|(glutAddMenuEntry "Dodecahedron" 4)
|#<void>
|(glutAddMenuEntry "Sphere" 5)
|#<void>
|(glutAddMenuEntry "Cone" 6)
|#<void>
|(glutAddMenuEntry "Cube" 7)
|#<void>
|(glutAddMenuEntry "Torus" 8)
|#<void>
|(glutAddMenuEntry "[smooth]" 9)
|#<void>
|(glutAddMenuEntry "[flat]" 10)
|#<void>
|(glutAddMenuEntry "Exit" 11)
|#<void>
|(glutAttachMenu 2)
|#<void>
|(glutMainLoop)
reshape callback 500 500
| (glViewport 0 0 500 500)
| #<void>
....

Where does it hang on your machine?


You might want to try building ikarus in 32-bit mode first and see
if that works.

What would be the easiest way to do that? I tried putting -m32 in
CFLAGS, LDFLAGS and ASFLAGS for configure, but the build failed (I'm
not sure whether that's supposed to work - just found it online).

That should work, provided you also have libgmp and libffi
compiled in 32-bit mode, e.g., pass the appropriate
  CFLAGS="-m32 -Isomefdir" and
  LDFLAGS="-m32 -Lsomedir"
flags.

Aziz,,,

Reply via email to