64-bit dc plus plus

Archived discussion about features (predating the use of Bugzilla as a bug and feature tracker)

Moderator: Moderators

Locked
true_runner
Posts: 17
Joined: 2004-07-12 04:45

64-bit dc plus plus

Post by true_runner » 2004-07-12 04:55

I was wondering if it was possible to put together a 64 bit version of dc plus plus. I cant find a compiler to put it together for free and that converts code into 64 bits. Even if I could find one like that i dont think that I could do any coding because I don't know how to code and compile the source code and how to put it together after i code it all to make it work. I have download the source code and i see the code for all the features but I dont know how to put all thos together ocne i compile them to make dc plus plus work.

My question is will someone release a 64 bit version of dc plus plus please or at least give me a link to a free compiler to use. I have googled a lot for trying to find compilers but all i can ind are ones that i have to pay for. I cant use any linux ones because I use windows. Thank you for your help.

TheParanoidOne
Forum Moderator
Posts: 1420
Joined: 2003-04-22 14:37

Post by TheParanoidOne » 2004-07-12 05:16

Do you actually need a 64 bit version?
The world is coming to an end. Please log off.

DC++ Guide | Words

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-07-12 08:50

With that kind of thinking do we actually need a 32 bit version or a 16 bit version of dc plus plus?

You eventually have to have a 64 bit version of dc plus plus. There are very few 16 bit programs anymore. So isnt it better to practice and make the change earlier and work the bugs out then to make it later and have it buggy? By buggy I dont necessarily mean the program but also the way in which everything is distributed. I havent looked at the source code closely or can even read it but I have read in my searches for a compiler that some code has to be written to make use of the correct length of pointrs and integers or something like that. Not quite sure but if you pop in "64-bit compiler" into google then you can get some of the webpages I saw. I'll leave that for the developers to do but all I want is a 64 bit version to be existed. I can make it myself if I have a compiler but like i said the only ones I have found are buying ones for windows. Please help. If you cant help me then please dont post.

http://www.devx.com/amd/Door/16009#tools
http://www.devx.com/amd/Article/16520

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-07-12 10:03

true_runner wrote:With that kind of thinking do we actually need a 32 bit version or a 16 bit version of dc plus plus?
Strawman. The 64 bit processors and 64 bit Windows versions are not widely enough adopted to be extremely concerned about right now.

Once that changes, DC++ will change as well.
true_runner wrote:Not quite sure but if you pop in "64-bit compiler" into google then you can get some of the webpages I saw. ... I can make it myself if I have a compiler but like i said the only ones I have found are buying ones for windows.
If you add site:microsoft.com into your searches, you'll find relevant pages, most linked from here. Plus a free compiler (included in the Platform SDK, if I recall correctly).

As a sidenote, I had no idea you needed one gigabyte of memory to run Windows XP 64-Bit Edition. (1)

TheParanoidOne
Forum Moderator
Posts: 1420
Joined: 2003-04-22 14:37

Post by TheParanoidOne » 2004-07-12 10:51

true_runner wrote:With that kind of thinking do we actually need a 32 bit version or a 16 bit version of dc plus plus?
I wasn't asking the question to be philosophical. I was genuinely wondering whether you needed a 64-bit version. Is there any reason you were being so sensitive/defensive?

In answer to your counter questions, yes I need a 32-bit version because I run a 32-bit version of Windows and no, I don't need a 16-bit version because I have the 32-bit version.

So you still haven't answered the question. "Yes, because I have 64-bit windows" and "No, but I want 64-bit just for the sake of it" are both equally valid answers.
The world is coming to an end. Please log off.

DC++ Guide | Words

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-07-12 12:29

You dont need 1 gb of memory for windows 64 bit because i run it fine on only 256 mb of ram. the windows that you are talking about is the one designed for the itanium not the athlon.

As for the compiler being included in the sdk i'm not sure that it is.
http://www.collosumus.net/amd64/pgm/cl_1.html
"When I got my AMD64 and the latest 64-bit Windows beta's , the next thing I did was downloading the Software Development Kit (SDK) from the Microsoft site, hoping to find a Microsoft AMD64 compiler with it. Unfortunally after installing the entire SDK, there was no AMD64 compiler to be found anywhere in the SDK (Although the Setup program listed it as installable, it was simply not there after installation). It isn't on MSDN either so I had to find my luck elsewhere. Well, the Microsoft AMD64 compiler can be found in the Windows Driver Development Kit (DDK), but it's not free. You either have to order it, be fortunate enough to have access to a MSDN subscription or work for a large OEM. "
paranoid one they are the same answer but i think both dc plus plus is a elective program. i will be using it for the exact same purpose that you will use it for. being in 64 bits makes the process efficienter than itcould be otherwise. it finishes in less time making the clock cycles open to other programs i think. i do have windows 64 bit edition and i want it so that all my programs can be used efficiently and in the best way possible to save me money on electricity and stuff. If that makes me want it just because then I want it just because.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-07-12 12:45

true_runner wrote:You dont need 1 gb of memory for windows 64 bit because i run it fine on only 256 mb of ram. As for the compiler being included in the sdk i'm not sure that it is.
The recommendation is Microsoft's own, see my footnote.

Does AMD64 refer to a specific compiler by AMD? It looks like, according to this article, you can just throw a command line switch on and compile for 64 bit windows:
http://www.microsoft.com/whdc/winhec/pa ... itAMD.mspx
Their compiler is free: http://msdn.microsoft.com/visualc/vctoolkit2003/ (It makes no mention of (not) including 64-bit capabilities.)
true_runner wrote:If that makes me want it just because then I want it just because.
Pretty much. You have 64-bit windows, so you want 64-bit applications. I think you're greatly overestimating any efficiency and power usage gains, but wanting all your apps to be 64 bit is a fine motivation, as TPO said.

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-07-12 12:59

no there are many versions of windows 64 bit version open. one is designed specifically for itanium and wont work on athlon and the other is designed for athlon and wont work for itanium. that one is designed for itanium not athlon.
http://www.microsoft.com/windowsxp/64bi ... grade.mspx
• PC with an AMD Athlon64 or Opteron processor
• 256MB RAM
• 1.5GB available hard-disk space
• Super VGA (800x600) or higher resolution video card
• CD-ROM or DVD drive
• Keyboard and Microsoft Mouse or compatible pointing device

Important: Windows XP 64-Bit Edition for 64-Bit Extended Systems is only compatible with 64-bit AMD Opteron– or Athlon 64-based computers. It cannot be successfully installed on 64-bit Intel Itanium–based systems.

i will check out the toolkit

applications can make a 15% to 30% performance gain on athlon based computers. i read it when i was making my purchase and i read a lot of reviews on the processor and they said a lot of the same thing.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-07-12 13:05

true_runner wrote:i read it when i was making my purchase and i read a lot of reviews on the processor and they said a lot of the same thing.
Let's hope it wasn't a giant circle-jerk. 8)

TheParanoidOne
Forum Moderator
Posts: 1420
Joined: 2003-04-22 14:37

Post by TheParanoidOne » 2004-07-12 13:34

true_runner wrote:paranoid one they are the same answer but i think both dc plus plus is a elective program. i will be using it for the exact same purpose that you will use it for. being in 64 bits makes the process efficienter than itcould be otherwise. it finishes in less time making the clock cycles open to other programs i think. i do have windows 64 bit edition and i want it so that all my programs can be used efficiently and in the best way possible to save me money on electricity and stuff. If that makes me want it just because then I want it just because.
Translation = "Yes, because I have 64-bit windows".
That's all I was after.
The world is coming to an end. Please log off.

DC++ Guide | Words

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-07-12 14:38

ok i think i got it to work. i have a question. how do i make it so that after i compile all the programs in the CLIENT directory that i combine them all together into one program and let it run like dc plus plus would run? i checked in the programming section of the forum but i dont want to post a different thread on the same topic if i dont have to.

also i dont think it has support for athlon 64 bit encoding.
Streaming SIMD Extensions 2

If you are sure you are building code for a computer that has SSE2 support, e.g. Pentium 4 or AMD Athlon64 machine, you can use the /arch:SSE2 option. This produces code that will not run on other chips, but is much faster, especially for routines with a lot of floating point arithmetic.

Test 3 performs a floating point calculation very similar to Test 2:

#define ARRAY_LEN 10000
double array[ARRAY_LEN];

