Re: Reason for Win64 instead of Win32 [Was: Re: [fpc-pascal] windows 32bit cross to 64 ?]

2010-08-17 Thread Sven Barth

Am 17.08.2010 10:03, schrieb Marco van de Voort:

In our previous episode, Sven Barth said:


Does anyone know the reason why 64-bit Windows was added as win64
instead of (x86_64-)win32? With Linux it was done the ${platform}-linux
way as well.


It's afaik microsofts own designation.


If that's the only reason then that sounds a bit lame in my opinion... 
but what's done is done.


A pity that I wasn't there when support for Win64 was added :P

Thanks for the answer.

Regards,
Sven
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: Reason for Win64 instead of Win32 [Was: Re: [fpc-pascal] windows 32bit cross to 64 ?]

2010-08-17 Thread Florian Klaempfl
Am 17.08.2010 10:11, schrieb Sven Barth:
 Am 17.08.2010 10:03, schrieb Marco van de Voort:
 In our previous episode, Sven Barth said:

 Does anyone know the reason why 64-bit Windows was added as win64
 instead of (x86_64-)win32? With Linux it was done the ${platform}-linux
 way as well.

 It's afaik microsofts own designation.
 
 If that's the only reason then that sounds a bit lame in my opinion...
 but what's done is done.
 

Why? It would only cause confuse to name it different than it is
officially called.
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: Reason for Win64 instead of Win32 [Was: Re: [fpc-pascal] windows 32bit cross to 64 ?]

2010-08-17 Thread Sven Barth

Am 17.08.2010 10:14, schrieb Florian Klaempfl:

Am 17.08.2010 10:11, schrieb Sven Barth:

Am 17.08.2010 10:03, schrieb Marco van de Voort:

In our previous episode, Sven Barth said:


Does anyone know the reason why 64-bit Windows was added as win64
instead of (x86_64-)win32? With Linux it was done the ${platform}-linux
way as well.


It's afaik microsofts own designation.


If that's the only reason then that sounds a bit lame in my opinion...
but what's done is done.



Why? It would only cause confuse to name it different than it is
officially called.


Because I consider Win32 and Win64 as one type of operating system. One 
OS target. Just as Linux is one operating system for all those 
available platforms.


Maybe it would have been better to name the target windows instead of 
win32 and win64 from the beginning so there would be no confusion 
regarding this...


But that's just my opinion ^^

Regards,
Sven
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: Reason for Win64 instead of Win32 [Was: Re: [fpc-pascal] windows 32bit cross to 64 ?]

2010-08-17 Thread Florian Klaempfl
 Because I consider Win32 and Win64 as one type of operating system. One
 OS target. Just as Linux is one operating system for all those
 available platforms.
 
 Maybe it would have been better to name the target windows instead of
 win32 and win64 from the beginning so there would be no confusion
 regarding this...

In the beginning there was win16 which was really different so it was
needed to call the 32 bit api win32. And don't forget, the win64 api has
slight differences from the 32 bit api e.g. regarding exception handling.
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: Reason for Win64 instead of Win32 [Was: Re: [fpc-pascal] windows 32bit cross to 64 ?]

2010-08-17 Thread Sven Barth

Am 17.08.2010 11:43, schrieb Florian Klaempfl:

And don't forget, the win64 api has
slight differences from the 32 bit api e.g. regarding exception handling.


The differences are either slight enough to be left to the developer or 
be considered CPU dependant (and could thus have been moved into 
$platform-subdirectories like was done with Linux). And from these CPU 
dependant differences only exception handling is a bigger problem.


Normal SEH is considered purely CPU dependant, so no problem here.

The vector exception handling approach which came up with 64-bit was 
also included in the 32-bit systems (but you can only rely on the fact 
that all 64-bit systems have it).


And if you're talking about the new 64-bit only much more complicated 
exception scheme which uses new sections in the PE file:

1. Also CPU dependant (only on 64-bit systems)
2. FPC isn't even using SEH to its full potential, so why bother... 
(also it seems to be only really needed to catch exceptions thrown by MS 
Visual C++ libraries as the older exception scheme (SEH) is still available)



But as I said in my past mails: the decision was done already a long 
time ago and thus I live with it (but I don't need to agree with it :P ).


Regards,
Sven
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: Reason for Win64 instead of Win32 [Was: Re: [fpc-pascal] windows 32bit cross to 64 ?]

2010-08-17 Thread Marco van de Voort
In our previous episode, Sven Barth said:
  slight differences from the 32 bit api e.g. regarding exception handling.
 
 The differences are either slight enough to be left to the developer or 
 be considered CPU dependant (and could thus have been moved into 
 $platform-subdirectories like was done with Linux). And from these CPU 
 dependant differences only exception handling is a bigger problem.

Windows is more binary centric than Linux.

In Linux every app is linux and then compiled to linux/x86 etc

On windows, typically binary files are distributed and win64 bins don't work
on win32, so win32win64.
 
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: Reason for Win64 instead of Win32 [Was: Re: [fpc-pascal] windows 32bit cross to 64 ?]

2010-08-17 Thread Sven Barth

Am 17.08.2010 12:43, schrieb Marco van de Voort:

In our previous episode, Sven Barth said:

slight differences from the 32 bit api e.g. regarding exception handling.


The differences are either slight enough to be left to the developer or
be considered CPU dependant (and could thus have been moved into
$platform-subdirectories like was done with Linux). And from these CPU
dependant differences only exception handling is a bigger problem.


Windows is more binary centric than Linux.

In Linux every app is linux and then compiled to linux/x86 etc

On windows, typically binary files are distributed and win64 bins don't work
on win32, so win32win64.


That is a bit unfair now. Comparing binary only applications to source 
only ones regarding portability.


If I write a proprietary application for Linux and distribute it for x86 
only it doesn't necessarly run on a x86_64 Linux (at least not on mine, 
because I don't have the 32 bit libraries installed). Also if I compile 
my application for x86_64 only than it won't work on x86 Linux. So 
Linux32  Linux64.


Also if I write an application for Windows and distribute its source I 
can compile it for Windows 32 bit and Windows 64 bit without problems 
(even if I'd not use Pascal but plain MS C).


And even x86 and x86_64 Linux differ in some syscalls, so the Windows 
API doesn't need to be the exact same on both Platforms (but it is 
mostly except of some platform specific pieces).



But you know what? Let's stop this discussion, before it turns into a 
usual flamewar thread. I've said my opinion and that I'd have done that 
different, but I can't change it (without forking FPC) and I'll still 
continue to use FPC happily ever after no matter whether we have 
seperate win32/64/128 targets or a single windows one.


Regards,
Sven
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal


Re: Reason for Win64 instead of Win32 [Was: Re: [fpc-pascal] windows 32bit cross to 64 ?]

2010-08-17 Thread Marco van de Voort
In our previous episode, Sven Barth said:
  On windows, typically binary files are distributed and win64 bins don't work
  on win32, so win32win64.
 
 That is a bit unfair now. Comparing binary only applications to source 
 only ones regarding portability.

There is nothing about fairness or not here. It is simply a bit different
tradition in what is considered compatible, bianry or source.
 
 If I write a proprietary application for Linux and distribute it for x86 
 only it doesn't necessarly run on a x86_64 Linux (at least not on mine, 
 because I don't have the 32 bit libraries installed)

True, but apps enter distributions mostly as source. Some projects don't
even release binaries themselves.

 Also if I compile 
 my application for x86_64 only than it won't work on x86 Linux. So 
 Linux32  Linux64.

On the binary level, true. But the point is that it is the tradition on the
free unices (and even a bit Unix in general) to focus on the source. The
whole system is defined in C language level terms.
 
___
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal