So you've noticed I'm kinda slow.
I've finally started working on an app for Sailfish OS thanks to
Renaud's fantastic template
https://redmine.casenave.fr/projects/eql5-sfos/repository/44/revisions/mast…
and also thanks to all the people who have worked on ECL and EQL.
I know little of QT however and looking at the EQL5 examples only gets
me so far. What would be a good venue to ask my (initially really
basic) questions on the combination of ECL, EQL and QT? I mean, I want
to ask questions to people who also like to program in Common Lisp so I
don't have to have a discussion thread first on why I am not using C++
or Python.
Would this mailing-list be ok? (I'm a little hesitant.)
https://www.reddit.com/user/eql5 perhaps? Do the people here read that?
My preference would be either e-mail or web forums, but if everyone is
on Matrix or Discord these days then I guess I'll have to go there.
Regards,
Erik
Hello,
I'm cross-posting because I don't know if the issue is related to ASDF
or ECL. I'm using the most recent repos of both.
When dumping a very simple system defined like this:
(asdf:defsystem :simple
:depends-on (:net.didierverna.clon)
:components ((:file "simple"))
:entry-point "simple:main")
with (asdf:operate 'asdf:program-op :simple),
I'm getting a runtime error with the executable:
Condition of type: SIMPLE-PACKAGE-ERROR
There exists no package with name "NET.DIDIERVERNA.CLON.SETUP"
No restarts available.
Top level in: #<process TOP-LEVEL 0x10a821f80>.
So it seems that the net.didierverna.clon.setup system is not dumped in
the executable.
In Clon, the dependency on setup is indirect:
net.didierverna.clon <- net.didierverna.clon.core
net.didierverna.clon.core <- net.didierverna.clon.setup
If I add an explicit dependency on setup in the :simple ASDF system
above like this:
:depends-on (:net.didierverna.clon.setup :net.didierverna.clon))
the problem goes away. This doesn't happen with the 5 other Lisp
implementations that I've tested.
Also, it may be worth mentioning that Clon's setup system gets a special
treatment. It's loaded explicitly at the top of several .asd files like
this (with the utmost disrespect for the Almighty ASDF Gods
recommendations):
(asdf:load-system :net.didierverna.clon.setup)
I'm wondering if this may have something to do with the problem.
Thanks!
--
¡En Seguida! -- New album: https://www.didierverna.com/records/en-seguida.php
Available on all digital platforms now!
Lisp, Jazz, Aïkido: http://www.didierverna.info
Hi,
I’m trying to compile a common lisp system into a .so which I can then wrap a Python library around to enable easy sharing of the functionality as a Python package (wheel). I’m having trouble finding examples of other C code calling into ECL-compiled shared objects of lisp code. I hope I can solicit some answer and critical code review here, or pointers to exemplar implementations would also be much appreciated.
So far I have:
1. A Makefile [1] rule to build the .so from the common lisp package. This part actually seems to be working well (if slow to compile).
2. A C source file [2] wrapping the ECL-compiled shared object. I think this is likely where most of my problems are: specifically:
* How does one get a string back out from Common Lisp to C? Currently I’m jumping through hoops that seem like they should be unnecessary [3] and only work some of the time (other times I’m getting multiple copies of the string text).
* How does one get a UTF8 string from C (wchar_t*) into Common Lisp? I haven’t found a way so for now I’m limiting my input to ASCII (char*) [4].
* Is the best way to invoke a function really to call c_string_to_object (e.g., [5] among many others)? It seems like there should be a more efficient way than converting a string into a function name for every function dispatch.
* Finally, calling init [6] has two problems. First, it takes a very long time every time I load the library. Is there no way to save the state of the lisp image after initialization? Second, it loads ASDF from a path relative to my local system. Can I get ASDF compiled into the shared object to remove as many external dependencies as possible?
Any help is much appreciated. Also, thanks to those who answered issues on the ECL GitLab repository to help me get this far.
Thanks!
Eric
[1] https://github.com/GrammaTech/sel/blob/python-library/Makefile#L110-L128
[2] https://github.com/GrammaTech/sel/blob/python-library/software/tree-sitter.c
[3] https://github.com/GrammaTech/sel/blob/python-library/software/tree-sitter.…
[4] https://github.com/GrammaTech/sel/blob/python-library/software/tree-sitter.…
[5] https://github.com/GrammaTech/sel/blob/python-library/software/tree-sitter.…
[6] https://github.com/GrammaTech/sel/blob/python-library/software/tree-sitter.…
________________________________
The information contained in this e-mail and any attachments from GrammaTech, Inc may contain confidential and/or proprietary information, and is intended only for the named recipient to whom it was originally addressed. If you are not the intended recipient, any disclosure, distribution, or copying of this e-mail or its attachments is strictly prohibited. If you have received this e-mail in error, please notify the sender immediately by return e-mail and permanently delete the e-mail and any attachments.