PORT_symmetric

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

PORT_symmetric

Adriano dos Santos Fernandes-3
Hi!

When client and server "architecture" are identical, remote code set
PORT_symmetric flag and that causes some optimizations.

But, architectures are:

#if defined(__sun)
# ifdef sparc
const P_ARCH ARCHITECTURE = arch_sun4;
#elif (defined i386 || defined AMD64)
const P_ARCH ARCHITECTURE = arch_sunx86;
# else
const P_ARCH ARCHITECTURE = arch_sun;
# endif
#elif defined(HPUX)
const P_ARCH ARCHITECTURE = arch_hpux;
#elif (defined AIX || defined AIX_PPC)
const P_ARCH ARCHITECTURE = arch_rt;
#elif defined(LINUX)
const P_ARCH ARCHITECTURE = arch_linux;
#elif defined(FREEBSD)
const P_ARCH ARCHITECTURE = arch_freebsd;
#elif defined(NETBSD)
const P_ARCH ARCHITECTURE = arch_netbsd;
#elif defined(DARWIN) && defined(__ppc__)
const P_ARCH ARCHITECTURE = arch_darwin_ppc;
#elif defined(WIN_NT) && defined(AMD64)
const P_ARCH ARCHITECTURE = arch_winnt_64;
#elif defined(I386)
const P_ARCH ARCHITECTURE = arch_intel_32;
#elif defined(DARWIN64)
const P_ARCH ARCHITECTURE = arch_darwin_x64;
#elif defined(DARWINPPC64)
const P_ARCH ARCHITECTURE = arch_darwin_ppc64;
#elif defined(ARM)
const P_ARCH ARCHITECTURE = arch_arm;
#endif

But for the given purpose, this is misleading. Each platform/OS is
treated in a different way. Why Linux is treated in the same manner in
all platforms (big and little endian)?


Adriano

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: PORT_symmetric

Dmitry Yemanov-3
14.07.2017 04:36, Adriano dos Santos Fernandes wrote:
>
> When client and server "architecture" are identical, remote code set
> PORT_symmetric flag and that causes some optimizations.

That happened in the past. Asymmetric mode is unconditionally used since
v1.5, in order to optimize bandwidth (VARCHAR packing). It could make
sense to use PORT_symmetric for XNET though, worth testing.

> But, architectures are:
>
> #if defined(__sun)
> # ifdef sparc
> const P_ARCH ARCHITECTURE = arch_sun4;
> #elif (defined i386 || defined AMD64)
> const P_ARCH ARCHITECTURE = arch_sunx86;
> # else
> const P_ARCH ARCHITECTURE = arch_sun;
> # endif
> #elif defined(HPUX)
> const P_ARCH ARCHITECTURE = arch_hpux;
> #elif (defined AIX || defined AIX_PPC)
> const P_ARCH ARCHITECTURE = arch_rt;
> #elif defined(LINUX)
> const P_ARCH ARCHITECTURE = arch_linux;
> #elif defined(FREEBSD)
> const P_ARCH ARCHITECTURE = arch_freebsd;
> #elif defined(NETBSD)
> const P_ARCH ARCHITECTURE = arch_netbsd;
> #elif defined(DARWIN) && defined(__ppc__)
> const P_ARCH ARCHITECTURE = arch_darwin_ppc;
> #elif defined(WIN_NT) && defined(AMD64)
> const P_ARCH ARCHITECTURE = arch_winnt_64;
> #elif defined(I386)
> const P_ARCH ARCHITECTURE = arch_intel_32;
> #elif defined(DARWIN64)
> const P_ARCH ARCHITECTURE = arch_darwin_x64;
> #elif defined(DARWINPPC64)
> const P_ARCH ARCHITECTURE = arch_darwin_ppc64;
> #elif defined(ARM)
> const P_ARCH ARCHITECTURE = arch_arm;
> #endif
>
> But for the given purpose, this is misleading. Each platform/OS is
> treated in a different way. Why Linux is treated in the same manner in
> all platforms (big and little endian)?

This question should be addressed to the Borland engineers, I suppose.
Maybe Ann may recall and explain something. I agree the logic is confusing.


Dmitry

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
Loading...