-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
ecl: add package for embeddable common lisp #6080
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
e0108c2
10ef800
b0deef5
2952df3
3900bbe
5cabafd
beb1ef8
e6260ac
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| TERMUX_PKG_HOMEPAGE=https://common-lisp.net/project/ecl/ | ||
| TERMUX_PKG_DESCRIPTION="ECL (Embeddable Common Lisp) is an interpreter of the Common Lisp language." | ||
| TERMUX_PKG_LICENSE="LGPL-2.0" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. fwiw ecl is licensed under lgpl-2.1+, not lgpl-2.0
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I put LGPL-2.0 here because it says "Version 2" in https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/COPYING There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. you are right, the included license is outdated (we already (I will also need to change that), either way, since there is it should be at least mentioned as lgpl-2.0+ |
||
| TERMUX_PKG_VERSION="20.4.24" | ||
| TERMUX_PKG_SRCURL=https://common-lisp.net/project/ecl/static/files/release/ecl-${TERMUX_PKG_VERSION}.tgz | ||
| TERMUX_PKG_SHA256=670838edf258a936b522fdb620da336de7e575aa0d27e34841727252726d0f07 | ||
| TERMUX_PKG_DEPENDS="libandroid-support, libgmp, libgc, libffi" | ||
| TERMUX_PKG_HOSTBUILD=true | ||
| TERMUX_PKG_NO_STATICSPLIT=true | ||
| TERMUX_PKG_BLACKLISTED_ARCHES="i686, x86_64" | ||
| TERMUX_PKG_HAS_DEBUG=false | ||
|
|
||
| # See https://gitlab.com/embeddable-common-lisp/ecl/-/blob/develop/INSTALL | ||
| # for upstream cross build guide. | ||
|
|
||
| # ECL needs itself during build, so we need to build it for the host first. | ||
| termux_step_host_build() { | ||
| srcdir=$TERMUX_PKG_SRCDIR/src | ||
| hostprefix=$TERMUX_PKG_HOSTBUILD_DIR/prefix | ||
| mkdir $hostprefix | ||
| $srcdir/configure --prefix=$hostprefix --srcdir=$srcdir --disable-c99complex | ||
| make | ||
| make install | ||
| } | ||
|
|
||
| termux_step_configure() { | ||
| # Copy cross_config for target architecture. | ||
| case $TERMUX_ARCH in | ||
| aarch64) crossconfig=android-arm64 ;; | ||
| arm) crossconfig=android-arm ;; | ||
| *) termux_error_exit "Unsupported arch: $TERMUX_ARCH" ;; | ||
| esac | ||
| crossconfig="$TERMUX_PKG_SRCDIR/src/util/$crossconfig.cross_config" | ||
| export ECL_TO_RUN=$TERMUX_PKG_HOSTBUILD_DIR/prefix/bin/ecl | ||
|
|
||
| srcdir=$TERMUX_PKG_SRCDIR/src | ||
| $srcdir/configure \ | ||
| --srcdir=$srcdir \ | ||
| --prefix=$TERMUX_PREFIX \ | ||
| --host=$TERMUX_HOST_PLATFORM \ | ||
| --build=$TERMUX_BUILD_TUPLE \ | ||
| --with-cross-config=$crossconfig \ | ||
| --disable-c99complex \ | ||
| --enable-gmp=system \ | ||
| --enable-boehm=system | ||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ecl is a compiler with runtime, not an interpreter
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @dkochmanski, good to see you here :). I just copied the first sentence from https://common-lisp.net/project/ecl/main.html. Happy to adjust it if you think it's not correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks, I need probably to rephrase it. If you are interested in details:
ecl always compiles the code (either with the bytecodes compiler or the c compiler), in the former case it executes the bytecode in a bytecode vm and that could be called interpreter.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess it can be called an interpreter because python and most other scripting languages work the same way: compile to bytecode, then run that. ECL has the additional option of compiling to C.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I disagree, interpretation has a well defined meaning and it does not fit the model of compile->bytecode->execute. But I don't care enough to insist (especially that our own webpage is wrong :-)