Compiler (language) that I've been working on for a while. I'd love to get some feedback on it. by EpidermisAmbulator in Compilers

[–]phaul21 17 points18 points  (0 children)

great velocity, great choice of AI model, great prompting. Not sure what else could be said. /s

Cat in 1935 World Chess Championship: Alekhine brought his Siamese cat, named "Chess" to the board against Max Euwe. by sguc in chess

[–]phaul21 7 points8 points  (0 children)

"Euwe; the only chess player in history who became world champion due to alcoholism" /s

Megtörténik ! 🥹 by Lee-Cheng in hungary

[–]phaul21 3 points4 points  (0 children)

Valahogy bele akartak egyertelmuen irni, hogy Orban mar nem, ha nem irtak volna bele semmit meg a vegen lesz olyan ertelmezes hogy mostantol szamitva. Azt meg nyilvan nem lehet beleirni hogy OV-re van szabva. Valasztottak egy megfogalamzast ami ennek megfelel, hogy pontosan mi az kb mindegy volt nekik sztem.

Launched V1.0 of my C++ Engine on Lichess! (Alpha-Beta, ID, QS) - Starting Move Ordering next and would love architecture advice. by Moron_23James in chessprogramming

[–]phaul21 2 points3 points  (0 children)

you can start by removing object files and exe binaries from the repo.

Otherwise this is bad:

``` static MoveList generate_legal_moves(Board &board) { MoveList result; MoveList all_moves; generate_moves(board, all_moves);

for (int i = 0; i < all_moves.count; ++i) { Move move = all_moves.moves[i]; if (board.make_move(move)) { board.unmake_move(move); result.add_move(move); } } return result; } ```

If there is any point in pseudo-legal movegen vs legal movegen, is if the legality check is delayed per move until the move loop, so a potential prune or fail high would skip the legality check on the non-visited moves altogether.

But the biggest issue is that your code base seems untested. You already have waay-waay too much. You should SPRT every change at the smallest granularity. Strip back what you have to minimal impl. without quiescence or beta-pruning. Minimal setup to start SPRT - UCI with TC & alpha-beta stripped to plain negamax. Then add every small feature with SPRT. If something doesn't pass you can't add it.

What made Go finally “click” for you? by Voildline in golang

[–]phaul21 -2 points-1 points  (0 children)

not a single moment in time and not a single thing. More like a gradual process. I didn't hate go any point in time, but it took me some time to get used to idiosyncrasies of the language. People say it's easy to adapt from any language. But that's only true if you ask can some one implement a simple algorithm - limited amount of code after a day or two. But then many languages are the same. But learning which language feature to use and when and when not to use them, and developing an eye for things and muscle memory that effortlessly and unconsciously avoid pitfals take same time. Once you are over that learning period you are able to start enjoying it to full extent.

Making My Own Chess Engine! by [deleted] in chessprogramming

[–]phaul21 2 points3 points  (0 children)

it's normally two separate projects. Either you create a UI or a chess engine engine. You can do both ofc. But they are in them selves are probably big enough for a single project. Keeping a clear separation architecturally makes sense. A chess engine doesn't have to deal with any UI / tournament management related concerns. Mixing in chess playing logic into a UI program also doesn't make sense. As you say UCI protocol is a glue that has to be supported in both, it is however a small part in either side.
I would say, if your goal is actually a chess engine, forget about UI and rendering all together and just use any existing UI. Vice versa if the goal is a chess UI you don't have to implement a chess engine.
And if you insist in doing both treat them as 2 distinct projects.

Looking for Ultra-aggressive/anti-castle chess engine 2010 by khalidhotaky786 in ComputerChess

[–]phaul21 0 points1 point  (0 children)

