Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Post by stegemma »

On my web site you can download Sabrina for the three major operating systems:

Sabrina.3.1.26.w32.exe (Windows 32 bit)

Sabrina.3.1.26.w64.exe (Windows 64 bit)

Sabrina.3.1.26.lnx (Linux - tested on Ubuntu)

Sabrina.3.1.26.mac (tested on Mac OSX High sierra)

You can download it for free (personal use only) from my site, in a single zip file:

https://www.linformatica.com

I have developed and tested the executables on my systems (Windows/Mac/Ubuntu); please, let me know if you find some issue running on different machines.

I've re-configured my personal portable programming environment, so from now on I can always release all 4 versions.
Author of Drago, Raffaela, Freccia, Satana, Sabrina.
http://www.linformatica.com
User avatar
CMCanavessi
Posts: 1142
Joined: Thu Dec 28, 2017 4:06 pm
Location: Argentina

Re: Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Post by CMCanavessi »

stegemma wrote: Mon Jul 09, 2018 5:55 pm On my web site you can download Sabrina for the three major operating systems:

Sabrina.3.1.26.w32.exe (Windows 32 bit)

Sabrina.3.1.26.w64.exe (Windows 64 bit)

Sabrina.3.1.26.lnx (Linux - tested on Ubuntu)

Sabrina.3.1.26.mac (tested on Mac OSX High sierra)

You can download it for free (personal use only) from my site, in a single zip file:

https://www.linformatica.com

I have developed and tested the executables on my systems (Windows/Mac/Ubuntu); please, let me know if you find some issue running on different machines.

I've re-configured my personal portable programming environment, so from now on I can always release all 4 versions.
Thanx for the new version! The link in your website in the "all releases" list still point to 3.1.25.
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Post by tpoppins »

Indeed, however for the time being all you have to do is change "...25.zip" of the v3.1.26 link to "...26.zip".

I must point out that the w64 exec crashes instantly on the three Sandy/Ivy Bridge boxes I tried it on. The w32 one works, it would be nice to have at least a generic 64-bit Windoze compile if not a POPCNT one.
Tirsa Poppins
CCRL
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Post by stegemma »

Thanks for the feedback. I've corrected the link to the .26 zip.

Sabrina tests the processor, to see if the low level bit functions are available, I apologies for the crash on the Sandy/Ivy bridge... really I don't know what it is! ;)

I call __cpuid from the intrinsic functions:

Code: Select all


	bool PopCntOk()
	{
		#if USE_INTRINSIC
		// To determine hardware support for the popcnt instruction,
		// call the __cpuid intrinsic with InfoType = 0x00000001
		// and check bit 23 of CPUInfo[2](ECX).
		int cpuInfo[4] = { -1 };

		// Calling __cpuid with 0x0 as the function_id argument
		// gets the number of the highest valid function ID.
		__cpuid(cpuInfo, 0);
		if(cpuInfo[0]>2)
		{
			__cpuid(cpuInfo, 1);
			return (cpuInfo[2] & (1 << 23)) != 0;
		}
		#endif
		return false;
	}

	bool bPopCntOk = PopCntOk();
Anytime that I call popcnt, I test the flag bPopCntOk, to switch between functions:

Code: Select all

	inline uint64_t FirstBit(const uint64_t &bo)
	{
		// const uint64_t k = bo - 1;		
		// 10011100 bo
		// 10011011 k = bo-1
		// 10011111 | bo
		// 00000100 ^ k
		//return (k | bo) ^ k;

		// 10011100 bo
		// 10011011 k = bo-1
		// 01100100 ~ bo - 1
		// 00000100 & k
		#if USE_INTRINSIC
			return _blsi_u64(bo);
		#else
			return bo & ~(bo - 1);
		#endif
	}

	inline uint64_t PopFirstBit(uint64_t &boBits)
	{
		uint64_t boFirst = FirstBit(boBits);
		boBits ^= boFirst;
		return boFirst;
	}

	inline uint64_t LastBit(const uint64_t &bo)
	{
		#if USE_INTRINSIC
		unsigned long index;
		#ifdef _M_X64
			if(_BitScanReverse64(&index, bo)) return squares[index]; // index ? (1ULL << index) : 1;
			// _tzcnt_u64(unsigned __int64 src);
		#else
			if(_BitScanReverse(&index, bo >> 32)) return squares[index + 32];
			if(_BitScanReverse(&index, (uint32_t)bo)) return squares[index];
		#endif
		return 0;
		#else
		uint64_t k = bo;
		uint64_t boLast;
		for(boLast = 0ULL; k != 0ULL; boLast = PopFirstBit(k));
		return boLast;
		#endif
	}

	inline uint64_t PopLastBit(uint64_t &boBits)
	{
		uint64_t boLast = LastBit(boBits);
		boBits ^= boLast;
		return boLast;
	}

inline int BitsCount(const uint64_t &bits)
{
	int value = 0;
	#if USE_INTRINSIC && defined(_M_X64)
	if(bPopCntOk)
		value = (int)__popcnt64(bits); //	
	else
		#endif
		if(bits != boEmpty)
		{
			const u64bytes &bb = (const u64bytes&)bits;
			/* if (bb.bytes.a) */ value += bits8[bb.bytes.a];
			/* if (bb.bytes.b) */ value += bits8[bb.bytes.b];
			/* if (bb.bytes.c) */ value += bits8[bb.bytes.c];
			/* if (bb.bytes.d) */ value += bits8[bb.bytes.d];
			/* if (bb.bytes.e) */ value += bits8[bb.bytes.e];
			/* if (bb.bytes.f) */ value += bits8[bb.bytes.f];
			/* if (bb.bytes.g) */ value += bits8[bb.bytes.g];
			/* if (bb.bytes.h) */ value += bits8[bb.bytes.h];
		}
	return value;
}
Maybe the CPU info crashes or returns a... false "true" value!
Author of Drago, Raffaela, Freccia, Satana, Sabrina.
http://www.linformatica.com
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Post by stegemma »

tpoppins wrote: Mon Jul 09, 2018 8:01 pm Indeed, however for the time being all you have to do is change "...25.zip" of the v3.1.26 link to "...26.zip".

I must point out that the w64 exec crashes instantly on the three Sandy/Ivy Bridge boxes I tried it on. The w32 one works, it would be nice to have at least a generic 64-bit Windoze compile if not a POPCNT one.
Please, can you test the new beta release, to see if it crash again?

https://www.linformatica.com/software/S ... 7.beta.zip

I've changed the identification routine, adding a try/catch section.

Thanks for your support.
Author of Drago, Raffaela, Freccia, Satana, Sabrina.
http://www.linformatica.com
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Post by tpoppins »

This beta also crashes. Here is a ZIP containing Windoze WER error reports, including a minidump.

I ran the v3.1.26 w32 exec under Cute Chess 1.1.0 pre-release and here are some observations.

1) If the starting position is provided via FEN (as it would be with a GUI book in EPD format) Sabrina loses on time at 40/2. Below is the eng-GUI log.

Code: Select all

Sabrina 3.1.26(47): # soul: Simple5
<Sabrina 3.1.26(47): # TT 1048576 entries - 64 MiB
<Sabrina 3.1.26(47): # Sabrina 3.1.26 (c) 2012-2018 Stefano Gemma
<Sabrina 3.1.26(47): # zlib (c) 1995-2011 Mark Adler
<Sabrina 3.1.26(47): # crypt (c) Brad Conte
<Sabrina 3.1.26(47): # xorshift (c) George Marsaglia
<Sabrina 3.1.26(47): feature ping=1 setboard=1 done=1 san=0 usermove=1 time=1 draw=1 sigint=0 sigterm=0 reuse=1 analyze=0 myname="Sabrina 3.1.26" colors=0 ics=1 name=1 nps=0 debug=1 memory=1 smp=1
>Sabrina 3.1.26(47): accepted ping
>Sabrina 3.1.26(47): accepted setboard
>Sabrina 3.1.26(47): accepted done
>Sabrina 3.1.26(47): accepted san
>Sabrina 3.1.26(47): accepted usermove
>Sabrina 3.1.26(47): accepted time
>Sabrina 3.1.26(47): rejected draw
>Sabrina 3.1.26(47): rejected sigint
>Sabrina 3.1.26(47): rejected sigterm
>Sabrina 3.1.26(47): accepted reuse
>Sabrina 3.1.26(47): rejected analyze
>Sabrina 3.1.26(47): accepted myname
>Sabrina 3.1.26(47): rejected colors
>Sabrina 3.1.26(47): rejected ics
>Sabrina 3.1.26(47): accepted name
>Sabrina 3.1.26(47): accepted nps
>Sabrina 3.1.26(47): rejected debug
>Sabrina 3.1.26(47): accepted memory
>Sabrina 3.1.26(47): accepted smp
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): rejected
<Sabrina 3.1.26(47): Error (unknown command): rejected
<Sabrina 3.1.26(47): Error (unknown command): rejected
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): rejected
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): rejected
<Sabrina 3.1.26(47): Error (unknown command): rejected
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): rejected
<Sabrina 3.1.26(47): Error (unknown command): accepted
<Sabrina 3.1.26(47): Error (unknown command): accepted
>Sabrina 3.1.26(47): new
>Sabrina 3.1.26(47): force
>Sabrina 3.1.26(47): setboard R7/2K5/8/2k5/8/8/8/8 w - - 0 144
>Sabrina 3.1.26(47): level 40 2 0
>Sabrina 3.1.26(47): post
>Sabrina 3.1.26(47): easy
>Sabrina 3.1.26(47): computer
>Sabrina 3.1.26(47): name Stockfish 180627 64-bit
>Sabrina 3.1.26(47): ping 10
<Sabrina 3.1.26(47): # hello my peer!
<Sabrina 3.1.26(47): Sabrina 3.1.26
<Sabrina 3.1.26(47): pong 10
>Sabrina 3.1.26(47): time 12000
otim 12000
>Sabrina 3.1.26(47): go
<Sabrina 3.1.26(47): # moves 144/40 - time 18446744073708376/120000 ms
<Sabrina 3.1.26(47): # engine's running
<Sabrina 3.1.26(47): # 19 moves to analyze
<Sabrina 3.1.26(47): 10 5.05  100 3636313 Ra8-d8
<Sabrina 3.1.26(47): 10 5.05  200 7176563 Ra8-d8
<Sabrina 3.1.26(47): 10 5.11  300 10667655 Ra8-d8
<Sabrina 3.1.26(47): 10 5.11  400 14122323 Ra8-d8
<Sabrina 3.1.26(47): 10 5.11  500 17609722 Ra8-d8
<Sabrina 3.1.26(47): 12 5.11  600 21155554 Ra8-d8
<Sabrina 3.1.26(47): 12 5.11  700 24830582 Ra8-d8
<Sabrina 3.1.26(47): 12 5.11  800 28538756 Ra8-d8
<Sabrina 3.1.26(47): 12 5.11  900 32237860 Ra8-d8
<Sabrina 3.1.26(47): 12 5.11  1000 35792071 Ra8-d8
<Sabrina 3.1.26(47): 12 5.11  1100 39455469 Ra8-d8
[snip]
<Sabrina 3.1.26(47): 12 5.11  12113 429277145 Ra8-d8
<Sabrina 3.1.26(47): 12 5.11  12213 432793173 Ra8-d8
<Sabrina 3.1.26(47): 12 5.11  12313 436312720 Ra8-d8
<Sabrina 3.1.26(47): 12 5.11  12413 439807968 Ra8-d8
>Sabrina 3.1.26(47): ?
<Sabrina 3.1.26(47): # engine stopped
<Sabrina 3.1.26(47): 14 5.11  12500 442826628 Ra8-d8
<Sabrina 3.1.26(47): # 125002 ms 3542 Knps, TT hits: 148886770 33.62%, Rept.Hits: 0
<Sabrina 3.1.26(47): move a8d8
>Sabrina 3.1.26(47): force
>Sabrina 3.1.26(47): result 0-1 {White loses on time}
>Sabrina 3.1.26(47): ping 4
<Sabrina 3.1.26(47): # result 0-1 {White loses on time}
<Sabrina 3.1.26(47): pong 4
This issue doesn't occur with a GUI book in PGN format.

2) Sabrina sends eval in x.xx format whereas it should be in centipawns. Thus no evals are displayed by the GUI or written to a PGN file.

3) done=1 is not at the end of the "feature" command. Does that mean that the features following "done=1" are not implemented? For example, "memory 256" init string has no effect -- Task Manager still reports a memory footprint around 70MB.

4) In the log above the "Error (unknown command): accepted" and "Error (unknown command): rejected" parts look very odd and could be a symptom of some issue.

Thank you for your time, Stefan.
Tirsa Poppins
CCRL
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Post by stegemma »

Thanks for you report. The "centipawns" issue has been corrected in 3.1.27; I will correct all the other problems very soon.

For the crashes problem, what CPU do you have?
Author of Drago, Raffaela, Freccia, Satana, Sabrina.
http://www.linformatica.com
tpoppins
Posts: 919
Joined: Tue Nov 24, 2015 9:11 pm
Location: upstate

Re: Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Post by tpoppins »

This box is a dual Xeon X5670 @2.93 GHz, a Westmere chip. There's more info in the TXT files within the ZIP linked in my previous post.

The beta also crashes on E5-2670 (Sandy Bridge) and E5-2690v2 (Ivy Bridge).
Tirsa Poppins
CCRL
Norbert Raimund Leisner
Posts: 1643
Joined: Tue May 20, 2008 4:57 pm
Location: Augsburg - Germany

Re: Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Post by Norbert Raimund Leisner »

Unhandled exception at 0x000000013F571D0F in Sabrina.3.1.27.beta.exe: 0xC000001D: Illegal Instruction. occurred > Microsoft Visual Studio 2017

I have an Ivy-bridge, Intel i5 Quad, 4 GB RAM - Windows 7 64 bit SP1

Arena <F4>
2018-07-11 11:37:05,051 Arena 3.5.1
2018-07-11 11:37:05,067Font Arena Chess Figurine MISSING

2018-07-11 11:37:05,160**----------New game---2018-07-11 11:37:05,160 Mi -------------
2018-07-11 11:37:05,332**----------New game---2018-07-11 11:37:05,332 Mi -------------
2018-07-11 11:37:05,410**screen: 1280x1024
2018-07-11 11:37:05,410**Monitors: 1
2018-07-11 11:37:05,410**Monitor0: 1280x1024
2018-07-11 11:37:05,410**FormMonitor: 0
2018-07-11 11:37:05,410**DesktopRect: 0/0 .. 1280/1024
2018-07-11 11:39:01,303*1*-------------------Starting engine 1 Sabrina.3.1.27.beta--------------------
2018-07-11 11:39:01,303*1*Configured Engine 1 Type: WB2
2018-07-11 11:39:01,303*1*Engine 1 dir: C:\Users\NRL\Downloads\Sabrina.3.1.27.beta
2018-07-11 11:39:01,303*1*Engine 1 commandline: C:\Users\NRL\Downloads\Sabrina.3.1.27.beta\Sabrina.3.1.27.beta.exe
2018-07-11 11:39:01,412*1*Engine 1 ProcessID: 3852
2018-07-11 11:39:01,412*1*Engine 1 Prio:32 ThreadPrio:0
2018-07-11 11:39:01,412-->1:xboard
2018-07-11 11:39:01,412-->1:protover 2
2018-07-11 11:39:04,303-->1:new
2018-07-11 11:39:04,303-->1:random
2018-07-11 11:39:04,303-->1:level 0 5 0
2018-07-11 11:39:04,303-->1:post
2018-07-11 11:39:04,303-->1:hard
2018-07-11 11:39:04,303-->1:easy

Norbert
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: Sabrina 3.1.26 released (Windows/Linux/Mac OSX)

Post by stegemma »

I've compiled the Microsoft sample for cpu info. anyone can download it a test its own CPU:

https://www.linformatica.com/software/CpuID.zip

Windows 64 bit only.

I can't figure why the cpuid function can't identify the popcnt support... but this simple program must do it the right way.

Only to avoid the diffusion of some malware copy, I've digitally signed the exe but I don't own any right on the sources, that comes from here:

https://msdn.microsoft.com/it-it/hskdteyh.aspx

You can download the sources and build on your own.

Thanks for the support and excuse me for the continues crashes.
Author of Drago, Raffaela, Freccia, Satana, Sabrina.
http://www.linformatica.com