Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Jan Moringen
asdf
Commits
76959caa
Commit
76959caa
authored
Feb 02, 2017
by
Francois-Rene Rideau
Browse files
Distinguish :fasb and :fasl
Fixes bundle builds for MKCL post 1.1.10.
parent
bae381cb
Changes
4
Hide whitespace changes
Inline
Side-by-side
bundle.lisp
View file @
76959caa
...
...
@@ -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
:fas
l
:allocation
:class
))
(
bundle-type
:initform
:fas
b
: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
))
((
:fas
l
)
((
:fas
b
)
(
if
monolithic
'monolithic-compile-bundle-op
'compile-bundle-op
))
((
:image
)
'image-op
)
...
...
test/make-hello-world.lisp
View file @
76959caa
...
...
@@ -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
)
...
...
test/test-program.script
View file @
76959caa
...
...
@@ -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")
...
...
uiop/image.lisp
View file @
76959caa
...
...
@@ -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
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment