I get another error of the same type running lispbuilder-sdl examples under
certain conditions.

I have Windows 7 64-bit here and I just installed SBCL with lispbuilder-sdl
following the steps from the wiki (I usually use Linux to program, so I
didn't have Lisp in Windows).
I found out a very strange behaviour. If you run (sdl-examples:circle-1)
after initializing everything, it works fine. But, consider this erroneous
form:

(sdl:with-init ()
  (sdl:window 200 200)
  (sdl:with-events ()
    (:idle ()
      (inexistent-function))))

If you evaluate this form, enter the debugger, invoke the restart ABORT and
then run the example, it enters the debugger. Try running the example one
more time and it enters the LDB (SBCL's low-level debugger).

c:\Program Files (x86)\Steel Bank Common Lisp\1.0.29>sbcl
This is SBCL 1.0.29, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.

This is experimental prerelease support for the Windows platform: use
at your own risk.  "Your Kitten of Death awaits!"
* (asdf:oos 'asdf:load-op :lispbuilder-sdl-examples)

; loading system definition from
; C:\Program Files (x86)\Steel Bank Common
Lisp\1.0.29\site\lispbuilder-sdl\lisp
builder-sdl-examples.asd
; into #<PACKAGE "ASDF0">
; registering #<SYSTEM LISPBUILDER-SDL-EXAMPLES {23E3A109}> as
; LISPBUILDER-SDL-EXAMPLES
NIL
* (sdl-examples:circle-1)
;; [Runs normally]

NIL
* (sdl:with-init ()
  (sdl:window 200 200)
  (sdl:with-events ()
    (:idle ()
      (inexistent-function))))
; in: LAMBDA NIL
;     (LISPBUILDER-SDL:WITH-EVENTS NIL (:IDLE NIL (INEXISTENT-FUNCTION)))
; --> LET SETF SETQ THE LAMBDA
; ==>
;   #'(LAMBDA ()
;       (DECLARE (IGNORABLE LISPBUILDER-SDL:RENDER-STATE))
;       (PROGN NIL (INEXISTENT-FUNCTION)))
;
; caught STYLE-WARNING:
;   declaring unknown variable LISPBUILDER-SDL:RENDER-STATE to be ignored

;     (INEXISTENT-FUNCTION)
;
; caught STYLE-WARNING:
;   undefined function: INEXISTENT-FUNCTION
;
; compilation unit finished
;   Undefined function:
;     INEXISTENT-FUNCTION
;   caught 2 STYLE-WARNING conditions

debugger invoked on a UNDEFINED-FUNCTION:
  The function INEXISTENT-FUNCTION is undefined.

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

("bogus stack frame")
0] 0

* (sdl-examples:circle-1)
;; [Crashes after 1 or 2 seconds]

debugger invoked on a SIMPLE-ERROR: EXCEPTION_ACCESS_VIOLATION

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

("bogus stack frame")
0]
WARNING: Starting a select without a timeout while interrupts are disabled.
ba
0: ("bogus stack frame")
1: ("foreign function: #x410107")
2: (SB-KERNEL::COLLECT-GARBAGE 0)
3: ((FLET SB-THREAD::WITH-MUTEX-THUNK))
4: ((FLET #:WITHOUT-INTERRUPTS-BODY-[SUB-GC]13))
5: (SB-KERNEL:SUB-GC)[:EXTERNAL]
6: ("foreign function: #x4120C4")
7: ("foreign function: #x4027B9")
8: ("foreign function: #x405017")
9: ("foreign function: #x405AC9")
10: ("foreign function: #x40CDDB")
11: ("foreign function: #x412428")
12: (SB-PCL::SAFE-METHOD-SPECIALIZERS
     #<STANDARD-METHOD INITIALIZE-INSTANCE :AFTER
(BABEL-ENCODINGS:CHARACTER-ENC
ODING) {23B91339}>)
13: (SB-PCL::COMPUTE-APPLICABLE-METHODS-USING-TYPES
     #<STANDARD-GENERIC-FUNCTION INITIALIZE-INSTANCE (14)>
     ((EQL #<LISPBUILDER-SDL:RECTANGLE {23DEFCF9}>)))
14: ((SB-PCL::FAST-METHOD COMPUTE-APPLICABLE-METHODS (GENERIC-FUNCTION T))
     #<unavailable argument>
     #<unavailable argument>
     #<STANDARD-GENERIC-FUNCTION INITIALIZE-INSTANCE (14)>
     (#<LISPBUILDER-SDL:RECTANGLE {23DEFCF9}>))
15: ((SB-PCL::FAST-METHOD MAKE-INSTANCE (CLASS))
     #<unavailable argument>
     #<unavailable argument>
     #<STANDARD-CLASS LISPBUILDER-SDL:RECTANGLE>)[:EXTERNAL]
16: (LISPBUILDER-SDL:DRAW-FILLED-CIRCLE-*
     #<unavailable argument>
     #<unavailable argument>
     #<unavailable argument>)[:EXTERNAL]
17: ((LAMBDA ()))
18: ((LAMBDA
         (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
          SB-PCL::.ARG1.))
     #<unavailable argument>
     #<unavailable argument>
     #<LISPBUILDER-SDL-BASE::FPS-FIXED {2448C859}>
     #<CLOSURE (LAMBDA #) {244BBCD5}>)
19: ((SB-PCL::FAST-METHOD LISPBUILDER-SDL-BASE::PROCESS-TIMESTEP :AROUND
      (LISPBUILDER-SDL-BASE::FPS-MANAGER T))
     #(5 NIL 7 NIL 2 NIL 6 NIL 4 NIL 3 NIL)
     #S(SB-PCL::FAST-METHOD-CALL
        :FUNCTION #<CLOSURE # {24516CB5}>
        :PV NIL
        :NEXT-METHOD-CALL NIL
        :ARG-INFO (2))
     #<LISPBUILDER-SDL-BASE::FPS-FIXED {2448C859}>
     #<CLOSURE (LAMBDA #) {244BBCD5}>)
20: (LISPBUILDER-SDL-EXAMPLES:CIRCLE-1)
21: (SB-INT:SIMPLE-EVAL-IN-LEXENV
     (LISPBUILDER-SDL-EXAMPLES:CIRCLE-1)
     #<NULL-LEXENV>)
22: (INTERACTIVE-EVAL (LISPBUILDER-SDL-EXAMPLES:CIRCLE-1))[:EXTERNAL]
23: (SB-IMPL::REPL-FUN NIL)
24: ((LAMBDA ()))
25: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<CLOSURE (LAMBDA #) {23CFB47D}>)
26: (SB-IMPL::TOPLEVEL-REPL NIL)
27: (SB-IMPL::TOPLEVEL-INIT)
28: ((LABELS SB-IMPL::RESTART-LISP))
29: ("foreign function: #x4120C4")
30: ("foreign function: #x40AF88")

0]
WARNING: Starting a select without a timeout while interrupts are disabled.
0
* (sdl-examples:circle-1)
fatal error encountered in SBCL pid 2772:
Trapping to run pending handler while GC in progress.

Welcome to LDB, a low-level debugger for the Lisp runtime environment.
ldb> ba
Backtrace:
ldb> exit
Argh! lossage_handler() returned, total confusion...




If you just evaluate

(sdl:with-init ()
  (sdl:window 200 200)
  (inexistent-function))

instead, here is what you get:

* (sdl-examples:circle-1)

debugger invoked on a SIMPLE-ERROR: EXCEPTION_ACCESS_VIOLATION

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

debugger invoked on a SIMPLE-ERROR: EXCEPTION_ACCESS_VIOLATION

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.

debugger invoked on a SIMPLE-ERROR: EXCEPTION_ACCESS_VIOLATION
;;; [... snipped - repeats the same message various times ...]
restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.
Help! 11 nested errors. SB-KERNEL:*MAXIMUM-ERROR-DEPTH* exceeded.

debugger invoked on a SIMPLE-ERROR: Maximum error nesting depth exceeded

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.
;
; compilation unit aborted
;   caught 1 fatal ERROR condition
*




It didn't even let me to see the backtrace - it just quit the debugger.
Evaluating only

(sdl:with-init ()
  (inexistent-function))

(instead of the erroneous form above) enters directly the LDB after running
the example, while evaluating only

(inexistent-function)

does not give any problems at all.

This behaviour varies if you run other examples. For instance, RANDOM-BOX-1,
PIXELS-2 and MANDELBROT enter the LDB in any situation, while BEZIER and
PIXELS-1 seem to work without any problem.

I'll try to investigate later, and also test this on Linux to see if I get
the same error.

2009/12/10 Elliott Slaughter <elliottslaugh...@gmail.com>

> No, it's still crashing in one example program and not in the other. I
> guess I need to figure out what I'm doing in the one and not the other, but
> haven't had the time to check yet.
>
>
> On Wed, Dec 9, 2009 at 6:37 PM, Luke J Crook <l...@balooga.com> wrote:
>
>> Elliott Slaughter <elliottslaugh...@...> writes:
>>
>> >
>> > I can do more investigation when I get back in a couple of days.
>> >
>>
>> Did you eventually figure out the cause of this?
>>
>> - Luke
>>
>>
>> _______________________________________________
>> application-builder mailing list
>> application-builder@lispniks.com
>> http://www.lispniks.com/mailman/listinfo/application-builder
>>
>
>
>
> --
> Elliott Slaughter
>
> "Don't worry about what anybody else is going to do. The best way to
> predict the future is to invent it." - Alan Kay
>
> _______________________________________________
> application-builder mailing list
> application-builder@lispniks.com
> http://www.lispniks.com/mailman/listinfo/application-builder
>
>
_______________________________________________
application-builder mailing list
application-builder@lispniks.com
http://www.lispniks.com/mailman/listinfo/application-builder

Reply via email to