msvcr71.dll necessary? - Re: Which compiler will Python 2.5 / Windows (Intel) be built with?
robert
no-spam at no-spam-no-spam.com
Sat Jun 17 04:24:23 EDT 2006
Martin v. Löwis wrote:
> robert wrote:
>
> codecs are in python24.dll, mscvr71, mfc71 and all are not.
> However, they are not in core - the operating system demand-pages code,
> loading into core memory only what is being used. So if you don't use
> the codecs, they are not loaded into core.
>
> While mscvr71 is likely loaded into core (even though it is not in
> python24.dll), mfc71.dll does not play a role at all in Python 2.4.
> Python is written entire in C, not in C++.
yes, yet as a consequence win32xx is forced to be linked against
MFC71.dll (no other functional reason): another MegaByte which I'd need
to package most times - while mfc42 from VC6 is pre-installed on each
Windows.
>
>>* Is there a fundamental reason that the C-RTL of VC6 (which is
>>pre-installed on on all Windows today) is not sufficient for current
>>Python and extensions? instable?
>
>
> The compiler that is used (VS 2003) won't ship it, and links with
> msvcr71.dll. That's why that library version is used.
hmm, yet msvcrt4 is obviously preinstalled on each Windows - and its in
Windows Update Process. Its tagged: "4.20 - OS use only. DO NOT
DISTRIBUTE")
Think, in principle its possible to compile against that with
VS2003/2005... ?
( think msvcrt4 is not delivered extra even in the python2.3 installer )
>>In case not: As the short living VS 2003 compiler is now more rare than
>>the good old VC6, wouldn't it be better to switch back to VC6 for Py2.5
>>or at least to VC6 libs (which are maybe "free" of dev-license as they
>>sit on each Windows).
>
> Better in what respect? Predictability of software development?
> Certainly not: the development will be more predictable if a decision
> that was once taken is implemented as promised.
2.4 and 2.5 compiled stuff is anyway not interchangeable - thus at
alpha-stage a (down) step to a common system lib would probably have no
countable negative effects at all.
> Making more users happy? Certainly not, either. Some users request that
> VS2005 is being used, not that VC6 is being used. Other users request
> that Python 2.5 continues to be built with VS 2003. You can't please
> everybody.
Yet if the C runtime lib (distribution) problem is solved, the question
of the compiler becomes irrelevant. Everybody could use his compiler
without worry - a soft recommendation could be in the Python2.5 doc's to
link extensions also against the same common basic ctrl in order to keep
the numer of libs small.
>>Maybe a suitable policy: the default crtl for Python should better be
>>the default library of the OS and not that of a random compiler which is
>>currently hip?
>
> That would make a good policy if the OS had a system C library. Windows
> doesn't. Windows NT does have a CRT, namely crtdll.dll - but you weren't
> suggesting to use that one, were you?
msvcrt4 is probably a reliable system C lib and still used by most apps.
Think it doesn't lack Pythons needs.
there is also a "msvcrt.dll" - also updated by the Windows system. maybe
its on each Windows ? On XP it has version 7. What is this?
>>* can't the Mingw/gcc be used together with Windows default crt/mfc libs
>>for Python2.5 ? - Python getting away the from this MS studio (lib)
>>harassment?
>
> Sure, you can use gcc/mingw to build extensions for Python 2.4 and
> Python 2.5.
yes, the lib is 90% the object of concern.
>
>>* how many (serious) python users require to build distributable
>>installers (which have carry the python-rtls and non-default crtl's)?
>
>
> Apparently not many. I repeatedly asked for contribution of a
That would be very intersting for me - number about where (project type,
LOC, #-of-users) and how (system, distribution, ..) python is used.
Is there already something. Maybe a research/poll in this NG would be
feasible.
> specification how pythonxy.dll should be modularized, and never
> received one.
Maybe most a most simple cutoff criteria with "costs" does it magically.
Basic proposal:
cost = (C1 * module-size - C2 * frequency-of-module-usage)
I'd suggest:
cutoff cost = 0
C1 = 1/200kB
C2 = 1/80%
Example CJK codecs:
cost = 500k/200k - 30%/80% = 2.13 => too expensive by far
Example zlib:
cost = 70k/200k - 95%/80% = -0.84 => go in
-robert
More information about the Python-list
mailing list