NrxSrv Compiler server for NetRexx
Download NrxSrv When working on a project that uses the absolutely wonderful NetRexx language the elapsed time of a build can be significantly reduced by employing this NetRexx Compile server, NrxSrv for short.

In small projects the quickest method of compiling is often having the compiler running in interpreter mode in another window, using the -prompt option and commandline history. In bigger projects, with more programmers and lots of source files (and probably mixing different languages, for example NetRexx, Java and C++ code) this quickly becomes awkward because of loss of oversight of what is changed and what not. The solution here is to CVS and Make, to synchronise the work of different people.

But using Make on the command line is worst-case for compiler performance: the shell has to load the Java VM, Java has to load the NetRexx compiler, the NetRexx compiler has to load the source program, and the Java compiler, and it has to process and compile before you have a program. This leads to wasted time during builds, dependent on the change activity of the rest of the team, and it even wastes a lot of time during local development.

Using the NrxSrv compile server, with the nrx client, build throughput using Make is enhanced, especially when fast machines with relatively slow loading Java VM's are used. For example, for a project of about 15000 lines of NetRexx (and a few hundred of Java) in about 150 files, the reduction in build time is more than 8 minutes when run on a G4 PowerPC, shrinking from 12 minutes to less than 4 minutes. Even on an NT or W2K machine with a slightly faster loading JVM build time of a project is easily cut in half, from 10 to 5 minutes.

How to use it

Use is very easy: start the server (in Unix: java NrxSrv&, in Windows: start java NrxSrv). Then use the included nrx shell script (nrx.bat for windows) instead of nrc. (For Unix you'd have to make nrx executable by issueing chmod +x nrx).

Extra compiler options

The server works by accepting the commandline from the client over a TCP/IP socket. The default of port 2001 can be changed by specifying it as a numeric argument to both the client and the server. The output of the compile process is sent back over the socket and displayed in the client session.

When used in combination with the server, nrx has an extra option -pfpn (short for prefix program name) that prefixes all output with the compiled program name, which makes it easier to jump to errors in Emacs compile windows, and possibly in other ide's also.

Current Version: NrxSrv version 1.1.

Version 1.1 has the added option of -shutdown, which makes it possible to shutdown the server from another program or batchjob.

Prerequisite: NetRexx version 2.02