GetFromReleaseDoc.tioga
Rick Beach, March 12, 1987 7:19:23 pm PST
Mike Spreitzer July 14, 1986 5:01:08 pm PDT
Last tweaked by Mike Spreitzer on May 7, 1987 11:46:30 am PDT
Michael Plass, August 27, 1990 4:57 pm PDT
Jules Bloomenthal December 8, 1992 1:06 pm PST
Willie-s, May 2, 1991 11:41 am PDT
GETFROMRELEASE
CEDAR 10.1 —
GetFromRelease
-- or how to live with DIRECTORY clauses and DF files
Rick Beach
© Copyright 1985, 1990, 1991 Xerox Corporation. All rights reserved.
Abstract: GetFromRelease helps remove Mimosa compiler errors that complain about missing mob files for interfaces referenced in the DIRECTORY clause. Use GetFromRelease after a compilation with errors due to missing interface mobs (interface `cannot be opened' in compiler jargon). It reads the Mimosa.log (and hence any Foo.errlog files if you use separate logs) looking for the interface names that are missing. GetFromRelease uses the Cedar version maps (or other version maps) to discover the released files containing the interfaces, makes the necessary attachments, and suggests the necessary IMPORTS clauses to add to your DF file (or add them itself). GetFromRelease can also get its list of goals from the command line, MakeVerify.log, or MakeDo.log, instead of Mimosa.log.
Created by: Michael Plass, Rick Beach
Maintained by: Rick Beach <Beach.pa>
Keywords: Cedar interface, Mimosa, compiler, compiler errors, DF file, MakeDo, programming tools, version map
XEROX  Xerox Corporation
   Palo Alto Research Center
   3333 Coyote Hill Road
   Palo Alto, California 94304

1. The command
name GetFromRelease:
SUMMARY
GetFromRelease [<DFFileName> ← ] [<list of file names> | <pattern>] [<option>]
Attach (or copy) from the release directory those files specfied in list.
If no such files, parse MakeDo, MakeVerify, or Compiler error log for errors
about missing files and attach (or copy) the requisite files.
<DFFileName>, if specified, is updated.
Log options:
 -md: use MakeDo log
 -mv: use MakeVerify log
 -c: use Compiler log
 if no log option specified, use the most recent log.
Other options:
 -~h use version specified in the version maps
 -h use highest extant version (default)
 -~d explicit goals get extension .mob (default)
 -d 'do what I said, darn it!'
 -dir <directory> fetch files from named directory (else, use version maps)
 -here <pattern> fetch files found in current directory according to pattern
 -map <map> use named version map (else use default version maps)
 -f force copy rather than attachment (attachment is the default).
DESCRIPTION
GetFromRelease decides on a list of goal files, which it copies from the release (including CedarChest), and notes the set of DF-File import items needed to obtain the goals. If there is a list of file names on the command line, they are the goals. Otherwise, the goals will be determined from either MakeDo.log, MakeVerify.log, or Mimosa.log, according to the following rules: (1) if -md is given, MakeDo.log is used; otherwise (2) if -mv is given, MakeVerify.log is used; otherwise (3) if -c is given, Mimosa.log is used; otherwise (4) the most recent of the log files will be used.
If an explicit goal is given on the command line without an extension, the extension "mob" will be applied. The feature can be cancelled with the -d switch, and restored with the -~d switch.
The suggested imports will either be added to a DF file or printed out. If the command includes the "DF file name ←" construct, the imports will be added to that DF file. Otherwise, if MakeDo.log or MakeVerify.log is used, and it contains a line like "MakingDo package in DF file name.", the imports will be added to that DF file. Otherwise, the imports will simply be printed in the typescript.
The -h switch makes GetFromRelease use the highest version available in the directory identified by the version maps; -~h makes it use the version identified in the version maps; this is the default behavior.
examples
% MakeDo -df Package.df
MakingDo package in Package.df.
Couldn't Compile []<>Users>YourName.pa>Package>PackageImpl.Mesa because []<>Users>YourName.pa>Package>Basics.mob missing or unmakeable.
% GetFromRelease
[Cedar]<Cedar6.0>MesaRuntime>Basics.mob!7 --> []<>Users>Spreitzer.pa>Gr>Basics.mob!1
User YourName just tried to put his package together with MakeDo, but it failed because he didn't have Basics.mob around. He then invoked GetFromRelease, which retrieved Basics.mob and updated Package.df.
warnings
It may guess something wrong.
stop/undo
The STOP! button in the command tool.
implementation
GetFromReleaseImpl in GetFromRelease.df
contact
Michael Plass, Rick Beach
keyword hints
Compiler, Mimosa, MakeDo, MakeVerify, interfaces, version maps, DF files, compiler errors
keywords
to be supplied by the Index Czar at the appropriate time in the future
bugs
The code to insert things into the DF files automagically does not know about the -Suite conventions, so the chances of the inserted fragments ending up in the right place are slim.