Canadian is the unusal case where the build platform, host platform and target platform are all different. e.g. Building a 68k compiler that will run on Sparc on an x86 box.
does gcc support differing calling conventions?
on
egcs to become gcc
·
· Score: 1
Yes, GCC can generate windows code. The cygwin win32 based GCC can compile programs written to both Posix and win32 APIs. In fact you can mix them in a single program.
There is no reason why windows programs can't be supplied in source form. I think closed source shareware and freeware is the reason open source programs haven't appeared to the same extent in the windows world. There is less interest in the source due to the generally non-technical user base, so people are happy with closed source.
In order to contribute code to GNU projects that are copyrighted by the FSF -- like GCC -- you must sign documents stating you assign the copyright back to the FSF.
This applies to EGCS, too, so GNU is hardly arrogant in accepting this code -- it owns it! In fact, GNU is just giving it an offical stamp of approval and blessing EGCS as the main development branch.
Egcs is only just becoming stable after a long period of development. Remember that the E stands for experimental. Just like in the Linux kernel, it is useful to have a stable branch and a development branch.
A language. It was donated by Cygnus to the egcs project as an example of how to create a new front end. I think it originates as a proprietary language one of their embedded customers use, although I could be wrong.
In theory you don't need a C compiler, right? A C++ compiler ought to be able to compile all your C source code.
C and C++ are seperate languages. You do indeed need seperate compilers. Valid C programs can compile into something completely unintended when compiled by a C++ compiler. Granted, most of those C programs are brain damaged to begin with...
Gcc/egcs has completely seperate front-ends for C and C++. That said, they share a common backend code generator (along with FORTRAN, Java, Chill, ObjC, etc). I think they are currently merging some common functionality in the egcs front ends, but the parsers will always remain distinct.
This way we can show TV networks that not evryone watches "friends" or any of the other tripe that comes down the pike.
What makes you think people don't watch that tripe? The networks aren't stupid -- they show what people watch, even if it is mindless.
At least this would remove the statistical inaccuracy of Neilsen ratings (polling a small % of a populace)...
If the Neilsen rating system has any inaccuracies, they aren't from the size of the sample. A large sample isn't needed as long as the people participating are representative of the population at large.
The real reason cable companies want this is to match personal info (address/phone/etc.) with viewing habits. They already know viewing trends.
In case you haven't heard, Office 2000, IE 5, and Windows 2000 are very tightly bound together -- you can't use Office 2K to its full potential without having to use all three. IT folks are already starting to complain about this (see recent piece at InfoWorld).
Office depends on IE5.0, which depends on Win2000.
Microsoft is very bad for this. I recently installed MSVC++ 6.0, and it provided a check box to install MSIE 4.0 in the installer -- but wouldn't allow me to continue unless I checked it!
It's getting to be a nightmare (from an admin perspective) of program dependancies. What happens when you upgrade IE without upgrading Office and Windows? Most NT admins I know are more likely to take the path of least resistance: upgrade the whole suite.
Now if a useful feature appears in MSIE (hey -- it could happen...), people are likely to upgrade all the MS product that depend on it. Of course, if they tie a profitable product like Office to a cost-free one like Explorer, then Explorer upgrades suddenly bring in money. Big win for MS -- big loss for consumers.
I'm not too sure copyrights make sense for software. As pointed out in the article, copying software is zero-cost. Software "piracy" hardly amounts to stealing -- the original owner (or licencee) still has a fully functional product.
On the other hand, I can see the some merits in the argument that people should benefit from their labor in creating software. After all, it is the public interest to provide people with the incentive to create the next Netscape, Quake, even Office.
The current U.S patent laws do just that. An inventor (and isn't a software program more like an invention than a book?) is given a time limited monopoly on producing his invention. But after a while (17 years?), the invention passes into the public domain.
I think this is how the software IP copyright should work. Allow the author to have exclusive rights to the product for a period of time, at which point it passes into the public domain.
I think the first O'Reilly books on Linux pre-date the Tux logo.
I remember Running Linux by Matt Welsh and Linux Network Administration by Olaf Kirch as two of the first Linux books.
IIRC, the penguin showed up around the same time as the 2.0 kernel.
Whatever happened to Matt Welsh? Back a few years ago he was pretty high profile in the Linux community, but I haven't heard anything about him in years.
What Sony forgot to mention is that the music is compressed, using a lossy algorithm. Not too different from MP3! 650M : 140M ratio is about 4.5:1 compression. MP3 is about 10:1 I think. That sounds about right, because MiniDisc quality is noticably higher than MP3.
FWIW, the posting by Peter Seebach regarding Schildt's book was made on April 1. Also note that Peter Seebach is a well informed authority on C. He posts many informative messages to comp.lang.c and comp.lang.c.moderated. He is also listed in the credits of the C FAQ.
So far, they've decided is it will use "memory sticks"?
Standard vaporware tactic -- announce a product barely out of the conceptual planning stage so people hold out 'til the market leader does something. Did Sony hire some MS marketers?
Why are Glide wrappers important in the first place? Is Glide superior to other 3D standards such as OpenGL or Direct3D? Does it have wider support from application developers?
Has Java Progressed wrt Generic Programming?
on
Java for EGCS
·
· Score: 2
You are right, the particular situation I described doesn't happen in real life that often.
My real point is that C++ with templates binds everything at compile-time. If a type won't work with a particular algorithm, or you try to put the wrong type of object into a container, the program won't compile.
Java binds everything at compile time, and throws exceptions if something goes wrong. It will compile, and it might even run 99% of the time.
From a software engineering perspective, the first is much better because it catches that entire class of errors 100% of the time. They can't be caught all the time in the second situation without exhaustive testing.
Small projects that use a Vector here and a List there aren't going to have problems. But large projects that use generic programming exstensively are much better off with the static typing.
The whole argument is really the same as the argument between statically typed languages (C++, Java, Pascal, etc.) and untyped or dynamically typed languages (Lisp, Smalltalk, TCL, etc.), except on a higher level.
Has Java Progressed wrt Generic Programming?
on
Java for EGCS
·
· Score: 2
I agree that the lack of generic programming in Java is one of its biggest weaknesses.
Java2 has a new API that tries to rectify this though. The Collections Framework (or whatever the nom du jour is) provides some generic container classes, complete with algorithms ala STL.
The problem is it is Java still doesn't have templates. All the generic stuff is implemented with standard OO inheritance and polymorphism. That means that the nice compile time checking of C++ doesn't happen in Java; you have to make sure every Object you add to a List is really a Comparible Object or else Sort will choke at runtime.
Plus you can't have lists of anything except Objects. I know, I know, everything is an Object, but that means you can add a Thread to a list of Windows, for example. Unless you create a specialized class derived from List that only works with Windows.
In short, yes it has generic progamming of a sort. But it is still a lot less powerful than templates as implemented by C++.
CS graduates write compilers that spit out highly sub-optimal code for one architecture, hosted on one architecture. Mine was a pascal-like language on SGI/MIPS.
gcc, on the other hand, supports every architecture under the sun. gcc also compiles and runs on every architecture under the sun. Finally, it optimizes on all of those architectures, in most cases only slightly worst than the best compilers out there.
My point is, gcc is not just any compiler. Anyone with any doubts as to RMS's programming ability should look at gcc, imho the best piece of free software ever written, imho (although a bit too lispy for my taste).
CS graduates write compilers that spit out highly sub-optimal code for one architecture, hosted on one architecture. Mine was a pascal-like language on SGI/MIPS.
gcc, on the other hand, supports every architecture under the sun. gcc also compiles and runs on every architecture under the sun. Finally, it optimizes on all of those architectures, in most cases only slightly worst than the best compilers out there.
My point is, gcc is not just any compiler -- it is the best compiler!
Canadian is the unusal case where the build platform, host platform and target platform are all different. e.g. Building a 68k compiler that will run on Sparc on an x86 box.
Yes, GCC can generate windows code. The cygwin win32 based GCC can compile programs written to both Posix and win32 APIs. In fact you can mix them in a single program.
There is no reason why windows programs can't be supplied in source form. I think closed source shareware and freeware is the reason open source programs haven't appeared to the same extent in the windows world. There is less interest in the source due to the generally non-technical user base, so people are happy with closed source.
In order to contribute code to GNU projects that are copyrighted by the FSF -- like GCC -- you must sign documents stating you assign the copyright back to the FSF.
This applies to EGCS, too, so GNU is hardly arrogant in accepting this code -- it owns it! In fact, GNU is just giving it an offical stamp of approval and blessing EGCS as the main development branch.
Egcs is only just becoming stable after a long period of development. Remember that the E stands for experimental. Just like in the Linux kernel, it is useful to have a stable branch and a development branch.
A language. It was donated by Cygnus to the egcs project as an example of how to create a new front end. I think it originates as a proprietary language one of their embedded customers use, although I could be wrong.
Can anyone sum up the differences between egcs and gcc and explain why they haven't been combined up until now?
Here is a list of new features in egcs 1.1:
Link
In theory you don't need a C compiler, right? A C++ compiler ought to be able to compile all your C source code.
C and C++ are seperate languages. You do indeed need seperate compilers. Valid C programs can compile into something completely unintended when compiled by a C++ compiler. Granted, most of those C programs are brain damaged to begin with...
Gcc/egcs has completely seperate front-ends for C and C++. That said, they share a common backend code generator (along with FORTRAN, Java, Chill, ObjC, etc). I think they are currently merging some common functionality in the egcs front ends, but the parsers will always remain distinct.
This way we can show TV networks that not evryone watches "friends" or any of the other tripe that comes down the pike.
What makes you think people don't watch that tripe? The networks aren't stupid -- they show what people watch, even if it is mindless.
At least this would remove the statistical inaccuracy of Neilsen ratings (polling a small % of a populace)...
If the Neilsen rating system has any inaccuracies, they aren't from the size of the sample. A large sample isn't needed as long as the people participating are representative of the population at large.
The real reason cable companies want this is to match personal info (address/phone/etc.) with viewing habits. They already know viewing trends.
In case you haven't heard, Office 2000, IE 5, and Windows 2000 are very tightly bound together -- you can't use Office 2K to its full potential without having to use all three. IT folks are already starting to complain about this (see recent piece at InfoWorld).
Office depends on IE5.0, which depends on Win2000.
Microsoft is very bad for this. I recently installed MSVC++ 6.0, and it provided a check box to install MSIE 4.0 in the installer -- but wouldn't allow me to continue unless I checked it!
It's getting to be a nightmare (from an admin perspective) of program dependancies. What happens when you upgrade IE without upgrading Office and Windows? Most NT admins I know are more likely to take the path of least resistance: upgrade the whole suite.
Now if a useful feature appears in MSIE (hey -- it could happen...), people are likely to upgrade all the MS product that depend on it. Of course, if they tie a profitable product like Office to a cost-free one like Explorer, then Explorer upgrades suddenly bring in money. Big win for MS -- big loss for consumers.
I'm not too sure copyrights make sense for software. As pointed out in the article, copying software is zero-cost. Software "piracy" hardly amounts to stealing -- the original owner (or licencee) still has a fully functional product.
On the other hand, I can see the some merits in the argument that people should benefit from their labor in creating software. After all, it is the public interest to provide people with the incentive to create the next Netscape, Quake, even Office.
The current U.S patent laws do just that. An inventor (and isn't a software program more like an invention than a book?) is given a time limited monopoly on producing his invention. But after a while (17 years?), the invention passes into the public domain.
I think this is how the software IP copyright should work. Allow the author to have exclusive rights to the product for a period of time, at which point it passes into the public domain.
I think the first O'Reilly books on Linux pre-date the Tux logo.
I remember Running Linux by Matt Welsh and Linux Network Administration by Olaf Kirch as two of the first Linux books.
IIRC, the penguin showed up around the same time as the 2.0 kernel.
Whatever happened to Matt Welsh? Back a few years ago he was pretty high profile in the Linux community, but I haven't heard anything about him in years.
What Sony forgot to mention is that the music is compressed, using a lossy algorithm. Not too different from MP3! 650M : 140M ratio is about 4.5:1 compression. MP3 is about 10:1 I think. That sounds about right, because MiniDisc quality is noticably higher than MP3.
FWIW, the posting by Peter Seebach regarding Schildt's book was made on April 1. Also note that Peter Seebach is a well informed authority on C. He posts many informative messages to comp.lang.c and comp.lang.c.moderated. He is also listed in the credits of the C FAQ.
:)
Draw your own conclusions...
So far, they've decided is it will use "memory sticks"?
Standard vaporware tactic -- announce a product barely out of the conceptual planning stage so people hold out 'til the market leader does something. Did Sony hire some MS marketers?
Yawn -- wake me up when they have a product!
Why are Glide wrappers important in the first place? Is Glide superior to other 3D standards such as OpenGL or Direct3D? Does it have wider support from application developers?
You are right, the particular situation I described doesn't happen in real life that often.
My real point is that C++ with templates binds everything at compile-time. If a type won't work with a particular algorithm, or you try to put the wrong type of object into a container, the program won't compile.
Java binds everything at compile time, and throws exceptions if something goes wrong. It will compile, and it might even run 99% of the time.
From a software engineering perspective, the first is much better because it catches that entire class of errors 100% of the time. They can't be caught all the time in the second situation without exhaustive testing.
Small projects that use a Vector here and a List there aren't going to have problems. But large projects that use generic programming exstensively are much better off with the static typing.
The whole argument is really the same as the argument between statically typed languages (C++, Java, Pascal, etc.) and untyped or dynamically typed languages (Lisp, Smalltalk, TCL, etc.), except on a higher level.
I agree that the lack of generic programming in Java is one of its biggest weaknesses.
Java2 has a new API that tries to rectify this though. The Collections Framework (or whatever the nom du jour is) provides some generic container classes, complete with algorithms ala STL.
The problem is it is Java still doesn't have templates. All the generic stuff is implemented with standard OO inheritance and polymorphism. That means that the nice compile time checking of C++ doesn't happen in Java; you have to make sure every Object you add to a List is really a Comparible Object or else Sort will choke at runtime.
Plus you can't have lists of anything except Objects. I know, I know, everything is an Object, but that means you can add a Thread to a list of Windows, for example. Unless you create a specialized class derived from List that only works with Windows.
In short, yes it has generic progamming of a sort. But it is still a lot less powerful than templates as implemented by C++.
The long awaited follow-up to his brilliant internet idea.
Seriously, I wonder how long 'til he takes credit for this one.
How about an option in the user preference for PNG images? Or better yet, make PNG the default, and provide an option to disable.
CS graduates write compilers that spit out highly sub-optimal code for one architecture, hosted on one architecture. Mine was a pascal-like language on SGI/MIPS.
gcc, on the other hand, supports every architecture under the sun. gcc also compiles and runs on every architecture under the sun. Finally, it optimizes on all of those architectures, in most cases only slightly worst than the best compilers out there.
My point is, gcc is not just any compiler. Anyone with any doubts as to RMS's programming ability should look at gcc, imho the best piece of free software ever written, imho (although a bit too lispy for my taste).
CS graduates write compilers that spit out highly sub-optimal code for one architecture, hosted on one architecture. Mine was a pascal-like language on SGI/MIPS.
gcc, on the other hand, supports every architecture under the sun. gcc also compiles and runs on every architecture under the sun. Finally, it optimizes on all of those architectures, in most cases only slightly worst than the best compilers out there.
My point is, gcc is not just any compiler -- it is the best compiler!