mirror of
https://github.com/python/cpython.git
synced 2024-11-27 11:55:13 +08:00
Added dllbase_nt.txt and python_nt.rc;
added notes to readme.txt about NumPy targets; added some symbols to python_nt.def.
This commit is contained in:
parent
bc17d299cc
commit
cbc66767c5
38
PC/dllbase_nt.txt
Normal file
38
PC/dllbase_nt.txt
Normal file
@ -0,0 +1,38 @@
|
||||
In Win32, DLL's are "pre-linked" using a specified base address.
|
||||
When the DLL is loaded, an attempt is made to place it at
|
||||
that address. If that address is already in use, a new base address
|
||||
is selected, and the DLL subject to fixups. Apparently, these
|
||||
fixups are very slow, and significant performance gains can be
|
||||
made by selecting a good base address.
|
||||
|
||||
This document is to allocate base addresses to core Python
|
||||
and Python .PYD files, to give a better change of optimal performance.
|
||||
This base address is passed to the linker using the /BASE
|
||||
command line switch.
|
||||
|
||||
|
||||
|
||||
Python.dll - 1e100000 - 1e180000
|
||||
Standard Extension Modules - 1e180000 - 1e200000
|
||||
- socket 1e180000 - 1e188000
|
||||
- _tkinter 1e190000 - 1e1A0000
|
||||
|
||||
Other extension modules
|
||||
- win32api 1e200000 - 1e220000
|
||||
- win32ras 1e220000 - 1e230000
|
||||
- win32lz 1e230000 - 1e240000
|
||||
- timer 1e240000 - 1e250000
|
||||
- mmapfile 1e250000 - 1e260000
|
||||
- avl 1e270000 - 1e270000
|
||||
- dbhash 1e280000 - 1e290000
|
||||
- win32net 1e290000 - 1e2A0000
|
||||
- oleauto 1e2A0000 - 1e2B0000
|
||||
- oleautsv 1e2B0000 - 1e2c0000
|
||||
- nspi 1e2d0000 - 1e2e0000
|
||||
- npipw.dll 1e2e0000 - 1e2f0000
|
||||
- _imaging 1e2f0000 - 1e300000
|
||||
- multiarray 1e300000 - 1e310000
|
||||
- bsddb 1e320000 - 1e330000
|
||||
|
||||
PythonWin
|
||||
win32ui 1e400000 - 1e500000
|
345
PC/python_nt.def
Normal file
345
PC/python_nt.def
Normal file
@ -0,0 +1,345 @@
|
||||
LIBRARY Python14.dll
|
||||
CODE PRELOAD MOVEABLE DISCARDABLE
|
||||
DATA PRELOAD SINGLE
|
||||
|
||||
EXPORTS
|
||||
; Data item exports
|
||||
; PyAnyNumber_Type DATA
|
||||
; PyAnySequence_Type DATA
|
||||
; PyAnyMapping_Type DATA
|
||||
_Py_ZeroStruct DATA
|
||||
_Py_NoneStruct DATA
|
||||
_Py_TrueStruct DATA
|
||||
Py_DebugFlag DATA
|
||||
_PyParser_Grammar DATA
|
||||
_PySys_ProfileFunc DATA
|
||||
_PySys_TraceFunc DATA
|
||||
_PySys_CheckInterval DATA
|
||||
_PyThread_Started DATA
|
||||
_PyParser_TokenNames DATA
|
||||
Py_VerboseFlag DATA
|
||||
Py_SuppressPrintingFlag DATA
|
||||
PyExc_AccessError DATA
|
||||
PyExc_AttributeError DATA
|
||||
PyExc_ConflictError DATA
|
||||
PyExc_EOFError DATA
|
||||
PyExc_IOError DATA
|
||||
PyExc_ImportError DATA
|
||||
PyExc_IndexError DATA
|
||||
PyExc_KeyError DATA
|
||||
PyExc_MemoryError DATA
|
||||
PyExc_NameError DATA
|
||||
PyExc_OverflowError DATA
|
||||
PyExc_RuntimeError DATA
|
||||
PyExc_SyntaxError DATA
|
||||
PyExc_SystemError DATA
|
||||
PyExc_TypeError DATA
|
||||
PyExc_ValueError DATA
|
||||
PyExc_ZeroDivisionError DATA
|
||||
PyExc_KeyboardInterrupt DATA
|
||||
PyExc_SystemExit DATA
|
||||
PyFloat_Type DATA
|
||||
PyInt_Type DATA
|
||||
PyLong_Type DATA
|
||||
PyString_Type DATA
|
||||
PyType_Type DATA
|
||||
PyList_Type DATA
|
||||
PyDict_Type DATA
|
||||
PyDict_Type DATA
|
||||
PyTuple_Type DATA
|
||||
PyFile_Type DATA
|
||||
PyClass_Type DATA
|
||||
PyFunction_Type DATA
|
||||
PyMethod_Type DATA
|
||||
PyInstance_Type DATA
|
||||
PyCFunction_Type DATA
|
||||
PyModule_Type DATA
|
||||
PyCode_Type DATA
|
||||
PyFrame_Type DATA
|
||||
PyRange_Type DATA
|
||||
PyComplex_Type DATA
|
||||
_Py_EllipsesObject DATA
|
||||
PySlice_Type DATA
|
||||
|
||||
_PyObject_New
|
||||
_PyObject_NewVar
|
||||
PyObject_Compare
|
||||
PyObject_GetAttrString
|
||||
PyObject_GetAttr
|
||||
PyObject_HasAttrString
|
||||
PyObject_Hash
|
||||
PyObject_Print
|
||||
PyObject_Repr
|
||||
PyObject_Str
|
||||
PyObject_SetAttrString
|
||||
PyObject_SetAttr
|
||||
PyObject_IsTrue
|
||||
PyFloat_AsString
|
||||
PyFloat_AsDouble
|
||||
PyFloat_FromDouble
|
||||
PyInt_AsLong
|
||||
PyInt_GetMax
|
||||
PyInt_FromLong
|
||||
PyLong_AsDouble
|
||||
PyLong_FromDouble
|
||||
PyLong_AsLong
|
||||
PyLong_FromString
|
||||
PyLong_FromLong
|
||||
PyString_Format
|
||||
PyString_Size
|
||||
PyString_AsString
|
||||
PyString_Concat
|
||||
PyString_ConcatAndDel
|
||||
PyString_FromStringAndSize
|
||||
PyString_FromString
|
||||
_PyString_Resize
|
||||
|
||||
PyList_Append
|
||||
PyList_GetItem
|
||||
PyList_Size
|
||||
PyList_GetSlice
|
||||
PyList_Insert
|
||||
PyList_New
|
||||
PyList_SetItem
|
||||
PyList_SetSlice
|
||||
PyList_Sort
|
||||
PyList_Reverse
|
||||
PyList_AsTuple
|
||||
PyDict_SetItemString
|
||||
PyDict_GetItemString
|
||||
PyDict_DelItemString
|
||||
PyDict_Items
|
||||
PyDict_Items
|
||||
PyDict_Keys
|
||||
PyDict_Keys
|
||||
PyDict_Values
|
||||
PyDict_Values
|
||||
PyDict_Size
|
||||
PyDict_Size
|
||||
PyDict_Clear
|
||||
PyDict_Next
|
||||
PyDict_SetItem
|
||||
PyDict_SetItem
|
||||
PyDict_GetItem
|
||||
PyDict_GetItem
|
||||
PyDict_DelItem
|
||||
PyDict_DelItem
|
||||
PyDict_New
|
||||
PyDict_New
|
||||
PyTuple_GetItem
|
||||
PyTuple_Size
|
||||
PyTuple_GetSlice
|
||||
PyTuple_New
|
||||
PyTuple_SetItem
|
||||
PyFile_GetLine
|
||||
PyFile_AsFile
|
||||
PyFile_Name
|
||||
PyFile_SetBufSize
|
||||
PyFile_FromString
|
||||
PyFile_FromFile
|
||||
PyFile_SoftSpace
|
||||
PyFile_WriteObject
|
||||
PyFile_WriteString
|
||||
PyMethod_Class
|
||||
PyMethod_Function
|
||||
PyMethod_Self
|
||||
PyClass_IsSubclass
|
||||
PyClass_New
|
||||
PyMethod_New
|
||||
PyInstance_New
|
||||
PyInstance_DoBinOp
|
||||
PyFrame_ExtendStack
|
||||
PyFrame_New
|
||||
PyFrame_BlockPop
|
||||
PyFrame_BlockSetup
|
||||
PyFrame_FastToLocals
|
||||
PyFrame_LocalsToFast
|
||||
PyFunction_GetCode
|
||||
PyFunction_GetGlobals
|
||||
PyOS_strtol
|
||||
PyOS_strtoul
|
||||
PyFunction_New
|
||||
PyRange_New
|
||||
Py_FindMethod
|
||||
Py_FindMethodInChain
|
||||
PyCFunction_GetFunction
|
||||
PyCFunction_GetSelf
|
||||
PyCFunction_New
|
||||
PyModule_GetDict
|
||||
PyModule_GetName
|
||||
PyModule_New
|
||||
PyGrammar_AddAccelerators
|
||||
PyGrammar_FindDFA
|
||||
PyGrammar_LabelRepr
|
||||
; PyNode_ListTree ; debugging item only
|
||||
PyNode_AddChild
|
||||
PyNode_Free
|
||||
PyNode_New
|
||||
PyParser_AddToken
|
||||
PyParser_Delete
|
||||
PyParser_New
|
||||
PyParser_ParseFile
|
||||
PyParser_ParseString
|
||||
PyToken_OneChar
|
||||
PyToken_TwoChars
|
||||
PyTokenizer_Free
|
||||
PyTokenizer_Get
|
||||
PyTokenizer_FromFile
|
||||
PyTokenizer_FromString
|
||||
PyNode_Compile
|
||||
PyCode_New
|
||||
PyEval_CallObject
|
||||
PyEval_EvalCode
|
||||
Py_FlushLine
|
||||
PyEval_GetBuiltins
|
||||
PyEval_GetGlobals
|
||||
PyEval_GetLocals
|
||||
PyEval_GetOwner
|
||||
PyEval_GetFrame
|
||||
PyEval_GetRestricted
|
||||
PyEval_InitThreads
|
||||
PyEval_RestoreThread
|
||||
PyEval_SaveThread
|
||||
PyTraceBack_Fetch
|
||||
PyTraceBack_Here
|
||||
PyTraceBack_Print
|
||||
PyTraceBack_Store
|
||||
PyImport_AddModule
|
||||
PyImport_Cleanup
|
||||
PyImport_GetModuleDict
|
||||
PyImport_GetMagicNumber
|
||||
PyImport_ImportModule
|
||||
PyImport_ImportFrozenModule
|
||||
PyImport_Init
|
||||
PyImport_ReloadModule
|
||||
PyNumber_Coerce
|
||||
PyBuiltin_Init
|
||||
PyMarshal_Init
|
||||
Py_InitModule4
|
||||
PySys_Init
|
||||
PySys_SetArgv
|
||||
PySys_SetPath
|
||||
PySys_GetObject
|
||||
PySys_GetFile
|
||||
PySys_SetObject
|
||||
Py_CompileString
|
||||
Py_FatalError
|
||||
Py_Exit
|
||||
Py_Cleanup
|
||||
Py_Initialize
|
||||
PyErr_Print
|
||||
PyParser_SimpleParseFile
|
||||
PyParser_SimpleParseString
|
||||
PyRun_AnyFile
|
||||
PyRun_SimpleFile
|
||||
PyRun_SimpleString
|
||||
PyRun_File
|
||||
PyRun_String
|
||||
PyRun_InteractiveOne
|
||||
PyRun_InteractiveLoop
|
||||
PyMember_Get
|
||||
PyMember_Set
|
||||
Py_BuildValue
|
||||
Py_VaBuildValue
|
||||
PyArg_Parse
|
||||
PyArgs_VaParse
|
||||
PyArg_ParseTuple
|
||||
PyArg_GetChar
|
||||
PyArg_GetDoubleArray
|
||||
PyArg_GetFloat
|
||||
PyArg_GetFloatArray
|
||||
PyArg_GetLong
|
||||
PyArg_GetLongArray
|
||||
PyArg_GetLongArraySize
|
||||
PyArg_GetObject
|
||||
PyArg_GetShort
|
||||
PyArg_GetShortArray
|
||||
PyArg_GetShortArraySize
|
||||
PyArg_GetString
|
||||
PyErr_BadArgument
|
||||
PyErr_BadInternalCall
|
||||
PyErr_NoMemory
|
||||
PyErr_SetFromErrno
|
||||
PyErr_SetNone
|
||||
PyErr_SetString
|
||||
PyErr_SetObject
|
||||
PyErr_Occurred
|
||||
PyErr_Fetch
|
||||
PyErr_Restore
|
||||
PyErr_Clear
|
||||
PyOS_InitInterrupts
|
||||
PyOS_InterruptOccurred
|
||||
PyOS_GetLastModificationTime
|
||||
PyOS_Readline
|
||||
PyErr_CheckSignals
|
||||
PyErr_SetInterrupt
|
||||
PyCallable_Check
|
||||
Py_Main
|
||||
Py_GetCopyright
|
||||
Py_GetVersion
|
||||
|
||||
PyCallable_Check
|
||||
PyObject_CallObject
|
||||
PyObject_CallFunction
|
||||
PyObject_CallMethod
|
||||
PyObject_Type
|
||||
PyObject_Length
|
||||
PyObject_GetItem
|
||||
PyObject_SetItem
|
||||
PyNumber_Check
|
||||
PyNumber_Add
|
||||
PyNumber_Subtract
|
||||
PyNumber_Multiply
|
||||
PyNumber_Divide
|
||||
PyNumber_Remainder
|
||||
PyNumber_Divmod
|
||||
PyNumber_Power
|
||||
PyNumber_Negative
|
||||
PyNumber_Positive
|
||||
PyNumber_Absolute
|
||||
PyNumber_Invert
|
||||
PyNumber_Lshift
|
||||
PyNumber_Rshift
|
||||
PyNumber_And
|
||||
PyNumber_Xor
|
||||
PyNumber_Or
|
||||
PyNumber_Int
|
||||
PyNumber_Long
|
||||
PyNumber_Float
|
||||
PySequence_Check
|
||||
PySequence_Concat
|
||||
PySequence_Repeat
|
||||
PySequence_GetItem
|
||||
PySequence_GetSlice
|
||||
PySequence_SetItem
|
||||
PySequence_SetSlice
|
||||
PySequence_Tuple
|
||||
PySequence_Count
|
||||
PySequence_In
|
||||
PySequence_Index
|
||||
PySequence_Length
|
||||
PyMapping_Check
|
||||
PyMapping_Length
|
||||
PyMapping_HasKeyString
|
||||
PyMapping_HasKey
|
||||
PyMapping_SetItemString
|
||||
PyMapping_GetItemString
|
||||
PyComplex_FromCComplex
|
||||
PyComplex_FromDoubles
|
||||
PyComplex_RealAsDouble
|
||||
PyComplex_ImagAsDouble
|
||||
PyComplex_AsCComplex
|
||||
; PyComplex_Check *** This is a macro ***
|
||||
Py_AtExit
|
||||
Py_GetPath
|
||||
Py_GetExecPrefix
|
||||
Py_GetPrefix
|
||||
Py_GetProgramName
|
||||
PySlice_New
|
||||
PySlice_GetIndices
|
||||
_Py_c_pow
|
||||
_Py_c_quot
|
||||
_Py_c_neg
|
||||
_Py_c_sum
|
||||
_Py_c_prod
|
||||
_Py_c_diff
|
53
PC/python_nt.rc
Normal file
53
PC/python_nt.rc
Normal file
@ -0,0 +1,53 @@
|
||||
// Resource script for Python core DLL.
|
||||
// Currently only holds version information.
|
||||
//
|
||||
#include "ver.h"
|
||||
#include "winver.h"
|
||||
|
||||
#define MS_WINDOWS
|
||||
#include "modsupport.h"
|
||||
#include "patchlevel.h"
|
||||
|
||||
#define PYTHON_VERSION MS_DLL_ID "." PYTHON_API_STRING "\0"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "000004b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "PSA\0"
|
||||
VALUE "FileDescription", "Python Core\0"
|
||||
VALUE "FileVersion", PYTHON_VERSION
|
||||
VALUE "InternalName", "Python DLL\0"
|
||||
VALUE "LegalCopyright", "Copyright © 1991-1996 Stichting Mathematisch Centrum, Amsterdam\0"
|
||||
#ifdef PYTHON_DLL_NAME
|
||||
VALUE "OriginalFilename", PYTHON_DLL_NAME "\0"
|
||||
#endif
|
||||
VALUE "ProductName", "Python\0"
|
||||
VALUE "ProductVersion", PYTHON_VERSION
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x0, 1200
|
||||
END
|
||||
END
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
@ -83,6 +83,8 @@ python The Python main program, named python.exe. This should
|
||||
|
||||
_tkinter The optional _tkinter extension, _tkinter.dll; see below.
|
||||
|
||||
NumPy, multiarray, fast_umath projects to build Numerical Python.
|
||||
|
||||
ALl end products of the compilation are placed in the subdirectory
|
||||
vc40 (which Developer Studio creates); object files are placed in
|
||||
vc40/tmp. There are no separate Release and Debug project variants.
|
||||
@ -101,6 +103,16 @@ placed those files in C:\tcl\bin. In order to use _tkinter, the
|
||||
Tkinter.py module must be on PYTHONPATH. It is found in the
|
||||
Lib\tkinter subdirectory.
|
||||
|
||||
*** How to build Numerical Python ***
|
||||
|
||||
This has been tested only with NumPy 1.0alpha2. Unpack the NumPy
|
||||
tarfile so that it creates a NumPy subdirectory in the Python
|
||||
distribution directory. You need to create exports files
|
||||
NumPy/multiarray.def and NumPy/fast_umath.def (see PC/_tkinter.def for
|
||||
an example). Then build the targets NumPy, multiarray and fast_umath,
|
||||
in that order. To use Numerical Python you have to append NumPy/Lib
|
||||
to sys.path.
|
||||
|
||||
|
||||
Microsoft Visual C++ Version 1.5 (16-bit Windows)
|
||||
=================================================
|
||||
|
Loading…
Reference in New Issue
Block a user