Author Topic: MegaStrike V1.3.0-prerelease: Now with GTK4  (Read 3153 times)

doulos05

  • Warrant Officer
  • *
  • Posts: 664
MegaStrike V1.3.0-prerelease: Now with GTK4
« on: 23 October 2023, 21:28:53 »
I've been working pretty hard on MegaStrike and I've got something that's almost ready to ship. But I'm struggling to work out building the binary. But you can install it manually!

Windows
I put this one first because it's the one I'm the least confident in and the most interested in. Here's what I've got so far:

Install MSYS2: https://www.msys2.org

Install Development Chain:
Code: [Select]
pacman -S git mingw-w64-x86_64-gtk4 mingw-w64-x86_64-roswell
MacOS
Install GTK4 and Roswell via Homebrew.

Linux
Install GTK4 and Roswell via your package manager of choice

Common Steps

Install SBCL:
Code: [Select]
ros install sbcl-bin
Download megastrike
Code: [Select]
git clone https://github.com/jonathanabennett/megastrike.git then cd into the directory.

Open Lisp:
Code: [Select]
ros run.

Setup Ultralisp (Follow the step on their page) and add Ultralisp so you can grab the libraries by running
Code: [Select]
(ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil) while inside Lisp.

Update the dists so you have the newest libraries
Code: [Select]
(ql:update-all-dists). Now close lisp with CTRL-D.

Finally, run the following
Code: [Select]
ros run --eval "(ql:quickload :megastrike)" --eval "(in-package :megastrike)" --eval "(megastrike)"
Notes
I've got an issue open with the library that appears to be blocking building the binaries, so hopefully it will all be working soon. But I can't guarantee that, so please give this a go and let me know where it breaks! ;)
« Last Edit: 24 October 2023, 00:59:21 by doulos05 »
I mean, it's not like once you having something in low Earth orbit you can stick a gassy astronaut on the outside after Chili Night and fart it anywhere in the solar system.

BATTLEMASTER

  • Captain
  • *
  • Posts: 2360
  • Hot and Unbothered
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #1 on: 24 October 2023, 20:13:51 »
Windows 10 here - I got stuck on the last step:

Code: [Select]
debugger invoked on a SB-KERNEL::RETRY-UNDEFINED-FUNCTION @21A20924 in thread
#<THREAD "main thread" RUNNING {10001F0113}>:
  MEGASTRIKE is still undefined

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

