New engine "Roc"

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

Moderators: Harvey Williamson, Dann Corbit, hgm

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
THyer
Posts: 40
Joined: Fri Jul 22, 2016 5:51 pm

Re: New engine "Roc"

Post by THyer » Fri Mar 17, 2017 6:19 pm

Roc 0.6 is now released. I have made some changes which should make the play somewhat less similar to Gull's, and also hopefully will stabilize the HNI build for Dmitri.

Thanks to Theo and Norm for their help with the source. Also to Ip Man (www.ipmanchess.yolasite.com/i7-5960x.php) and the CCRL testers.
"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."

Gusev
Posts: 1475
Joined: Mon Jan 28, 2013 1:51 pm

Re: New engine "Roc"

Post by Gusev » Fri Mar 17, 2017 6:45 pm

A link to Roc 0.6 would come in handy!
THyer wrote:Roc 0.6 is now released. I have made some changes which should make the play somewhat less similar to Gull's, and also hopefully will stabilize the HNI build for Dmitri.

Thanks to Theo and Norm for their help with the source. Also to Ip Man (www.ipmanchess.yolasite.com/i7-5960x.php) and the CCRL testers.

Ras
Posts: 1620
Joined: Tue Aug 30, 2016 6:19 pm
Full name: Rasmus Althoff
Contact:

Re: New engine "Roc"

Post by Ras » Fri Mar 17, 2017 7:27 pm

mar wrote:Sometimes a single goto statement will save you from complicated logic
Yeah, goto for error handling is completely OK, especially if there is stacked resource release involved. Pascal-like source will have lots of useless indentation in that case, i.e. hard to read "arrow code".

Another interesting thing which I really miss in the C standard is computed goto, i.e. goto via jump tables. But both GCC and Clang support that idiom.

In my shellsort, replacing the outest loop by a computed goto jump table and unrolling the inner loops gave a +45% boost on the fully looped sorting routine, and that already beat C's quicksort by +25%.

THyer
Posts: 40
Joined: Fri Jul 22, 2016 5:51 pm

Re: New engine "Roc"

Post by THyer » Fri Mar 17, 2017 7:50 pm

"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."

User avatar
Graham Banks
Posts: 34669
Joined: Sun Feb 26, 2006 9:52 am
Location: Auckland, NZ

Re: New engine "Roc"

Post by Graham Banks » Fri Mar 17, 2017 8:04 pm

I'll include Roc in my next Amateur Series.
gbanksnz at gmail.com

Ras
Posts: 1620
Joined: Tue Aug 30, 2016 6:19 pm
Full name: Rasmus Althoff
Contact:

Re: New engine "Roc"

Post by Ras » Fri Mar 17, 2017 8:35 pm

Gull 3 comes without a proper licence, not even with a loose statement of intent. While the source is open, copying it and forking it is a copyright infringement, technically. It would be a good idea for Gull 3 to adopt a proper open source licence, and when that is there, also for Roc.

Gull 3 has around 7,000 lines of code all in one single CPP file. Roc 0.6 even has more than 10,000 lines, also in a single CPP file. I think that calls for a refactoring.

For making future maintenance easier, I'd also think about a clear naming convention to discern defines, functions and variables. More comments. Better variable naming, there are places where the one-letter-Fortran-style is abundant.

Last but not least, CppCheck v1.77 gives a lot of warnings. Some of them look like they are worth investigating.

Gusev
Posts: 1475
Joined: Mon Jan 28, 2013 1:51 pm

Re: New engine "Roc"

Post by Gusev » Sat Mar 18, 2017 5:51 am

Thank you! Will test again for Purdue FOSCEC Season 4.

Gusev
Posts: 1475
Joined: Mon Jan 28, 2013 1:51 pm

Re: New engine "Roc"

Post by Gusev » Sat Mar 18, 2017 5:53 am

Gull 3 is public domain. Once something becomes public domain, you cannot put it back under a license.
Ras wrote:Gull 3 comes without a proper licence, not even with a loose statement of intent. While the source is open, copying it and forking it is a copyright infringement, technically. It would be a good idea for Gull 3 to adopt a proper open source licence, and when that is there, also for Roc.

Gull 3 has around 7,000 lines of code all in one single CPP file. Roc 0.6 even has more than 10,000 lines, also in a single CPP file. I think that calls for a refactoring.

For making future maintenance easier, I'd also think about a clear naming convention to discern defines, functions and variables. More comments. Better variable naming, there are places where the one-letter-Fortran-style is abundant.

Last but not least, CppCheck v1.77 gives a lot of warnings. Some of them look like they are worth investigating.

Ras
Posts: 1620
Joined: Tue Aug 30, 2016 6:19 pm
Full name: Rasmus Althoff
Contact:

Re: New engine "Roc"

Post by Ras » Sat Mar 18, 2017 10:12 am

Gusev wrote:Gull 3 is public domain.
The only hint is on the Sourceforge website where it is listed under "public domain", but nothing in the actual project documentation or source code says that? Since releasing something into public domain requires an explicit anti-copyright note even under US law, Gull 3 is lacking here.

Besides, "public domain" does not even exist in Continental Europe.

It would be better to use the Creative Commons CC0, which is the same as public domain in jurisdictions that have PD, but falls back to an unconditional licence in jurisdictions without PD.

For Roc, there is not the slightest hint to the licence in place, not even like with Gull the "public domain" category of the hosting platform.

Gusev
Posts: 1475
Joined: Mon Jan 28, 2013 1:51 pm

Re: New engine "Roc"

Post by Gusev » Sat Mar 18, 2017 4:42 pm

Nothing in Shakespeare's works says that they are public domain, and yet, they are public domain. Gull's website states it's public domain, so it's public domain and cannot be put under a license! :evil:
Ras wrote:
Gusev wrote:Gull 3 is public domain.
The only hint is on the Sourceforge website where it is listed under "public domain", but nothing in the actual project documentation or source code says that? Since releasing something into public domain requires an explicit anti-copyright note even under US law, Gull 3 is lacking here.

Besides, "public domain" does not even exist in Continental Europe.

It would be better to use the Creative Commons CC0, which is the same as public domain in jurisdictions that have PD, but falls back to an unconditional licence in jurisdictions without PD.

For Roc, there is not the slightest hint to the licence in place, not even like with Gull the "public domain" category of the hosting platform.

Post Reply