users-prolog
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Help, wierd existence_error message from previously working code!


From: emacstheviking
Subject: Help, wierd existence_error message from previously working code!
Date: Sat, 4 Feb 2017 14:54:16 +0000

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.


Attachment: f.pl
Description: Perl program


reply via email to

[Prev in Thread] Current Thread [Next in Thread]