> Of course, the detailed behavior of LP translation is so poorly constrained > by the ANS that using LPs just squeezes the portability toothpaste from one > end of the tube to the other, out through the nozzle, and onto your keyboard. You'd think it's toothpaste, but actually it's radioactive sludge. Don't touch it. Do go anywhere near it. Keep it away from kids, keep it away from adults without a hazmat suit.
Making UIOP and ASDF work with "Logical" pathnames was hell. And it won't actually "work" that well: between limitations that SBCL enforces but not others implementations, quirks and bugs of many implementations, atrocious performance (guaranteed O(N)), and impossibility for non-gurus to configure, much less debug... it's 100% worse than using a variable and uiop:subpathname and/or pathname-translations, 100% of the time. Only valid use I've ever seen was to have location-independent debug information on CCL, but that was CCL-only magic. Oh yeah, did you know that it's impossible to not have a HOST? And on some implementation, the HOST will determine the syntax and various limitations, such that you cannot, conceivably, have a portable representation of pathname in CL, even less so in presence of Logical Pathnames? Not that any of the standard functions (especially NOT merge-pathnames, as you might like to believe) is designed to deal with relative pathnames properly. It took me months to get UIOP to kind of work correctly on portably most of the time for most of the cases on most implementations... but absolutely not, never, not possible using Logical Pathnames—UIOP will do its best, but the best isn't very good. —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org “There are just two rules of governance in a free society: Mind your own business. Keep your hands to yourself.” — P. J. O'Rourke