double Calculate()
{
double total = 0;

for (int i = 1; i < ARRAY_LEN; i++)
{
total += array[i-1]*array;
}

return total;
}

void Test2()
{
double var1 = 2;
int i;

for (i = 0; i < ARRAY_LEN; i++)
{
array = var1;
var1 += .012;
}

LARGE_INTEGER start, end;
LARGE_INTEGER freq;

SetThreadAffinityMask(GetCurrentThread(), 1);
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
double total = 0;

for (i = 0; i < 100000; i++)
{
total += Calculate();
}

QueryPerformanceCounter(&end);

cout << "Total = " << total << endl;

cout << (end.QuadPart - start.QuadPart)/(double)freq.QuadPart << " seconds" << endl;
}

To compile it without processor-specific instructions, use this command line:

cl /O2 /ML /EHsc GL-G7.cpp module.cpp

To compile it for a Pentium 4 or AMD Athlon machine only, use this command line:

cl /O2 /ML /EHsc /G7 /arch:SSE2 GL-G7.cpp module.cpp

To run test 3, use this command line:

gl-g7 3

On a Pentium 4 or AMD Athlon machine, the /G7 /arch:SSE2 version runs about 10% faster. This code cannot be run on a machine without the appropriate chip.


but it says the pentium 4 or the athlon 64 so that means that it is a 32 bit program right?

when i try the switches in the file guide there for the amd64 it doesnt work

i am going to try to get visual studio. the library has it i think.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-07-12 15:11

In the GUI, you just build the DCPlusPlus project file, and it causes client, zlib, and bzip2 to be built and linked in recursively.

The MS compiler is good, but for optimization, you're better off with the $400.00 Intel Compiler. I'm not sure if it does 64-bit, and you may not be able to compile DC++ without changing the project files.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-07-12 15:22

[quote]The first step is easy: Use the /Wp64 switch with the 32-bit Microsoft Visual C/C++ compiler. With that switch thrown, the compiler will warn you about portability issuesâ€â€

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-07-14 11:40

I installed the windows c plus plus beta but i dont see the program that was supposed to be installed.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-07-14 12:44

true_runner wrote:I installed the windows c plus plus beta but i dont see the program that was supposed to be installed.
Come again?

Does it not include Visual Studio, the IDE?

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-07-14 13:58

The only programs it installed were "microsoft sql server 2005" and "msxml 6.0" even though I SELECTED ALL OPTIONS in the setup program for a complete install.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-07-14 15:09

I haven't used it, try taking that up with MS support...

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-07-15 10:52

i give up.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-07-15 12:05

true_runner wrote:i give up.
I'll see if I can retrieve the password to my Passport account and download the beta. I'll see if it does include an IDE, and if it is trivial to make an AMD64 port.

If you want to give/loan me an AMD64 so I have a vested interest in making an AMD64 binary, all the better.

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-07-15 14:14

I installed it on a clean isntallation of windows 2000 with service pack 4 and internet explorer service pack 1. it just didnt install everything it was supposed to. I dont know why.

if you want gargoyle you can have access to my computer. I can make you an account and you can connect remotly if you need to use anything.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-07-15 15:11

Well, if I get to the point of having a 64 bit compiler, I'll get you to test it. Right now, MS claims to have sent emails to verify my address, but my ISP's mail server hasn't delivered them.

It looks like, from the FAQ, that ATL and MFC aren't included, but a Platform SDK update should probably take care of that. The readme says that installation isn't supported on 64 bit platforms, but from my own earlier confusion, I'd guess that applies more to Itanium platform than to the AMD64 platform.

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-07-15 17:03

i dont know what atl and mfc are.

if you have a regular operating system on the athlon 64 then you can run the sofotware. But when it says not supported i think hat means it hasnt been tested to run yet on windows 64 for the athlon 64. it should run just fine on it but i havent tried it yet. i just ran it on my athlon xp processor with a clean install of windows 2000 and service pack 4 and internet exploer service pack 1. it said it installed all the stuff but when i went to the start menu i only saw two of the things it installed. i thought that there should be at least three things that it installed because maybe the examples were embedded in the compiler itself through a menu or something but i guess not. i even looked in the programs folder for the compiler but i couldnt find it at all.

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-07-17 14:54

Ok, for me as well, the IDE failed to install on the first try. So I just downloaded the pieces manually, according to the page on the subject.

