28 June 2022. SMS. GNU bc 1.06b for VMS ==================== ------------------------------------------------------------------------ Disclaimer ---------- No claims of any sort are made herein. The main bc developers are probably unaware of this effort. Any suggestions for improving the code in the VMS-specific sections are welcome, but low expectations are more realistic than high ones. ------------------------------------------------------------------------ Description ----------- This note accompanies a quick VMS port of bc 1.06, a GNU (free) arbitrary precision calculator. The most obvious features seem to work, but many have not been tested. The kit includes both the bc and dc programs. Built and tested (slightly) in these environments: Alpha objects and executables (built on VMS V8.4-2L1 with VSI C V7.4-002). IA64 objects and executable (built on VMS V8.4-2L3 with VSI C V7.4-001). VAX objects and executables (built on VMS V7.3 with Compaq C V6.4-005). x86_64 objects and executable (built on VMS V8.4-2L3 with VSI C X7.4-547 (GEM 50V6F)). ------------------------------------------------------------------------ News ---- Version 1.06b 2022-06-10 ------------------------- - Changed builders to accommodate x86_64 hardware architecture. ([.vms]descrip.mms, [.vms]descrip_src.mms) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Version 1.06a 2010-04-06 ------------------------- - New. Bugs are possible. No VMS-specific features. No automatic testing. ------------------------------------------------------------------------ Changes to Source Files ----------------------- Files new for VMS: [.vms] COLLECT_DEPS.COM Dependency collector for DESCRIP_MKDEPS.MMS. config.h_vms VMS-specific config.h. "a" version suffix. decc_ver.c Program to show build-time versions: VMS, C compiler, C run-time library. DESCRIP.MMS Main MMK or MMS description ("make") file. DESCRIP_MKDEPS.MMS Source dependency generator description file. DESCRIP_SRC.MMS Source list description file. DESCRIP_SRC_FLAGS.MMS Compile and link flags description file. [.] DESCRIP*.MMS Various MMS description files. Files modified for VMS: [.lib] testmul.c Added some "#include" directives of system header files for compiler complaint reduction. ------------------------------------------------------------------------ Instructions ------------ Extract the files from the distribution kit. The MMS/MMK builders should simply work, with few, if any, exotic options to be specified. The builder options (MMS/MMK macros) are described in the main builder file, "[.vms]DESCRIP.MMS". MMK or an old version of MMS may need a definition of "MMSDESCRIPTION_FILE". An error message should explain this, if needed. Example build commands: SET DEFAULT [.bc-1_06_vms.vms] ! Required. MMS CLEAN ! Delete all product files ! for the current architecture. MMS CLEAN_ALL ! Delete all product files ! for all architectures. MMS ! Normal build. DFLT = F$ENVIRONMENT( "DEFAULT") ! Basic MMK build, with MMK /MACRO = (MMSDESCRIPTION_FILE='DFLT') ! explicit definition of DELETE /SYMBOL DFLT ! MMSDESCRIPTION_FILE. ! ("dev:[dir]" is enough.) Set the symbols for the foreign commands: BC :== $ actual_device:[actual.directory]BC.EXE DC :== $ actual_device:[actual.directory]DC.EXE Try to read the original documentation to learn how to use bc and dc. The builders normally generate two additional programs, DECC_VER.EXE and TESTMUL.EXE. Running DECC_VER.EXE should show some build-time versions for VMS, the C compiler, and the C run-time library, which may be helpful when reporting problems. TESTMUL.EXE is built from [.lib]testmul.c, and could be used to generate a "muldigits.h" header file, but the default value ("#define MUL_BASE_DIGITS 80") in [.lib]number.c is probably suitable. ------------------------------------------------------------------------ Steven M. Schweda (+1) 651-699-9818 (voice) 382 South Warwick Street sms@antinode.info Saint Paul MN 55105-2547