Changeset 15072


Ignore:
Timestamp:
06/11/17 08:00:14 (6 years ago)
Author:
Mark Evenson
Message:

Deprecate tool to build ABCL from another lisp

The results of the Lisp based build system present in
<file:tools/build-from-lisp.bash> had long diverged from the results
of the canonical build description in <file:build.xml>. The
reimplementation of ABCL-BUILD as a contrib based upon UIOP is
currently incomplete for non-ABCL CL implementations, most notably
missing the ability to download the necessary non-Lisp tools from the
network.

The "old" lisp based build code remains in
<file:contrib/abcl-build/build/deprecated.lisp> for those who need to
hack it back to a working state.

Update the README to reflect the deprecation.

Location:
trunk/abcl
Files:
1 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/abcl/README

    r15042 r15072  
    1616License with a classpath exception (see "Classpath Exception" below).
    1717
    18 A copy of GNU General Public License (GPL) is included in this
    19 distribution, in the file COPYING.
    20 
    21 Linking this software statically or dynamically with other modules is
    22 making a combined work based on this software. Thus, the terms and
    23 conditions of the GNU General Public License cover the whole
    24 combination.
    25 
    26 
    27 Classpath Exception
    28 -------------------
    29 
    30 As a special exception, the copyright holders of this software give
    31 you permission to link this software with independent modules to
    32 produce an executable, regardless of the license terms of these
    33 independent modules, and to copy and distribute the resulting
    34 executable under terms of your choice, provided that you also meet,
    35 for each linked independent module, the terms and conditions of the
    36 license of that module. An independent module is a module which is not
    37 derived from or based on this software. If you modify this software,
    38 you may extend this exception to your version of the software, but you
    39 are not obligated to do so. If you do not wish to do so, delete this
    40 exception statement from your version.
     18A copy of GNU General Public License (GPLv2) is included in this
     19distribution, in <file:COPYING>.
     20
     21We have modfied our GPLv2 license section 13 to read:
     22
     23     13. Linking this library statically or dynamically with other
     24     modules is making a combined work based on this library. Thus, the
     25     terms and conditions of the GNU General Public License cover the
     26     whole combination.
     27
     28     The following paragraph details the "classpath exception" which ABCL
     29     allows as an exception to the statement about linking libraries.
     30
     31     As a special exception, the copyright holders of this software give
     32     you permission to link this software with independent modules to
     33     produce an executable, regardless of the license terms of these
     34     independent modules, and to copy and distribute the resulting
     35     executable under terms of your choice, provided that you also meet,
     36     for each linked independent module, the terms and conditions of the
     37     license of that module. An independent module is a module which is
     38     not derived from or based on this software. If you modify this
     39     software, you may extend this exception to your version of the
     40     software, but you are not obligated to do so. If you do not wish to
     41     do so, delete this exception statement from your version.
     42
    4143
    4244RUNNING FROM DOCKER
     
    5860    CL-USER(1): 23
    5961    23
    60     23
    61     CL-USER(2): (require :abcl-contrib)
    62     (require :abcl-contrib)
    63     Using probed value of abcl-contrib:
    64     '/home/abcl/work/abcl/dist/abcl-contrib.jar'.
    65     Added jar:file:/home/abcl/work/abcl/dist/abcl-contrib.jar!/quicklisp/ to ASDF.
    66     Added jar:file:/home/abcl/work/abcl/dist/abcl-contrib.jar!/mvn/ to ASDF.
    67     Added jar:file:/home/abcl/work/abcl/dist/abcl-contrib.jar!/jss/ to ASDF.
    68     Added jar:file:/home/abcl/work/abcl/dist/abcl-contrib.jar!/jfli/ to ASDF.
    69     Added jar:file:/home/abcl/work/abcl/dist/abcl-contrib.jar!/asdf-jar/ to ASDF.
    70     Added jar:file:/home/abcl/work/abcl/dist/abcl-contrib.jar!/abcl-introspect/ to ASDF.
    71     Added jar:file:/home/abcl/work/abcl/dist/abcl-contrib.jar!/abcl-asdf/ to ASDF.
    72     ("uiop" "UIOP" "asdf" "ASDF" "ABCL-CONTRIB")
    7362
    7463
     
    9079===========================
    9180
    92 After you have downloaded a binary release from either
    93 [Maven][maven-abcl] or from [abcl.org][abcl.org-release] archive
    94 unpack it into its own directory. To run ABCL directly from this
    95 directory, make sure Java (version 1.6 or up) is in your shell's
    96 path.
    97 
    98 [maven-abcl]:         <mvn:abcl.org/abcl/>
    99 [maven-abcl-contrib]: <mvn:abcl.org/abcl/abcl-contrib>
    100 [abcl.org-release:    <http://abcl.org/releases/>
    101 
    102 Then issue the following command:
     81After you have downloaded a binary release from either [the
     82distributed Maven POM graph][maven-abcl] or from
     83[abcl.org][abcl.org-release] archive unpack it into its own
     84directory. To run ABCL directly from this directory, make sure Java
     85(version 1.6 or up) is in your shell's path.
     86
     87[maven-abcl]:          <https://mvnrepository.com/artifact/org.abcl/abcl/1.4.0>
     88[maven-abcl-contrib]:  <https://mvnrepository.com/artifact/org.abcl/abcl-contrib/1.5.0>
     89[abcl.org-release]:    <http://abcl.org/releases/1.5.0/>
     90
     91To start ABCL, simply issue the following command:
    10392
    10493    cmd$ java -jar abcl.jar
     
    10796
    10897    Armed Bear Common Lisp 1.5.0
    109     Java 1.8.0_102 Oracle Corporation
     98    Java 1.8.0_131 Oracle Corporation
    11099    Java HotSpot(TM) 64-Bit Server VM
    111100    Low-level initialization completed in 0.324 seconds.
     
    114103    CL-USER(1):
    115104
    116 Yer now at the interactive ABCL "Read Eval Print Loop" (REPL):  hacks 'n glory await.
     105Yer now at the interactive ABCL "Read Eval Print Loop" (REPL): hacks
     106'n glory await.
    117107
    118108
     
    120110============================
    121111
    122 There are three ways to build ABCL from the source release with the
    123 preferred (and most tested way) is to being to use the Ant build tool:
    124 
    125 * Use the Ant build tool for Java environments.
    126 
    127 * Use the NetBeans [678].x IDE to open ABCL as a project.
    128 
    129 * Bootstrap ABCL using a Common Lisp implementation. Supported
    130   implementations for this process: SBCL, CMUCL, OpenMCL, Allegro
    131   CL, LispWorks or CLISP.
    132 
    133 In all cases you will need a Java 6 or later JDK (JDK 1.[678] have been
    134 tested).  Just the JRE isn't enough, as you need the Java compiler
    135 ('javac') to compile the Java source of the ABCL implementation.
    136 
    137 Note that when deploying ABCL having JDK isn't a requirement for the
    138 installation site, just the equivalent JRE, as ABCL compiles directly
    139 to byte code, avoiding the need for the 'javac' compiler in deployment
    140 environments.
    141 
    142 
    143 Using Ant
    144 ---------
    145 
    146 Download a binary distribution [Ant version 1.7.1 or greater][1].
     112ABCL may be built from its source code by executing the build
     113instructions <file:build.xml> expressed by the venerable Apache Ant
     114tool.
     115
     116To build, one must have a Java 6, 7 or 8 Java Development Kit (JDK)
     117installed locally. Just the Java Runtime Environment (JRE) isn't
     118enough, as you need the Java compiler ('javac') to compile the Java
     119source of the ABCL implementation.
     120
     121Download a binary distribution [Ant version 1.7.1 or greater][ant].
    147122Unpack the files somewhere convenient, ensuring that the 'ant' (or
    148123'ant.bat' under Windows) executable is in your path and executable.
    149124
    150 [1]: http://ant.apache.org/bindownload.cgi
    151 
    152 Then simply executing
    153 
    154     unix$ ant
    155 
    156 or
    157 
    158     dos> ant.bat
    159 
    160 from the directory containing this README file will create an
    161 executable wrapper ('abcl' under UNIX, 'abcl.bat' under Windows).  Use
    162 this wrapper to start ABCL.
     125[ant]: http://ant.apache.org/bindownload.cgi
     126
     127Then simply executing
     128
     129    cmd$ ant
     130
     131from the directory containing the <file:build.xml> instructions will
     132create an executable wrapper ('abcl' under UNIX, 'abcl.bat' under
     133Windows).  Use this wrapper to start ABCL.
     134
     135The build may be customized by copying <file:abcl.properties.in> to
     136<file:abcl.properties>, which will cause Ant to attempt to build
     137incrementally as well as optimizing the runtime for a contemporary
     13864bit desktop/server machine running Java 8.  The file may be edited
     139for further customization.
    163140
    164141
     
    166143--------------
    167144
    168 Obtain and install the [NetBeans IDE][2]. One should be able to open
    169 the ABCL directory as a project in the Netbeans application, whereupon
    170 the usual build, run, and debug targets as invoked in the GUI are
    171 available.  Use the 'slime' config with a suitably linked 'swank.asd'
    172 in '~/.asdf-install-dir/systems/' to connect a REPL to the NetBeans
    173 debug process.
    174 
    175 [2]: http://netbeans.org/downloads/
    176 
    177 
    178 Building from Lisp
    179 ------------------
    180 
    181 You need to have a Java compiler installed locally.  If the Ant build
    182 tool does not exist, it will be downloaded and used to invoke the Ant
    183 build.
    184 
    185 Then, one may either use the 'build-from-lisp.bash' shell script or load
    186 the necessary files into your Lisp image by hand.
    187 
    188 ### Using the 'build-from-lisp.bash' script
    189 
    190 Under UNIX-like systems, one may simply invoke the
    191 'build-from-lisp.bash' script.  As noted above, one must first copy the
    192 'customizations.lisp.in' file to 'customizations.lisp', then edit it
    193 to reflect the local configuration most importantly the path to the
    194 Java Development Kit.
    195 
    196 After configuring 'customizations.lisp', the following would use SBCL
    197 as the compilation driver to build ABCL:
    198 
    199     unix$ ./build-from-lisp.bash sbcl
    200 
    201 After a successful build, you may use 'abcl' ('abcl.bat' on Windows)
    202 to start ABCL.  Note that this wrappers contain absolute paths, so
    203 you'll need to edit them if you move things around after the build.
    204 
    205 If you're developing on ABCL, you may want to use
    206 
    207     unix$ ./build-from-lisp.bash <implementation> --clean=nil
    208 
    209 to not do a full rebuild.
    210 
    211 In case of failure in the javac stage, you might try this:
    212 
    213     unix$ ./build-from-lisp.bash <implementation> --full=t --clean=t --batch=nil
    214 
    215 This invokes javac separately for each .java file, which avoids running
    216 into limitations on command line length (but is a lot slower).
    217 
    218 ### Building from another Lisp manually
    219 
    220 There is also an ASDF definition in 'abcl.asd' for ABCL/BUILD
    221 which can be used to load the necessary Lisp definitions, after which
    222 
    223     CL-USER> (build-abcl:build-abcl :clean t :full t)
    224 
    225 will build ABCL.  If ASDF isn't present, simply LOAD the
    226 'customizations.lisp' and 'build-abcl.lisp' files to achieve the same
    227 effect as loading the ASDF definition.
     145Alternatively, one may install the [Netbeans visual integrated
     146development environment][netbeans], which contains both the Java
     147Development Kit as well as the Ant build tool.
     148
     149With Netbeans, one should be able to open the ABCL directory as a
     150project whereupon the usual build, run, and debug targets as invoked
     151in the GUI are available.  Use the 'slime' config with a suitably
     152linked 'swank.asd' in '~/.asdf-install-dir/systems/' to connect a REPL
     153to the NetBeans debug process.
     154
     155[netbeans]: http://netbeans.org/downloads/
    228156
    229157
     
    241169-----
    242170
    243 ABCL 1.4.0 now fails 47 out of 21708 total tests in the [revised and
     171ABCL 1.5.0 now fails 48 out of 21708 total tests in the [revised and
    244172expanded ANSI CL test suite][ansi-test] (derived from the tests
    245173originally written for GCL).
     
    254182### Deficiencies
    255183
    256 Many.  But Patches to address issues mentioned above will be gladly
     184Many.  But patches to address issues mentioned above will be gladly
    257185accepted.
    258186
     
    277205    Ville Voutilainen
    278206
     207    alan
    279208    olof ferada
    280209    pipping
  • trunk/abcl/tools/build-from-lisp.bash

    r15071 r15072  
    7272abcl()
    7373{
    74     exec "$1" --load "$2" --eval "(progn $3 (ext:quit))"
     74    #    exec "$1" --load "$2" --eval "(progn $3 (ext:quit))"
     75    exec "$1" --eval "(require :abcl-contrib)(require :abcl-build)" --eval "(abcl-build:build-abcl)"
    7576}
    7677
     
    118119        abcl  "$IMPL" "$FILE" "$FORM"          ;;
    119120    clisp*)
    120         clisp "$IMPL" "$FILE" "$FORM"          ;;
     121        notimplemented "$IMPL" "$FILE" "$FORM"          ;;
    121122    sbcl*)
    122         sbcl  "$IMPL" "$FILE" "$FORM"          ;;
     123        notimplemented  "$IMPL" "$FILE" "$FORM"          ;;
    123124    lisp)
    124         cmucl "$IMPL" "$FILE" "$FORM"          ;;   
     125        notimplemented "$IMPL" "$FILE" "$FORM"          ;;   
    125126    ccl*)
    126         ccl   "$IMPL" "$FILE" "$FORM"          ;;
     127        notimplemented   "$IMPL" "$FILE" "$FORM"          ;;
    127128    gcl*)
    128129        notimplemented "$IMPL" "$FILE" "$FORM" ;;
    129130    ecl*)
    130         ecl   "$IMPL" "$FILE" "$FORM"          ;;
     131        notimplemented   "$IMPL" "$FILE" "$FORM"          ;;
    131132    alisp*)
    132133        notimplemented "$IMPL" "$FILE" "$FORM" ;;
Note: See TracChangeset for help on using the changeset viewer.