In order to have a programming language be compatibel with GUPPS setup, it must do the following: 1. Log all activity when inputting and outputting data. Here are the exact steps in the scripts. After each check, "# CHECK {no} COMPLETED" must be printed on a line. 1. Check that the GUPPS_HOME variable exists and assign to variable "Home". 2. Load lib/{language}/GUPPS.{ext} module. This module does, a. Loads global variables from "Global.config". 3. Execute a method from the module called "Global" and it returns a hash containing global variables. Save info to variable called "Global". Looks at the file Global.config and Options.default 4. Process the arguments. Anything that has a dash, may expect 0 or 1 additional arguments (or abort). The first non-dash argument is the database, the second is an optional tablename. If no database is specified, abort. 5. Based on the passed arguements, alter the global variables. 6. Parse the flat text files for table definitions, and eventually use XML files exclusively (we can parse the flat files and convert them to XML but eventually flat files will go away.) Parse the config file also. 7. Go through the tables specified, and do this: Based on the information from a global and table specific options, create the sql commands to execute and the ones not beign executed (which the user may want to do later). a. Create the necessary directories. c. Detect if the items alredy exist in the database and what their specs are. If there is a change, then makes changes, delete, or create as necessary. b. Calculate the final settings for the table based on global, database, and table configs. d. Execute the sql options desired. 8. a. Create the web scripts -- can be done later. b. Create web modules and install them. c. Test the modules to see if they load. d. Later, add test to see if webpages work with only a basic command. 9. Install the web scripts and modules. 10. Install the admin webpages for the tables, and for the database. a. Should include not only the ability to alter table info, but and, create, drop, tables, views, sequences, etc. Copycat myphpadmin functionality. b. Also, admin webpages should alse creates tables with all the functions, views, etc. and setup restrictions with _id and _fk automatically, automatic fields, primary keys, etc. Certain properties of tables cannot change.