restarts (invokable by number or by possibly-abbreviated name):
  0: [CONTINUE      ] Retry calling MEGASTRIKE.
  1: [USE-VALUE     ] Call specified function.
  2: [RETURN-VALUE  ] Return specified values.
  3: [RETURN-NOTHING] Return zero values.
  4:                  Ignore runtime option --eval "(ros:run '((:eval\"(ros:quicklisp)\")(:eval \"(ql:quickload :megastrike)\")(:eval \"(in-package :megastrike)\")(:eval \"(megastrike)\")))".
  5: [ABORT         ] Skip rest of --eval and --load options.
  6:                  Skip to toplevel READ/EVAL/PRINT loop.
  7: [EXIT          ] Exit SBCL (calling #'EXIT, killing the process).

("undefined function")
BATTLEMASTER
Trombone Player, Lego Enthusiast, Engineer
Clan Smoke Jaguar, Delta Galaxy ("The Cloud Rangers"), 4th Jaguar Dragoons
"You better stand back, I'm not sure how loud this thing can get!"
If you like Lego, you'll like my Lego battlemech projects!

doulos05

  • Warrant Officer
  • *
  • Posts: 664
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #2 on: 26 October 2023, 20:06:01 »
Windows 10 here - I got stuck on the last step:

Code: [Select]
debugger invoked on a SB-KERNEL::RETRY-UNDEFINED-FUNCTION @21A20924 in thread
#<THREAD "main thread" RUNNING {10001F0113}>:
  MEGASTRIKE is still undefined

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

restarts (invokable by number or by possibly-abbreviated name):
  0: [CONTINUE      ] Retry calling MEGASTRIKE.
  1: [USE-VALUE     ] Call specified function.
  2: [RETURN-VALUE  ] Return specified values.
  3: [RETURN-NOTHING] Return zero values.
  4:                  Ignore runtime option --eval "(ros:run '((:eval\"(ros:quicklisp)\")(:eval \"(ql:quickload :megastrike)\")(:eval \"(in-package :megastrike)\")(:eval \"(megastrike)\")))".
  5: [ABORT         ] Skip rest of --eval and --load options.
  6:                  Skip to toplevel READ/EVAL/PRINT loop.
  7: [EXIT          ] Exit SBCL (calling #'EXIT, killing the process).

("undefined function")

Ok, let's try this copy/paste the following into a .bat file and try to run that file:

Code: [Select]

ros run --eval "(ql:quickload :megastrike)" \
--eval "(in-package :megastrike)"\
--eval "(megastrike)"

Let me know how that goes. I have found a friend who I am going to try this out with who has a windows machine, hopefully I'll have a working script by the end of the weekend.
I mean, it's not like once you having something in low Earth orbit you can stick a gassy astronaut on the outside after Chili Night and fart it anywhere in the solar system.

BATTLEMASTER

  • Captain
  • *
  • Posts: 2360
  • Hot and Unbothered
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #3 on: 27 October 2023, 20:10:51 »
I ran the command as a batch file and it downloaded a bunch of stuff.  Then I get stuck here:

Code: [Select]
; compilation unit aborted
;   caught 2 fatal ERROR conditions

C:\Games\roswell>--eval "(in-package :megastrike)"\
'--eval' is not recognized as an internal or external command,
operable program or batch file.

C:\Games\roswell>--eval "(megastrike)"
'--eval' is not recognized as an internal or external command,
operable program or batch file.
BATTLEMASTER
Trombone Player, Lego Enthusiast, Engineer
Clan Smoke Jaguar, Delta Galaxy ("The Cloud Rangers"), 4th Jaguar Dragoons
"You better stand back, I'm not sure how loud this thing can get!"
If you like Lego, you'll like my Lego battlemech projects!

doulos05

  • Warrant Officer
  • *
  • Posts: 664
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #4 on: 28 October 2023, 20:40:34 »
I ran the command as a batch file and it downloaded a bunch of stuff.  Then I get stuck here:

Code: [Select]
; compilation unit aborted
;   caught 2 fatal ERROR conditions

C:\Games\roswell>--eval "(in-package :megastrike)"\
'--eval' is not recognized as an internal or external command,
operable program or batch file.

C:\Games\roswell>--eval "(megastrike)"
'--eval' is not recognized as an internal or external command,
operable program or batch file.

Ok, I'll be up at my friends this evening, I'll see if I can't get a script to work on his computer.
I mean, it's not like once you having something in low Earth orbit you can stick a gassy astronaut on the outside after Chili Night and fart it anywhere in the solar system.

doulos05

  • Warrant Officer
  • *
  • Posts: 664
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #5 on: 28 October 2023, 22:20:47 »
I ran the command as a batch file and it downloaded a bunch of stuff.  Then I get stuck here:

Code: [Select]
; compilation unit aborted
;   caught 2 fatal ERROR conditions

C:\Games\roswell>--eval "(in-package :megastrike)"\
'--eval' is not recognized as an internal or external command,
operable program or batch file.

C:\Games\roswell>--eval "(megastrike)"
'--eval' is not recognized as an internal or external command,
operable program or batch file.

Aha! I found the problem (at least with the batch script). Windows uses ^ as it's line continuation (because screw everybody, I guess). Try the following instead

Code: [Select]
ros run --eval "(ql:quickload :megastrike)" ^
--eval "(in-package :megastrike)" ^
--eval "(megastrike)"
I mean, it's not like once you having something in low Earth orbit you can stick a gassy astronaut on the outside after Chili Night and fart it anywhere in the solar system.

doulos05

  • Warrant Officer
  • *
  • Posts: 664
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #6 on: 29 October 2023, 04:04:04 »
Final comment, this may actually fix it. Can you download the repo again:

Code: [Select]
git pull origin main

And then just run the install.sh script there? I *think* based on my very rough understanding of how MSYS2 works, that this script should do the same thing it does on Mac and Linux: create a file called megastrike in the root folder of that repository which you can then just run to start the game.

If that works, let me know and I'll update the README and ship V1.3.0
I mean, it's not like once you having something in low Earth orbit you can stick a gassy astronaut on the outside after Chili Night and fart it anywhere in the solar system.

BATTLEMASTER

  • Captain
  • *
  • Posts: 2360
  • Hot and Unbothered
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #7 on: 29 October 2023, 20:30:08 »
I feel like I'm getting closer.  I was having trouble running the script at first, but that was because I didn't have Roswell set in my PATH.  It also helped to see what the install.sh script was doing by running a Git Bash terminal instead of Windows cmd. 

So I got farther and then this happened:

Code: [Select]
Downloading http://dist.ultralisp.org/archive/31/fukamachi-qlot-20231028094638.tgz
##########################################################################
+ '[' -f /c/Games/roswell/megastrike/megastrike.asd ']'
+ qlot install
./install.sh: line 22: qlot: command not found

Is this another PATH variable issue?  From what I gather qlot isn't a specific program, so I'm not sure.

EDIT:  I just realized that with Roswell in my PATH, Git Bash will run the script up to the "command not found" error above, but MSYS2 will throw the error earlier at "ros"  :huh:

EDIT 2:  I learned where qlot is actually located and added that to my PATH as well.  Got even farther this time but got an error code 7:

Code: [Select]
+ qlot install
Installing Quicklisp to C:/Games/roswell/megastrike/.qlot/...
Reading 'C:/Games/roswell/megastrike/qlfile'...
Already have dist "quicklisp" version "2023-10-21".
Installing dist "cl-gobject-introspection-wrapper".
qlot: Error: Subprocess #<UIOP/LAUNCH-PROGRAM::PROCESS-INFO {1003499723}>
 with command "C:\\Games\\roswell\\ros.exe roswell-internal-use download http://dist.ultralisp.org/archive/1985/cl-plus-ssl-cl-plus-ssl-20230802064926.tgz C:/Users/someone/.roswell/lisp/quicklisp/dists/ultralisp/archives/cl-plus-ssl-cl-plus-ssl-20230802064926.tgz 2"
 exited with error code 7


EDIT 3:  I was feeling adventurous and tried running install.sh again despite having that error code appearing earlier.  I didn't get the error the second time, for some reason, and got even farther!  Now I'm here:

Code: [Select]
Installing dist "uuid".
=> Newly installed "uuid" version "ql-2023-10-21".
Installing dist "cl-str".
=> Newly installed "cl-str" version "ql-2023-10-21".
Loading 'C:/Games/roswell/megastrike/megastrike.asd'...
Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                                             {10044A0073}>:
  Component "megastrike/test" not found

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {10044A0073}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK Component "megastrike/test" not found #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK SB-EXT:*INVOKE-DEBUGGER-HOOK* Component "megastrike/test" not found)
2: (INVOKE-DEBUGGER Component "megastrike/test" not found)
3: (ERROR ASDF/FIND-COMPONENT:MISSING-COMPONENT :REQUIRES "megastrike/test")
4: ((LAMBDA NIL :IN ASDF/SYSTEM:FIND-SYSTEM))
5: (ASDF/SESSION:CONSULT-ASDF-CACHE (ASDF/SYSTEM:FIND-SYSTEM "megastrike/test") #<FUNCTION (LAMBDA NIL :IN ASDF/SYSTEM:FIND-SYSTEM) {10023563BB}>)
6: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/SYSTEM:FIND-SYSTEM) {10023563BB}> :OVERRIDE NIL :KEY (ASDF/SYSTEM:FIND-SYSTEM "megastrike/test") :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)
7: (QLOT/UTILS/PROJECT:PROJECT-DEPENDENCIES #P"C:/Games/roswell/megastrike/" :TEST NIL)
8: (QLOT/INSTALL::INSTALL-DEPENDENCIES #P"C:/Games/roswell/megastrike/" #P"C:/Games/roswell/megastrike/.qlot/")
9: (QLOT/INSTALL:INSTALL-QLFILE #P"C:/Games/roswell/megastrike/qlfile" :QUICKLISP-HOME NIL :INSTALL-DEPS T :CACHE-DIRECTORY NIL)
10: (QLOT-COMMAND "install")
11: (SB-INT:SIMPLE-EVAL-IN-LEXENV (APPLY (QUOTE MAIN) ROSWELL:*ARGV*) #<NULL-LEXENV>)
12: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:*ARGV*)) #<NULL-LEXENV>)
13: (SB-EXT:EVAL-TLF (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:*ARGV*)) NIL NIL)
14: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:*ARGV*)) NIL)
15: (SB-INT:LOAD-AS-SOURCE #<CONCATENATED-STREAM :STREAMS NIL {1001F564D3}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
16: ((LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) #<CONCATENATED-STREAM :STREAMS NIL {1001F564D3}> NIL)
17: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) {5FF20B}> #<CONCATENATED-STREAM :STREAMS NIL {1001F564D3}> NIL #<CONCATENATED-STREAM :STREAMS NIL {1001F564D3}>)
18: (LOAD #<CONCATENATED-STREAM :STREAMS NIL {1001F564D3}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST :ERROR :EXTERNAL-FORMAT :DEFAULT)
19: ((FLET ROSWELL::BODY :IN ROSWELL:SCRIPT) #<SB-SYS:FD-STREAM for "file C:\\Users\\someone\\.roswell\\lisp\\quicklisp\\bin\\qlot" {1001F55283}>)
20: (ROSWELL:SCRIPT "C:/Users/someone/.roswell/lisp/quicklisp/bin/qlot" "install")
21: (ROSWELL:RUN ((:EVAL "(ros:quicklisp)") (:SCRIPT "C:/Users/someone/.roswell/lisp/quicklisp/bin/qlot" "install") (:QUIT NIL)))
22: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "C:/Users/someone/.roswell/lisp/quicklisp/bin/qlot" "install") (:QUIT NIL)))) #<NULL-LEXENV>)
23: (EVAL (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "C:/Users/someone/.roswell/lisp/quicklisp/bin/qlot" "install") (:QUIT NIL)))))
24: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "(progn #-ros.init(cl:load \"C:\\\\\\\\Games\\\\\\\\roswell\\\\\\\\lisp\\\\\\\\init.lisp\"))") (:EVAL . "(ros:run '((:eval\"(ros:quicklisp)\")(:script \"C:/Users/someone/.roswell/lisp/quicklisp/bin/qlot\"\"install\")(:quit ())))")))
25: (SB-IMPL::TOPLEVEL-INIT)
26: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
27: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
28: (SB-IMPL::%START-LISP)
29: ("foreign function: #x14003E415")
30: ("foreign function: #x1400093B0")

