CM3-IDE Configuration Help

CM3-IDE maintains individualized configuration information for each user. The information is kept in $HOME/.CM3_IDE/rstate0.txt and $HOME/.CM3_IDE/rstate0.txt. These files are simple ASCII files that contain Modula-3 strings and a version number. Each pair of strings defines a key-value pair. The keys name various configuration parameters and the values define their settings.

CM3-IDE will not be able to retain your configuration information from session to session unless the $HOME environment variable is set and CM3-IDE can find or create a writable directory named $HOME/.CM3_IDE.

The values that can be configured are described below.

Display settings

Home page is the full pathname of a file containing the HTML page that CM3-IDE should display initially. The directory containing this page will be mapped into CM3-IDE's URL namespace as &sl;user. If no page is specified, CM3-IDE will use its own.

The rest of the settings in this section control how CM3-IDE displays lists of items. If you're using a small font or large screen, you may want to adjust these values to better suit your preferences.

If CM3-IDE needs to display a list of nodes containing more than Max display items, it will try to shorten the list by coalescing entries with common prefixes and suffixes. Max display width (chars) defines the maximum number of characters that CM3-IDE will put into a single multi-node display line. Max display width (columns) defines the maximum number of columns that CM3-IDE will put into a single multi-node display line.

If Multiple windows is on, CM3-IDE will use Netscape-like window targeting to direct its various outputs to separate windows.

Package roots

CM3-IDE supports browsing and building packages from multiple "package roots". A package root is simply a directory containing one or more packages. A package is a directory containing Modula-3 sources in a "src" subdirectory and zero or more subdirectories (e.g. NT386, SOLsun, HPPA) containing object files, libraries, and programs produced by CM3-IDE for a particular platform. You can specify the list of roots that CM3-IDE is to use here. Each root needs a short name that will be used by CM3-IDE to form URLs, a full path in the file system where CM3-IDE is running, and a boolean specifying whether the user is allowed to build packages in that repository.

The "example" and "system" repositories are provided initially by CM3-IDE.

If any of the short names you specify collide with existing roots in CM3-IDE's URL namespace, CM3-IDE will substitute something less useful, like "Root001".

Communication

When CM3-IDE initializes it will determine the local IP address and name of the machine it's running on. If networking is not installed properly or you may need to override the default configuration.

Host name defines the name of the machine running CM3-IDE. The URLs generated by CM3-IDE will contain this name and the browsers attached to CM3-IDE will need the name. The default host name is localhost. This value should work on most platforms with TCP installed, even those that only have intermittent SLIP or PPP connections. If no value is specified for the host name, CM3-IDE attempts a reverse name server lookup using the host's IP address.

IP address defines the IP address of the machine running CM3-IDE. You should not need to explicitly define your IP address, unless your networking installation is badly broken. In case you need it, the IP address bound to localhost is usually 127.0.0.1.

Server port defines the TCP port number that CM3-IDE will use. You may need to change CM3-IDE's default value if it conflicts with one of the TCP services already running on your machine. Usually, using port numbers below 1024 requires special privileges and port 8080 is often used by existing WWW servers.

Misc

Verbose log determines how much junk CM3-IDE spits out in its console log. It's best to leave the verbose log off, unless you're trying to track down a problem with CM3-IDE.

Server threads determines the number of concurrent threads within CM3-IDE that can service HTTP requests. If CM3-IDE becomes sluggish because there are too many users contending for the limited server threads, it may help to increase the number threads. But, it's more likely that CM3-IDE just needs to run on a machine with more memory.

Refresh interval is the number minutes that CM3-IDE will wait between full rescans of your package roots. Setting the value too small can overload your file system and destroy performance for everyone else.

Helper procedures

CM3-IDE uses little procedures written in Quake to interact with its external environment. Quake is an small interpreted language that you should find easy to modify and the default helper procedures are quite short. CM3-IDE's use of these interpreted procedures maximizes your ability to configure and control CM3-IDE's behavior.

When CM3-IDE starts it calls the start_browser(u) function to initiate a WWW browser looking at the URL "u". If the function returns FALSE when it returns, the CM3-IDE server continues running. Otherwise, the server terminates when the function returns.

CM3-IDE calls build_package(p) to build a package "p".

CM3-IDE calls ship_package(p) to ship package "p".

CM3-IDE calls clean_package(p) to clean package "p".

CM3-IDE calls run_program(p) to execute program "p".

And finally, CM3-IDE calls edit_file(f,x) to edit file "f" initially positioned at line "x".