There are some simple changes to DC++ based on the _MSC_VER that the beta shows, and a prevalent warning message that needs to be ignored. The biggest problem is this:

Code: Select all

error C2299: 'ATL::CComPtr::operator`='' : behavior change: an explicit specialization cannot be a copy constructor or copy assignment operator
When using .NET 2003's atlmfc directory with the 2005 beta. According to a post on their news servers, it's because the 2005 Beta Express wasn't intended to compile ATL/MFC programs, and using non compatible versions of the library (i.e. those distributed not with the full beta version) just won't work.

So, I think this is as far as I can go, since I'm not in their Beta program and don't have (legitimate) access to any of the beta products.

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-10-28 21:40

any updates?

Sixtyfourbits
Posts: 2
Joined: 2004-02-18 20:43

32bit binaries do run on 64bit OS.

Post by Sixtyfourbits » 2004-10-29 08:22

I myself bought Opteron CPU about year ago, i was one of the first users to have x86-64 CPU running @home.
I also have been eagerly waiting 64bits to be used in programs that benefit from it.
But i doubt that DC is one of those, and 32bit programs do run on 64bit OS. (wow in windows, ?? in linux.)

So do we need it ?
As long as it is stable when running on 64bit OS i dont care.
I doubt that DC++ needs more than 2 or 4GiB* of memory in the near future, or that the que is so long that it cannot be handled without 64bits. :-D

*dont remeber what is the limit per app in 64bit windows if appz only uses 32bits.

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-10-29 08:42

dc++ will probably benefit from the optimizations if applied but it wont benefit from 64 bits since it probably doesnt do 64 bit math. its good to have 64 bits because 32 bits will not be made forever. eventually like with 16 bits we will move on. and i am for one eager to see the future.

Sixtyfourbits
Posts: 2
Joined: 2004-02-18 20:43

Post by Sixtyfourbits » 2004-10-29 08:49

true_runner wrote:dc++ will probably benefit from the optimizations if applied
Yes of course, using 64bit registry does speed up things.

I do want 64bit version too, and only becouse it is possible.
It's like they say, more is better.. :roll:

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-10-29 11:04

true_runner wrote:any updates?
None, nobody has bought me a MSDN subscription yet. Arne has made some 64-bit fixes for /client/ on his 64-bit linux box, but that isn't what you want.

true_runner
Posts: 17
Joined: 2004-07-12 04:45

Post by true_runner » 2004-10-29 13:50

i have linux fedora core 2 server/workstation/developer/desktop edition. can i make a 64 bit edition of dc++ with linux fedora if it is on a 32 bit athlon xp 1800+ with 60 gb hard drive and 512 mb ram computer? can i make it on linux so that it will run on windows 64 bit edition for athlon 64 with athlon optimizations and stuff? the linux is only 32 bit so is it possible?

GargoyleMT
DC++ Contributor
Posts: 3212
Joined: 2003-01-07 21:46
Location: .pa.us

Post by GargoyleMT » 2004-10-29 21:23

true_runner wrote:can i make a 64 bit edition of dc++ with linux fedora if it is on a 32 bit athlon xp 1800+ with 60 gb hard drive and 512 mb ram computer?
No. There's a linux port, but it's not ready for mass consumption yet. You can find a link to the source in the Programmer's Help forum.
true_runner wrote:can i make it on linux so that it will run on windows 64 bit edition for athlon 64 with athlon optimizations and stuff?
No. To build for the amd-64 Windows version requires the beta of 2005 or the compiler from one of the driver development SDKs. Neither is accessible to mere mortals (of which I am definitely one)
true_runner wrote: the linux is only 32 bit so is it possible?
Sorta. You can build the client into a library using a 64 bit compiler, but that's the only official thing you can do on Windows. Hopefully the linux port will be polished up, and then (my idea is) the linux developers can be added to the DC++ project and can be in charge of maintaining the linux port GUI directory.

p4ppabetalar
Posts: 3
Joined: 2004-09-25 15:39

Post by p4ppabetalar » 2004-11-08 11:32

Note that the hash DC++ uses, TTH or Tiger Tree Hash is a hash specifically designed for 64-bit systems (although it also performs well on 32-bit systems). So there should be a significant gain to be reached there.

~Grauw

Locked