diff --git a/bundle.lisp b/bundle.lisp index 8582a486812003ff6c69a3279cb5378e30483300..ec76f4aeba99fc3858130c2ed7de378d0cc05f2f 100644 --- a/bundle.lisp +++ b/bundle.lisp @@ -110,7 +110,7 @@ itself.")) (defclass basic-compile-bundle-op (bundle-op basic-compile-op) ((gather-type :initform #-(or clasp ecl mkcl) :fasl #+(or clasp ecl mkcl) :object :allocation :class) - (bundle-type :initform :fasl :allocation :class)) + (bundle-type :initform :fasb :allocation :class)) (:documentation "Base class for compiling into a bundle")) ;; Analog to prepare-op, for load-bundle-op and compile-bundle-op @@ -217,6 +217,8 @@ for all the linkable object files associated with the system or its dependencies ((eql :no-output-file) ;; marker for a bundle-type that has NO output file (error "No output file, therefore no pathname type")) ((eql :fasl) ;; the type of a fasl + (compile-file-type)) ; on image-based platforms, used as input and output + ((eql :fasb) ;; the type of a fasl #-(or clasp ecl mkcl) (compile-file-type) ; on image-based platforms, used as input and output #+(or clasp ecl mkcl) "fasb") ; on C-linking platforms, only used as output for system bundles ((member :image) @@ -274,7 +276,7 @@ e.g. as part of the implementation, of an outer build system that calls into ASD or of opaque libraries shipped along the source code.")) (defclass precompiled-system (system) - ((build-pathname :initarg :fasl)) + ((build-pathname :initarg :fasb :initarg :fasl)) (:documentation "Class For a system that is delivered as a precompiled fasl")) (defclass prebuilt-system (system) @@ -341,7 +343,7 @@ or of opaque libraries shipped along the source code.")) (if monolithic 'monolithic-dll-op 'dll-op)) ((:lib :static-library) (if monolithic 'monolithic-lib-op 'lib-op)) - ((:fasl) + ((:fasb) (if monolithic 'monolithic-compile-bundle-op 'compile-bundle-op)) ((:image) 'image-op) diff --git a/test/make-hello-world.lisp b/test/make-hello-world.lisp index d823495b5da5b2ed24f552ed5317e84f6bd48786..7e528194b772af1ce1bad4c2b909ada1269b48a2 100644 --- a/test/make-hello-world.lisp +++ b/test/make-hello-world.lisp @@ -20,7 +20,7 @@ ;; make sure mkcl-X.X.X.dll is the same directory as the executable (let* ((dll-orig (subpathname (si::self-truename) (strcat #-os-windows "../lib/" - "mkcl_" (lisp-implementation-version) + "mkcl_" (si:mkcl-version) "." (asdf/bundle:bundle-pathname-type :shared-library)))) (dll-dest (subpathname pathname (strcat #-os-windows "../lib/" (file-namestring dll-orig))))) (ensure-directories-exist dll-dest) diff --git a/test/test-program.script b/test/test-program.script index 37ecb3de06b4cc869535db2e9f0b16b3fd172334..f7442742f26dd7c5889c130404e074ef1874851a 100644 --- a/test/test-program.script +++ b/test/test-program.script @@ -122,8 +122,9 @@ #+(or ecl mkcl) (progn (DBG "Now create an program without UIOP") - (assert (probe-file (asdf/bundle::system-module-pathname "asdf"))) - (assert (probe-file (asdf/bundle::system-module-pathname "cmp"))) + #+mkcl (assert (probe-file* (asdf/bundle::system-module-pathname "uiop"))) + (assert (probe-file* (asdf/bundle::system-module-pathname "asdf"))) + #+ecl (assert (probe-file* (asdf/bundle::system-module-pathname "cmp"))) (def-test-system hello-no-uiop :class program-system :no-uiop t @@ -142,10 +143,9 @@ '("Look ma, no UIOP!" "And TEST-PACKAGE!" "And no ASDF!")) (DBG "Now create an program with explicit ASDF dependency, without registered ASDF (use implementation-provided prebuilt)") - (trace c::builder) ;; component-depends-on input-files output-files (assert-pathname-equal (truename (pathname-directory-pathname (output-file 'lib-op (asdf/bundle::linkable-system "asdf")))) - (truename (lisp-implementation-directory))) + (truename (subpathname (lisp-implementation-directory) #+mkcl "contrib/" #-mkcl nil))) (def-test-system hello-asdf :class program-system :depends-on ("asdf") diff --git a/uiop/image.lisp b/uiop/image.lisp index d1d2a25d99ad60197c97640459decf77f5cf5adf..7850d9ad52736320f919ae108054a696649f70e0 100644 --- a/uiop/image.lisp +++ b/uiop/image.lisp @@ -445,7 +445,9 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows." (shell-boolean-exit (restore-image)))))))) (when forms `(progn ,@forms)))))) - #+(or clasp ecl) (check-type kind (member :dll :shared-library :lib :static-library :program :fasl)) + #+(or clasp ecl mkcl) + (check-type kind (member :dll :shared-library :lib :static-library + :fasl :fasb :program)) (apply #+clasp 'cmp:builder #+clasp kind #+(or ecl mkcl) (ecase kind @@ -453,13 +455,17 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows." #+ecl 'c::build-shared-library #+mkcl 'compiler:build-shared-library) ((:lib :static-library) #+ecl 'c::build-static-library #+mkcl 'compiler:build-static-library) - ((:fasl) + ((:fasl #+ecl :fasb) #+ecl 'c::build-fasl #+mkcl 'compiler:build-fasl) + #+mkcl ((:fasb) 'compiler:build-bundle) ((:program) #+ecl 'c::build-program #+mkcl 'compiler:build-program)) (pathname destination) - #+(or clasp ecl) :lisp-files #+mkcl :lisp-object-files (append lisp-object-files #+(or clasp ecl) extra-object-files) - #+(or clasp ecl) :init-name #+(or clasp ecl) (c::compute-init-name (or output-name destination) :kind kind) + #+(or clasp ecl) :lisp-files #+mkcl :lisp-object-files + (append lisp-object-files #+(or clasp ecl) extra-object-files) + #+ecl :init-name + #+ecl (c::compute-init-name (or output-name destination) + :kind (if (eq kind :fasb) :fasl kind)) (append (when prologue-code `(:prologue-code ,prologue-code)) (when epilogue-code `(:epilogue-code ,epilogue-code))