I realise that this is a known issue, but if you have more than one .o
file linked in with the same basename (pathname-name), then it's not
going to be able to link. Is there any chance of getting this fixed, by,
say, including the “path” of ASDF modules that a file belongs to. eg.
init_CFFI_SRC_TYPES, where types.o would have been part of the “src”
module of the “cffi” system. Would this be difficult to implement? Would
this break any other code?
For people using, eg. cffi (and probably many others systems), the
basename of a file is not enough uniqueness, I think. CFFI is a
particularly good example, as it includes common base-names in its src
directory, like "package", "types", "libraries", "strings", "functions",
"utils", "features", which are all very tempting names for other systems.
Or, is there another way to avoid these conflicts?
From: Juan Jose Garcia-Ripoll <jjgarcia@us...> - 2008-01-30 21:18:20
there exists a global variable, si::*init-function-prefix*, which can
be used to further disambiguate different files. The problem is that
this file affects all uses of BUILD and COMPILE-FILE, so that it is
difficult to use differnent prefixes for, say, different components of
an ASDF project.
Using the full path is not an option. The reason is that object files
have a limit on the numeber of characters a function name may have and
I do not want to run on that limit.
I am currently pondering other options. The most promising one is to
use an encoded name with a date and duplicate this information in the
string with the lisp objects. ECL could then scan the object files
looking for this information.
Facultad de Fisicas, Universidad Complutense,
Ciudad Universitaria s/n Madrid 28040 (Spain)