summaryrefslogtreecommitdiff
path: root/PC
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1996-08-23 15:48:14 +0000
committerGuido van Rossum <guido@python.org>1996-08-23 15:48:14 +0000
commitcbc66767c5fe08125d883a1e2432d80f8083649d (patch)
tree842ca0ded80d940c2a049e4d01956466533668d6 /PC
parentbc17d299cc1e30661640f6433340d7740a7c05eb (diff)
downloadcpython-git-cbc66767c5fe08125d883a1e2432d80f8083649d.tar.gz
Added dllbase_nt.txt and python_nt.rc;
added notes to readme.txt about NumPy targets; added some symbols to python_nt.def.
Diffstat (limited to 'PC')
-rw-r--r--PC/dllbase_nt.txt38
-rw-r--r--PC/python_nt.def345
-rw-r--r--PC/python_nt.rc53
-rw-r--r--PC/readme.txt12
4 files changed, 448 insertions, 0 deletions
diff --git a/PC/dllbase_nt.txt b/PC/dllbase_nt.txt
new file mode 100644
index 0000000000..776d1c1f81
--- /dev/null
+++ b/PC/dllbase_nt.txt
@@ -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
diff --git a/PC/python_nt.def b/PC/python_nt.def
new file mode 100644
index 0000000000..cbb965ba98
--- /dev/null
+++ b/PC/python_nt.def
@@ -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
diff --git a/PC/python_nt.rc b/PC/python_nt.rc
new file mode 100644
index 0000000000..92dc0c6d2e
--- /dev/null
+++ b/PC/python_nt.rc
@@ -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
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/PC/readme.txt b/PC/readme.txt
index 6c66e1e058..6a4f934fbf 100644
--- a/PC/readme.txt
+++ b/PC/readme.txt
@@ -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)
=================================================