OS WARS MEGA THREAD (Now debating proprietary vs. open-source!)

It is? I'd heard that it was due out.... So behind the times with these OS updates!
 
Yeah, it just came out -- you can download it via the Windows Store app.
 
Now in order for you not having to copy the whole orbiter API, but in order for a developper not having to port all the code to an entirely different language, how realistic would a SpaceWay C++ API be? Someone else could still write a wrapper for it if he wants to, but porting just to other API calls would be pretty simple if the add-on was designed with the possibility in mind.

There are two fundamental issues:

1. C++ is not a proper language, it is hack on top of C. Really. There is no way to natively express C++ objects in binary (DLL). So if the VC++ compiler sees the following C++ declaration (example from Wikipedia):

void __cdecl abc<def<int>,void*>::xyz(void);

it mangles the name to this:

xyz@?$abc@V?$def@H@@PAX@@

and puts that as an exported name in DLL. So trying to create your own DLL which matches an object-oriented interface of some other DLL is challenging, and creating that DLL with something other than VC++ (i.e. Pascal) is a good way to go crazy. VESSEL/VESSEL2 interface contains tens of C++ methods you'd have to duplicate.

2. Orbiter API is not only C++-oriented (see above), it is also not designed in a way which isolates the vehicle code from the rest of the system: the vessel code is allowed to call any API functions. So in principle, you'd have to reimplement all of Orbiter API to achieve full compatibility.
 
There is no way to natively express C++ objects in binary (DLL).

Sorry, but that was a deep dive into the toilet - why do you blame C++ for the limitations of Microsofts PE file format, that it uses for object files, static libraries, executables and DLLs?

Ever dared to look what C++ classes looks like in a ELF file?

Visual C++ really does the worst of all solutions to map the C++ language to the PE file format, but still, the cause of the problem is not C++, but Microsofts standards that are, like always, cheaply stolen from the worst possible source.

[ame="http://en.wikipedia.org/wiki/Name_mangling"]Name mangling - Wikipedia, the free encyclopedia[/ame]

Visual C++ name mangling - Wikipedia, the free encyclopedia
 
Last edited:
Sorry, but that was a deep dive into the toilet - why do you blame C++ for the limitations of Microsofts PE file format, that it uses for object files, static libraries, executables and DLLs?

Because the first C++ compiler (Cfront) was not really a compiler -- it was a program which translated C++ classes into C code using name mangling. It was a hack to avoid writing a full-blown compiler and an object-oriented executable format... And we're still stuck with this hack 30 years later.
 
Because the first C++ compiler (Cfront) was not really a compiler -- it was a program which translated C++ classes into C code using name mangling. It was a hack to avoid writing a full-blown compiler and an object-oriented executable format... And we're still stuck with this hack 30 years later.


1983 - first release of Cfront
1991 - last release of Cfront, because integrating exception handling into it was practically impossible.
1993 - first use of PE file format in Windows NT 3.1, first version of Visual C++, compatible to Cfront 2.1

Yes, the C++ language is to be blamed of this. :facepalm:
 
Last edited:
Yes, the C++ language is to be blamed of this. :facepalm:

Symbol resolution belongs to a (dynamic) linker. But instead of writing a C++-aware linker, Stroustrup used a hack (name mangling) and C compiler and linker. Then ISO C++ committee declared that name mangling is an internal functionality of the compiler and thus exempt from standarization. The result is that you cannot access C++ objects in DLL (or .so for that matter) without knowing which version of which compiler was used to generate the binary.
 
Symbol resolution belongs to a (dynamic) linker. But instead of writing a C++-aware linker, Stroustrup used a hack (name mangling) and C compiler and linker. Then ISO C++ committee declared that name mangling is an internal functionality of the compiler and thus exempt from standarization. The result is that you cannot access C++ objects in DLL (or .so for that matter) without knowing which version of which compiler was used to generate the binary.

Wrong.

Please compare the name mangling in VC++ to name mangling in other C++ compilers.
 
Please! Don't make this another religious "my language is the best" thread, would you?
There is NO perfect language for all purposes! (not yet...? ;) )
 
XP End of Support

In just over a week, April 8th, Microsoft will discontinue official support for Windows XP, resulting in the end of system updates.
http://windows.microsoft.com/en-us/windows/end-support-help

So, what are you guys doing? Nothing? Panicking? Upgrading software or hardware? Putting on sunglasses and chilling? :cool:
 
I moved away from XP over a year ago.

Remember, that all this means is that there are no more security updates, not that XP won't work anymore. However, it's a good idea to keep an eye on security bulletins to see what XP might be vulnerable to and make sure that you use a third party firewall and AV solution.
 
The state of lower saxony pays a few million Euros now for extending the support for XP for its computers until 2015, because the known IT service provider T-Systems failed the transition project.

Here, I run Windows 7 and Windows 8.1 ...
 
I migrated 2 computers ago

My last computer had Vista and my current one purchased a little over a year ago has Win 7.

Dantassii
HUMONGOUS IMS shipbuilder
 
I haven't used XP on a daily basis in years.
 
Haven't used XP since I got my new computer. Wanted to make use of DirectX 11...

But I'll miss this system. It never got in the way of my work...
 
Back
Top