unhandled condition in --disable-debugger mode, quitting

I wonder if we'll get there!  LOL
« Last Edit: 29 October 2023, 22:10:47 by BATTLEMASTER »
BATTLEMASTER
Trombone Player, Lego Enthusiast, Engineer
Clan Smoke Jaguar, Delta Galaxy ("The Cloud Rangers"), 4th Jaguar Dragoons
"You better stand back, I'm not sure how loud this thing can get!"
If you like Lego, you'll like my Lego battlemech projects!

doulos05

  • Warrant Officer
  • *
  • Posts: 664
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #8 on: 30 October 2023, 06:36:53 »
EDIT 3:  I was feeling adventurous and tried running install.sh again despite having that error code appearing earlier.  I didn't get the error the second time, for some reason, and got even farther!  Now I'm here:

Code: [Select]
Installing dist "uuid".
=> Newly installed "uuid" version "ql-2023-10-21".
Installing dist "cl-str".
=> Newly installed "cl-str" version "ql-2023-10-21".
Loading 'C:/Games/roswell/megastrike/megastrike.asd'...
Unhandled ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                                             {10044A0073}>:
  Component "megastrike/test" not found

Backtrace for: #<SB-THREAD:THREAD "main thread" RUNNING {10044A0073}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK Component "megastrike/test" not found #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK SB-EXT:*INVOKE-DEBUGGER-HOOK* Component "megastrike/test" not found)
2: (INVOKE-DEBUGGER Component "megastrike/test" not found)
3: (ERROR ASDF/FIND-COMPONENT:MISSING-COMPONENT :REQUIRES "megastrike/test")
4: ((LAMBDA NIL :IN ASDF/SYSTEM:FIND-SYSTEM))
5: (ASDF/SESSION:CONSULT-ASDF-CACHE (ASDF/SYSTEM:FIND-SYSTEM "megastrike/test") #<FUNCTION (LAMBDA NIL :IN ASDF/SYSTEM:FIND-SYSTEM) {10023563BB}>)
6: (ASDF/SESSION:CALL-WITH-ASDF-SESSION #<FUNCTION (LAMBDA NIL :IN ASDF/SYSTEM:FIND-SYSTEM) {10023563BB}> :OVERRIDE NIL :KEY (ASDF/SYSTEM:FIND-SYSTEM "megastrike/test") :OVERRIDE-CACHE NIL :OVERRIDE-FORCING NIL)
7: (QLOT/UTILS/PROJECT:PROJECT-DEPENDENCIES #P"C:/Games/roswell/megastrike/" :TEST NIL)
8: (QLOT/INSTALL::INSTALL-DEPENDENCIES #P"C:/Games/roswell/megastrike/" #P"C:/Games/roswell/megastrike/.qlot/")
9: (QLOT/INSTALL:INSTALL-QLFILE #P"C:/Games/roswell/megastrike/qlfile" :QUICKLISP-HOME NIL :INSTALL-DEPS T :CACHE-DIRECTORY NIL)
10: (QLOT-COMMAND "install")
11: (SB-INT:SIMPLE-EVAL-IN-LEXENV (APPLY (QUOTE MAIN) ROSWELL:*ARGV*) #<NULL-LEXENV>)
12: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:*ARGV*)) #<NULL-LEXENV>)
13: (SB-EXT:EVAL-TLF (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:*ARGV*)) NIL NIL)
14: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:*ARGV*)) NIL)
15: (SB-INT:LOAD-AS-SOURCE #<CONCATENATED-STREAM :STREAMS NIL {1001F564D3}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
16: ((LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) #<CONCATENATED-STREAM :STREAMS NIL {1001F564D3}> NIL)
17: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) {5FF20B}> #<CONCATENATED-STREAM :STREAMS NIL {1001F564D3}> NIL #<CONCATENATED-STREAM :STREAMS NIL {1001F564D3}>)
18: (LOAD #<CONCATENATED-STREAM :STREAMS NIL {1001F564D3}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST :ERROR :EXTERNAL-FORMAT :DEFAULT)
19: ((FLET ROSWELL::BODY :IN ROSWELL:SCRIPT) #<SB-SYS:FD-STREAM for "file C:\\Users\\someone\\.roswell\\lisp\\quicklisp\\bin\\qlot" {1001F55283}>)
20: (ROSWELL:SCRIPT "C:/Users/someone/.roswell/lisp/quicklisp/bin/qlot" "install")
21: (ROSWELL:RUN ((:EVAL "(ros:quicklisp)") (:SCRIPT "C:/Users/someone/.roswell/lisp/quicklisp/bin/qlot" "install") (:QUIT NIL)))
22: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "C:/Users/someone/.roswell/lisp/quicklisp/bin/qlot" "install") (:QUIT NIL)))) #<NULL-LEXENV>)
23: (EVAL (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "C:/Users/someone/.roswell/lisp/quicklisp/bin/qlot" "install") (:QUIT NIL)))))
24: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "(progn #-ros.init(cl:load \"C:\\\\\\\\Games\\\\\\\\roswell\\\\\\\\lisp\\\\\\\\init.lisp\"))") (:EVAL . "(ros:run '((:eval\"(ros:quicklisp)\")(:script \"C:/Users/someone/.roswell/lisp/quicklisp/bin/qlot\"\"install\")(:quit ())))")))
25: (SB-IMPL::TOPLEVEL-INIT)
26: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
27: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
28: (SB-IMPL::%START-LISP)
29: ("foreign function: #x14003E415")
30: ("foreign function: #x1400093B0")

