PYVMS - Python on OpenVMS -installation manual PAGE 1 title page __ | \ | | _ |__/ | | - / \ -O- | \ / \_/ \_/ | | _ | | /\/\ / \ | | / || \ \_ \ / | | \ \/ | | \_/ Copyright, 1996 - 1999 by Uwe Zessin ------------------------------------------------------------------------ PYVMS - installation manual August 1999 This manual contains documentation about 'Python on OpenVMS'. Software Version: PYVMS V1.5.2-V005 Uwe Zessin, Germany ------------------------------------------------------------------------ 24-AUG-1999 ZE. PYVMS - Python on OpenVMS -installation manual PAGE 2 Python copyright 0.1 The original Python Copyright (copied from MISC/COPYRIGHT.) Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam, The Netherlands. All Rights Reserved Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the names of Stichting Mathematisch Centrum or CWI or Corporation for National Research Initiatives or CNRI not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. While CWI is the initial source for this software, a modified version is made available by the Corporation for National Research Initiatives (CNRI) at the Internet address ftp://ftp.python.org. STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ------------------------------------------------------------------------ 18-MAY-1998 ZE. PYVMS - Python on OpenVMS -installation manual PAGE 3 PYVMS copyright 0.2 The PYVMS Copyright Copyright 1996-1999, by Uwe Zessin This software is provided to you free of charge. Use at your own risk - if it doesn't work, I disclaim all responsibility. This software may be freely distributed as long as it is accompanied by the copyright notice. If you change this software, you may re-distribute it only if you keep the original notes AND an additional notice identifying you and indicating that you have changed it. ------------------------------------------------------------------------ I have found this wording somewhere on the Internet and liked it. Unfortunately I haven't noted the author's name so I cannot give credit. ------------------------------------------------------------------------ 17-JUL-1999 ZE. PYVMS - Python on OpenVMS -installation manual PAGE 4 table of contents CONTENTS 0.1 The original Python Copyright . . . . . . . . . . 2 0.2 The PYVMS Copyright . . . . . . . . . . . . . . . 3 CHAPTER 1 Introduction 1.1 Welcome . . . . . . . . . . . . . . . . . . . . . 1-1 CHAPTER 2 files from the Python distribution 2.1 the Python core files . . . . . . . . . . . . . . 2-1 2.2 the Python documentation . . . . . . . . . . . . . 2-2 CHAPTER 3 files from the PYVMS distribution 3.1 the PYVMS source kit . . . . . . . . . . . . . . . 3-1 3.2 the PYVMS documentation . . . . . . . . . . . . . 3-1 3.3 precompiled object code . . . . . . . . . . . . . 3-3 3.4 tools to build Python on OpenVMS . . . . . . . . . 3-3 CHAPTER 4 preparations 4.1 disk space calculations . . . . . . . . . . . . . 4-1 4.2 select directory for the installation . . . . . . 4-2 4.3 logical names . . . . . . . . . . . . . . . . . . 4-2 4.4 create directories . . . . . . . . . . . . . . . . 4-3 4.5 foreign commands . . . . . . . . . . . . . . . . . 4-3 4.6 store software kits . . . . . . . . . . . . . . . 4-4 4.7 OpenVMS patches . . . . . . . . . . . . . . . . . 4-4 CHAPTER 5 install / build 5.1 restore the Python distribution . . . . . . . . . 5-1 5.2 create additional directories . . . . . . . . . . 5-2 5.3 save some original files . . . . . . . . . . . . . 5-2 5.4 extract the PYVMS distribution . . . . . . . . . . 5-3 5.5 translate and compile ... . . . . . . . . . . . . 5-4 5.5.1 translate VMSDEF modules . . . . . . . . . . . . 5-4 5.5.2 translate configuration . . . . . . . . . . . . 5-4 5.5.3 compile for the DCL environment . . . . . . . . 5-4 5.5.4 compile for the POSIX environment . . . . . . . 5-5 5.6 setup and go . . . . . . . . . . . . . . . . . . . 5-5 5.7 compile Python files . . . . . . . . . . . . . . . 5-5 5.8 run tests . . . . . . . . . . . . . . . . . . . . 5-6 5.9 convert documentation to RUNOFF format . . . . . . 5-6 5.10 thread support . . . . . . . . . . . . . . . . . . 5-7 PYVMS - Python on OpenVMS -installation manual PAGE 5 table of contents INDEX INDEX-1 CHAPTER 1 Introduction __ | \ | | _ |__/ | | - / \ -O- | \ / \_/ \_/ | | _ | | /\/\ / \ | | / || \ \_ \ / | | \ \/ | | \_/ 1.1 Welcome to PYVMS - the Python programming language running on the OpenVMS operating system. This is the 'Installation Manual'. This manual tells you which software you need, where to get it from and the steps to get Python running on OpenVMS. Please try to read the entire manual before you start. This manual combines the contents of the former 'getting started guide' and the 'building' section of the 'GENeral MANual'. Descriptions of modules with their interface routines, defined symbols and VMS objects are in the 'REFerence MANual'. ------------------------------------------------------------------------ 29-APR-1999 ZE. CHAPTER 2 files from the Python distribution 2.1 the Python core files Beginning with 'Python on OpenVMS' version 1.5.2-V001 the Python distribution is available in a repacked format which should make the installation process easier. You always need to download the file 'python1_5_2.zip' from: - http://www.decus.de/~zessin/kits/python1_5_2.zip 5086 blocks Note that the '.ZIP' archive contains an OpenVMS BACKUP saveset (20601 blocks). The reason is that this gave a better compression factor - a 'ZIP' of the subdirectory resulted in a 6118 blocks '.ZIP' archive. A new version of the ZIP file has been created on 13-MAY-1999, because the "-V" option was ommitted inadvertently during creation of the first one on 01-MAY-1999. If you have downloaded the old version you should be able to fix the saveset after it was extracted from the ".ZIP" archive. See 'restore the Python distribution' in the 'installation' section. The BACKUP saveset contains the complete source of the core interpreter and the Python library. Unpacking this file on OpenVMS creates about 1516 files with 19221 blocks. On a disk with cluster size 4 this allocates 21908 blocks. Even if you download precompiled object code (described later) for OpenVMS, you still need the library files from 'python1_5_2.zip'. --- For your information: the original files were downloaded from: - http://www.python.org/ftp/python/src/py152.tgz or PYVMS - Python on OpenVMS -installation manual PAGE 2-2 files from the Python distribution - ftp://ftp.python.org/ftp/python/src/py152.tgz (4948 blocks) ------------------------------------------------------------------------ 2.2 the Python documentation The Python documentation is decoupled from the interpreter distribution. Start at: - http://www.python.org/doc/ or - ftp://ftp.python.org/pub/python/doc/ (This is the most recent documentation for Python V1.5.2 I am aware of) Note that the PYVMS documentation only describes OpenVMS specifics. You should download the Python documentation, too. A new version of the documentation was made available shortly before the release of PYVMS V1.5.2-V004. This is usually announced in the newsgroups comp.lang.python and comp.lang.python.announce. You might check the addresses mentioned above from time to time if you can't follow the newsgroups. ------------------------------------------------------------------------ 07-JUL-1999 ZE. CHAPTER 3 files from the PYVMS distribution 3.1 the PYVMS source kit You always need to download the PYVMS 'source kit'. - http://www.decus.de/~zessin/kits/pyvms1_5_2-v005src.zip about 2240 blocks This is the PYVMS distribution (source kit) with all files. It has superseeded the old full kit (pyvms1_5_2-v001src.zip) and contains all updates since then. You need these files even if you intend not to build the Python interpreter yourself, but download pre-compiled object modules! ------------------------------------------------------------------------ 3.2 the PYVMS documentation The whole downloadable or online browsable documentation has been updated for version 1.5.2-V005. The documentation is available in different forms: HTML documentation The '.HTML' files are distributed within the 'source kit' that was mentioned above. You can put these files on a web server or directly read them with a browser. See the 'GENeral MANual' for more details. Keep the [.VMS.DOC] tree intact, because there are hyperlinks between the 'manuals'. simple text format These are files that have been run through a text formatter but they don't contain any information about bold printing. The individual pages are separated by FormFeed characters. PYVMS - Python on OpenVMS -installation manual PAGE 3-2 files from the PYVMS distribution Maximum page size is 66 lines, but there are no empty filler lines before a FormFeed character. You can send these files to a printer that doesn't understand that or read them directly with a text editor. All three manuals are separately available: * the 'installation manual' - http://www.decus.de/~zessin/docu/insman/pyvmsinsman.txt about 68 blocks * the 'general manual' - http://www.decus.de/~zessin/docu/genman/pyvmsgenman.txt about 213 blocks * the 'reference manual' - http://www.decus.de/~zessin/docu/refman/pyvmsrefman.txt about 1280 blocks printer format These are files that have been run through the RUNOFF text formatter. They contain information for bold printing. Two variants are available: * A '.MEM' file for output on line printers. This file can be converted to the 'simple text format ('.TXT')' mentioned above. * A '.LNI' file for output on printers understanding ANSI sequences. All 3 manuals are stored in an OpenVMS text library. The library contains a file (README_TLB.TXT) with detailed instructions how to extract the manuals from the library, how to convert a '.MEM' file to a '.TXT' file to get the 'simple text format' mentioned above and how to re-apply the correct record attributes to the '.MEM' and '.TXT' files. Download: * http://www.decus.de/~zessin/kits/pyvms1_5_2-v005doc.tlb about 1900 blocks After the download to an OpenVMS system do a: $ LIBRARY /EXTRACT= README_TLB.TXT - /OUTPUT= README_TLB.TXT - PYVMS1_5_2-V005DOC.TLB Note that the PYVMS documentation only describes the OpenVMS related parts. You should download the Python documentation, too. ------------------------------------------------------------------------ PYVMS - Python on OpenVMS -installation manual PAGE 3-3 files from the PYVMS distribution 3.3 precompiled object code For very specific configurations I MIGHT make precompiled object code available. They may NOT work on your configuration! I'm sorry, but that is the best you can expect from a 'hobby project'. Start at http://www.decus.de/~zessin/pyvms/obj.html to see if and what versions are available. ------------------------------------------------------------------------ 3.4 tools to build Python on OpenVMS Beginning with version 1.5.2-V001 you only need the UNZIP tool that is used to extract (and decompress) a single or multiple files from a '.ZIP' archive. Explaining this tool in more detail is beyond the scope of this manual, sorry. You should be able to get along with it if you follow the instructions in the 'installing' section. I have made available executable files of the tools that I use. They can be downloaded from: - http://www.decus.de/~zessin/pyvms/tools.html Of course, there is NO guarantee that they work for you. The 'General Manual' of the PYVMS documentation has pointers where more up-to date versions (perhaps including source) can be found. ------------------------------------------------------------------------ 24-AUG-1999 ZE. CHAPTER 4 preparations This section describes how the environment for the installation and building process is to be prepared. ------------------------------------------------------------------------ 4.1 disk space calculations The following information should help you to calculate the amount of disk space required during and after installation: PYTHON1_5_2.ZIP - 5086 blocks Can be stored anywhere, however this file should be saved for future use. PYTHON1_5_2.BCK - 20601 blocks Resulting from decompression of PYTHON1_5_2.ZIP. Can be stored anywhere. This space is only required until the Python directory tree is restored. [PYTHON.PYTHON-1_5_2...] - min: 19221 blocks The original Python distribution as restored from PYTHON1_5_2.BCK. On disks with a larger cluster factor more blocks are required. PYVMS1_5_2-V005SRC.ZIP - about 2250 blocks Can be stored anywhere, however this file should be saved for future use. [PYTHON.PYTHON-1_5_2.VMS...] - about 8330 blocks The OpenVMS specific parts as restored from PYVMS1_5_2-V005SRC.ZIP. translated documentation - about 8580 blocks Is stored in the Python tree by running CVT_DOC.COM in each subdirectory of [.VMS.DOC]. Required only if the HTML documentation in the source tree is translated to text or printer formats. The number of blocks includes '.RNO' and other RUNOFF temporary files. Alpha object code - about 26000 blocks PYVMS - Python on OpenVMS -installation manual PAGE 4-2 preparations This amount is from compiling /noDEBUG /OPTIMIZE and includes object modules, the object libraries and the executable. VAX object code - about 31890 blocks This amount is from compiling /noDEBUG /OPTIMIZE and includes object modules, the object libraries and the executable. compiled Python code - 2695 blocks After building the interpreter the source code from the Python library should be pre-compiled. Python documentation is not listed here Total space used on OpenVMS VAX is about 76500 blocks on a disk with a cluster size of 4 blocks. These numbers are from the 1.5.2-V005 version. Updates contain bugfixes for existing files and new functionality in new files so the final disk space that is required is higher. 4.2 select directory for the installation The top-level of the directory tree is assumed to be named [PYTHON]. The current Python environment requires 6 directory levels. All instructions so far assume that the [PYTHON] directory is directly stored in the master file directory ([000000]) of a disk (e.g. DKA100:). No tests have been done to use a concealed logical name for the 'disk'. 4.3 logical names Beginning with version 1.5.2-V001 logical names are used to point to certain directories within the build process. The person who installs the software should be able to type in the commands from the instructions directly or use cut and paste without changes. The following logical names are currently used: PYVMS_DISK Device on which the software is to be installed. Using a concealed device might be possible, but has not been tested. PYVMS_INS_TMP A temporary directory for scratch space during the installation. PYVMS_INS_TOOLS A directory that contains executables of the tools (UNZIP) that are used during the installation. PYVMS - Python on OpenVMS -installation manual PAGE 4-3 preparations PYTHON_INCLUDE Python include directories - these can be used by other modules that are used to enhance Python, but do not live in it's directory tree. PYTHON_OLB Architecture-specific (Alpha, VAX) directory tree that contains object libraries and object files of the Python core interpreter, OpenVMS support and extensions. PYTHON_VMS Almost all of the files from the port to OpenVMS are in this directory tree. Example: $ define PYVMS_DISK DKA100: $ define PYVMS_INS_TMP DKB100:[PYVMSINSTMP] $ define PYVMS_INS_TOOLS PYVMS_DISK:[PYTHON.TOOLS] $! $ define PYTHON_INCLUDE PYVMS_DISK:[PYTHON.PYTHON-1_5_2], - PYVMS_DISK:[PYTHON.PYTHON-1_5_2.INCLUDE] $ _ARCH = "ALPHA" $ if (F$GETSYI("HW_MODEL").LT.1024) then $ _ARCH = "VAX" $ define PYTHON_OLB PYVMS_DISK:[PYTHON.PYTHON-1_5_2.O_'_ARCH'] $ define PYTHON_VMS PYVMS_DISK:[PYTHON.PYTHON-1_5_2.VMS] 4.4 create directories $ create /DIRECTORY /PROTECTION=(G:RE;W:RE) PYVMS_INS_TMP: $ create /DIRECTORY /PROTECTION=(G:RE;W:RE) PYVMS_INS_TOOLS: 4.5 foreign commands Place the executable of the UNZIP tool into PYVMS_INS_TOOLS:. The processor architecture should be part of the filename, e.g. UNZIP_ALPHA.EXE Define a foreign command for UNZIP. The following example can be put into a command procedure to work on Alpha and VAX systems. $ _ARCH = "ALPHA" $ if (F$GETSYI("HW_MODEL").LT.1024) then $ _ARCH = "VAX" $ UNZIP == "$PYVMS_INS_TOOLS:UNZIP_''_ARCH'.EXE" $ delete /SYMBOL /LOCAL _ARCH PYVMS - Python on OpenVMS -installation manual PAGE 4-4 preparations 4.6 store software kits Store the files that you have downloaded into PYVMS_INS_TMP: or download them now into that directory. 4.7 OpenVMS patches See the 'patches' chapter in the 'General Manual' if you might have to apply one to your OpenVMS system. ------------------------------------------------------------------------ ------------------------------------------------------------------------ Now you can start the installation / building. ------------------------------------------------------------------------ 24-AUG-1999 ZE. CHAPTER 5 install / build This chapter describes the steps to build Python on OpenVMS. Version 1.5.2-V005 comes as a complete kit. It should be possible to upgrade from version 1.5.2-V001 or later, but this has not been tried. There is no update from 1.5.1-V009 or older available. ------------------------------------------------------------------------ Specify an owner UIC to be assigned to the files: $ _O = "/OWNER=[1,4]" or use defaults: $ _O = "" 5.1 restore the Python distribution $! -- temporary directory $ set DEFAULT PYVMS_INS_TMP: $! $! -- extract BACKUP saveset $ UNZIP -e PYTHON1_5_2.ZIP $! If you have downloaded the ".ZIP" file before 14-MAY-1999, then you need to apply the following command to the BACKUP saveset, because the "-V" option was ommitted inadvertently during the creation of PYTHON1_5_2.ZIP. $ set FILE /ATTRIBUTES=(RFM:FIX,LRL:32256) PYTHON1_5_2.BCK A new download should not be necessary. $! -- list contents of saveset $ backup PYTHON1_5_2.BCK /SAVE_SET - PYVMS - Python on OpenVMS -installation manual PAGE 5-2 installing + building PYVMS /LIST= PYVMS_DISK:[PYTHON]PYTHON1_5_2.LIS $! $! -- extract files from saveset $ backup PYTHON1_5_2.BCK /SAVE_SET - PYVMS_DISK:[*...] /TRUNCATE /VERIFY '_O' $! $! -- delete saveset - please keep ZIP archive $ delete /log PYTHON1_5_2.BCK;* $! 5.2 create additional directories The intention is to keep the original directories as much unchanged as possible. $ set DEFAULT PYTHON_VMS: $ CREDIR = "CREATE/DIRECTORY ''_O' /PROTECTION=(G:RE,W:RE)/LOG" $! $ CREDIR [] $ CREDIR [.O_ALPHA.MODULES] $ CREDIR [.O_ALPHA.OBJECTS] $ CREDIR [.O_ALPHA.PARSER] $ CREDIR [.O_ALPHA.PYTHON] $ CREDIR [.O_ALPHA.VMS] $ CREDIR [.O_ALPHA.VMS_TOOLS] $ CREDIR [.O_VAX.MODULES] $ CREDIR [.O_VAX.OBJECTS] $ CREDIR [.O_VAX.PARSER] $ CREDIR [.O_VAX.PYTHON] $ CREDIR [.O_VAX.VMS] $ CREDIR [.O_VAX.VMS_TOOLS] $ CREDIR [.TMP] $ delete /SYMBOL /LOCAL CREDIR $! All other directories will automatically be created during the restore of the PYVMS distribution. 5.3 save some original files These files will be replaced with modified ones from the PYVMS distribution. A copy is made for easy access to the original files. BACKUP is used because it retains the creation and revision date + time of the files. The following type extensions are used: *.*$O original file, superceeded by a new one with changes for PYVMS *.*$P original file, superceeded by a new one with Python patches PYVMS - Python on OpenVMS -installation manual PAGE 5-3 installing + building PYVMS *.*$OP original file, superceeded by a new one with Python patches AND changes for PYVMS $ set default PYVMS_DISK:[PYTHON.PYTHON-1_5_2.LIB] $ BACKUP COMPILEALL.PY;1, TEMPFILE.PY;1 *.PY$O;* /OWNER=ORIGINAL $! $ set DEFAULT PYVMS_DISK:[PYTHON.PYTHON-1_5_2.LIB.TEST] $ backup TEST_SUPPORT.PY;1 *.PY$O;* /OWNER=ORIGINAL $! $ set DEFAULT PYVMS_DISK:[PYTHON.PYTHON-1_5_2.MODULES] $ backup MAIN.C, SELECTMODULE.C, SIGNALMODULE.C, SOCKETMODULE.C, - TIMEMODULE.C, _LOCALEMODULE.C *.C$O /BY_OWNER=ORIGINAL /LOG $ backup TIMING.H *.H$O /BY_OWNER=ORIGINAL /LOG $! $ set DEFAULT PYVMS_DISK:[PYTHON.PYTHON-1_5_2.PYTHON] $ backup IMPORT.C *.C$O /BY_OWNER=ORIGINAL /LOG $! 5.4 extract the PYVMS distribution $! -- list contents of .ZIP file $ set DEFAULT PYVMS_DISK:[PYTHON] $! $ define /USER_MODE SYS$OUTPUT [PYTHON]PYVMS1_5_2-V005SRC.LIS $ UNZIP -l PYVMS_INS_TMP:PYVMS1_5_2-V005SRC.ZIP $! $! -- extract files/directories from ZIPped file $ set PROTECTION= (S:RWED,O:RWED,G:RE,W:RE) /DEFAULT $ define /USER_MODE SYS$OUTPUT - PYVMS_DISK:[PYTHON]PYVMS1_5_2-V005SRC.UNZIP $ UNZIP -e -o PYVMS_INS_TMP:PYVMS1_5_2-V005SRC.ZIP $! There are some files that have been saved with OpenVMS specific file attributes, because they contain lines with explicit characters which ZIP/UNZIP would otherwise corrupt. (The SRC kit is created without the "-V" option). $ set DEFAULT PYTHON_VMS: $ set DEFAULT [.DOC] $! $ UNZIP -e CVT__RNO.ZIP $! $ delete CVT__RNO.ZIP;* $! PYVMS - Python on OpenVMS -installation manual PAGE 5-4 installing + building PYVMS 5.5 translate and compile ... The source kit (SRC) of the PYVMS distribution does not contain any pre-translated or pre-compiled files in order to save space. Pre-compiled objects kits might be available. An objects kit will contain instructions how to install it. 5.5.1 translate VMSDEF modules These modules contain OpenVMS version information, item codes, bitmasks and constants: $ SET DEFAULT PYTHON_VMS: $ show TIME $ @ VMSDEF2MAR-ALL ! calls VMSDEF2MAR.COM $ show TIME $ @ VMSDEF_BLDDIR2MAR.COM $ show TIME $ @ VMSVER2MAR.COM VMSDAT_VMSVER.DAT $ show TIME 5.5.2 translate configuration Details of the configuration process are in the 'General Manual'. $ @ CONFIG_INITTAB2MAR CONFIG.DAT "D" $ @ MODULEMETHODS2MAR VMS_LIB__METHODS.DAT "." "." $ @ MODULEMETHODS2MAR VMS_SYS__METHODS.DAT "." "." 5.5.3 compile for the DCL environment $ @ DCC-ALL $! $ @ LINKD_PY $! $ @ LINKD_PGEN The whole translation and compilation process took about one hour on a VAXstation 4000 modell 60. PYVMS - Python on OpenVMS -installation manual PAGE 5-5 installing + building PYVMS 5.5.4 compile for the POSIX environment $ @ PCC-ALL $! $ @ LINKP_PY @@ No attempt has been made to build 'PGEN' for POSIX - I haven't even used it in the DCL environment... 27-MAR-1999 - the Posix part has not been tested / kept up to date. 5.6 setup and go Python on OpenVMS needs some symbols: PYTHON A foreign command pointing to the executable. PYTHONPATH Information where the library is. PYTHONSTARTUP Points to a file. In VMS speak this is an 'initialization file' that Python executes on startup. PYTHONUNBUFFERED Tell Python to use unbuffered I/O. @@maintenance note: Symbol list could be moved to a different chapter. The SETUP.COM procedure defines them dynamically: $ @SETUP Now you can run Python on OpenVMS: $ PYTHON Python 1.5.2 (V005, Sun Aug 22 15:22:14 1999) [DECC] on vms Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam portions Copyright 1996-1999 Uwe Zessin >>> Beginning with version 1.5.2-V005 the date printed is dynamically taken from the image header's link date - the code is in VMS__GETBUILDINFO.C. 5.7 compile Python files For performance reasons the '.PY' files from the Python library should be pre-compiled, because non-privileged users can not create '.PYC' files in that directories and each call would result in a new (in PYVMS - Python on OpenVMS -installation manual PAGE 5-6 installing + building PYVMS memory) compilation. $ SET DEFAULT PYTHON_VMS: $ @ SETUP $ @ [.TOOLS]COMPILEALL This adds about 138 '.PYC' files with 2695 blocks. 5.8 run tests $ python Python 1.5.2 (V005, Sun Aug 22 15:22:14 1999) [DECC] on vms Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam portions Copyright 1996-1999 Uwe Zessin >>> import test.autotest test_grammar test_opcodes test_operations test_builtin test_exceptions test_types All 6 tests OK. >>> Note: this (and other tests) (currently) do not work with the POSIX version. ---------- You might need a patch to the DEC C RTL. Please see the description of patch VAXACRT11_061 in the 'Patches' chapter even if you don't run OpenVMS VAX V6.1. 5.9 convert documentation to RUNOFF format The PYVMS distribution contains full sources to format the files for line printer or text output. You do not need to download the files 'pyvms1_5_2-v005doc.tlb', 'pyvmsinsman.txt', 'pyvmsgenman.txt' or 'pyvmsrefman.txt' from the Internet if you have the 'PYVMS source distribution' and access to this chapter. Passing a "*" to CVT_DOC.COM started working with version 1.5.1-V009. (Note that version 1.5.2-V001 is newer.) $ set DEFAULT [PYTHON.PYTHON-1_5_2.VMS.DOC.GENMAN] $ @ CVT_DOC "*" $! $ set DEFAULT [PYTHON.PYTHON-1_5_2.VMS.DOC.REFMAN] $ @ CVT_DOC "*" $! PYVMS - Python on OpenVMS -installation manual PAGE 5-7 installing + building PYVMS $ set DEFAULT [PYTHON.PYTHON-1_5_2.VMS.DOC.INSMAN] $ @ CVT_DOC "*" ------------------------------------------------------------------------ 5.10 thread support A short test to make threads available for the DCL variant of the Python interpreter has been done on OpenVMS VAX V6.1. These instructions have been updated for version 1.5.2-V005 (the first tests have been done with a version older than 1.5.1-V008). Note that with OpenVMS version 7.0 there have been changes to the threads library. At lease two people reported problems, but did not attempt to solve them. Here are the instructions: Uncomment the following lines in CONFIG.H #define WITH_THREAD 1 #define _POSIX_THREADS 1 (Re)compile all modules: $ set DEFAULT PYTHON_VMS: $ @ DCC-ALL The following two modules need to be compiled, too: $ @ DCC_MODULES THREADMODULE $ @ DCC_PYTHON THREAD Update the configuration to include the thread module: $ @ CONFIG_INITTAB2MAR.COM CONFIG.DAT DT $ @ DMACRO_VMS CONFIG_INITTAB.MAR Link the executable: $ @ LINKD_PY Test it: $ @ SETUP $ SET DEFAULT [.DEMO] $ PYTHON PYVMS - Python on OpenVMS -installation manual PAGE 5-8 installing + building PYVMS [...] >>> import thread1.py Note that no follow-on work has been done regarding threads. --- To revert to non-threading mode: - undo the changes in CONFIG.H - re-compile all modules again, but leave off THREADMODULE and THREAD - Update configuration without the thread module. Pass "D", not "DT" to CONFIG_INITTAB2MAR.COM - link the executable again. ------------------------------------------------------------------------ 23-AUG-1999 ZE. Index PAGE INDEX-1 INDEX files symbols python1_5_2.zip, 2-1 PYTHON, 5-5 pyvms1_5_2-v005doc.tlb, 3-2, PYTHONPATH, 5-5 5-6 PYTHONSTARTUP, 5-5 pyvms1_5_2-v005src.zip, 3-1 PYTHONUNBUFFERED, 5-5 pyvmsgenman.txt, 3-2, 5-6 pyvmsinsman.txt, 3-2, 5-6 pyvmsrefman.txt, 3-2, 5-6 README_TLB.TXT, 3-2 tools SETUP.COM, 5-5 UNZIP, 3-3, 4-3