From: rogerr@netcom.com (roger reynolds)
Newsgroups: fj.mail-lists.x-window
Subject: ANNOUNCING RIL - a resource file pre-processor
Date: 10 Sep 92 04:33:05 GMT
Distribution: fj
Organization: Netcom - Online Communication Services  (408 241-9760 guest)

Date: Wed, 9 Sep 92 11:40:44 -0400
Message-Id: <9209091540.AA23731@expo.lcs.mit.edu>
Keywords: WCL TCL MOTIF


I FINALLY have gotten a chance to release RIL for general use.
You can ftp ril.tar.Z from export.lcs.mit.edu in /contrib,
or you can get it from alt.sources.

Here is the README file for RIL, version 1:

What is RIL?
	RIL - "Roger's Interface Language", is basically a "preprocessor" 
	for Resource files.  At a minimum, RIL allows you to write resource
	files in a clean, easy to read and edit style, as "source code"
	for the generation of a true "app-defaults" file.  

	Taken to extremes, RIL allows you to use conditional statements,
	flow control constructs, user-definable procedures and variables,
	and a whole lotta other neat stuff, to specify your interface.
	
	RIL is based on TCL.  If you do not have TCL, you need to get it.
	TCL can be FTP'd from sprite.berkely.edu, among other places.
	TCL is really the guts behind RIL, and it comes with reasonable
	documentation on the details of the language.
	If you already use TCL, you can use the version that you already have
	with some minor edits in the Imakefile.

	RIL has about 3 "modes" of operation:
	1. Write ril scripts and "compile" them to app-defaults files
	   These app-defaults files can be used any place an ordinary
	   resource file can be used. (as app-defaults, fallbacks, Mri...)
	   Usually by the end of a project, I have several .ril source files
	   which are used to create a .ad file for the application.

	2. Use the program "ril" to run an application from its ril source.
	   This is analagous to using Mri on a plain resource file, and is
	   an excellent way to quickly prototype an interface.
	
	3. Link libril.a with an application, and use ril source instead
	   of resource files.  This is most useful if you are already using
	   WCL.  This is how I build all my Motif apps these days.
	   This provides a very convenient cycle for developing interfaces,
	   there is no "compiling" of the ril files.  They are read each
	   time the program runs.  It takes a few seconds longer at start
	   up time, but it beats forgetting to "make" the .ad file and
	   then wondering why your changes didn't show up!

	Please be aware that this is the first release of RIL, and
	has some rough edges, especially in the area of documentation.
	I have chosen to make RIL available at this early stage, in order
	to get user feedback that will help me to see better what is needed
	the most.  Future revisions of RIL will include better documentation,
	and more examples which better show the "fine points" of RIL.

	I WELCOME your comments and suggestions!!!

Who should use RIL?
	Anybody that generates complex resource files can benefit from 
	using RIL.  In particular,  users of WCL will find RIL an
	invaluable tool,  because WCL allows/demands "complete" resource
	files, which can get really large and ugly.

	Also, you can think of RIL as a kind of substitute for UIL.
	This is may especially interesting for OLIT and ATHENA users.

What do I need to get to use RIL, and where do I get it?
	You need to get ril.tar.Z from ftp on export.lcs.mit.edu in /contrib
	or from alt.sources.

	RIL requires TCL 6.3. If you already have TCL 6.3 or later, you can
	use that. Otherwise, get it from sprite.berkely.edu

	RIL works best in conjunction with WCL, though WCL is not required.
	If you don't have WCL you should get it, whether you use RIL or not!
	The most recent version is also available on export.

How do I learn to use RIL?
	There are some demo "programs" in the distribution which should
	serve as a guide to using RIL, and the basics of TCL.
	For a more complete description of the full potential of RIL,
	you can read the TCL documentation included in the TCL distribution.
	If you already use WCL, you should be able to get quite a long 
	very quickly just by looking over the examples.

	The file ril_main.c is a demonstration of how you would incorporate
	the use of ril into an application, as suggested in method 3 above.


What is the future of RIL?
	Well, thats a good question.  RIL is only a few months old, and
	I myself have not had a chance to try all of the things which I
	have tried to provide hooks to do.

	Some things that sould be possible with RIL, but I have not yet
	tried, or don't have examples of, are:
		Building a library of re-usable high-level interface components.
		Defining and using resource "styles".
		
	Some features that I had envisioned, but have not yet implemented
	are:
		Genereate C-code from ril source.
		Error checking on resource specifications.
		Additional language features.
		Suggestions from the world...

Sytems tested:
	I use RIL extensively on a Sun Sparcstation 2, with SunOs 4.1.1,
	X11r5, and Motif 1.1.4
	I have used it with other versions of X and Motif on Suns.
	I have used it on HPUX something or other.
	I would like to hear of other platforms on which it runs successfully.