I am stuck with a really wierd problem around some code that used to work just fine and I am at a loss to explain what is happening. A long time back I published on github a comprehensive binding to SDL2 for gprolog, it all worked on ubuntu and OSX just fine.
A year or two down the line, I checked out the code, it built first time but it is raising existence_error-s on code that exists BUT ARITY IS ZERO. I have an event loop predicate that calls itself until you hit the ESC key... here is what it looks like trying to run the fonttest predicate: *?- [f].* *?- fonttest.* Window flags: 0 gp_SDL_CreateWindow: ok: 0x3e10390 SDL.PL: gp_SDL_CreateRenderer_C(65078160, -1, 6, Rndr). render draw color: 0, 0, 0 Font texture: 480 x 95 pixels render draw color: 255, 128, 128 render draw color: 0, 128, 128 window(213,2,shown) uncaught exception: error(existence_error(procedure,handle_event/0),evloop/0) *at this point...* I listed the handle_event predicate, the code is there BUT NOT /0... *| ?- listing(handle_event)*. % file: /home/sean/Documents/prolog/gnuprolog-libsdl2/f.pl handle_event(quit(_)) :- format([81, 85, 73, 84, 32, 115, 101, 108, 101, 99, 116, 101, 100, 126, 110], []), !, fail. handle_event(keyup(_, _, released, _, _, 27, _)) :- format([69, 83, 67, 32, 112, 114, 101, 115, 115, 101, 100, 126, 110], []), !, fail. handle_event(_). *and finally I listed out the evloop predicate to check:* | ?- listing(evloop). % file: /home/sean/Documents/prolog/gnuprolog-libsdl2/f.pl evloop :- sdl_PollEvent(A), handle_event(A), !, evloop. evloop. evloop(A) :- call(A), sdl_PollEvent(B), handle_event(B), !, evloop(A). evloop(_). There IS evloop/0 but there is NO handle_event/0 ... why does it think there is??? I haven't managed to get over this yet! I have attached the fill source code of the test. Thanks Sean.
f.pl
Description: Perl program
_______________________________________________ Users-prolog mailing list Users-prolog@gnu.org https://lists.gnu.org/mailman/listinfo/users-prolog