Really great stuff! Quicklisp package and Roswell build script?

58 views
Skip to first unread message

kenster

unread,
Nov 22, 2017, 12:43:54 AM11/22/17
to eql-user
Hey there! I am very interested in using EQL5 for a major for-profit side-project of mine. That being said, I wanted to be able to have an isolated EQL5 environment on the fly. So I started working on my roswell script, and I started writing the script for installing EQL5, but I realized it'd be better if there was a quicklisp package. If I find some time, I could try to contribute that roswell build script, but I'd prefer to do that after I get EQL5 working myself! haha

I'm very interested in the possibility of QML <-> JavaScript <-> C++ <-> Common Lisp interopability... I'm really excited about this!
If it's easy to spin up a quicklisp package... I'd appreciate that. Are there any plans of doing so anytime soon? I know Quicklisp is in "beta" but all the new kids are using it these days (including myself).


————————
Happy hacking,
Kenneth Malac

https://github.com/kennymalac
https://www.youtube.com/user/KingHerring

PR

unread,
Nov 22, 2017, 7:08:38 AM11/22/17
to eql-...@googlegroups.com
2017-11-22 6:43 GMT+01:00, kenster <kenne...@gmail.com>:
> Hey there! I am very interested in using EQL5 for a major for-profit
> side-project of mine. That being said, I wanted to be able to have an
> isolated EQL5 environment on the fly. So I started working on my roswell
> script, and I started writing the script for installing EQL5, but I
> realized it'd be better if there was a quicklisp package. If I find some
> time, I could try to contribute that roswell build script, but I'd prefer
> to do that after I get EQL5 working myself! haha

Hi Kenneth,

thanks for your interest!

Quicklisp projects are generally for Common Lisp projects not tied to
a single implementation.
EQL5 is tied to ECL, and the build process is more of a Qt5/C++ build
process, with only one invocation of Lisp, and this from the command
line.

If I wanted to provide a Quicklisp project like the one for
CommonQt/Qt4, I would need to provide the following precompiled
binaries, for all 3 major platforms:
- ECL lib
- Qt5 libs
- EQL5 libs

This would be a huge burden for me (and I don't currently own a Mac,
so I would only be able to address Linux and Windows).

You see, EQL5 is quite unique in its build process. Let me just recap
it briefly:

One needs to:

- build ECL from sources (default config)
- install Qt5 dev packages (or even better: full Qt5 from qt.io.archives)
- build EQL5 libs with same compiler used to compile ECL

Building the EQL5 libs is already much simpler than it was a few
months ago; so, on Linux/Mac this should suffice:

In `src/` do:

$ ecl -shell make
$ qmake eql5.pro
$ make
$ sudo make install

Then you should have the eql5 executable.

Sorry if this is not much of help for you, but this tool is not the
typical Common Lisp project that you might find in Quicklisp.

Paul


>
> I'm very interested in the possibility of QML <-> JavaScript <-> C++ <->
> Common Lisp interopability... I'm really excited about this!
> If it's easy to spin up a quicklisp package... I'd appreciate that. Are
> there any plans of doing so anytime soon? I know Quicklisp is in "beta" but
>
> all the new kids are using it these days (including myself).
>
>
> ————————
> Happy hacking,
> Kenneth Malac
>
> https://github.com/kennymalac
> https://www.youtube.com/user/KingHerring
>
> --
> You received this message because you are subscribed to the Google Groups
> "eql-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to eql-user+u...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

Kingherring

unread,
Nov 22, 2017, 11:45:18 AM11/22/17
to eql-user
Hey,

Your comments make sense. I now realize that a quicklisp package would not be practical for this project. However, I still feel an automated script for setting up an isolated environment (hopefully cross-platform as can be) would be very useful. I've attached my roswell script below that's in progress. Right now I get a compile error having to do with loading ecl.c:

`g++ -c -m64 -pipe -O2 -Wall -W -Wno-clobbered -Wno-unknown-warning-option
 -D_REENTRANT -fPIC -DEQL_LIBRARY -DQT_NO_DEBUG -DQT_NO_KEYWORDS
-DQT_PRINTSUPPORT_LIB -DQT_UITOOLS_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB
-DQT_CORE_LIB -I. -isystem /usr/local/include -isystem
/usr/include/x86_64-linux-gnu/qt5 -isystem
/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -isystem
/usr/include/x86_64-linux-gnu/qt5/QtUiTools -isystem
/usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem
/usr/include/x86_64-linux-gnu/qt5/QtGui -isystem
/usr/include/x86_64-linux-gnu/qt5/QtCore -Itmp
-I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o tmp/_lobjects.o
gen/_lobjects.cpp
In file included from gen/_lobjects.cpp:3:0:
gen/_lobjects.h:6:21: fatal error: ecl/ecl.h: No such file or directory
 #include <ecl/ecl.h>
                     ^
compilation terminated.
Makefile.eql_lib:434: recipe for target 'tmp/_lobjects.o' failed
make[1]: *** [tmp/_lobjects.o] Error 1

I know this error has to do with the ECL libraries not being loaded properly! I didn't compile ECL from scratch in the traditional sense, I used
roswell install ecl

And symlinked the ecl ELF to ~/roswell/.bin/. I'm assuming I have to somehow get the include/ in there too, so I was wondering if you know enough uiop to help me with things, I'm kind of new to the CL ecosystem!

Kingherring

unread,
Nov 22, 2017, 11:50:36 AM11/22/17
to eql-user

PR

unread,
Nov 22, 2017, 2:03:05 PM11/22/17
to eql-...@googlegroups.com
2017-11-22 17:50 GMT+01:00, Kingherring <kenne...@gmail.com>:
> Here's the gist:
> https://gist.github.com/kennymalac/18b8b48793c5d7f62c5ba201ca77174a

I never tried Roswell, but it seems a great idea! So, I will certainly
learn it and contribute / test on Linux and Windows.
Just give me a bit of time to dive into it...

Paul




>
> ————————

Kenneth M

unread,
Nov 29, 2017, 8:49:48 PM11/29/17
to eql-...@googlegroups.com
Any news on this? I am going to hopefully begin fooling around with EQL this week, I will let you know how it goes. It seems like I may be using it in two projects, not just one! I am not sure yet - one is already a hodgepodge of languages so having yet another (CL) may be a bit too much. However it depends. Anyway, yeah let me know about the Roswell script. :)


> For more options, visit https://groups.google.com/d/optout.
>

--
You received this message because you are subscribed to a topic in the Google Groups "eql-user" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/eql-user/KuU9bflKrNo/unsubscribe.
To unsubscribe from this group and all its topics, send an email to eql-user+unsubscribe@googlegroups.com.

PR

unread,
Nov 30, 2017, 5:01:23 AM11/30/17
to eql-...@googlegroups.com
2017-11-30 2:49 GMT+01:00, Kenneth M <kenne...@gmail.com>:
> Any news on this? I am going to hopefully begin fooling around with EQL
> this week, I will let you know how it goes. It seems like I may be using it
> in two projects, not just one! I am not sure yet - one is already a
> hodgepodge of languages so having yet another (CL) may be a bit too much.
> However it depends. Anyway, yeah let me know about the Roswell script. :)

I was a bit hasty regarding Roswell: I never used it, and I don't
think it to be a good fit for this project.

Please consider also that this is a hobbyist project (I'm not into
professional programming anymore).

Roswell could be used to install ECL, ok; but what about Qt5? If you
want to do serious development with Qt5 (and learn it well), there is
no way around installing it directly from their official binary
releases (https://download.qt.io/archive/qt/). This would certainly be
hard to automate by a tool like Roswell (I mean on all platforms, with
the different compilers, even on the same platform).

Then there are simply too much variants of compilers to use for
building EQL5 (on Windows you may use either MinGW or MSVC, on Linux
either GCC or LLVM), and they must (generally) match the compiler that
built Qt5.

So: sorry, but I have neither enough motivation nor time to really
learn Roswell, especially because I will never use it personally.

I hope you understand...

Paul
>> You received this message because you are subscribed to a topic in the
>> Google Groups "eql-user" group.
>> To unsubscribe from this topic, visit https://groups.google.com/d/
>> topic/eql-user/KuU9bflKrNo/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
Reply all
Reply to author
Forward
0 new messages