Re: Static Compilation Issues
Just wanted to give an update: thanks to Paul's advice I got everything working properly! Thank you again! -Ava On 27/11/2020 14:13, Ava Fox wrote: Still running into some issues, but this feels promising and gives me something to explore. Thanks Paul! - Ava On 27/11/2020 13:54, PR wrote: On 11/27/20, Ava Fox wrote: Daniel, drakma does not list uiop/asdf/sb-bsd-sockets in it's asd system definition. I did try and add those systems into the example system definition, but I ended up with the same result: lisp compiles fine, gcc compiles fine, but then the static executable throws the same errors. FWIW: on iOS everything needs to be linked statically, and I ended up linking all the ECL "contrib" libs (*.a) manually, see this line: https://gitlab.com/eql/eql5-ios/-/blob/master/examples/REPL/repl.pro#L7 And don't forget to initialize every manually linked lib at program startup, like so: https://gitlab.com/eql/eql5-ios/-/blob/master/examples/REPL/build/main.cpp#L60 This approach should also work in your case (and is necessary because the "contrib" libs are not integrated automatically). Paul I'll submit a proper issue about it. Thanks, Ava On 26/11/2020 06:07, Daniel Kochmański wrote: Hey Ava, are all dependencies specified in drakma? i.e sb-bsd-sockets, uiop and asdf? If not, please try add them as dependencies of your project. If that doesn't work then please file an issue with a source code you've used and dump from the console of what is happening (including commands you issue). Best regards, Daniel -- Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland TurtleWare - Daniel Kochmański | www.turtleware.eu "Be the change that you wish to see in the world." - Mahatma Gandhi ‐‐‐ Original Message ‐‐‐ On Thursday, 26 November 2020 00:46, Ava Fox wrote: I've been learning how to create static executables with ECL and was looking at the provided example that uses an ASDF system that has defined dependencies (https://gitlab.com/embeddable-common-lisp/ecl/-/tree/develop/examples/asdf_with_dependence). When following the readme, and building it as-is with Quicklisp fetching alexandria (the only dependency specified) it works fine. However, when I change that dependency to include a project such as drakma it compiles fine but then throws SIMPLE-ERROR when I run the resulting static executable, saying that various uiop/asdf packages and sb-bsd-sockets cannot be found. Exact error: Condition of type: SIMPLE-ERROR Package ((SB-BSD-SOCKETS . #)) referenced in compiled file NIL but has not been created Exact packages being listed as not being found: :sb-bsd-sockets, :uiop/filesystem, :uiop/os, :uiop/pathname, :asdf/operate, :asdf/lisp-action Any help or ideas would be appreciated, I am just unsure of where to go from here. ECL version: 20.4.24 Operating System: Linux Kernel 5.8.18
Re: Static Compilation Issues
Still running into some issues, but this feels promising and gives me something to explore. Thanks Paul! - Ava On 27/11/2020 13:54, PR wrote: On 11/27/20, Ava Fox wrote: Daniel, drakma does not list uiop/asdf/sb-bsd-sockets in it's asd system definition. I did try and add those systems into the example system definition, but I ended up with the same result: lisp compiles fine, gcc compiles fine, but then the static executable throws the same errors. FWIW: on iOS everything needs to be linked statically, and I ended up linking all the ECL "contrib" libs (*.a) manually, see this line: https://gitlab.com/eql/eql5-ios/-/blob/master/examples/REPL/repl.pro#L7 And don't forget to initialize every manually linked lib at program startup, like so: https://gitlab.com/eql/eql5-ios/-/blob/master/examples/REPL/build/main.cpp#L60 This approach should also work in your case (and is necessary because the "contrib" libs are not integrated automatically). Paul I'll submit a proper issue about it. Thanks, Ava On 26/11/2020 06:07, Daniel Kochmański wrote: Hey Ava, are all dependencies specified in drakma? i.e sb-bsd-sockets, uiop and asdf? If not, please try add them as dependencies of your project. If that doesn't work then please file an issue with a source code you've used and dump from the console of what is happening (including commands you issue). Best regards, Daniel -- Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland TurtleWare - Daniel Kochmański | www.turtleware.eu "Be the change that you wish to see in the world." - Mahatma Gandhi ‐‐‐ Original Message ‐‐‐ On Thursday, 26 November 2020 00:46, Ava Fox wrote: I've been learning how to create static executables with ECL and was looking at the provided example that uses an ASDF system that has defined dependencies (https://gitlab.com/embeddable-common-lisp/ecl/-/tree/develop/examples/asdf_with_dependence). When following the readme, and building it as-is with Quicklisp fetching alexandria (the only dependency specified) it works fine. However, when I change that dependency to include a project such as drakma it compiles fine but then throws SIMPLE-ERROR when I run the resulting static executable, saying that various uiop/asdf packages and sb-bsd-sockets cannot be found. Exact error: Condition of type: SIMPLE-ERROR Package ((SB-BSD-SOCKETS . #)) referenced in compiled file NIL but has not been created Exact packages being listed as not being found: :sb-bsd-sockets, :uiop/filesystem, :uiop/os, :uiop/pathname, :asdf/operate, :asdf/lisp-action Any help or ideas would be appreciated, I am just unsure of where to go from here. ECL version: 20.4.24 Operating System: Linux Kernel 5.8.18
Re: Static Compilation Issues
On 11/27/20, Ava Fox wrote: > Daniel, > > drakma does not list uiop/asdf/sb-bsd-sockets in it's asd system > definition. > > I did try and add those systems into the example system definition, but > I ended up with the same result: lisp compiles fine, gcc compiles fine, > but then the static executable throws the same errors. FWIW: on iOS everything needs to be linked statically, and I ended up linking all the ECL "contrib" libs (*.a) manually, see this line: https://gitlab.com/eql/eql5-ios/-/blob/master/examples/REPL/repl.pro#L7 And don't forget to initialize every manually linked lib at program startup, like so: https://gitlab.com/eql/eql5-ios/-/blob/master/examples/REPL/build/main.cpp#L60 This approach should also work in your case (and is necessary because the "contrib" libs are not integrated automatically). Paul > I'll submit a proper issue about it. > > Thanks, > > Ava > > > On 26/11/2020 06:07, Daniel Kochmański wrote: >> Hey Ava, >> >> are all dependencies specified in drakma? i.e sb-bsd-sockets, uiop and >> asdf? >> If not, please try add them as dependencies of your project. If that >> doesn't >> work then please file an issue with a source code you've used and dump >> from >> the console of what is happening (including commands you issue). >> >> Best regards, >> Daniel >> >> >> -- >> Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland >> TurtleWare - Daniel Kochmański | www.turtleware.eu >> >> "Be the change that you wish to see in the world." - Mahatma Gandhi >> >> ‐‐‐ Original Message ‐‐‐ >> On Thursday, 26 November 2020 00:46, Ava Fox wrote: >> >>> I've been learning how to create static executables with ECL and was >>> looking at the provided example that uses an ASDF system that has >>> defined dependencies >>> (https://gitlab.com/embeddable-common-lisp/ecl/-/tree/develop/examples/asdf_with_dependence). >>> When following the readme, and building it as-is with Quicklisp fetching >>> alexandria (the only dependency specified) it works fine. >>> >>> However, when I change that dependency to include a project such as >>> drakma it compiles fine but then throws SIMPLE-ERROR when I run the >>> resulting static executable, saying that various uiop/asdf packages and >>> sb-bsd-sockets cannot be found. >>> >>> Exact error: >>> >>> Condition of type: SIMPLE-ERROR >>> Package ((SB-BSD-SOCKETS . #)) referenced in >>> compiled file >>>NIL >>> but has not been created >>> >>> Exact packages being listed as not being found: :sb-bsd-sockets, >>> :uiop/filesystem, :uiop/os, :uiop/pathname, :asdf/operate, >>> :asdf/lisp-action >>> >>> Any help or ideas would be appreciated, I am just unsure of where to go >>> from here. >>> >>> ECL version: 20.4.24 >>> >>> Operating System: Linux Kernel 5.8.18 >> > >
Re: Static Compilation Issues
Daniel, drakma does not list uiop/asdf/sb-bsd-sockets in it's asd system definition. I did try and add those systems into the example system definition, but I ended up with the same result: lisp compiles fine, gcc compiles fine, but then the static executable throws the same errors. I'll submit a proper issue about it. Thanks, Ava On 26/11/2020 06:07, Daniel Kochmański wrote: Hey Ava, are all dependencies specified in drakma? i.e sb-bsd-sockets, uiop and asdf? If not, please try add them as dependencies of your project. If that doesn't work then please file an issue with a source code you've used and dump from the console of what is happening (including commands you issue). Best regards, Daniel -- Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland TurtleWare - Daniel Kochmański | www.turtleware.eu "Be the change that you wish to see in the world." - Mahatma Gandhi ‐‐‐ Original Message ‐‐‐ On Thursday, 26 November 2020 00:46, Ava Fox wrote: I've been learning how to create static executables with ECL and was looking at the provided example that uses an ASDF system that has defined dependencies (https://gitlab.com/embeddable-common-lisp/ecl/-/tree/develop/examples/asdf_with_dependence). When following the readme, and building it as-is with Quicklisp fetching alexandria (the only dependency specified) it works fine. However, when I change that dependency to include a project such as drakma it compiles fine but then throws SIMPLE-ERROR when I run the resulting static executable, saying that various uiop/asdf packages and sb-bsd-sockets cannot be found. Exact error: Condition of type: SIMPLE-ERROR Package ((SB-BSD-SOCKETS . #)) referenced in compiled file NIL but has not been created Exact packages being listed as not being found: :sb-bsd-sockets, :uiop/filesystem, :uiop/os, :uiop/pathname, :asdf/operate, :asdf/lisp-action Any help or ideas would be appreciated, I am just unsure of where to go from here. ECL version: 20.4.24 Operating System: Linux Kernel 5.8.18
Re: Static Compilation Issues
Hey Ava, are all dependencies specified in drakma? i.e sb-bsd-sockets, uiop and asdf? If not, please try add them as dependencies of your project. If that doesn't work then please file an issue with a source code you've used and dump from the console of what is happening (including commands you issue). Best regards, Daniel -- Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland TurtleWare - Daniel Kochmański | www.turtleware.eu "Be the change that you wish to see in the world." - Mahatma Gandhi ‐‐‐ Original Message ‐‐‐ On Thursday, 26 November 2020 00:46, Ava Fox wrote: > I've been learning how to create static executables with ECL and was > looking at the provided example that uses an ASDF system that has > defined dependencies > (https://gitlab.com/embeddable-common-lisp/ecl/-/tree/develop/examples/asdf_with_dependence). > When following the readme, and building it as-is with Quicklisp fetching > alexandria (the only dependency specified) it works fine. > > However, when I change that dependency to include a project such as > drakma it compiles fine but then throws SIMPLE-ERROR when I run the > resulting static executable, saying that various uiop/asdf packages and > sb-bsd-sockets cannot be found. > > Exact error: > > Condition of type: SIMPLE-ERROR > Package ((SB-BSD-SOCKETS . #)) referenced in > compiled file > NIL > but has not been created > > Exact packages being listed as not being found: :sb-bsd-sockets, > :uiop/filesystem, :uiop/os, :uiop/pathname, :asdf/operate, :asdf/lisp-action > > Any help or ideas would be appreciated, I am just unsure of where to go > from here. > > ECL version: 20.4.24 > > Operating System: Linux Kernel 5.8.18