Releases: thomas-maeder/popeye
Spinach 4.93
This the first, highly experimental release of
Spinach
Spinach is what makes Popeye strong, as we all know. It uses multi-processing to hopefully test many chess problems faster than regular Popeye. It starts a number of Popeye sub-processes which test a part of the problem each, and presents the result in almost the same way as a single Popeye process would.
The trade-off is that the available memory is shared between the Popeye sub-processes. Spinach is therefore not likely to save time for all problems (but, as said above, hopefully for most); in particular, problems where a single Popeye process profits from a huge hash table will probably not benefit from Spinach.
Installation
Your simplest option is to download the Spinach executable into the same directory where you have downloaded the Popeye v4.91 or v4.93 executable (earlier versions will not work); Spinach will then find the Popeye executable automatically.
These executables are:
- Windows: spinach.exe
- Linux: spinach
- many platforms (including Windows/Linux): spinach.tcl
requires a working, reasonably current Tcl (Tool command language, pronounced "tickle") runtime environment including the Tcl Standard Library; such an environment is provided by ActiveState Tcl or by Linux packages typically namedtcl
andtcllib
.
Usage
Spinach is designed to be invoked very similarly to regular Popeye. In particular, if you use a graphical frontend such as Olive, you should be able to configure the Spinach executable like you normally configure the regular Popeye executable.
Command line options
If Spinach is invoked on the command line, we have slightly more fine-grained control over its behavior:
$ spinach.exe --help
spinach.exe : spinach [options] [input file]
options:
--executable=value path to Popeye executable <pywin64.exe>
--nrprocs=value number of Popeye processes to spawn <6>
--maxmem=value maximum memory for each process <Popeye default>
--version Version of this program
-- Forcibly stop option processing
--help Print this message
--? Print this message
The values between <
and >
are the default values; they are computed by Spinach using some not so complicated heuristics. Depending on the operating system and physical characteristics of your system, these default values will differ from the ones given above.
Notes
- Spinach's output doesn't contain introductory information like author, board etc. - the output looks as if
option noboard
had been indicated, even if you haven't - the greeting line at the top of Spinach's output
$ spinach test.inp
Popeye Linux-6.11.0-24-generic-x86_64-64Bit v4.91 (1024 MB)
...
indicates the memory allocated to each Popeye sub-process.
Known limitations
Spinach 4.93 has some limitations; it was decided to release it now, as it should already be useful to many of us, rather than to wait until it is perfect (which it will never be - it's software, after all).
Hopefully, many of the following known limitations will be removed in later releases.
Spinach currently does not support problems with at least one of the following features:
- twins and/or zeropositions*
- help and series stipulations with set play*
- series stipulations with introductory series (e.g. 3->ser-h=5)
- option
Intelligent
- options
Duplex
orHalfDuplex
* - options that cause Popeye to print partial solutions, such as
StopOnShortSolutions
The limitions marked with an asterisk (*) can be easily worked around by testing the parts separately.
Feedback about further, so far unknown limitations is very welcome through the Issues on this site.
Popeye 4.93
This is Release 4.93 of Popeye.
Release 4.93 is almost identical to 4.91, with the following exceptions:
- Bul pieces didn't generate the correct hurdle movements in problems with the condition Bolero
- added some forgotten fairy elements to py-*.txt
Please refer to Release 4.91 for other information.
Popeye 4.91
This is Release 4.91 of Popeye.
Downloading Popeye
Popeye executable
In order to use Popeye, you want to download an executable program or the source code to build an executable program yourself.
Windows: pywin64.exe
MacOS X: producing an executable for MacOS is always a hassle at best. I wasn't successful this time; if somebody can, I'll be happy to provide it here.
Linux:
git clone https://github.com/thomas-maeder/popeye.git
cd popeye
git checkout v4.91
ln -s makefile.unx makefile
make
Usage guide
Download the usage guide in your favourite language:
py-engl.txt (English)
py-deut.txt (Deutsch)
py-fran.txt (Français)
Example input files
The example input file archives will help you input problems correctly:
popeye-4.91-examples.zip (English as input language)
popeye-4.91-beispiel.zip (German)
Changes since Popeye 4.89
New features
Conditions
- AllInChess, HalfInChess and MainlyInChess
- Anda, Anda Inverse
- AntiGuards
- BiCaptures
- CASTchess, CASTChess Inverse
- FrankfurtChess
- FuddledMen
- Leffie
- MultiCaptures
- Pepo
- PowerTransfer, PowerTransfer RexInclusive
- Take&Make Absolute
- TransmissionMenace
- Memory Circe (as Circe WaitCapture CaptureSquare)
Piece types
- Eagle Equihopper, Eagle Nonstop Equihopper
Piece attributes
- Anda, Anda Inverse
- Bul, Dob
Options
- MatesIn1
- TrivialTriesAvoid
- UpToMoveNumber
Bug fixes
- Condition Series Capture
-- Proof games: some solutions were not found (incorrect optimization)
-- Positions with pawns on their side's 2nd rank: crash - Conditions File Circe and File Anticirce: fairy pieces were reborn at the wrong end of the board
- Condition Volcanic AntiCirce: some solutions were not found (error in hashing)
- Condition Make&Take plus Orphans: very strange output
- Condition AntiMarsCirce
-- Popeye produced solutions with illegal null moves
-- Popeye didn't find solutions with castling after rebirth of both K and R - Conditions MessignyChess plus PointReflection: Popeye selected pieces eligible for Messigny place swaps inconsistently
- TotalInvisible pieces: many working solutions were not found and many wrong ones found (mainly because of incorrect optimizations)
- Paralysing pieces plus double-stalemate (==) stipulations: some solutions were not found
- Series-movers plus option MoveNumbers: various fixes
- Positions with 64 pieces caused memory overflows
- Positions with 4-6 pieces: more economical memory usage leads to faster solving times for long stipulations
- Stipulations with >256 plies: Popeye failed to solve since 4.65
Overal improvement
- removal of various instances of undefined behaviour is expected to improve overall stability
Popeye 4.89
This is Release 4.89 of Popeye.
Downloading Popeye
Popeye executable
In order to use Popeye, you want to download an executable program or the source code to build an executable program yourself.
Windows: pywin64.exe
MacOS X: producing an executable for MacOS is always a hassle at best. I wasn't successful this time; if somebody can, I'll be happy to provide it here.
Linux:
git clone https://github.com/thomas-maeder/popeye.git
cd popeye
git checkout 4.89
ln -s makefile.unx makefile
make
Usage guide
Download the usage guide in your favourite language:
py-engl.txt (English)
py-deut.txt (Deutsch)
py-fran.txt (Français)
Example input files
The example input file archives will help you input problems correctly:
popeye-4.89-examples.zip (English as input language)
popeye-4.89-beispiel.zip (German)
Changes since Popeye 4.87
New features
Conditions
- Dister family (min/max, black/white) (used in Andernach 2022)
- Series Capture (to be used in Batumi 2023)
- Breton PY
- Dark Side (approximative - no complete definition available)
Piece types
- ContraHamster
Output
- forced reflex moves are now explicitly marked ?!?
Bug fixes
From issues
- intelligent mode
-- en passant capture: some solutions may have been missed
-- pser stipulations: some solutions may have been missed - Rokagogo: avoid diagonal castlings
- Phantom Chess + Geneva Chess: fix in check detection
- Actuated Revolving Board: en passant information has to be revolved with the board
- pser-s stipulations: correctly detect short solutions
Andernach 2022 special version
Tentative implementation of Dister conditions
Popeye 4.87
This is Release 4.87 of Popeye.
Downloading Popeye
Popeye executable
In order to use Popeye, you want to download an executable program or the source code to build an executable program yourself.
Windows 64bit: pywin64.exe
Windows 32bit: pywin32.exe
MacOS X: producing an executable for MacOS is always a hassle at best. I wasn't successful this time; if somebody can, I'll be happy to provide it here.
Linux:
git clone https://github.com/thomas-maeder/popeye.git
cd popeye
git checkout v4.87
ln -s makefile.unx makefile
make
Usage guide
Download the usage guide in your favourite language:
py-engl.txt (English)
py-deut.txt (Deutsch)
py-fran.txt (Français)
Example input files
The example input file archives will help you input problems correctly:
popeye-4.87-examples.zip (English as input language)
popeye-4.87-beispiel.zip (German)
Changes since Popeye 4.85
New features
Conditions
- RoleExchange
Options
- Intelligent mode for reci-h#
Bug fixes
From issues
- #253: PointReflection: castling must only be allowed by non-reflected king and rook
- #254: AntiCirce Cage: Popeye entered an endless loop when looking for a cage in some cases
- #290: TotalInvisible+Neutral pieces: restored behaviour lost in 4.85
- #291: Make&Take: incorrect behaviour if the Make part of a move was a castling
- #292: Stipulation 1->ser-h#3: full length solutions were not looked for if there were solutions in e.g. 1->ser-h#2
- #299: Intelligent mode: would behave in different irritating ways with condition promonly and/or dummies
- #307,#311: Intelligent mode: some mates with 2 blocking black rooks were not found
- #309: CheekToCheek: had never been implemented correctly: "cheeked" pieces didn't lose their original power
- #310: SnekChess: Popeye missed some solutions
- #312: LeseMajeste: some mates were missed
Other
- Influencer Chess: allow castling with a rook influenced into Rook
- Dummies: were printed as TotalInvisibles by 4.85
- Stipulation ser-reci-h#1 caused Popeye to crash in many versions
- SStipulation with minimum length (e.g. black 10:12hh[#]): minimum and maximum length were printed in wrong order
- Intelligent mode: Duplex with option enpassant would crash
- ActuatedRevolvingCentre: some solutions were not found because of an invalid "optimization"
Popeye 4.85
This is Release 4.85 of Popeye.
Downloading Popeye
Popeye executable
In order to use Popeye, you want to download an executable program or the source code to build an executable program yourself.
Windows 64bit: pywin64.exe
Windows 32bit: pywin32.exe
Linux: popeye-4.85-sources.zip
MacOS X: producing an executable for MacOS is always a hassle at best. I wasn't successful this time; if somebody can, I'll be happy to provide it here.
Instead of downloading the source zip archive, you can also clone the git repository or (I assume) use one of the Source Code links.
Usage guide
Download the usage guide in your favourite language:
py-engl.txt (English)
py-deut.txt (Deutsch)
py-fran.txt (Français)
Example input files
The example input file archives will help you input problems correctly:
popeye-4.85-examples.zip (English as input language)
popeye-4.85-beispiel.zip (German)
Changes since Popeye 4.83
New features
Conditions
- MasandGeneralised
- NannaChess
- Bolero
- BoleroInverse
- InfluencerChess (new condition to be published soon)
Pieces
- TotalInvisible: support improved ("more correct" and much shorter solving times)
Options
- NullMoves
Bug fixes
- Intelligent mode: didn't find solutions ending in an ep capture where the capturing pawn intercepted a check (issues #257, #258)
- Condition MessignyChess and Stipulation goal target square didn't go well together
- Condition AntiCirce Clone: Popeye always applied one or two optimisations too many when testing proof games, resulting in existing solutions not being found
- Conditions FaceToFace/BackToBack/CheekToCheek: proof games weren't correctly tested (issue #256)
- Condition Circe Volcanic: Popeye would crash or produce nonsense for some problems
- Conditions RoyalDynasty+Circe: Popeye up to 4.83 would castle with both kings after the rebirth on e1
- Conditions Make&Take+Disparate: fixed check detection (issue #282)
- Condition Take&Make: option StartMoveNumber hasn't worked since 4.67 (issue #286)
- Condition HauntedChess and the likes: the underworld wasn't correctly reset for the next problem (issue #288)
- Forsyth pieces input method: some input caused a crash (issue #260)
Popeye 4.83
This is Release 4.83 of Popeye.
Downloading Popeye
Popeye executable
In order to use Popeye, you want to download an executable program or the source code to build an executable program yourself.
Windows 64bit: pywin64.exe
Windows 32bit: pywin32.exe
Linux: popeye-4.83-sources.zip
MacOS X: producing an executable for MacOS is always a hassle at best. I wasn't successful this time; if somebody can, I'll be happy to provide it here.
Instead of downloading the source zip archive, you can also clone the git repository or (I assume) use one of the Source Code links.
Usage guide
Download the usage guide in your favourite language:
py-engl.txt (English)
py-deut.txt (Deutsch)
py-fran.txt (Français)
Example input files
The example input file archives will help you input problems correctly:
popeye-4.83-examples.zip (English as input language)
popeye-4.83-beispiel.zip (German)
Changes since Popeye 4.81
New features
- Total Invisible pieces (only for otherwise orthodox h# problems, slow, maybe slightly buggy, but already very effective...)
- condition PointReflection
Bug fixes
- Chameleon sequence was forgotten by twinning (issue 239)
- condition BlackMustCapture Ultra: obscure bug in positions where white castling possible (issue 240)
- condition Chameleon Chess: Kings could castle after having moved since 4.65 (issue 243)
- condition Circe: modifiers like Mirror weren't applied in rebirths of Kamikaze pieces since 4.65 (issue 246)
- condition Checkless Chess: Proof games with ending in a mate weren't solved since 4.75 (issue 247)
- some solutions were not found in proof games with Queen and King apparently (but not really) locked in by pawns
- condition Breton: Proof games couldn't be solved since the introduction of Breton in 4.81
Popeye 4.81
This is Release 4.81 of Popeye.
Downloading Popeye
Popeye executable
In order to use Popeye, you want to download an executable program or the source code to build an executable program yourself.
Windows 64bit: pywin64.exe
Windows 32bit: pywin32.exe
Linux: popeye-4.81-sources.zip
MacOS X: producing an executable for MacOS is always a hassle at best. I wasn't successful this time; if somebody can, I'll be happy to provide it here.
Instead of downloading the source zip archive, you can also clone the git repository or (I assume) use one of the Source Code links.
Usage guide
Download the usage guide in your favourite language:
py-engl.txt (English)
py-deut.txt (Deutsch)
py-fran.txt (Français)
Example input files
The example input file archives will help you input problems correctly:
popeye-4.81-examples.zip (English as input language)
popeye-4.81-beispiel.zip (German)
Changes since Popeye 4.79
New features
- conditions Breton and Breton Adverse
- condition Make&TakeChess
- condition LeseMajeste
- condition Rokagogo
Bug fixes
- condition antisupercirce (and others): option intelligent was erroneously accepted (issue 71)
- sstipulation: if the stipulation required mate with or without capture, then the solution was given both as check and mate (issue 228)
- condition anticirce: direct play problems with goal target square weren't solved (issue 231)
- piece bk (bouncy knight): Popeye didn't detect check correctly (issue 232)
- condition BichromeChess: Popeye would do queenside castlings (issue 232)
- piece re/be (rook eagle, bishop eagle): duplicate moves were generated
- condition WhiteMustCapture Ultra: Ultra was ignored
- option enpassant: only Black would capture en passant
- option duplex intelligent: illegal check in the diagram wasn't properly tested
Popeye 4.79
This is Release 4.79 of Popeye.
Downloading Popeye
Popeye executable
In order to use Popeye, you want to download an executable program or the source code to build an executable program yourself.
Windows 64bit: pywin64.exe
Windows 32bit: pywin32.exe
MacOS X: pymacos
Linux: popeye-4.79-sources.zip
Instead of downloading the source zip archive, you can also clone the git repository or (I assume) use one of the Source Code links below.
Usage guide
Download the usage guide in your favourite language:
py-engl.txt (English)
py-deut.txt (Deutsch)
py-fran.txt (Français)
Example input files
The example input file archives will help you input problems correctly:
popeye-4.79-examples.zip (English as input language)
popeye-4.79-beispiel.zip (German)
Changes since Popeye 4.77
New feature
- condition Partial Paralysis
Bug fixes
- condition Lost Pieces: pieces lost in king flight attempts from check were not removed
- conditions Reversal Einstein Chess and Anti-Einstein Chess: pawns weren't allowed to do double or or triple steps from their side's base line
- combination of conditions UltraSchachZwang and Anticirce: Popeye would crash or produce weird output
- condition SuperGuards: there was an "interesting" interaction with the en passant machinery
- piece type Friend: Popeye would crash or produce weird output