[net.micro.atari16] C++ preprocessor wanted

ix181@sdcc6.ucsd.EDU (John Ogawa) (10/04/86)

>>>>>>>>>>>> Eat away you monster!!! <<<<<<<<<<<

I am an avid C++ fan who is about to get an Atari 1040ST and a C
package. My question is: is there any way to get a C++ package for
the 1040? Alternately, is there any C source code for CC that I can
get my hands on? 

Thanks in advance.

		John Ogawa
		UC San Diego

dclemans@mntgfx.UUCP (Dave Clemans) (10/07/86)

Oasys Systems has been advertising commercial support for C++ in a variety
of systems; in particular using Lattice C on the IBM PC.

It would be relatively simple bring up C++ under Lattice C for the ST;
Oasys just has to be convinced that it is worth the effort to do so.

None of the other ST C compilers (especially Alcyon C which comes with the
developers kit) would be usable back-ends for C++; the backend compiler
the AT&T released C++ frontend REALLY!!! needs at least 32 significant
characters in names.  To my knowledge, Lattice C (using the GST linker)
is the only ST C compiler that can support 32 significant characters in names.

dgc

brinsmead@calgary.UUCP (Mark Brinsmead) (10/07/86)

In article <2939@sdcc6.ucsd.EDU>, ix181@sdcc6.ucsd.EDU (John Ogawa) writes:
> I am an avid C++ fan who is about to get an Atari 1040ST and a C
> package. My question is: is there any way to get a C++ package for
> the 1040? Alternately, is there any C source code for CC that I can
> get my hands on? 

   I am afraid this is unlikely. All C++ compilers I am aware of
