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.
New engine "Roc"
Moderators: hgm, Rebel, chrisw
-
- Posts: 40
- Joined: Fri Jul 22, 2016 7:51 pm
Re: New engine "Roc"
"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."
-
- Posts: 1476
- Joined: Mon Jan 28, 2013 2:51 pm
Re: New engine "Roc"
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.
-
- Posts: 2487
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: New engine "Roc"
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".mar wrote:Sometimes a single goto statement will save you from complicated logic
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%.
-
- Posts: 40
- Joined: Fri Jul 22, 2016 7:51 pm
Re: New engine "Roc"
"Wise and cruel was the Bird, and wise and cruel were the Sons of the Bird."
-
- Posts: 41419
- Joined: Sun Feb 26, 2006 10:52 am
- Location: Auckland, NZ
-
- Posts: 2487
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: New engine "Roc"
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.
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.
-
- Posts: 1476
- Joined: Mon Jan 28, 2013 2:51 pm
Re: New engine "Roc"
Thank you! Will test again for Purdue FOSCEC Season 4.
-
- Posts: 1476
- Joined: Mon Jan 28, 2013 2:51 pm
Re: New engine "Roc"
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.
-
- Posts: 2487
- Joined: Tue Aug 30, 2016 8:19 pm
- Full name: Rasmus Althoff
Re: New engine "Roc"
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.Gusev wrote:Gull 3 is public domain.
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.
-
- Posts: 1476
- Joined: Mon Jan 28, 2013 2:51 pm
Re: New engine "Roc"
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!
Ras wrote: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.Gusev wrote:Gull 3 is public domain.
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.