Replies: 23 comments 1 reply
-
Unfortunately it doesn't support any standard at the moment. C++11 support is essentially non-existent. |
Beta Was this translation helpful? Give feedback.
-
Sorry for the late reply, kidney stones got me again... What would it take to get support in ?, obviously the runtime libraries need an interface and the C++ compiler needs to have options added for supporting the various standards. Would there be any other pitfalls besides the watcom specific calls that we need to consider ?. |
Beta Was this translation helpful? Give feedback.
-
Main reason is that OW C++ compiler doesn't support many "new" features, mainly with templates. |
Beta Was this translation helpful? Give feedback.
-
I was afraid of that :-/ C++ is hard work indeed. |
Beta Was this translation helpful? Give feedback.
-
There is a possibility that I might have some time to work on OWSTL again in the next few months. I'm currently getting the build going again on my machine as a first step. I realize I've said something like this before, and I know it has been a while since I contributed anything meaningful to that effort, but... Anyway, due to the lack of C++ 11 features, work on OWSTL mostly involves cherry picking the parts of the library that the current compiler can support and ignoring the rest. There are certainly plenty of things in the library that are missing; many (not all) of them await language upgrades. |
Beta Was this translation helpful? Give feedback.
-
would atleast be nice to have full std 89 support :) im not to well versed in C++ myself but ill help if i can. |
Beta Was this translation helpful? Give feedback.
-
You probably mean C++ 98... even that requires language features the compiler does not yet implement. That said, there is certainly more that can be added that the compiler can handle. |
Beta Was this translation helpful? Give feedback.
-
Whoops didnt notice i mixed those up :S Ok sounds like a good start, which parts of std 98 does the compiler not yet handle ?. |
Beta Was this translation helpful? Give feedback.
-
One of the biggest problems is two-phase name lookup for templates. OW essentially treats templates as a token soup. |
Beta Was this translation helpful? Give feedback.
-
So the compiler does not really know which types or otherwise it handles ? ouch... |
Beta Was this translation helpful? Give feedback.
-
As I recall there are four issues that are blocking some important library additions, all are related to templates:
and then call it like this:
I don't think the lack of two-phase lookup is particularly a problem. Situations where that matters are fairly rare. The lack of lazy instantiation is a much bigger issue (maybe that is what @bmanga is thinking about). |
Beta Was this translation helpful? Give feedback.
-
Only technical note to mangling, another problem. |
Beta Was this translation helpful? Give feedback.
-
hmm i think digital mars supported 16 bit segmented, but it only does OMF... |
Beta Was this translation helpful? Give feedback.
-
So it does understand typenames atleast as you shown with the template< typename T > Thats a world of relief since that means the parser is not a completely lost case. |
Beta Was this translation helpful? Give feedback.
-
Digital Mars use the similar method as OW round symbol length to follow OMF limit and add hash of symbol rest to end of symbol. |
Beta Was this translation helpful? Give feedback.
-
not sure how OrangeC does it, going to look into source to see if i can get a picture. OrangeC's linker is quite different though, so im not sure any parts from that would come in handy. |
Beta Was this translation helpful? Give feedback.
-
@revelator I'm not sure I understand what you're asking. Are you asking if the compiler understands the |
Beta Was this translation helpful? Give feedback.
-
Ment can it deduce T to the type of function it represents :) |
Beta Was this translation helpful? Give feedback.
-
Hmm the C++ compiler sources are rather complicated, but as far as i can see it uses a lexical parser. The code for handling templates needs a workover from what i can see its a bit braindead, Rest looks pretty solid to me :) |
Beta Was this translation helpful? Give feedback.
-
old hp stl for watcom here -> https://sourceforge.net/projects/cbadvanced/files/Tools/hp-stl.7z/download works with watcom 10 and 11. outdated as all hell but it might help in regards to workarounds for getting the std upto speed. |
Beta Was this translation helpful? Give feedback.
-
@pchapin I meant that two-phase name lookup is the feature that would require one of the most drastic changes in the internal representation of OW. But of course you're right that it's not one of the most beneficial ones, your list is much better for that :) |
Beta Was this translation helpful? Give feedback.
-
Have to agree since you worked more than anyone else on this part of the watcom C++ compiler. |
Beta Was this translation helpful? Give feedback.
-
I guess this topic could be renamed to something more particular:) |
Beta Was this translation helpful? Give feedback.
-
OrangeC from ladsoft, uses clangs libc++.
If the compiler can at all handle C++11 ? it might be a good standard library to consider.
Also i think he might be able to give you some pointers on how to modify the build chain so that it works with watcom. DOS compiling also works with it so it would be ideal since its a complete standard library that handles c++89 to c++17.
Offcourse this means dropping watcoms stl, so it might be a sour note for the developer who maintained that.
Beta Was this translation helpful? Give feedback.
All reactions