Lovesan / bike

Common Lisp .Net Core Interop
MIT License
144 stars 5 forks source link

executable on Windows 10 dumps into ldb #5

Closed lc9er closed 1 year ago

lc9er commented 4 years ago

I just began testing bike. The hello example on the project page works from the repl, but when I run the resulting executable, I get the following error:

Internal error #11 "Object is of the wrong type." at 0000001000DFAF07 SC: 0, Offset: 7 0x00000061: other immediate 0, no tls value marker: data=0 SC: 3, Offset: 12 $1= 0x015e6bd7: list pointer fatal error encountered in SBCL pid 1700(tid 0000000000A916D0): internal error too early in init, can't recover

I'm refering to this example: (defun hello () (bike:invoke 'System.Console 'WriteLine "Hello, World!")) (setf uiop:*image-entry-point* #'hello) (uiop:dump-image "hello.exe" :executable t)

Building with sb-ext:save-lisp-and-die directly, or via roswell fails to build an executable. I'm still really new to CL, so my apologies if this is a product of my ignorance.

Lovesan commented 4 years ago

@lc9er Hello. Thanks for the report. Please specify your SBCL version, bike library version(is it the latest master, i.e. from quicklisp?), and .Net Core runtime version

lc9er commented 4 years ago

Windows: Windows 10 1909 SBCL: 2.0.0 Bike: 0.11.0 (installed from quicklisp) .Net: .Net Core 3.1.302

I'm also pasting the entire transcript of what I'm doing, in case I'm missing something:

❯ sbcl

This is SBCL 2.0.0, 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.

WARNING: the Windows port is fragile, particularly for multithreaded code. Unfortunately, the development team currently lacks the time and resources this platform demands.

  • (ql:quickload :bike) To load "bike": Load 1 ASDF system: bike ; Loading "bike" .................................................. .............. (:BIKE)
  • (defun hello () (bike:invoke 'System.Console 'WriteLine "Hello, World!")) HELLO
  • (hello) Hello, World!
  • (setf uiop:image-entry-point #'hello)

  • (uiop:dump-image "C:/Users//heythere.exe" :executable t) [bike] Clearing invocation cache [bike] Wiping out lisp handles [bike] Performing full GC [bike] Performing CoreCLR GC [bike] Shutting down CoreCLR [bike] Waiting 5 sec. for CoreCLR to shut down [bike] Shutdown complete [undoing binding stack and other enclosing state... done] [performing final GC... done] [saving current Lisp image into C:\Users\bjm25\heythere.exe: writing 6016 bytes from the read-only space at 0000000020000000 writing 1856 bytes from the static space at 0000000020110000 writing 59768832 bytes from the dynamic space at 0000001000000000 done] @MyComp  ~  [13:03] ❯ .\heythere.exe Internal error #11 "Object is of the wrong type." at 0000001000E22267 SC: 0, Offset: 7 0x00000061: other immediate 0, no tls value marker: data=0 SC: 3, Offset: 12 $1= 0x016336f7: list pointer fatal error encountered in SBCL pid 26176(tid 00000000011216B0): internal error too early in init, can't recover

Welcome to LDB, a low-level debugger for the Lisp runtime environment. ldb>

Thanks for looking into this.

On Tue, Jul 21, 2020 at 5:34 PM Dmitry Ignatiev notifications@github.com wrote:

Hello. Thanks for the report. Please specify your SBCL version, bike library version(is it the latest master, i.e. from quicklisp?), and .Net Core runtime version

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Lovesan/bike/issues/5#issuecomment-662118536, or unsubscribe https://github.com/notifications/unsubscribe-auth/AE2BFH4WBY33PH3ANMEZ6IDR4YCVTANCNFSM4PCPJJZA .

lc9er commented 4 years ago

Sometimes, the executable fails to build, without warning. The last message is [bike] Shutdown complete and sbcl exits. It looks like this:

`❯ sbcl This is SBCL 2.0.0, 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.

WARNING: the Windows port is fragile, particularly for multithreaded code. Unfortunately, the development team currently lacks the time and resources this platform demands.

Lovesan commented 3 years ago

Found some issues related to core dumping. Still need some work, and polishing. Sorry for the delay.

Lovesan commented 2 years ago

Please test with the latest bike & sbcl. I can't reproduce the issue anymore.