[comp.sys.mac.programmer] Compiling with MPW Projector - Is this obvious??

tomc@mntgfx.mentor.com (Tom Carstensen) (12/03/88)

Am I just missing the obvious, or is there no way to compile
a project without checking everything out first??  If so,
this is beyond clumsy.  

For example, if I want to build everything marked "beta1",
then do I have to check all of the files named "beta1" out??

Compiling a project that's using projector I don't believe
was ever mentioned in the MPW manuals.

:------------------------------------------------------------:
:                              | GEnie:       T.CARSTENSEN   :
:      Thomas Carstensen       | Delphi:      CARSTENSEN     :
:       Mentor Graphics        | CompuServe:  73627,2762     :
:     8500 SW Creekside Pl.    |                             :
:   Beaverton, OR 97005-7191   | tomc@pdx.MENTOR.COM         :
:       (503) 626-7000         | ...{sequent,tessi,attunix,  :
:                              |     apollo}!mntgfx!tomc     :
:------------------------------------------------------------:
:     . . . two seperate minds, but with one single memory!  :
:                                       - Max Headroom       :
:------------------------------------------------------------:

han@Apple.COM (Byron Han, Architect) (12/09/88)

You could use something like this below (modification will be necessary)
to "compile a project".  

checkout D6Files
Make

which assuming that you have defined a name to be D6Files and have a 
makefile named Makefile.

In MPW Projector, the concept of a project is different from that of 
Lightspeed Pascal.  The LSP Project contains information on the 
project parameters (creator, type, debugging on, etc), links to the actual
text files, and contain compiled code as well.  There is, however no 
historical information stored in LSP Project files.

With MPW Projector, the Project Database contains the source files and deltas
from version to version for the source files that comprise a project.
These deltas are created from the versions that are checked in.  
In this manner, if you are conscientiously checking in and checking out
files, you can recover to a previous version if things get messed up.  
You still need to compile your sources into object files to be linked.
The purpose of MPW Project Databases is to maintain source code revision
control and recovery.

With Lightspeed Pascal, unless you are specifically backing up your 
project file, you will be SOL. (sorta outta luck).  The purpose of Lightspeed
Pascal (and C) Project files is to eliminate the need for makefiles.  There
is no source code control provided.

MPW Projector really shows its stuff when you are working on a multi-person
I have no connection with Symantec/THINK Technologies except as a satisfied user
of Lightspeed C and Lightspeed Pascal.  This is not an official Apple
position or statement.  Just my experience with MPW, and the THINK
Technologies/Symantec compilers.
+-----------------------------------------------------------------------------+
| Disclaimer: Apple has no connection with my postings.                       |
+-----------------------------------------------------------------------------+
Byron Han, Communications Architect      Macintosh xxx: The Next Generation...
Apple Computer, Inc.                     -------------------------------------
20525 Mariani Ave, MS27Y                 Internet: han@apple.COM
Cupertino, CA 95014                      UUCP:{sun,voder,nsc,decwrl}!apple!han
--------------------------------------   GENIE: BYRONHAN
ATTnet: 408-974-6450   Applelink: HAN1   CompuServe: 72167,1664
------------------------------------------------------------------------------

siegel@endor.harvard.edu (Rich Siegel) (12/09/88)

In article <21917@apple.Apple.COM> han@Apple.COM (Byron Han, Architect) writes:
>In MPW Projector, the concept of a project is different from that of 

	Thanks for the explanation; it would be too easy if the project
database also tracked file interfaces. Then I might have a reason to use
MPW! ;-)

	But seriously, folks...

>Lightspeed Pascal.  The LSP Project contains information on the 
>project parameters (creator, type, debugging on, etc), links to the actual
>text files, and contain compiled code as well.  There is, however no 
>historical information stored in LSP Project files.

	Right. The project doument also contains information about the
interface parts of Pascal source files, so that the compilations can be
based on which INTERFACES have changed, rather than on the modification date
of the file.

>With Lightspeed Pascal, unless you are specifically backing up your 
>project file, you will be SOL. (sorta outta luck).  The purpose of Lightspeed
>Pascal (and C) Project files is to eliminate the need for makefiles.  There
>is no source code control provided.

	Indeed! Supplied with version 2.0 of Lightspeed Pascal is a utility
(which I wrote :-)) called "BackupProject", which will perform backups of
Lightspeed Pascal (or LightspeedC) project documents, with associated sources.
This only works in Lightspeed Pascal version 2.0 projects, because in
these projects BackupProject can store enough information to do a pseudo-
incremental backup. BackupProject also backs up LightspeedC 3.0 projects, but
incremental backups aren't possible.

		--Rich



Rich Siegel
Staff Software Developer
THINK Technologies Division, Symantec Corp.
Internet: siegel@endor.harvard.edu
UUCP: ..harvard!endor!siegel
Phone: (617) 275-4800 x305

Any opinions stated in this article do not necessarily reflect the views
or policies of Symantec Corporation or its employees.

lpringle@bbn.com (Lewis G. Pringle) (12/17/88)

In article <21917@apple.Apple.COM> han@Apple.COM (Byron Han, Architect) writes:
>You could use something like this below (modification will be necessary)
>to "compile a project".  
>
>checkout D6Files
>Make
>

Hopefully there is a better way than this.  I haven't (yet) gotten my 3.0MPW
yet, so I haven't read the manual, but I bet you can do something with
implicit rules in your makefile to check out individual files from Projector
before compiling them - not doing so I you already have the file checked out
(cuz your modifying it).


						Lewis.

