Domain: tendra.org
Stories and comments across the archive that link to tendra.org.
Comments · 26
-
Re:C Byte Code
Well maybe what we could use instead in C byte code, or some other form of byte code, and then have on the JIT low-level compilations.
You may be interested to look at TenDRA. It's a BSD-licensed C and C++ compiler that compiles into portable bytecode which gets translated into native machine code at install time --- so you install a generic package that will then run on anything (that has a TenDRA package installer on it).
It never really took off, for reasons that are a bit obscure to me. I certainly found the source code for the compiler totally incomprehensible when I looked at it, even more so than gcc; and that's saying a lot. I've certainly never seen it used anywhere, even in a world that's so desperate for a BSD C compiler that they've even resurrected pcc.
There are revival projects at tendra.org and ten15.org but they're both borked right now.
-
There *are* (non-bundled) alternatives
It seems that there are alternatives, but not that many (one or two). See TenDRA, for example. There are many more for C, and less for more exotic languages like Ada. (Found via Wikipedia.)
IIRC, it is also possible to preprocess C++ and output C (but perhaps those preprocessors don't support the modern C++ standard, they were developed ages ago, before gcc could compile C++).
Since there is no "default" C/C++ compiler on Linux (or at least, in my experience, almost no one accesses the compiler via the vanilla "cc"/"c++" names) there would be little, if any, uproar if a distro would bundle an arbitrary number of competing compilers (all with their own executable names).
-
Re:"Nothing for you to see here" indeed...
http://www.tendra.org/about/
TenDRA is a three clause BSD-licensed C and C++ compiler, with C++ STL support forthcoming. The original Crown copyright from DERA is still present and the further expansion of TenDRA is under the BSD license.
TenDRA uses the Architecture Neutral Distribution Format (ANDF) as its intermediate language. This intermediate language focuses on abstracting into a high level language instead of an assembler-like language as is common with most compilers (think RTL). This makes TenDRA powerful in code verification and checking.
Aside from the TenDRA compiler suite the TenDRA Project also features some other projects, all BSD-licensed. The TenDRA Suite Purpose Overview document tours the most significant of these. -
TenDRA?
TenDRA is another compiler the BSD people have been looking at for quite some time as well.
-
Re:GCC ReplacementNOTE: The below is based on some assumptions that things are about the same as they were 4-5 years ago when I last checked the respective architectural issues etc. I've not seen any sign of GCC doing massive leaps in architecture in the meantime, so I believe the analysis is still valid - but take it with the caveat that my knowledge may be dated. GCC today would be monstrous to re-implement, and the benefit of doing so would be essentially nil. A pure reimplementation from scratch of the GCC architecture would have essentially zero benefits. Upgrading some of the alternative architectures - e.g. TenDRA to support enough to be able to compile the BSDs and then switching the compiler (or making the source tree possible to compile with several compilers) may be reasonable. There's benefits in different compilers than GCC; other compilers often have better error messages, other compilers can often compile faster (the GCC architecture result in fairly slow compilation, and TenDRA is usually way faster), and e.g. the Intel compiler will usually generate better code than GCC. That may be "would usually", I'm not up to date in the area.
Also, supporting different compilers at the source tree level will also usually make it easier to support source checkers (lints), which makes it easier to create correct code.
Having done part of this work some years ago (as I was doing linting of the FreeBSD kernel), I would guess the amount of work for fixing the FreeBSD kernel to be compilable with TenDRA at about one month's work. That assumes that TenDRA has gotten the asm extensions that was promised about 5-6 years ago; supposedly, these were really little work - less than a day, as I remember my understanding from the TenDRA developers.
Eivind.
-
Re:I seem to recall...
-
Re:Once again the fanatics take charge
Third, WHATVER MIGHT happen in the future between Microsoft and the OSS movement, the odds of Microsoft being able to seriously damage the spread of Linux, let alone OSS in general, is virtually nil.
Precisely correct. Anyone with a brain knows that Microsoft are not going to exist for more than another 15 years, tops. Why?
1. No concrete long-term strategy after Windows NT 4, and no substantially new products since then. Windows 2000, XP, and Server 2003 are all incremental upgrades to NT 4. Vista is Microsoft's last release, and everyone knows it. After this, all they've got left is consumer inertia based on their *existing* software. They've hit a technological brick wall. Gates has said that Microsoft could run for years without making a single sale...but not many years. We may just get to see that claim verified.
2. Rabid (even fanatical in some places) consumer hatred of the company. You don't have people hating you the way people hate Microsoft and survive with it for long, especially when that is coupled with the above. Microsoft doing an IBM and surviving while becoming less important is not going to happen, simply because of the number of people who feel a passionate need to completely destroy the company. Machiavelli wrote about it...once you're hated as widely and with the degree of intensity that Steve Ballmer is, the show is over. People will band together and do whatever they have to in order to get rid of you...they will move heaven and earth to do it. If the first problem was all Microsoft had to worry about, it wouldn't be insurmountable...they could do what Apple did with OSX and probably survive. But when you've got this much ill will *on top of* needing to completely re-invent yourself, forget it.
The only reason why Stallman still thinks Microsoft are a genuine threat to anybody but themselves is because he has started to believe his own fearmongering.
Fourth, if Stallman and crew take the GNU utilities out of action because of GPLv3, the OSS community will simply reinvent them - or better ones - which is long overdue in many cases.
In the case of virtually all other elements of the POSIX toolchain, we have substitutes ready and waiting. The one area however where Stallman still has us over a barrel however just happens to also be the most important one:- GCC. When I pointed this out a week or so ago, someone gave me a link to something in progress, but what was linked to still uses GCC in part. Of the very few other remaining possibilities, neither TenDRA or ACK are technologically current, (with the latter's obsolescence being measured in *decades*) and the Intel C Compiler is not open source.
We *need* an alternative to GCC. If I had one, barring translation problems, I could put together a completely non-GNU/FSF toolchain in probably a week and a half or so, as could many other people. *All* of the other pieces are there. The problem is, we don't have an alternative to GCC, and it's far too complex a piece of software for most of us to apparently even know where to begin to write one.
If there is anyone reading this who *does* have even a vague idea of how to begin this, please seriously consider it...because you could provide exactly the kind of miracle that right now, a lot of us need. -
Re:a package, can't remember the name GC... someth
FOX is like core-utils and such, it's not a whole OS. It's more all-encompassing than core-utils, but it's still not everything. I doubt OpenBSD considers the compiler to be part of base - you know how much de Raadt hates GNU - it's not part of base on FOX either, though, I am considering possibilities for using other compilers, such as an earlier compiler from 4.2BSD, or perhaps tcc, or I've heard de Raadt was considering TenDRA as it's BSD-licensed.
I have my own limitations. And I haven't yet gotten a libc ported over...at least, a working one...
-uso. -
Re:BSD ?
Actually, there is a BSD-licensed compiler. It's called TenDRA. Unfortunately, it's not a drop-in gcc replacement.
-
Re:Membership
Err, BSD doesn't use GNU libc (BSD has it's own C library), and the only reason why BSD uses gcc instead a BSD-license compiler is because when the original BSD developers decided to rewrite all of the AT&T code, GCC was already available, and I guess the BSD developers didn't feel like rewriting pcc (the compiler that shipped with AT&T Unix). I believe, looking at some old BSD source lists, that the BSD developers dropped pcc when the Net/2 release came out.
And with TenDRA becoming better each year, we might see the BSDs make the switch to this compiler. The BSDs are known for replacing GNU tools with BSD-licensed replacements. OpenBSD is working on a BSD-licensed CVS, and FreeBSD replaced GNU tar with a BSD-licensed tar in FreeBSD 5.3.
-
Re:The shot at RMS for the day
Wow. What a lame argument, "If GCC didn't exist, BSD wouldn't be where it is today, and you can't say otherwise because otherwise didn't happen!"
The simple fact of open source isn't what gets built, it's the spirit behind it - a spirit that exists without some fat bearded douche bag writing PART of a compiler (which isn't JUST WRITTEN BY RMS, IT'S WRITTEN BY MANY MANY OTHER PEOPLE TO REACH IT'S CURRENT, USEFUL FORM!!! Jeebus people). That spirit would move other people to develop their own compiler, much like the anti-GPL spirit in the BSD community has fostered increasing support for TenDRA. So, to answer your question, what is the greatest contribution to open source? Motivation to write open source software. If GCC didn't exist, that motivation would push coders to develop a different free compiler. To say otherwise is to speak with dogmatic blinders.
It's not as though RMS is the only one who can start a compiler and get it to attain self-sustaining momentum. Any good college CS program involves a class in compilers. A compiler is not some great mystery of comptuers, it just takes a lot of work to get one that works well enough for production use. Once TenDRA becomes stable and feature-rich enough to be used in production, BSD wills switch over to it in droves. -
Re:just when OpenBSD i386 started to move to 3.x
-
Re:just when OpenBSD i386 started to move to 3.x
-
Re:He Doesn't Get ItIt's slightly less crazy for a small team to write a compiler.
PS - I don't think the BSDs are directly involved
/w Tendra, are they? -
Re:He Doesn't Get It
No sane person would sit down and write their own C compiler+debugger from scratch because he didn't like the licenses of the currently available compilers.
Yet that's pretty much what the BSD folks are doing with Tendra.
They don't like the GPL. -
Re:The battle continues...
OpenBSD will stop using GCC when the Tendra Project has reached a satisfactory level of maturity. The OpenBSD team work under the premise that GPLed items are 'free enough for them' until a replacement can be found, just like Linus works under the same premise (see Bitkeeper).
-
Re:3.5 vs. 4.0
Tree-SSA is not new, it's new to GCC but the concept of Single Static Assignment itself is ancient and using it for optimizing trees in not new.
The problem is the GCC codebase is so badly designed it takes major changes to many parts to introduce a very old concept of SSA into it. So you can't take advantage of a generic SSA but have to introduce different patches for the system.
Back in my university days we did SSA in our own compilers, for a 5 week course! GCC needs a complete rewrite or a switch to something like TenDRA, which right now produces good solid code, but not extremely optimized machinecode. On the other hand TenDRA is really well designed so it would catch up really fast if more people worked on it. -
This could easily be made cross-platform......by using a technology such as TenDRA: the plugins are distributed in a platform-neutral format, and then the final stage of compilation into fast, native machine code is done on installation. For the sandbox environment of a web browser, TenDRA's ability to define global interfaces would be a great help.
Has anyone actually done anything useful with TenDRA yet? It seems like such a great idea, and yet there's so little interest...
-
ANDF?What about the Architecture Neutral Distribution Format from the TenDRA project?
That format could be extended into a vendor-neutral format for both interpretation, just-in-time compilation, and batch compilation.
-
Re:I had a look.
Actually, Intel seems decently smart about support. At least for their -paid- customers (I get an 'Access Forbidden' on their Premier support site, even though it says I should be able to get there with the free version too), there are pretty frequent minor patches that you don't notice if you just happen to check on the website once every few weeks.
It may be easy to some to patch their version of GCC for a bug they happen to hear about, but it's not a realistic expectation for most users. GCC is pretty "sluggish" on even bugfix updates, let alone noticing some of the bugs. gcc -march=athlon-tbird (and at least -march=athlon as well) can generate -really- grody incorrect code in even general situations, giving out really sub-par speed, even compared to -march=i686. The unfortunate thing being that this bug has been known about since circa 3.0.1, and hasn't been fixed by 3.3.2, and I've heard no mention of it being fixed in the 3.4 CVS branch (nor with my tests about five months ago).
Personally, I'm hoping an "alternative" compiler like TenDRA gets off the ground and can fill that void between overwhelming most-every-platform cross-compiler, and "beedy eyed" binary-only x86-optimized compiler, neither of which operates with any other particularly well. -
Re:Oh, catch the hell up.
gcc is one of the reasons a number of developers in *bsd land are waiting for this to mature. others (theo is a big advocate) are trying to get the plan9 toolchain freed up more.
and then there will truly be a *free* operating system. -
Re:Ha-Ha
You have it all wrong foolio most GNU tools are copies of BSD tools which has been in existance for years.
As for gcc replacement Tendra looks like a good candidate. -
Re:WTF
yes, its called Tendra
-
Re:Waiting for 3.4
You may always try the TenDRA compiler.
-
Re:I've never understood the GNU/Linux thing
-
Re:BSD is just as equally a hodgepodge
NetBSD 1.6.1 still ships with Taylor UUCP which is still GNU. I'm sure a BSD-licensed HoneyDanBer version could be probably be pulled out of the woodwork without much hassle, though.
perhaps one day the BSD licensed TenDRA compiler could be used to compile NetBSD...