Linked by Thom Holwerda on Sun 10th Sep 2006 20:38 UTC, submitted by fudel
Zeta Magnussoft, the company now responsible for development on Zeta, has announced it is accepting pre-orders for Zeta 1.21. This new release will include multi-user support, will be built with GCC4, among other improvements. Bernd Korz's weblog contains more information. Korz was (is?) the CEO of YellowTAB, the company that started Zeta. Read on for a short editorial on this announcement.
Thread beginning with comment 161304
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[6]: multi user???
by JonathanBThompson on Mon 11th Sep 2006 13:36 UTC in reply to "RE[5]: multi user???"
JonathanBThompson
Member since:
2006-05-26

Rayiner has been treating many people in a very insulting condescending manner, reading every possible negative into answers, real or imagined to past posts, including mine: I am utilizing the golden rule in this case, as that seems to be all he understands when it comes to "being right" since he can't accept the possibility that someone can have a different interpretation and be right about something, or that someone could actually have replied too quickly for him to realize that's not entirely what the responder meant. Rayiner has a long history of going out of his way to be abusive and putting people down and lord his would-be expertise over everyone else.

For BeOS, it'd be a rather major hassle to run binaries using both versions of the C++ compiler because of the ABI differences and the fact that BeOS is so heavily C++-based that applications compiled for the 2.9x compiler and libraries won't interoperate correctly (if at all) with anything using a later version of the C++ compiler. The link I provided explains that the ABI is more complex than merely the class layout (which the fragile base class problem is tied into, and why it wouldn't be remotely feasible to do what Rayiner was suggesting: if he's invoking ELF linking things together between 2.x and using a 3.x library to interface with a 4.x system, and there's been other changes in the C++ compiler between that, indicates that he's not fully aware or thinking about binary layouts of C++ objects) but also in how C++ exceptions are handled. Thus, a 3.0 C++ application wouldn't fully work correctly with a 4.x library in many cases, regardless of the name mangling being resolved by the ELF loader. Sure, you can lie to a program loader, but that doesn't mean you will get what you want.

So in one respect, yes, you're right: the fragile base class problem doesn't change the fact one way or the other that you can't use 4.x or even 3.x binaries directly with a 2.x application, but it definitely doesn't help. However, there *is* a way to create a C++ API that doesn't suffer from the fragile base class problem, without using the hack that BeOS used to reserve space, or using the COM method of peeling off interfaces from the base class interface. But if there's any time to add things to the basic classes of Zeta, they might as well do it when transitioning to the 4.x compiler, so base classes have cleaner interfaces without worrying about the headers being in a weird mess, at least to start. At some point closer to Haiku R1 release date or shortly thereafter, I'll create a demonstration and proposal of the C++ API that isn't vulnerable to the fragile base class problem as a proposal for Haiku R2 (no, it doesn't reserve space, either!).

Reply Parent Score: 2

RE[7]: multi user???
by Vanders on Mon 11th Sep 2006 14:30 in reply to "RE[6]: multi user???"
Vanders Member since:
2005-07-06

Does your proposal look anything like the scheme we're already using in libsyllable, by any chance? It's worked wonderfully for us.

Reply Parent Score: 1

RE[8]: multi user???
by JonathanBThompson on Mon 11th Sep 2006 15:17 in reply to "RE[7]: multi user???"
JonathanBThompson Member since:
2006-05-26

What scheme is that? Could you please provide a link? I strongly suspect not, since the scheme I have in mind would not be remotely source or binary compatible with the current API by any stretch of the imagination. While it would be wise to include a way to include a version number for applications to query for, it isn't required. In fact, those overly concerned with C++ purity may be unhappy with what I have in mind, but at least it is viable long-term (as in never having an expansion problem: if the C++ compiler ABI changes, that may affect it, depending on the level of C++ purity) ;) Because it isn't exactly as "pure" of C++ by intent, I'm not certain everyone will go for it, but it wouldn't cause old binaries to break, and wouldn't need backwards compatible C++ classes in libs and system kits, either. One of the side-effects of building an application or libs this way is that it's likely to result in simpler and smaller patch files for upgrades, too.

Reply Parent Score: 1