unhandled condition in --disable-debugger mode, quitting

I wonder if we'll get there!  LOL
We're gonna get there! Ok, let me do some searching on that error message and see what I can find! That's kind of a weird one because 1) we weren't loading the megastrike/test package and 2) the megastrike/test package is literally in that file where the "error" occurred. Just to be clear, the steps you have followed up to this point are:
1) Add ros to your path
2) Add the folder that has qlot to your path
3) Run the install.sh script several times.

Just trying to figure out how to document it. Didn't make the connection with my friend tonight, but I'll make it tomorrow after I've seen what's up with that error message.
I mean, it's not like once you having something in low Earth orbit you can stick a gassy astronaut on the outside after Chili Night and fart it anywhere in the solar system.

BATTLEMASTER

  • Captain
  • *
  • Posts: 2360
  • Hot and Unbothered
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #9 on: 30 October 2023, 11:48:53 »
Yep, I had to add both Roswell and qlot to the PATH.  And for some reason install.sh would work only running Git Bash in the Megastrike directory (I've had Git Bash installed for awhile to allow me to tinker with MekHQ).  Running install.sh with the MSYS2 console wouldn't work at all for some reason, like it wasn't understanding something about the PATH - I don't get it.
BATTLEMASTER
Trombone Player, Lego Enthusiast, Engineer
Clan Smoke Jaguar, Delta Galaxy ("The Cloud Rangers"), 4th Jaguar Dragoons
"You better stand back, I'm not sure how loud this thing can get!"
If you like Lego, you'll like my Lego battlemech projects!

doulos05

  • Warrant Officer
  • *
  • Posts: 664
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #10 on: 07 November 2023, 04:56:15 »
Yep, I had to add both Roswell and qlot to the PATH.  And for some reason install.sh would work only running Git Bash in the Megastrike directory (I've had Git Bash installed for awhile to allow me to tinker with MekHQ).  Running install.sh with the MSYS2 console wouldn't work at all for some reason, like it wasn't understanding something about the PATH - I don't get it.
I'm pretty sure it needs to be run from within the MSYS2 console, but I don't know how to go about getting your computer to recognize it. But... We've got everything installed, so in git bash, let's try this:

1) ros run
2) (ql:quickload :megastrike)
3) (asdf:make :megastrike)
4) (quit)