"OS/2: half an operating system for half a computer."

In Real Life:		Lewis Gordon Pringle Jr.
Electronic Mail:	lpringle@labs-n.bbn.com
Phone:			(617) 873-4433

rekieta@Apple.COM (Paul Rekieta) (12/20/88)

In article <33627@bbn.COM> lpringle@labs-n.bbn.com (Lewis G. Pringle) writes:
>In article <21917@apple.Apple.COM> han@Apple.COM (Byron Han, Architect) writes:
>>You could use something like this below (modification will be necessary)
>>to "compile a project".  
>>
>>checkout D6Files
>>Make
>>
>
>Hopefully there is a better way than this.  I haven't (yet) gotten my 3.0MPW
>yet, so I haven't read the manual, but I bet you can do something with
>implicit rules in your makefile to check out individual files from Projector
>before compiling them - not doing so I you already have the file checked out
>(cuz your modifying it).
>
I think the unclear thing with Projector is that you actually maintain your
current source code structure so that compiles take place just as they do
today without Projector. The difference is that after compiling and testing
your code (or code fragment), you "check in" that source file into the
Projector data base, which still leaves a read-only version of the file
on your disk, in the same directory.

When I started looking at Projector, this was the most difficult concept
to understand. After using it for a while, it becomes very automatic
and non-intrusive. You can have scripts to handle checkin automatically,
or you can do it interactively. The only time you have to explicitly
check-out anything is if you want to go back to an earlier revision,
or you are setting up a new disk and your Projector database is on a file
server. Makefiles need not be changed.

-- 
Paul Rekieta				Internet:   rekieta@Apple.COM
Communications Products Group		Applelink:  REKIETA1
Apple Computer, Inc.			Compuserve: 76304,2574
20525 Mariani Avenue, MS 27-Y
Cupertino, CA  95014			408-974-2660

rae@geaclib.UUCP (Reid Ellis) (12/25/88)

Excuse my ignorance, not having a copy of MPW 3, but if Projector is
anything like RCS, it might have flags such that you can check in your source
and have it removed at the same time.  Is this so?  And where is the database
stored?  The same directory or a specified one or... ?

Could anyone post a comparison of Projector with RCS or even [shudder]
SCCS?

Reid
-- 
Reid Ellis
geaclib!rae@geac.uucp

clive@drutx.ATT.COM (Clive Steward) (12/31/88)

From article <3505@geaclib.UUCP>, by rae@geaclib.UUCP (Reid Ellis):
> Excuse my ignorance, not having a copy of MPW 3, but if Projector is
> anything like RCS, it might have flags such that you can check in your source
> and have it removed at the same time.  Is this so?

Yes, it's so.  Removed, or left alone, or left read-only.

And where is the database
> stored?  The same directory or a specified one or... ?

Wherever you like, in its own directory.  There can be multiple build 
directories (and concomitant revision names, levels, project branches, etc.). 
Haven't dug into this, but looks completely flexible, for multiperson,
multi-hacks on same project base, multi bases, servers w/multi users, etc..

> 
> Could anyone post a comparison of Projector with RCS or even [shudder]
> SCCS?

Never could like SCCS, don't know RCS, have viewed others, none good.

I feel Projector is quite simple, neat, quick, powerful.  Bottom line:
you are looking at a file, want to change it --  Leave it up, check it
out taking a few seconds, go back to the window and edit it.

You can check it back in, leaving file, r/o, or nothing.  Long and
short visible comments on check in and out, changeable, perusable through 
revisions.  Naming for overall levels through file at individual revisions
-- e.g. Release1.2 => file1.r3, file2.r7, etc..  Compression of text 
revisions.  Many useful reporting & administration features.

As many other things in MPW, at least by 3.0b1, this is starting to look 
exactly like Unix redone as you might wish it to be.

Thanks, Apple.

Clive Steward

han@Apple.COM (Byron Han, Architect) (01/03/89)

In article <9789@drutx.ATT.COM> clive@drutx.ATT.COM (Clive Steward) writes:
>I feel Projector is quite simple, neat, quick, powerful.  Bottom line:
>you are looking at a file, want to change it --  Leave it up, check it
>out taking a few seconds, go back to the window and edit it.
>
There are some additional scripts in the folder {MPW}Examples:Projector Examples
which provide some really neat features.  You need to use Projector to
get them out of the projector database files there.

CheckInActive and CheckOutActive
are scripts which can be invoked that will checkin or checkout a file
(checked out modifiable) without having to go to the checkin/checkout
windows.  They will prompt for a comment string.  These are best invoked
from a menu.  So something like the following in your UserStartup file:

AddMenu "Project" "Check In Active/1" "CheckInActive"
AddMenu "Project" "Check Out Active/2" "CheckOutActive"

will really help alot.

+-----------------------------------------------------------------------------+
| Disclaimer: Apple has no connection with my postings.                       |
+-----------------------------------------------------------------------------+ 
Byron Han, Communications Architect      Almost alpha now.
Apple Computer, Inc.                     -------------------------------------
20525 Mariani Ave, MS27Y                 Internet: han@apple.COM
Cupertino, CA 95014                      UUCP:{sun,voder,nsc,decwrl}!apple!han
--------------------------------------   GENIE: BYRONHAN
ATTnet: 408-974-6450   Applelink: HAN1   CompuServe: 72167,1664
------------------------------------------------------------------------------