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
Hugo Ishimaru
asdf
Commits
61e7074c
Commit
61e7074c
authored
Dec 20, 2013
by
Francois-Rene Rideau
Browse files
Make upgrade more robust on CLISP.
parent
61cab911
Changes
4
Hide whitespace changes
Inline
Side-by-side
header.lisp
View file @
61e7074c
...
...
@@ -54,7 +54,7 @@
(
declaim
(
optimize
(
speed
1
)
(
safety
3
)
(
debug
3
)))
(
setf
ext:*gc-verbose*
nil
))
#+
(
or
abcl
clisp
clozure
cmu
ecl
xcl
)
;; punt on hard package upgrade on those implementations
#+
(
or
abcl
clozure
cmu
ecl
xcl
)
;; punt on hard package upgrade on those implementations
(
eval-when
(
:load-toplevel
:compile-toplevel
:execute
)
(
unless
(
member
:asdf3
*features*
)
(
let*
((
existing-version
...
...
system.lisp
View file @
61e7074c
...
...
@@ -23,7 +23,7 @@
(
with-upgradability
()
(
defgeneric*
(
find-system
)
(
system
&optional
error-p
))
(
defgeneric*
(
system-source-file
)
(
system
)
(
defgeneric*
(
system-source-file
:supersede
#-
clisp
t
#+
clisp
nil
)
(
system
)
(
:documentation
"Return the source file in which system is defined."
))
(
defgeneric
component-build-pathname
(
component
))
...
...
test/run-tests.sh
View file @
61e7074c
...
...
@@ -381,12 +381,13 @@ valid_upgrade_test_p () {
allegromodern:1.
*
)
:
;;
# ccl fasl numbering broke loading of old asdf 2.0
ccl:2.0[01]
*
)
:
;;
#
m
y old ubuntu clisp 2.44.1
is
wired in
#
M
y old ubuntu
10.04LTS
clisp 2.44.1
came
wired in
# with an antique ASDF 1.374 from CLC that can't be downgraded.
# 2.00[0-7] use UID, which fails on that CLISP and was removed afterwards.
# More recent CLISPs work.
# 2.00[0-7] use UID, which fails on some old CLISPs.
# Note that for the longest time, CLISP has included 2.011 in its distribution.
#
Since we
punt on
the
upgrade
, let's only do the test once, for 2.26.
clisp:2.00[0-7]:
*
|
clisp:1.
*
|
clisp:2.0[01]
*
|
clisp:2.2[0-5]:
*
)
:
;;
#
We don't
punt on upgrade
anymore, so we can go at it!
###
clisp:2.00[0-7]:*|clisp:1.*|clisp:2.0[01]*|clisp:2.2[0-5]:*) : ;;
# Skip, CMUCL has problems before 2.014.7 due to source-registry upgrade.
# Weird unidentified problems before 2.018, so we punt equally for everything before,
# and only need to test it once: above, for 2.017.
...
...
uiop/utility.lisp
View file @
61e7074c
...
...
@@ -46,6 +46,9 @@
(
defun
undefine-function
(
function-spec
)
(
cond
((
symbolp
function-spec
)
;; undefining the previous function is the portable way
;; of overriding any incompatible previous gf,
;; but CLISP needs extra help with getting rid of previous methods.
#+
clisp
(
let
((
f
(
and
(
fboundp
function-spec
)
(
fdefinition
function-spec
))))
(
when
(
typep
f
'clos:standard-generic-function
)
...
...
@@ -67,12 +70,9 @@
name
)
(
declare
(
ignorable
supersede
))
`
(
progn
;; undefining the previous function is the portable way
;; of overriding any incompatible previous gf, except on CLISP.
;; We usually try to do it only for the functions that need it,
;; which happens in asdf/upgrade - however, for ECL, we need this hammer
;; (which causes issues in clisp)
,@
(
when
(
or
#-
clisp
supersede
#+
ecl
t
)
;; which happens in asdf/upgrade - however, for ECL, we need this hammer.
,@
(
when
(
or
supersede
#+
ecl
t
)
`
((
undefine-function
',name
)))
,@
(
when
(
and
#+
ecl
(
symbolp
name
))
; fails for setf functions on ecl
`
((
declaim
(
notinline
,
name
))))
...
...
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