]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Added dllbase_nt.txt and python_nt.rc;
authorGuido van Rossum <guido@python.org>
Fri, 23 Aug 1996 15:48:14 +0000 (15:48 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 23 Aug 1996 15:48:14 +0000 (15:48 +0000)
added notes to readme.txt about NumPy targets;
added some symbols to python_nt.def.

PC/dllbase_nt.txt [new file with mode: 0644]
PC/python_nt.def [new file with mode: 0644]
PC/python_nt.rc [new file with mode: 0644]
PC/readme.txt

diff --git a/PC/dllbase_nt.txt b/PC/dllbase_nt.txt
new file mode 100644 (file)
index 0000000..776d1c1
--- /dev/null
@@ -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 (file)
index 0000000..cbb965b
--- /dev/null
@@ -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 (file)
index 0000000..92dc0c6
--- /dev/null
@@ -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
+
+/////////////////////////////////////////////////////////////////////////////
index 6c66e1e0589a1c2131a929bc66842cb6ee9d1e97..6a4f934fbf68f2687dcbbd58f06756e0c2ae534b 100644 (file)
@@ -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)
 =================================================