Related articles |
---|
[Info] Portable Object Compiler stes@mundivia.es (David Stes) (1997-07-08) |
Re: [Info] Portable Object Compiler stes@mundivia.es (David Stes) (1997-07-09) |
Re: [Info] Portable Object Compiler chriseb@nortel.ca (Chris Ebenezer) (1997-07-13) |
Re: [Info] Portable Object Compiler stes@mundivia.es (David Stes) (1997-07-16) |
From: | David Stes <stes@mundivia.es> |
Newsgroups: | comp.compilers |
Date: | 16 Jul 1997 22:43:50 -0400 |
Organization: | Compilers Central |
References: | 97-07-045 97-07-059 |
Keywords: | OOP, C |
Chris Ebenezer <chriseb@nortel.ca> wrote:
> Is it possible to compile the compiler using the objective
> C compiler, or does the source use extensions not present
> in gnu-objc ?
Yes, you can configure to use gnu-objc. The compiler source and
object libraries are written in "plain vanilla" Objective-C using very
little extensions. It's actually a long-term goal of mine to keep the
bundled object libraries compatible with multiple Objective-C
compilers.
It's an Objective-C compiler. Not a compiler for some new language.
The runtime library (objcrt.a) probably doesn't compile because it
redefines some symbols of the runtimes of the other compilers, but you
have to link against the root class of the compiler you use (at first)
(so you don't _need_ to compile the root class at first).
Bootstrapping (building a first compiler) was done, on Solaris and
AIX, by recompiling the sources using the Stepstone objc compiler. On
NextStep by a recompilation using the NeXT objc compiler.
So the sources are compatible with those two cc's.
On some platforms where there was previously no good objc compiler
available (such as PowerMac MkLinux for instance), bootstrapping was
done (by somebody called Tsu-Chien Weng, not me) by cross-compiling
with the Portable Object Compiler itself (generating C source on a
host and moving the generated C sources to the target).
So I think the portability is fairly good, both in terms of
Objective-C (collection libraries should work with Stepstone 4.x
compilers, with all NeXT compilers and with gcc), and in terms of
generated C code (ANSI-C).
The fact that I'm using virtually no Objective-C extensions in my
sources, and restrict myself to the essential constructs, such as
class definitions, "id" (object identifier) type, and [] message
construct, does not mean that I don't have my own ideas for future
extensions, but I'd like to be very conservative there ...
I plan to (maybe) pick up some work that Brad Cox did on adding Blocks
(Action Expressions) to the compiler ...
David.
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.