> -----Original Message----- > From: cygwin-owner On Behalf Of Gerrit P. Haase
> Hello Dave, Hiya! > > Your use of "frontend" to describe the generic compiler > drivers, and > > "backend" to describe the actual language-specific compilers > > themselves is at odds with the standard usage everywhere on > > gcc.gnu.org, related mailing lists, and throughout the gcc > documentation. > > I didn't use the word 'stand-alone'. Well, you didn't, but you implied that frontends and backends were things that could be installed and distributed separately from each other. And there's no coherent definition of those two words that makes that possible. Read on: > There is a common > backend, and several language specific front ends. Yeh? What files in the gcc-core distribution would you claim implement this "common backend" ? In what way are these files used by (e.g.) the java or c++ frontends ? I don't think you could provide a meaningful answer to this question. You are speaking as if you think that the different language compilers do a bit of parsing and then hand off some intermediate result to some executable that comes with your core distro. That simply doesn't happen. In fact, the same 'backend' is repeatedly included in *every* different language compiler. > > I thought I'd explained why I say that clearly enough in my last > > post, but I guess it needs clarifying: it is a misuse of existing > > terminology that will cause confusion if continued. > > I use the terms that are also used at the GCC website? > > "Currently the main GCC distribution contains front ends for C (gcc), > C++ (g++), Objective C, Fortran (g77), Java (GCJ), and Ada (GNAT)." > > from: > http://gcc.gnu.org/frontends.html Well, it seems that they've been using the word with both meanings themselves! But if you look at the gcc internals documentation: http://gcc.gnu.org/onlinedocs/gccint/ you see that it refers to frontends as the things that deal with the language and parse it, and backends as the things that convert the language-agnostic representation to a specific architecture. > Backend describes architectures supported by GCC: > http://gcc.gnu.org/backends.html Given that definition, how on earth could you distribute "an architecture supported by gcc" ? I'd like to see you build a distribution that contained only a backend! You said: > These smaller packages are gcc-core which includes the backend and the > C-frontend and the other small packages include the other frontends. > Cygwin GCC comes in addition to these packages with a pascal frontend. That statement is simply not coherent, even under your alternative definition of frontends and backends. -- with your definition, where "frontend" == "the driver program such as gcc.exe or g++.exe" and backend == "the actual compiler", you'd be saying that gcc-core contains gcc.exe and cc1.exe, and that (for example) the g++ package contained only g++.exe but not cc1plus.exe. That wouldn't be any use! -- or if you define "frontend" == "the driver program such as gcc.exe or g++.exe" and backend == "the architecture supported by gcc", you'd be saying that the g++ package you offer doesn't support any architecture. That's not true: it contains an executable called cc1plus.exe that accepts C++ input and generates i686-pc-cygwin output. -- with the standard definitions, you'd be saying that you were distributing cc1.exe broken into two parts, and the other packages contained e.g. part of cc1plus.exe. -- either way, there's no such thing as "the" backend. Your G++ package contains a driver (g++.exe) and a compiler (cc1plus.exe), which in turn is composed of a frontend and a backend. If you want to call the driver the frontend, and the compiler the backend, then you must concede that your other small packages contain *both* frontends and backends. -- you could be using "frontend" to refer to the combination of driver-plus-compiler, which would make sense of your description of the g++ package as containing the C++ frontend, but then that doesn't leave *anything at all* left over to be referred to as the backend! I accept that the frontends page at the gcc website is imprecise and blurs the definitions, but I'd still like to see you write two simple definitions of "frontend" and "backend" that make your paragraph meaningful; I don't think there could be any. cheers, DaveK -- Can't think of a witty .sigline today.... -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/