Ticket #464 (closed defect: fixed)
GC problem in standalone Windows executables
| Reported by: | hrapof | Owned by: | gb |
|---|---|---|---|
| Priority: | critical | Milestone: | |
| Component: | Runtime (threads, GC) | Version: | 1.3 |
| Keywords: | GC Windows | Cc: |
Description
With CCL "Version 1.2-r11583M (LinuxPPC32)" my test
(defun test ()
(format t "Hello, world!"))
(defun make ()
(save-application "tst.exe" :toplevel-function #'test
:error-handler :quiet :prepend-kernel t))
happily prints "Hello, world!" and exits.
But with Windows 32bit CCL fresh from SVN (updated and rebuilt) it prints
Hello, world!
> Error: value NIL is not of the expected type CCL::RECURSIVE-LOCK. > While executing: CCL::RECURSIVE-LOCK-PTR, in process Initial(0). > Type :POP to abort, :R for a list of available restarts. > Error: value NIL is not of the expected type CCL::RECURSIVE-LOCK. > While executing: CCL::RECURSIVE-LOCK-PTR, in process Initial(0). > Type :POP to abort, :R for a list of available restarts. > Error: value NIL is not of the expected type CCL::RECURSIVE-LOCK.
.... ....
and then hangs, eating CPU.
Further tinkering showed that my TEST function could be as simple as
(defun test () (ccl:gc))
Called from REPL - everything is OK; called as top-level function in a exe - program busy-waits for something.
Also, CCL prints at start-up
Can't get desired heap address at 0x4000000
May it have something to do with this GC problem? In REPL everything is OK, though: it succefully finishes a hour-long computation.
Windows: XP SP2. CPU: Intel Core Duo.
