Talk:Cfront

message: I doubt Cfront was written in C++. How would it have been compiled? (unsigned comment by 164.107.199.102)
:gcc is written in C and compiles itself.  Similarly, it is entirely possible that Cfront bootstraps itself.  --Yamla 16:31, 2005 Mar 30 (UTC)
::The article claims it was the first C++ compiler therefore if it was initially written in C++ it could not have been compiled. I'd guess the very first versions were written in C and then changed to C++ as soon as cfront became usable. Plugwash 00:08, 18 September 2005 (UTC)
replies: text: cfront was written in an early dialect of C++. Versions 1 and 2 used single dots for the "::", for instance; and the operator notation for typecasting was only sporadically used in version 1, as opposed to version 2. Versions 1, 2, 3 all used the old scoping rule for for-loops. Version 3 can compile -- with a few fixups -- in g++ if you use the compiler's option to control for-loop scoping. All the versions may be found on Paul McJones' archive site ; the code for version 1 (which is not self-contained) I transcribed from its printouts. All three versions use a "scratch" directory where ready-made C code can be found or deposited into for a first "bootstrap" run; particularly useful when cross-compiling. All of this happened early on before a clear-cut distinction between C and C++ had been made in the minds of the latter's developers. So the C++ version uses the ".c" suffix (instead of ".C" or ".cc") and the "scratch" C version uses "..c" and "..h". If you try to compile straight out of the box; you're going to run into library conflicts; since the old C code [both used AND generated] is pre-ANSI as are library functions like malloc() and free()! This should be compared to the routine for gcc. Even if you have a gcc version in place and you're bumping up from (say) version 4 to 6 it's STILL going to end up doing a bootstrap compile with THREE separate compiling runs! On my machine it was about 100 minutes each and 1.0-1.5 GB workspace for each.  — Preceding unsigned comment added by 204.128.235.10 (talk) 21:15, 31 October 2016 (UTC)
replies: text: Actually, "Version 1" alluded to above is Release E, from 1985 February, that existed only in printout form until 2016, and was the first external release of the translator. The printout is clipped, while the transcribed version restored most of what was clipped. "Version 2" is Release 1.0, and was the first commercial release, from 1985 October, and includes translated C code in the "scratch" directory to use for bootstrapping. Later releases would have to be compiled from each preceding release, afterwards. As mentioned above, Release 1.0 does indeed compile, while Release E will require reverse-patching from and cannibalization of Release 1.0 to compile, and may require the Release 1.0 cfront to compile it, since it doesn't have any of the C-translated files.
As I understand, a super simple preprocessor converted the first c++ into c. CFront was then written using that preprocessor.70.71.145.81 04:52, 14 September 2006 (UTC)

text: Wait, then why not just use the original simple preprocessor, rather than write cfront? lol Family Guy Guy (talk) 01:55, 13 January 2008 (UTC)
replies: text: I suspect the simple preprocessor only supported a subset of c++ Plugwash (talk) 01:28, 15 January 2008 (UTC)
thread_title: written in C++?!

message: Is cfront freely available on the net? (unsigned comment by 64.40.48.243)
: Yes. See the cfront#External links section of this article. --DavidCary (talk) 23:43, 2 August 2023 (UTC)
thread_title: Availibility

message: ...if you exclude pascal and all other languages which required link-time type checking...150.101.166.15 (talk) 05:44, 8 February 2008 (UTC)
thread_title:   the first widely-used language which required link-time type checking 

message: "...the relative complexity of Standard C++ mandates a compiler capable of understanding the entire language rather than just the C++-specific constructs" as most of the paragraph is out of place. In the beginning it is mentioned that Cfront had a complete C++ parser, so in what way shouldn't it be unable to understand non-C++-specific (i.e. C subset) constructs?
Just before it there is a passage about Cfronts approach being unappropriate ("it is unlikely a similar translation effort would be 100% successful with the modern C++ standard"), which is obviously wrong. --138.246.7.170 (talk) 09:04, 22 September 2008 (UTC)
thread_title:  Contradiction 

message: This is a completely stupid statement. Since cfront translated C++ to C, a distribution of Cfront merely has to include the C translation. Bootstrapping is then done with a C compiler.
Doh.  —Preceding unsigned comment added by 70.79.96.174 (talk) 21:17, 27 January 2010 (UTC)
thread_title:  Challenge to bootstrap due to dependency on C++?