Skip to content

Releases: thomas-maeder/popeye

Spinach 4.93

09 May 18:02
Compare
Choose a tag to compare

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 named tcl and tcllib.

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 or HalfDuplex*
  • 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

07 May 18:29
Compare
Choose a tag to compare

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

01 May 17:34
Compare
Choose a tag to compare

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

21 Aug 17:22
Compare
Choose a tag to compare

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

27 May 14:12
Compare
Choose a tag to compare

Tentative implementation of Dister conditions

Popeye 4.87

26 Jun 07:40
Compare
Choose a tag to compare

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

24 May 17:32
Compare
Choose a tag to compare

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

31 Jul 16:50
Compare
Choose a tag to compare

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

16 Jan 18:04
Compare
Choose a tag to compare

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

29 Jul 06:30
Compare
Choose a tag to compare

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