(i.e. AT&T's) are actually fancy preprocessors that spit out rather
wild looking C. If CC is to work on an atari, your ATARI C compiler
must (and i mean MUST) be able to cope with *ARBITRARILY* long 
identifiers.

   I am not aware of any C compiler for the atari ST that will suffice,
(my own Lattice C compiler nmormally uses only the first 8 characters,
and will in any event, use at most 32 characters of an identifier. 
This is probably not enough for C++. )

                              M. Brinsmead @ Univewrsity of Calgary.

lbl@druhi.UUCP (LocklearLB) (10/09/86)

In article <429@vaxb.calgary.UUCP>, brinsmead@calgary.UUCP (Mark Brinsmead) writes:
> In article <2939@sdcc6.ucsd.EDU>, ix181@sdcc6.ucsd.EDU (John Ogawa) writes:
> > I am an avid C++ fan who is about to get an Atari 1040ST and a C
> > package. My question is: is there any way to get a C++ package for
> > the 1040? Alternately, is there any C source code for CC that I can
> > get my hands on? 
> 
>    I am afraid this is unlikely. All C++ compilers I am aware of
> (i.e. AT&T's) are actually fancy preprocessors that spit out rather
> wild looking C. If CC is to work on an atari, your ATARI C compiler
> must (and i mean MUST) be able to cope with *ARBITRARILY* long 
> identifiers.
> 
>    I am not aware of any C compiler for the atari ST that will suffice,
> (my own Lattice C compiler nmormally uses only the first 8 characters,
> and will in any event, use at most 32 characters of an identifier. 
> This is probably not enough for C++. )
> 
>                               M. Brinsmead @ Univewrsity of Calgary.

If your compiler is capable of handling 32 character variable names, you should 
normally not have any problems with using C++.  There may be isolated cases
where problems would occur, but the names that the C++ compiler generates are
usually unique in the first 32 characters.  Of course, it would be nice if one
of the C vendors for the ST would provide a true flexname capability.  It really 
isn't very difficult to do!

Barry Locklear
AT&T Information Systems Labs
Denver, CO 80234
(303) 538-4954
ihnp4!drutx!druhi!lbl

braner@batcomputer.TN.CORNELL.EDU (braner) (10/10/86)

Regarding the need for a C compiler that would handle long
identifiers, y'all might not know that Megamax recognizes
the first 10 chars, and allows very long total length.
That may still not be enough for C++ - I dunno.
(and you still need to get that C++ preprocessor...)

BTW: I devised a method to do object-oriented programming in C.
Not fancy but simple, and you get inheritance and even late binding
of sorts with high efficiency (about 100 microSecs for a typical
invocation of a method).  If anybody is interested let me know.

- Moshe Braner

cgoudeseune@watnot.UUCP (center of gravity) (10/14/86)

I hear all these complaints that most C's only support 8-character
identifiers, and the C++ preprocessor *needs* thirty-two.

Say we use only 7-character letters-only identifiers.
26^7 = 8 031 810 176.
Seeing as how any C++ preprocessor is unlikely to produce over 8 billion
different identifiers, is there a good reason why a little filter couldn't
be inserted between C++'s output and C's input to shrink the size of these
huge identifiers to a manageable size.
Sure, it's slow; we've got a 8 MHz 68000.  Sure, it's a kludge; it works!
(I hope)

Camille

mvh@cbnap.UUCP (M.L. Vonder Haar x4126 3E257) (10/14/86)

In article <12069@watnot.UUCP> cgoudeseune@watnot.UUCP (center of gravity) writes:
>I hear all these complaints that most C's only support 8-character
>identifiers, and the C++ preprocessor *needs* thirty-two.
>
>Say we use only 7-character letters-only identifiers.
>26^7 = 8 031 810 176.
>Seeing as how any C++ preprocessor is unlikely to produce over 8 billion
>different identifiers, is there a good reason why a little filter couldn't
>be inserted between C++'s output and C's input to shrink the size of these
>huge identifiers to a manageable size.
>Sure, it's slow; we've got a 8 MHz 68000.  Sure, it's a kludge; it works!
>(I hope)
>
	I just hope you never have a bug.  Sdb is only fair as a debugger
	for C++.  But if you generated names that could not be easily
	transformed by programmers to what they wrote in C++ sdb would be
	just about useless.
	The way I see it you'll need to write your own debugger at the
	same time.

Mark L Vonder Haar
{ihnp4|cbosgd}!cbnap!mvh

brinsmead@calgary.UUCP (Mark Brinsmead) (10/15/86)

In article <1117@druhi.UUCP>, lbl@druhi.UUCP (LocklearLB) writes:
> 
> If your compiler is capable of handling 32 character variable names, you should 
> normally not have any problems with using C++.  There may be isolated cases
> where problems would occur, but the names that the C++ compiler generates are
> usually unique in the first 32 characters.  Of course, it would be nice if one
> of the C vendors for the ST would provide a true flexname capability.  It really 
> isn't very difficult to do!
> 

    Oops, I guess I stand corrected. Of course, I've always believed
that if something dosen't work for certain isolated cases, it simply 
dosent work, however, I suppose that if it means we *CAN* have C++ on
an ST, this is something we could learn to live with. (Provided, of
course, that you don't mind not being able to count on a given (correct)
program compiling.)  Where do I order my Cfront?

bammi@case.CSNET ("Jwahar R. Bammi") (10/16/86)

Such a filter called 'shortc' has been over the net at least twice. It works
great on my ST.

braner@batcomputer.TN.CORNELL.EDU (braner) (10/16/86)

[]

Filtering long identifiers into short (but not mnemonic) forms would
work, I guess.  But since we also have a Megabyte, it is not reasonable
to limit identifiers to anything less than 255 chars!  Come on, compiler
makers: it's 1986!

- Moshe Braner

cgoudeseune%watnot.waterloo.edu@RELAY.CS.NET (center of gravity) (10/17/86)

I imagined someone had already thought of that idea before (shortc); I'm
no incredible wizard myself.  I'll look for it here at waterloo.
oh, my path is cuae2!clyde!watmath!watnot!cgoudeseune  in case you
were wondering.  
While i'm bothering you, can you foresee anyone porting smalltalk or actor
to the ST? 1 meg might not be enough, & a hard disk would certainly be
necessary.  The reason I ask is, i'm wondering what language to learn next. 
C++ seems powerful, but so do the other two.  and lisp would be neat too.
sigh.  And as i'm taking 9 courses this term (6 is an honours load), i
haven't really got the time to learn them all in enough depth that i'll
know which one to master.  Life's weird.
Thanks for your time,
	Camille Goudeseune.

desj@brahms@ndmce.uucp (David desJardins) (10/17/86)

In article <173@cbnap.UUCP> mvh@cbnap.UUCP (M.L. Vonder Haar x4126 3E257) writes:
>	I just hope you never have a bug.  Sdb is only fair as a debugger
>	for C++.  But if you generated names that could not be easily
>	transformed by programmers to what they wrote in C++ sdb would be
>	just about useless.
>	The way I see it you'll need to write your own debugger at the
>	same time.

   If it were important enough you could keep a table of the correspondences
between symbol names and then write a postprocessor to rewrite the correct
symbolic names into the a.out file; this shouldn't be more than a day's work.

   -- David desJardins

phr@ernie.Berkeley.EDU (Paul Rubin) (10/18/86)

In article <1222@batcomputer.TN.CORNELL.EDU> braner@batcomputer.UUCP (braner) writes:
>[]
>
>Filtering long identifiers into short (but not mnemonic) forms would
>work, I guess.  But since we also have a Megabyte, it is not reasonable
>to limit identifiers to anything less than 255 chars!  Come on, compiler
>makers: it's 1986!

If anyone is interested, note that the past few GNU Emacs distributions have
included a simple program that reads C source code and produces a file of
#define statements to map long identifiers into short ones.  It also
includes a replacement C Preprocesor (cpp) in case the one you are
currently using doesn't handle arbitrarily long identifiers.