Problem with build-from-lisp.bash

Pascal Bourguignon pjb at informatimago.com
Sun Dec 9 21:50:20 UTC 2018


Hi!

The lisp commands to build abcl in the build-from-lisp.bash script have a problem: they’re mere progn forms.
When an error occurs, the lisp implementations will enter into the debugger and expect an interactive debugging.
This prevents building abcl in automatic scripts, such as:

function install_abcl_from_sources(){
    # Assume ccl is available.
    cd "${PREFIX}"/src/
    local url='http://abcl.org/releases/1.4.0/abcl-src-1.4.0.tar.gz'
    local tarball;tarball="$(basename "${url}")"
    local dir;dir="$(basename "${tarball}" .tar.gz)"
    local jdkhome;jdkhome="$(java_home)"
    local logbase;logbase="$(pwd)/${dir}"
    export JAVA_HOME="${jdkhome}"
    if [[ ! -e  "${tarball}" ]] ; then
        download "${url}"
    fi
    unarchive "${tarball}" "${dir}"
    cd "${dir}"
    case "$(uname)" in
    (Darwin)
        sed -e 's^"/usr/"^"'"${jdkhome}/"'"^' \
            <customizations.lisp.in >customizations.lisp
        ;;
    (*)
        sed -e 's^"/home/peter/sun/jdk1.5.0_16/"^"'"${jdkhome}/"'"^' \
            -e 's/fastjar/jar/' \
            <customizations.lisp.in >customizations.lisp
        ;;
    esac
    chmod 755 ./build-from-lisp.bash
    printi 'Building abcl from lisp with ccl'
    ./build-from-lisp.bash ccl  > "${logbase}".build-from-lisp.log      2>&1 \
        && ( printi 'Installing abcl' ; install -m 755 abcl "${PREFIX}"/bin/  > "${logbase}".make-install.log   2>&1 ) \
        ||   printe 'Compiling abcl failed; check the logs.'
}


since errors aren’t detected, but just suspend the execution indefinitely.


Therefore, I would suggest to wrap those progn forms into a handler-case; for example, in the case of ccl:

(handler-case (progn $3 (ccl:quit)) (error (err) (princ err *error-output*) (terpri *error-output*) (finish-output *error-output*) (ccl:quit 1)))




-- 
__Pascal J. Bourguignon__




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/armedbear-devel/attachments/20181209/e4319164/attachment.html>


More information about the armedbear-devel mailing list