That should produce the executable, which we can then see if we can figure out how to run
I mean, it's not like once you having something in low Earth orbit you can stick a gassy astronaut on the outside after Chili Night and fart it anywhere in the solar system.

BATTLEMASTER

  • Captain
  • *
  • Posts: 2360
  • Hot and Unbothered
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #11 on: 07 November 2023, 23:02:39 »
After trying the quickload command I get this now:

Code: [Select]
$ ros run
* (ql:quickload :megastrike)
To load "megastrike":
  Load 1 ASDF system:
    megastrike
; Loading "megastrike"
..................................................
..............................................
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY                        ] Try loading the foreign library again.
  1: [USE-VALUE                    ] Use another library instead.
  2: [TRY-RECOMPILING              ] Recompile sqlite-ffi and try loading it again
  3: [RETRY                        ] Retry
                                     loading FASL for #<CL-SOURCE-FILE "sqlite" "sqlite-ffi">.
  4: [ACCEPT                       ] Continue, treating
                                     loading FASL for #<CL-SOURCE-FILE "sqlite" "sqlite-ffi">
                                     as having been successful.
  5:                                 Recompile db and try loading it again
  6:                                 Retry
                                     loading FASL for #<CL-SOURCE-FILE "megastrike" "src" "db">.
  7:                                 Continue, treating
                                     loading FASL for #<CL-SOURCE-FILE "megastrike" "src" "db">
                                     as having been successful.
  8:                                 Retry ASDF operation.
  9: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
                                     configuration.
 10:                                 Retry ASDF operation.
 11:                                 Retry ASDF operation after resetting the
                                     configuration.
 12: [ABORT                        ] Give up on "megastrike"
 13: [REGISTER-LOCAL-PROJECTS      ] Register local projects and try again.
 14:                                 Exit debugger, returning to top level.

