borodust / claw-legacy Goto Github PK
View Code? Open in Web Editor NEWAutowrapper for Common Lisp
License: BSD 2-Clause "Simplified" License
Autowrapper for Common Lisp
License: BSD 2-Clause "Simplified" License
:description
in particular, because quicklisp dist expects it to be present.
It's trying to do too much and brings in base64 dependency that conflicts with other base64 system in quicklisp for other ppl.
Building with SBCL 2.0.9.5-442f54894 / ASDF 3.3.1 for quicklisp dist creation.
Commit id 3cd4a96
claw/tests fails to build with the following error:
; caught ERROR:
; (during macroexpansion of (DEFWRAPPER (LIBCTEST # ...) ...))
; The bounding indices 0 and 64 are bad for a sequence of length 63.
; See also:
; The ANSI Standard, Glossary entry for "bounding index designator"
; The ANSI Standard, writeup for Issue SUBSEQ-OUT-OF-BOUNDS:IS-AN-ERROR
...
Unhandled UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {1001A50103}>: COMPILE-FILE-ERROR while compiling #<CL-SOURCE-FILE "claw/tests" "c" "cffi" "c">
Hello,
Looks like an interesting project. I tried to compile the :claw/tests system on Mac LispWorks 64-bit to see if it works for me. I'm using the latest version of ASDF (3.3.4). I get the error listed below when I compile the system. As a work-around I replaced "../lib" with the full Unix pathname. Then I had logical pathname error with the :base-path and also replaced that with the full Unix pathname to get around that.
Condition: Illegal logical pathname directory component: :UP.
Call to ERROR {offset 123}
SYSTEM::ESTRING : "Illegal logical pathname directory component: ~S."
SYSTEM::EARGS : (:UP)
Call to SYSTEM::MAKE-LOGICAL-PATHNAME-FROM-COMPONENTS {offset 1242}
SYSTEM::HOST : "LISP-SYSTEMS"
DIRECTORY : (:ABSOLUTE "CLAW" "CLAW" "T" "C" "CFFI" :UP "lib")
SYSTEM::NAME : NIL
TYPE : NIL
SYSTEM::VERSION : :NEWEST
Catch frame: SYSTEM::BAD-LOGICAL-PATHNAME-PARSE
Call to SYSTEM::MAKE-LOGICAL-PATHNAME {offset 208}
SYSTEM::COMPONENTS : ("LISP-SYSTEMS" (:ABSOLUTE "CLAW" "CLAW" "T" "C" "CFFI" :UP "lib") NIL NIL :NEWEST)
Call to MAKE-PATHNAME {offset 601}
DBG::|rest-| : (:HOST "LISP-SYSTEMS" :DEVICE :UNSPECIFIC :DIRECTORY (:ABSOLUTE "CLAW" "CLAW" "T" "C" "CFFI" :UP "lib") :NAME NIL :TYPE NIL :VERSION :NEWEST)
SYSTEM::HOST : "LISP-SYSTEMS"
SYSTEM::DEVICE : :UNSPECIFIC
DIRECTORY : (:ABSOLUTE "CLAW" "CLAW" "T" "C" "CFFI" :UP "lib")
SYSTEM::NAME : NIL
TYPE : NIL
SYSTEM::VERSION : :NEWEST
SYSTEM::DEFAULTS : #P""
CASE : :LOCAL
Call to UIOP/PATHNAME:MERGE-PATHNAMES* {offset 667}
UIOP/PATHNAME::SPECIFIED : "../lib/"
UIOP/PATHNAME::DEFAULTS : #P"LISP-SYSTEMS:CLAW;CLAW;T;C;CFFI;"
UIOP/PATHNAME::SPECIFIED : #P"../lib/"
UIOP/PATHNAME::DEFAULTS : #P"LISP-SYSTEMS:CLAW;CLAW;T;C;CFFI;"
DIRECTORY : (:RELATIVE :UP "lib")
UIOP/PATHNAME::NAME : NIL
TYPE : NIL
UIOP/PATHNAME::VERSION : :NEWEST
DBG::|internal-flet-name-for-UNSPECIFIC-HANDLER| : #<Function (LABELS UIOP/PATHNAME::UNSPECIFIC-HANDLER) subfunction of UIOP/PATHNAME:MERGE-PATHNAMES* 41D01823EC>
UIOP/PATHNAME::HOST : "LISP-SYSTEMS"
UIOP/PATHNAME::DEVICE : :UNSPECIFIC
DIRECTORY : (:ABSOLUTE "CLAW" "CLAW" "T" "C" "CFFI" :UP "lib")
UIOP/PATHNAME::UNSPECIFIC-HANDLER : #<Function UIOP/PATHNAME:MAKE-PATHNAME-COMPONENT-LOGICAL 41D011BA74>
DBG::|m-v-b-&rest| : :DONT-KNOW
Call to REDUCE {offset 1248}
FUNCTION : #<Function (FLET CLAW.UTIL::%RELATIVE) subfunction of CLAW.UTIL:FIND-PATH 41D02FFBBC>
SEQUENCE : ("../lib/")
DBG::|rest-| : (:INITIAL-VALUE #P"LISP-SYSTEMS:CLAW;CLAW;T;C;CFFI;")
SYSTEM::FROM-END : NIL
SYSTEM::START : 0
SYSTEM::KEY : NIL
SYSTEM::END : NIL
SYSTEM::INITIAL-VALUE : #P"LISP-SYSTEMS:CLAW;CLAW;T;C;CFFI;"
Call to CLAW.UTIL:FIND-PATH {offset 190}
CLAW.UTIL::RELATIVE : "../lib/"
DBG::|rest-| : (:SYSTEM NIL :PATH #P"LISP-SYSTEMS:CLAW;CLAW;T;C;CFFI;")
CLAW.UTIL::SYSTEM : NIL
CLAW.UTIL::PATH : #P"LISP-SYSTEMS:CLAW;CLAW;T;C;CFFI;"
CLAW.UTIL::RELATIVE : ("../lib/")
DBG::|internal-flet-name-for-%RELATIVE| : #<Function (FLET CLAW.UTIL::%RELATIVE) subfunction of CLAW.UTIL:FIND-PATH 41D02FFBBC>
It should be
#### Usage for the brave
But because it will break a link, it will stay this way for a while, preparing readers for confusing experience of the whole system.
After working around the pathname issue, I get the error below.
Condition: The index 64 is out of range for sequence "__claw_libctest_loader_F6D054DFA7C9E57DFE1F11FC030D38CD79A3411A".
Call to SYSTEM::END-OUT-OF-RANGE-ERROR {offset 66}
SYSTEM::SEQ : "__claw_libctest_loader_F6D054DFA7C9E57DFE1F11FC030D38CD79A3411A"
SYSTEM::START : 0
SYSTEM::END : 64
Call to SUBSEQ {offset 92}
SEQUENCE : "__claw_libctest_loader_F6D054DFA7C9E57DFE1F11FC030D38CD79A3411A"
SYSTEM::START : 0
SYSTEM::END : 64
Call to (METHOD CLAW.CFFI.C::EXPAND-ADAPTER-ROUTINES (CLAW.CFFI.C::DYNAMIC-ADAPTER T)) {offset 624}
CLAW.CFFI.C::THIS : #<CLAW.CFFI.C::DYNAMIC-ADAPTER 42002EA2FB>
CLAW.CFFI.C::WRAPPER : #S(CLAW.WRAPPER::WRAPPER :NAME CLAW.TESTS::LIBCTEST :HEADERS ("c.h") :SPECIFICATION #<CLAW.SPEC::LIBRARY-DESCRIPTOR 42002C62E3> :STANDARD NIL :INCLUDES (#P"/Lisp/claw/claw/t/c/cffi" #P"/Lisp/claw/claw/t/c/lib/" #P"/usr/local/include" #P"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/include" #P"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include" #P"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include" #P"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1") :LAST-UPDATE-TIME 3801577522 :PATH-MAPPER #<Closure 1 subfunction of CLAW.WRAPPER:DEFWRAPPER 422000D13C>)
CLOS::.ISL. : :DONT-KNOW
CLAW.CFFI.C::NAME : CLAW.TESTS::LIBCTEST
CLAW.CFFI.C::SHARED-LIBRARY-NAME : "adapter.dylib"
Should be possible with static C wrapper generator.
https://github.com/borodust/claw/blob/9877cb7d7367ba434e1f1a34418d8a442028b895/src/sffi.lisp#L34
SBCL now raises a full warning when encountering an :initform
that does not fit the :type
option of a slot.
Full log here: http://report.quicklisp.org/2020-09-29/failure-report/claw.html#claw
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.