logical pathnames translations do not work in compiled mode
A very simple test scenario:
[ralt@zap ~]$ cat > foo.lisp <<EOF
> (setf (logical-pathname-translations "FOO")
> (list (list "BAR;*.*" #P"/foo/*.*")))
>
> (format t "~A~%" (translate-logical-pathname #P"FOO:BAR;BAZ"))
> EOF
[ralt@zap ~]$ ./ecl --load foo.lisp --eval '(quit)'
/foo/baz
Interpreted mode works just fine.
[ralt@zap ~]$ ./ecl --eval '(compile-file "foo.lisp" :system-p t)' --eval "(c:build-program \"foo\" :lisp-files '(\"foo.o\"))" --eval '(quit)'
;;;
;;; Compiling foo.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; End of Pass 1.
;;; Finished compiling foo.lisp.
;;;
[ralt@zap ~]$ ./foo
FOO:BAR;BAZ
Compiled mode of exactly the same code fails.
Is there something I'm doing wrongly?
Debugging information:
[ralt@zap ~]$ ./ecl --eval '(format t "~A ~A ~A~%~A ~A ~A~%~A~%" (lisp-implementation-type) (lisp-implementation-version) (ext:lisp-implementation-vcs-id) (software-type) (software-version) (machine-type) *features*)' --eval '(quit)'
ECL 16.1.3 UNKNOWN
Linux 4.12.10-300.vanilla.knurd.1.fc26.x86_64 x86_64
(ASDF-PACKAGE-SYSTEM ASDF3.1 ASDF3 ASDF2 ASDF OS-UNIX NON-BASE-CHARS-EXIST-P
ASDF-UNICODE WALKER CDR-1 CDR-5 LINUX FORMATTER CDR-7 ECL-WEAK-HASH
LITTLE-ENDIAN ECL-READ-WRITE-LOCK LONG-LONG UINT64-T UINT32-T UINT16-T
RELATIVE-PACKAGE-NAMES LONG-FLOAT UNICODE DFFI CLOS-STREAMS CMU-FORMAT UNIX
ECL-PDE DLOPEN CLOS THREADS BOEHM-GC ANSI-CL COMMON-LISP IEEE-FLOATING-POINT
CDR-14 PREFIXED-API FFI X86_64 COMMON ECL)