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.
New engine "Roc"
Moderators: hgm, Rebel, chrisw
-
- Posts: 40
- Joined: Fri Jul 22, 2016 7:51 pm
New engine "Roc"
"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."
-
- Posts: 2283
- Joined: Sat Jun 02, 2012 2:13 am
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
-
- Posts: 1600
- Joined: Mon Feb 21, 2011 9:48 am
-
- Posts: 2283
- Joined: Sat Jun 02, 2012 2:13 am
Re: New engine "Roc"
Thanks. Hopefully someone can compile it.velmarin wrote:https://github.com/TomHyer/Roc
-
- Posts: 2559
- Joined: Fri Nov 26, 2010 2:00 pm
- Location: Czech Republic
- Full name: Martin Sedlak
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)
-
- Posts: 1600
- Joined: Mon Feb 21, 2011 9:48 am
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.
-
- Posts: 40
- Joined: Fri Jul 22, 2016 7:51 pm
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."
-
- Posts: 40
- Joined: Fri Jul 22, 2016 7:51 pm
Re: New engine "Roc"
Thanks for the correction.
"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."
-
- Posts: 1600
- Joined: Mon Feb 21, 2011 9:48 am
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 4:35 pm, edited 1 time in total.
-
- Posts: 40
- Joined: Fri Jul 22, 2016 7:51 pm
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."