New engine "Roc"
Moderators: bob, hgm, Harvey Williamson
Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
New engine "Roc"
Roc is a new chess engine, derived from Gull 3.
Roc has the following refinements:
-- based on a C++ port of Gull 3, eliminating goto statements.
-- fixes some minor bugs found in the Gull source
-- unit of valuation changed from 1 cp to 1/4 cp
-- extends Gull's two phases (opening, endgame) to 3 phases (opening, middle, endgame) plus a phase-like contribution for closed-ness
-- supports a contempt setting
-- adds king tropism to evaluation
In tests so far, Roc appears to be slightly stronger (5 +/- 5 Elo) than Gull 3. The present code builds only on Windows. It is in the public domain at https://github.com/TomHyer/Roc.
Roc has the following refinements:
-- based on a C++ port of Gull 3, eliminating goto statements.
-- fixes some minor bugs found in the Gull source
-- unit of valuation changed from 1 cp to 1/4 cp
-- extends Gull's two phases (opening, endgame) to 3 phases (opening, middle, endgame) plus a phase-like contribution for closed-ness
-- supports a contempt setting
-- adds king tropism to evaluation
In tests so far, Roc appears to be slightly stronger (5 +/- 5 Elo) than Gull 3. The present code builds only on Windows. It is in the public domain at https://github.com/TomHyer/Roc.
"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."
Re: New engine "Roc"
Thanks, but the link simply does not work.THyer wrote:Roc is a new chess engine, derived from Gull 3.
Roc has the following refinements:
-- based on a C++ port of Gull 3, eliminating goto statements.
-- fixes some minor bugs found in the Gull source
-- unit of valuation changed from 1 cp to 1/4 cp
-- extends Gull's two phases (opening, endgame) to 3 phases (opening, middle, endgame) plus a phase-like contribution for closed-ness
-- supports a contempt setting
-- adds king tropism to evaluation
In tests so far, Roc appears to be slightly stronger (5 +/- 5 Elo) than Gull 3. The present code builds only on Windows. It is in the public domain at https://github.com/TomHyer/Roc.
CL
Re: New engine "Roc"
Thanks. Hopefully someone can compile it.velmarin wrote:https://github.com/TomHyer/Roc

Re: New engine "Roc"
You're joking, right? What has C++ to do with eliminating goto statements?THyer wrote:-- based on a C++ port of Gull 3, eliminating goto statements.
And that should be a feature (value added = ??)
Sometimes a single goto statement will save you from complicated logic so in fact there is nothing wrong with gotos now and then (bailout is usually more readable than deep nesting).
I'd prefer things like break n; or continue n; that would simply break/continue the n-th outer loop (or break switch) => eliminating the need for gotos/extra logic completely (except that you'd have to be careful when refactoring loops)
Re: New engine "Roc"
You have to read it separately.mar wrote:THyer wrote: Option 1...-- based on a C++ port of Gull 3.
Option 2....Eliminating goto statements.
There is an obsession to clean the goto sentences of Gull's code.
I eliminated almost all and was not noticed in the performance.
Re: New engine "Roc"
In the particular case of Gull, the goto statements do not degrade performance, but do often obfuscate the code. Many can be replaced very easily, while some require code rearrangement.
In gen_kpk, goto seems appropriate and I have not attempted to remove it.
One of the trickiest is the test for acceptance of hash moves in pv_search. Here, after unraveling the goto into a normal loop, the nature of the algorithm is much clearer and it looks like improvement is possible.
In gen_kpk, goto seems appropriate and I have not attempted to remove it.
One of the trickiest is the test for acceptance of hash moves in pv_search. Here, after unraveling the goto into a normal loop, the nature of the algorithm is much clearer and it looks like improvement is possible.
"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."
Re: New engine "Roc"
Thanks for the correction.
"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."
Re: New engine "Roc"

Compiles correct with the solution included in the Github, with Intel compiler and Visual C ++ compiler, but does not respond in the console output.
Oh, install en Fritz 15 is OK.
Last edited by velmarin on Wed Jan 18, 2017 3:35 pm, edited 1 time in total.
Re: New engine "Roc"
That is surprising to me. I have been testing with cutechess and Arena, rather than running directly at the command line. I will try this tonight (US time).
"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."