(CFFI::FL-ERROR "Unable to load any of the alternatives:~%   ~S" ((:DEFAULT "libsqlite3") (:DEFAULT
"sqlite3")))
   source: (ERROR 'LOAD-FOREIGN-LIBRARY-ERROR :FORMAT-CONTROL CONTROL
                  :FORMAT-ARGUMENTS ARGUMENTS)
0]

Is it having trouble finding SQLite3?

By the way, I learned I can get MSYS2 to recognize PATH by running it with the option -use-full-path
BATTLEMASTER
Trombone Player, Lego Enthusiast, Engineer
Clan Smoke Jaguar, Delta Galaxy ("The Cloud Rangers"), 4th Jaguar Dragoons
"You better stand back, I'm not sure how loud this thing can get!"
If you like Lego, you'll like my Lego battlemech projects!

doulos05

  • Warrant Officer
  • *
  • Posts: 664
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #12 on: 08 November 2023, 00:28:09 »
After trying the quickload command I get this now:

Code: [Select]
$ ros run
* (ql:quickload :megastrike)
To load "megastrike":
  Load 1 ASDF system:
    megastrike
; Loading "megastrike"
..................................................
..............................................
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY                        ] Try loading the foreign library again.
  1: [USE-VALUE                    ] Use another library instead.
  2: [TRY-RECOMPILING              ] Recompile sqlite-ffi and try loading it again
  3: [RETRY                        ] Retry
                                     loading FASL for #<CL-SOURCE-FILE "sqlite" "sqlite-ffi">.
  4: [ACCEPT                       ] Continue, treating
                                     loading FASL for #<CL-SOURCE-FILE "sqlite" "sqlite-ffi">
                                     as having been successful.
  5:                                 Recompile db and try loading it again
  6:                                 Retry
                                     loading FASL for #<CL-SOURCE-FILE "megastrike" "src" "db">.
  7:                                 Continue, treating
                                     loading FASL for #<CL-SOURCE-FILE "megastrike" "src" "db">
                                     as having been successful.
  8:                                 Retry ASDF operation.
  9: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the
                                     configuration.
 10:                                 Retry ASDF operation.
 11:                                 Retry ASDF operation after resetting the
                                     configuration.
 12: [ABORT                        ] Give up on "megastrike"
 13: [REGISTER-LOCAL-PROJECTS      ] Register local projects and try again.
 14:                                 Exit debugger, returning to top level.

