Ruby for OpenVMS for OpenVMS I64 (BETA) July 2017 1. Introduction Thank your for your interest in this port of Ruby to OpenVMS (I64). The current release of Ruby for OpenVMS is based on the Ruby 2.2.2 Open Source distribution. Ruby (https://www.ruby-lang.org/en/) is a dynamic, reflective, object-oriented, general-purpose Open Source programming language with a focus on simplicity and productivity, providing an elegant syntax that is natural to read and easy to write. This OpenVMS port of Ruby includes the core binary distribution and several extensions, including the Bunny AMQP library, the EventMachine event processing engine, and several others (listed below). It is anticipated that additional modules will be included in future releases. 2. Requirements The kit you are receiving has been compiled and built using the operating system and compiler versions listed below. While it is highly likely that you will have no problems installing and using the kit on systems running higher versions of the products listed, we cannot say for sure that you will be so lucky if your system is running older versions. o OpenVMS 8.4 I64 o The software must be installed on an ODS-5 enabled disk (the installation will fail if this requirement is not met) o HP TCP/IP Services V5.7 (if you wish to perform network operations) It has not been verified whether the kit works with the MultiNet TCP/IP stack, but there is a good chance that it will. o Sufficient disk space and sufficient free global sections If you wish to install the Ruby shareable image (RUBY$SHR.EXE), note that the image takes four global section and approximately 13000 global pages. In addition to the above requirements, it is assumed that the reader has a good knowledge of OpenVMS and of software development in the OpenVMS environment. 3. Recommended reading It is recommended that developers read some of the excellent tutorials and other documentation available via the Ruby web site (https://www.ruby-lang.org/en/). The web site provides numerous links to books, technical guides, whitepapers, and numerous other documents that provide useful information on developing applications using Ruby. 4. Installing the kit The kit is provided as an OpenVMS PCSI kit (VSI-I64VMS-RUBY-V0202-2I-1.PCSI) that can be installed by a suitably privileged user using the following command: $ PRODUCT INSTALL RUBY The installation will then proceed as follows (output may differ slightly from that shown): Performing product kit validation of signed kits ... The following product has been selected: VSI I64VMS RUBY V2.2-2I Layered Product Do you want to continue? [YES] Configuration phase starting ... You will be asked to choose options, if any, for each selected product and for any products that may be installed to satisfy software dependency requirements. Configuring VSI I64VMS RUBY V2.2-2I: Ruby for OpenVMS is based on Ruby Version 2.2.2 B) Copyright 2015 VMS Software Inc. VSI Software Inc. * This product does not have any configuration options. Execution phase starting ... The following product will be installed to destination: VSI I64VMS RUBY V2.2-2I DISK$I64SYS:[VMS$COMMON.] Portion done: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% The following product has been installed: VSI I64VMS RUBY V2.2-2I Layered Product VSI I64VMS RUBY V2.2-2I: Ruby for OpenVMS is based on Ruby Version 2.2.2 Post-installation tasks are required. To define the Ruby runtime at system boot time, add the following lines to SYS$MANAGER:SYSTARTUP_VMS.COM: $ file := SYS$STARTUP:RUBY$STARTUP.COM $ if f$search("''file'") .nes. "" then @'file' To shutdown the Ruby runtime at system shutdown time, add the following lines to SYS$MANAGER:SYSHUTDWN.COM: $ file := SYS$STARTUP:RUBY$SHUTDOWN.COM $ if f$search("''file'") .nes. "" then @'file' 4.1. Post-installation steps After the installation has successfully completed, include the commands displayed at the end of the installation procedure into SYSTARTUP_VMS.COM to ensure that the logical names required in order for users to use the software are defined system-wide at start-up. Users will then be able to use the Ruby interpreter by defining a foreign command as follows: $ RUBY :== $RUBY$ROOT:[BIN]RUBY.EXE Generally speaking there are no special quota or privilege requirements required for users wishing to develop applications using Ruby, although it should be noted that some extensions may have special requirements (for example, networking extensions may require a high BYTLM quota.) 5. What is missing There are a number of components that are either missing in this beta release or that do not function correctly. Most notably, the Ruby gem package installation facility will not function correctly, and the kit does not include any of the C header files that are reqired for the implementation of custom dynamic modules. It is anticipated that these and other related issues will be resolved in future releases. 6. Included modules As noted previously, this release of Ruby for OpenVMS includes the core binary distribution and several extensions. The included additional modules are listed below. o Bunny (http://rubybunny.info); a popular, easy-to-use, well-maintained Ruby client for RabbitMQ (3.3+). o Rack (http://rack.github.io/); a Ruby web server interface. o EventMachine (http://www.rubyeventmachine.com); a fast, simple event-processing library for Ruby programs. o Thin (http://code.macournoyer.com/thin/); a very fast and simple Ruby web server.