[armedbear-cvs] r12438 - trunk/abcl

Mark Evenson mevenson at common-lisp.net
Wed Feb 10 10:41:26 UTC 2010


Author: mevenson
Date: Wed Feb 10 05:41:24 2010
New Revision: 12438

Log:
Implementation of Lisp build without intermediate files.

It is still the case that if anything loaded by 'boot.lisp' causes an
error, the 'abcl.compile.lisp' task does not properly signal an error
to the Ant build process.  But this is no different from the previous
behavior, so we adopt this as the conceptually simpler approach to
writing Ant tasks (and the one that doesn't litter the filesystem with
intermediate build files when the compilation process is being debugged).



Modified:
   trunk/abcl/build.xml

Modified: trunk/abcl/build.xml
==============================================================================
--- trunk/abcl/build.xml	(original)
+++ trunk/abcl/build.xml	Wed Feb 10 05:41:24 2010
@@ -220,43 +220,25 @@
 
     <path id="abcl.lisp.output.path"
           location="${build.classes.dir}/org/armedbear/lisp/"/>
+    <pathconvert dirsep="/" property="abcl.lisp.output" refid="abcl.lisp.output.path"/>
     
     <target name="abcl.compile.lisp" 
 	    depends="abcl.copy.lisp,abcl.compile.java,abcl.fasls.uptodate"
 	    unless="abcl.fasls.uptodate.p">
-
-      <!-- The following shenanigans are necessary to get something
-           that ABCL under Windows can parse as a pathname with the
-           drive syntax not being interpreted as a Lisp package
-           namespace, and with backslash characters not starting
-           escape sequences.  -->
-      <tempfile property="abcl.compile.lisp.tmp" suffix=".lisp"/>
-
-      <echo file="${abcl.compile.lisp.tmp}">
-      (compile-system :zip nil :quit t 
-          :output-path "${toString:abcl.lisp.output.path}${file.separator}")
-      </echo>
-
-      <tempfile property="abcl.compile.lisp.tmp.2"  suffix=".lisp"/>
-	    
-      <copy file="${abcl.compile.lisp.tmp}"
-            tofile="${abcl.compile.lisp.tmp.2}">
-	 <filterchain>
-	    <replacestring from="\" to="/"/>
-	 </filterchain>
-      </copy>
-
-      <java classpath="${build.classes.dir}"
+      <echo>
+Compiling Lisp system 
+from ${abcl.home.dir}
+to   ${abcl.lisp.output}</echo>
+      <java classpath="${build.classes.dir}" 
 	    fork="true"
 	    failonerror="true"
+            inputstring="(handler-case (compile-system :zip nil :quit t :output-path "${abcl.lisp.output}/") (t (x) (progn (format t "~A: ~A~%" (type-of x) x) (exit :status -1))))"
 	    classname="org.armedbear.lisp.Main">
         <jvmarg value="-Dabcl.home=${abcl.home.dir}${file.separator}"/>
 	<arg value="--noinit"/>
-	<arg value="--load"/>
-	<arg value="${abcl.compile.lisp.tmp.2}"/>
+        <arg value="--eval"/>
+        <arg value="(setf *load-verbose* t)"/>
       </java>
-            <delete file="${abcl.compile.lisp.tmp}"/> 
-	    <delete file="${abcl.compile.lisp.tmp.2}"/> 
     </target>
 
     <property name="abcl.build.path"
@@ -722,7 +704,7 @@
       <record name="${abcl.test.log.file}" emacsmode="true" action="stop"/>
       <echo>Finished recording test output in ${abcl.test.log.file}.</echo>
     </target>
-
+    
     <target name="abcl.release" 
             depends="abcl.binary.tar,abcl.source.tar,abcl.binary.zip,abcl.source.zip">
       <copy file="${abcl.jar.path}"




More information about the armedbear-cvs mailing list