On Allegro CL, UPGRADE-ASDF loads ASDF multiple times
Description
Initially loading ASDF with (require :asdf)
, putting the ASDF source on *central-registry*
and then invoking (asdf:upgrade-asdf)
results in asdf.fasl
being loaded multiple times, as shown here:
; Fast loading
; /Users/rpg/.cache/common-lisp/acl-11.0-macosx-64-bit_apple_silicon/Users/rpg/lisp/asdf/build/asdf.fasl
Warning: FIRST-FEATURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: IMPLEMENTATION-TYPE is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: *IMPLEMENTATION-TYPE* is defined more than once as `variable'
in file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: OPERATING-SYSTEM is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: ARCHITECTURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
; Upgrading ASDF from version 3.2.0 to version 3.3.6.2
; Loading /Users/rpg/lisp/asdf/asdf.asd
; Fast loading
; /Users/rpg/.cache/common-lisp/acl-11.0-macosx-64-bit_apple_silicon/Users/rpg/lisp/asdf/build/asdf.fasl
Warning: FIRST-FEATURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: IMPLEMENTATION-TYPE is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: *IMPLEMENTATION-TYPE* is defined more than once as `variable'
in file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: OPERATING-SYSTEM is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: ARCHITECTURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
; Loading /Users/rpg/lisp/asdf/asdf.asd
; Fast loading
; /Users/rpg/.cache/common-lisp/acl-11.0-macosx-64-bit_apple_silicon/Users/rpg/lisp/asdf/build/asdf.fasl
Warning: FIRST-FEATURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: IMPLEMENTATION-TYPE is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: *IMPLEMENTATION-TYPE* is defined more than once as `variable'
in file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: OPERATING-SYSTEM is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: ARCHITECTURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
; Loading /Users/rpg/lisp/asdf/asdf.asd
; Fast loading
; /Users/rpg/.cache/common-lisp/acl-11.0-macosx-64-bit_apple_silicon/Users/rpg/lisp/asdf/build/asdf.fasl
Warning: FIRST-FEATURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: IMPLEMENTATION-TYPE is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: *IMPLEMENTATION-TYPE* is defined more than once as `variable'
in file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: OPERATING-SYSTEM is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: ARCHITECTURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
; Loading /Users/rpg/lisp/asdf/asdf.asd
Replication
I attach a shell script, allegro-replication.sh, that can be used to replicate the issue. To run it, assign the environment variables ALISP
and ASDF_DIR
appropriately, e.g.:
ALISP=/Applications/AllegroCL64.app/Contents/Resources/alisp ASDF_DIR=/Users/rpg/lisp/asdf/ source allegro-replication.sh
Platforms
I have verified this on Allegro 10.1 and 11. I don't believe it's happening on other lisps. It seems to happen on the Express edition, as well, so is replicable by people who don't have a paid Allegro license.
/cc @frideau