[Python-Dev] Case-sensitive import
Steven D. Majewski
sdm7g@virginia.edu
Tue, 27 Feb 2001 20:59:56 -0500 (EST)
On Tue, 27 Feb 2001, Tim Peters wrote:
> Please just solve the problem for the platforms you're actually running on --
> case-insensitive filesystems are not "Unix only" in any meaningful sense of
> that phrase, and each not-really-Unix platform is likely to have its own
> stupid gimmicks for worming around this problem anyway. For example, Cygwin
> defers to the Windows API. Great! That solves the problem there.
> Generalization is premature.
This isn't an attempt at abstract theorizing: I'm running Darwin with and
without MacOSX on top, as well as MkLinux, LinuxPPC, and of course,
various versions of "Classic" MacOS on various machines. I would gladly
drop the others for MacOSX, but OSX won't run on all of the older
machines. I'm hoping those machines will get replaced before I actually
have to support all of those flavors, so I'm not trying to bend over
backwards to be portable, but I'm also trying not to shoot myself in
the foot by being overly un-general!
It's not, for me, being any more premature than you wondering if the
VMS users will scream at the changes. ( Although, in both cases, I
think it's reasonable to say: "I thought about it -- now here's what
we're going to do anyway!" I suspect that folks running Darwin on
Intel are using UFS and don't want the overhead either, but I'm not
even trying to generalize to them yet! )
> > In other words: I can rename the current version to check_case and
> > fix the args to match. (Although, I recall that the args to check_case
> > were rather more awkward to handle, but I'll have to look again. )
>
> Good! I'm not going to wait for that, though. I desperately need a nap, but
> when I get up I'll check in changes that should be sufficient for the Windows
> and Cygwin parts of this, without regressing on other platforms. We'll then
> have to figure out whatever #ifdef'ery is needed for your platform(s).
__MACH__ is predefined, meaning mach system calls are supported, and
__APPLE__ is predefined -- I think it means it's Apple's compiler. So:
#if defined(__MACH__) && defined(__APPLE__)
ought to uniquely identify Darwin, at least until Apple does another OS.
( Maybe it would be cleaner to have config add -DDarwin switches -- or
if you want to get general -D$MACHDEP -- except that I don't think all
the values of MACHDEP will parse as symbols. )
-- Steve Majewski