(CFFI::FL-ERROR "Unable to load any of the alternatives:~%   ~S" ((:DEFAULT "libsqlite3") (:DEFAULT
"sqlite3")))
   source: (ERROR 'LOAD-FOREIGN-LIBRARY-ERROR :FORMAT-CONTROL CONTROL
                  :FORMAT-ARGUMENTS ARGUMENTS)
0]

Is it having trouble finding SQLite3?

By the way, I learned I can get MSYS2 to recognize PATH by running it with the option -use-full-path

Yeah, but I think you have an older version of the code. Can you try downloading the latest release (or just pulling the main branch) to see if you still get the same error?
I mean, it's not like once you having something in low Earth orbit you can stick a gassy astronaut on the outside after Chili Night and fart it anywhere in the solar system.

BATTLEMASTER

  • Captain
  • *
  • Posts: 2360
  • Hot and Unbothered
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #13 on: 08 November 2023, 20:29:35 »
My local code is synced with the repo and I'm still getting the same sqlite error.

I'm wondering if any other Windows users have had problems.  For all I know it might be some silly mistake I made installing components, but I followed the instructions.
BATTLEMASTER
Trombone Player, Lego Enthusiast, Engineer
Clan Smoke Jaguar, Delta Galaxy ("The Cloud Rangers"), 4th Jaguar Dragoons
"You better stand back, I'm not sure how loud this thing can get!"
If you like Lego, you'll like my Lego battlemech projects!

doulos05

  • Warrant Officer
  • *
  • Posts: 664
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #14 on: 09 November 2023, 05:58:29 »
My local code is synced with the repo and I'm still getting the same sqlite error.

I'm wondering if any other Windows users have had problems.  For all I know it might be some silly mistake I made installing components, but I followed the instructions.

Yeah, I think something must be crossed. Is there a file called "db.lisp" in the src directory? I think try deleting the directory and cloning it again.
I mean, it's not like once you having something in low Earth orbit you can stick a gassy astronaut on the outside after Chili Night and fart it anywhere in the solar system.