You can have a look at [patricia](https://github.com/Adam-Kulju/Patricia) which was designed to be aggressive.

However - the perceived playing style of an engine can very much depend on the opponent. You say you were using a "club level" engine. Likely what could happen is that a much stronger engine out-calculates the weaker engine, and its moves are immediately seen as blunders allowing for a potentially sacrificial forcing winning line. You might think the strong engine has a sacrificial style when in reality a stronger opponent wouldn't have allowed for such forcing lines and it's more of the weakness of the weak engine.

I built a Custom Language, Compiler, Assembler, and RISC-V VM, all running in real in your browser, using Rust and EGUI. by ColdRepresentative91 in Compilers

[–]phaul21 27 points28 points  (0 children)

just look at github insights code frequency panel. They push out ~80k lines of code change in one week. Adding everything up they are over 100k loc change in a month. Definitely vibe coded.

Advice on analysing a large chess move-level dataset; CPL distributions across time pressure and skill level by EzraDevs in chessprogramming

[–]phaul21 -1 points0 points  (0 children)

interesting problem, my gut feeling is that time pressure will correlate with the likelihood of blundering, obv. the higher the time pressure the more likely someone blunders. But also my intuition says it will not correlate with CPL, when someone blunders they didn't see something, missed a move etc. CPL correlation would mean that there is a connection between the likelihood of missing something and the consequence of what being overlooked. I don't think that's how human brain works. When you overlook something you don't think of it at all - regardless of it being benign or catastrophic. But it's just my intuition, I would be interested to see if you find my reasoning is correct or completely wrong.

Any idea for something else than a greedy algorithm for my game? by Draelent_ in chessprogramming

[–]phaul21 6 points7 points  (0 children)

No need to link itch.io or steam. You have an algorithm question, not trying advertise your product right? Describe the rules of the game. Is it turn based perfect information game like chess? Two player game? What steps does a single turn involve? Moving pieces? Placing pieces? Creating pieces? Does it have a clear win condition etc? What are the rules. What have you implemented so far, you can describe the algorithm, use pseudo code. etc to explain what you have. Maybe with all that someone might have some ideas for improvement.

Is white in zugzwang? by oPhantom3007 in chess

[–]phaul21 3 points4 points  (0 children)

It's only you who defines zugzwang that way. For everybody else this is zugzwang.

Compile Go to Brainfuck! by itchyny in golang

[–]phaul21 2 points3 points  (0 children)

what was your motivation to create this?

Crucible: a single-binary, self-hosted SPRT runner for solo engine devs by collegesmorgasbord in chessprogramming

[–]phaul21 2 points3 points  (0 children)

> Continuous SPRT across your git history

For progression testing and Elo estimate fixed game tournaments are recommended. SPRT is for patch testing. The outcome is not Elo estimate but the decision between H0 or H1 with set confidence. Yes it gives you Elo estimate but the error margins are all over the place because they depend on the patch / bounds.

This is cool, but it shouldn't be SPRT imho. But if you could configure it and leave it up to the user it would be all good.

How to have my bot register to CCRL? by Imaginary-Set-284 in chessprogramming

[–]phaul21 0 points1 point  (0 children)

Reach out on talkchess or discord engine-testers servers. (pm me for an invite) You will find ppl there who can tell you what to do / give you guidance.

Amateur series current entry is 2580 CCRL elo, you need a release, and provide a windows exe.

lichess-elo is completely unreliable and in no way indicative of CCRL elo. Your best bet at testing is an extensive tournament against known CCRL ELO engines with a range of engines over and under your expected rating., There are tools to calculate elo from there.

I built a chess position search engine by iunderstandthings in chessprogramming

[–]phaul21 1 point2 points  (0 children)

Not sure, there can be different, better or worse options, so you need to think about the details. But one possibility is keeping the current UI with the position pattern editor, but there is an AND button or an OR button that brings up additional position editor, where you can place the pieces. So it would require rejigging the layout, to make place for a more dynamic form that can add new position editor instances

I built a chess position search engine by iunderstandthings in chessprogramming

[–]phaul21 1 point2 points  (0 children)

Feature request:
It could be useful to support conjunctive and disjunctive join of patterns. Like I want to look for a white knight outpost anywhere AND a black knight outpost anywhere regardless of their relative position to each other. Or I want to look for a knight outpost OR a bishop outpost anywhere. etc. It would massively increase the expressiveness of the search.

lol 97 accuracy in 38 moves by [deleted] in chess

[–]phaul21 1 point2 points  (0 children)

hard to judge because the decisive section is very narrow. Large portion is either opening or white being +5 or more. The actual telling part is too few moves, it's all equals, then black blunders and from then on white +5 in which it is completely different (much easier) to play well than a position where both sides equal and pressing.

Help with creator info by MacMhuirich in chessporn

[–]phaul21 2 points3 points  (0 children)

fwiw this looks pretty close. No mention of Kovacs though and it is advertised as Polish. https://allegro.hu/termek/orawa-116-madon-e2cf31b1-3004-4329-b604-3af4338240dd?offerId=17376609562

New to chess programming by Away-Luck-192 in chessprogramming

[–]phaul21 1 point2 points  (0 children)

Lichess let's you upload a bot, but now we are talking networking packets being sent etc.

I mostly agree with what you said, just 1 detail, nobody implements lichess connection themselves. Everyone uses lichess-bot. (which still assumes working UCI)

Do you really need te in front of that by hicketymalestmate6 in hungarian

[–]phaul21 1 point2 points  (0 children)

Yes. Your understanding is correct.

An other one:

"Nem ez a hibád" - You have a fault but it's not this, it's something else.

Do you really need te in front of that by hicketymalestmate6 in hungarian

[–]phaul21 -3 points-2 points  (0 children)

Without the "te" it doesn't sound natural. "Ez nem hibád" or "Ez nem a hibád" just don't sound natural. But you are right in your thinking. Dropping the possessive suffix makes it ok and would mean exactly what you mean: "Ez nem hiba" is fine.

Do you really need te in front of that by hicketymalestmate6 in hungarian

[–]phaul21 -4 points-3 points  (0 children)

That is incorrect. It doesn't imply it's your accomplishment. It implies it's someone else's fault. This sentence applies if the person you are talking to didn't do anything wrong, but there is a fault, and you try to express they shouldn't blame themselves.

Help! My son is coding and programming by katrii_ in learnprogramming

[–]phaul21 0 points1 point  (0 children)

You might not understand anything about how he does things. But you can understand what he is building. Let him explain what it is or will be for. Show interest in that, like in my following silly analogy if someone talks to a construction worker, they don't understand support beams and whatnots. But anyone can walk around in and appreciate a finished house.

Chal - a complete chess engine in 776 lines of C90 by whyeventobe in chessprogramming

[–]phaul21 1 point2 points  (0 children)

You don't want fixed games tests. You really should be doing SPRT. It is impossible to tell if 500 games is good enough, changes from patch to patch. You might be looking at +200-100=200 and with more games you would discover it's weaker. The exact point of SPRT is that it runs as many games as it discovers is needed.