Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » Extra libraries, Code snippets, applications etc. » OS Problems etc., Win32, POSIX, MacOS, FreeBSD, X11 etc » Using DMC
Using DMC [message #20320] Tue, 10 March 2009 11:35 Go to next message
cbpporter is currently offline  cbpporter
Messages: 1400
Registered: September 2007
Senior Contributor
Hi!

As you might have heard, the latest release of Digital Mars D comes with full source code. While the army of self appointed license experts have already figured out that the license is not really open source, the code is still available and also available on MacOS, so my guess is that D adoption will start to pick up a little in some circles.

So I thought about giving D a second try. But the problem is DMC for compiling U++. As I sat there butchering U++ templates into something that DMC can compile, It was obvious that the code should compile and DMC is not that good with complicated template syntax, especially with inline friend scope resolution.

I was wondering if anybody ever tried to contact Walter on the state of DMC.

Or if anybody managed to compile at least a significant part of Core?

With such issues with the compiler, D adoption will forever remain for hobbyists, who don't really need to integrate existing C++ libraries, or if they do, they'll write their own. On the other hand, Qt bindings for D are starting to emerge. Last time I checked Qt, it did not favor that clever template tricks, so that might be the reason.

PS: While configuring TheIDE for DMC, I had dozens of crashes. Even leaving the builder field empty crashes.
Re: Using DMC [message #20321 is a reply to message #20320] Tue, 10 March 2009 11:52 Go to previous messageGo to next message
unodgs is currently offline  unodgs
Messages: 1354
Registered: November 2005
Location: Poland
Senior Contributor

Last time I tried to build core with DMC I had problem with compiling string class. I don't remeber the error now (something with templates). I follow D groups and C.beta and it seems development of dmc is susppended. I think Walter is now very focused on D only. That's a pity, as DMC is quite fast compiler. But you're right about letting him know it can't build U++ sources. I remeber Walter did regular patches to be able to compile boost library. Maybe only simple fixes are needed for upp.
Re: Using DMC [message #20322 is a reply to message #20321] Tue, 10 March 2009 12:07 Go to previous messageGo to next message
cbpporter is currently offline  cbpporter
Messages: 1400
Registered: September 2007
Senior Contributor
Yes, String has a lot of compilation issues. I had to turn things like:
friend ...() {}

into:
friend ...();
//outside of the class, at the end of the file
template <...>
inline ...() {}

This is quite the hack and I don't know if it works in linked file. Also tchar from AString which is tchar from String0 or WString0 could not be found by the compiler. But ofter I fixed these and other such friends, I started betting hundreds of mangled names without any readable error message.

But I agree. Letting him know would be good. While with the current issues DMD has and Walter focusing on D, I doubt we will have a DMC capable of compiling U++ in any practical timespan, Walter fixing DMC would be quite useful not only for us, but for other projects. As you said, DMC is very fast, especially if your testing something, and the only reason I would use D is for the compiler performance.

There is also another option. I think that D can load DLLs built with other compilers. But here we have U++'s issues with dlls.
Re: Using DMC [message #20375 is a reply to message #20322] Sun, 15 March 2009 22:18 Go to previous messageGo to next message
Mindtraveller is currently offline  Mindtraveller
Messages: 916
Registered: August 2007
Location: Russia, Moscow rgn.
Experienced Contributor

Excuse me for little offtopic. But the topic you are discussing I believe is important for many people who use U++.
Is there any possibility to include DMC builder into SVN version of TheIDE? Yes, I know that DMC is not compiling U++ itself, but TheIDE is good development platform to be used for many applications w/o U++.
Re: Using DMC [message #20407 is a reply to message #20375] Tue, 17 March 2009 10:30 Go to previous messageGo to next message
cbpporter is currently offline  cbpporter
Messages: 1400
Registered: September 2007
Senior Contributor
Mindtraveller wrote on Sun, 15 March 2009 23:18

Excuse me for little offtopic. But the topic you are discussing I believe is important for many people who use U++.
Is there any possibility to include DMC builder into SVN version of TheIDE? Yes, I know that DMC is not compiling U++ itself, but TheIDE is good development platform to be used for many applications w/o U++.

I don't know if including a builder designed specially for a compiler that can't handle U++ is a good idea. On the other hand, including a generic build method that can handle DMC (and quite possibly other compilers), but with extra parameters that a user must provide and instructions on the site for setting up common compilers might be a good idea.

Until then, if you want to set it up yourself, you need to:
1. Downlaod DMC and STLPort or use the CD if you have it
2. Create a new compile setting and add paths toward include and lib dirs
3. Choose GCC as a builder and set "dmc" as compiler name.
4. Modify GCC builder sources so that problematic parameters are not included in the command line (like -g3 for debug mode and another one for release mode). This part is certainly the most annoying part, but dmc will complain about wrong parameters, and the entire process including download and TheIDE recompile for builder shouldn't take more than 10 minutes.

PS: be prepared for a lot of TheIDE crashes. Every 5-10 builds, it will crash while using dmc, and also letting it give a lot of compilation errors will crash it again, so you should stop the build after the first few compilation errors.
Re: Using DMC [message #20408 is a reply to message #20407] Tue, 17 March 2009 10:41 Go to previous message
mirek is currently offline  mirek
Messages: 12096
Registered: November 2005
Ultimate Member
cbpporter wrote on Tue, 17 March 2009 05:30

Mindtraveller wrote on Sun, 15 March 2009 23:18

Excuse me for little offtopic. But the topic you are discussing I believe is important for many people who use U++.
Is there any possibility to include DMC builder into SVN version of TheIDE? Yes, I know that DMC is not compiling U++ itself, but TheIDE is good development platform to be used for many applications w/o U++.

I don't know if including a builder designed specially for a compiler that can't handle U++ is a good idea. On the other hand, including a generic build method that can handle DMC (and quite possibly other compilers), but with extra parameters that a user must provide and instructions on the site for setting up common compilers might be a good idea.



There is already "scipt builder", where you can use Esc to describe the build process.

Mirek
Previous Topic: UPP Applications do not accept user input under linux
Next Topic: Untrivial EditString bug(?) in FreeBSD(and may be all POSIX)
Goto Forum:
  


Current Time: Tue Nov 12 12:05:50 CET 2019

Total time taken to generate the page: 0.01430 seconds