Lanceman

  • Catalyst Demo Team
  • Warrant Officer
  • *
  • Posts: 709
  • Blake Be Praised
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #15 on: 09 November 2023, 08:37:38 »
My local code is synced with the repo and I'm still getting the same sqlite error.

I'm wondering if any other Windows users have had problems.  For all I know it might be some silly mistake I made installing components, but I followed the instructions.

I haven't been able to give it another go, but I was running into similar issues when this thread was first posted.
"Pure truth cannot be assimilated by the crowd; it must be communicated by contagion" -  Henri-Frédéric Amiel

BATTLEMASTER

  • Captain
  • *
  • Posts: 2360
  • Hot and Unbothered
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #16 on: 09 November 2023, 10:15:01 »
I tried installing MegaStrike on WSL and still ran into problems with dependencies.  I had to research each dependency to get it working, and I still had trouble.  Roswell and Quicklisp were just problematic for me to install on WSL/Ubuntu.  I learned that there's an outstanding bug with Roswell where it will silently fail to install on Ubuntu and not tell you.  I was hoping I'd get farther but didn't.

I'm not an experienced programmer by any stretch of the imagination, even though I can build and run computers just fine.  But this whole process has been quite frustrating, even if I don't mind helping with testing MegaStrike on Windows.  That's how these projects work, after all.  It's probably frustrating for @doulos05 too!

I remember years ago when I downloaded bmazur's MegaMek (where it barely had all the Level 1 rules) that the only thing I really had to make sure was installed was a JRE, and that was it.  For a long time now, all kinds of software come bundled with the dependencies they need to run properly and the installation is all automated so everything works correctly from the start.  I believe this project really needs to come in a package that just does all this stuff for you instead of relying on the user doing it and introducing user error into the installation.

I'm going to take a break from this for now.  In the meantime, I need to figure out how to uninstall all this Roswell and other dependency stuff so I can start from scratch, but I don't even see clear instructions for that process for any of those dependencies  :rolleyes:
BATTLEMASTER
Trombone Player, Lego Enthusiast, Engineer
Clan Smoke Jaguar, Delta Galaxy ("The Cloud Rangers"), 4th Jaguar Dragoons
"You better stand back, I'm not sure how loud this thing can get!"
If you like Lego, you'll like my Lego battlemech projects!

doulos05

  • Warrant Officer
  • *
  • Posts: 664
Re: MegaStrike V1.3.0-prerelease: Now with GTK4
« Reply #17 on: 12 November 2023, 08:21:36 »
I remember years ago when I downloaded bmazur's MegaMek (where it barely had all the Level 1 rules) that the only thing I really had to make sure was installed was a JRE, and that was it.  For a long time now, all kinds of software come bundled with the dependencies they need to run properly and the installation is all automated so everything works correctly from the start.  I believe this project really needs to come in a package that just does all this stuff for you instead of relying on the user doing it and introducing user error into the installation.

I'm going to take a break from this for now.  In the meantime, I need to figure out how to uninstall all this Roswell and other dependency stuff so I can start from scratch, but I don't even see clear instructions for that process for any of those dependencies  :rolleyes:

Yeah, it has definitely been frustrating for me! Especially lacking a good way to test. I may have found a way forward that will ultimately build a standalone .jar file. Which, fingers crossed! I found a 7 Day Roguelike built with this and have successfully built the program on my Mac and in a Windows VM which I just got set up tonight. I'm about to test it on my Linux machine, but honestly if it works on these two then it will be trivial on Linux.

It runs on clojure, which means the build dependencies are just Powershell, a JVM, DotNet, and a bat script to download the clojure build tool. Each step of the build in my VM ran perfectly the first time, which sounds unlikely when I type it out loud, but it's true.

So in light of this, I'm going to archive the current version of this code and go away and learn Clojure for a few months. Apparently is very similar to Common Lisp, so hopefully it won't be as painful as it sounds! Thanks so much for your patience with this!
I mean, it's not like once you having something in low Earth orbit you can stick a gassy astronaut on the outside after Chili Night and fart it anywhere in the solar system.

 

Register