#programming

1 messages ยท Page 216 of 1

real sierra
#

oh does the new version of the C api work for you?

#

or are there still issues

glass flower
#

catEat you pushed a new version?

real sierra
#

17 min ago yea

glass flower
real sierra
#

now everyone on windows gets illegal moves

#

but they do get moves

#

how fun

glass flower
real sierra
#

is that with rust or py?

glass flower
#

rust

real sierra
#

Aware language-independent bug

#

is it a problem with the c library...

tender river
#

thats better arguably

real sierra
#

not better

#

it doesnt happen on linux

glass flower
#

a language independent but system depended bug LULE

real sierra
#

my respect for the windows software environment is plummeting tonight

opaque sigil
#

Do you understand why wsl2 is so beloved now

midnight sigil
#

shibo rn is like a corpa pushing and announcing untested products to public glueless

real sierra
#

it was tested

#

...on linux Tomfoolery

midnight sigil
real sierra
#

and in my defense, 0 bugs have occurred on linux

midnight sigil
#

0 bugs have discovered :mhm:

real sierra
#

if you dont notice them, thats the same as them not being there

midnight sigil
#

:neuroTrue:

opaque sigil
#

Are you calling fork anywhere by any chance shiro

real sierra
#

nope

#

there's a thrd_create for making the UCI thread

#

thats it

glass flower
#

catEat it also seems like there is no patterns to when the illegal move happens... so good luck figuring it out

opaque sigil
#

Hmm

real sierra
glass flower
#

Think are you initializing every variable you use? i think in windows it can be garbage but on linux it gets cleared. or the other way around idk

#

there was definitely some memory mismatch that can make it work on one system vs another

real sierra
#

sus i found one potential problem in the C api

midnight sigil
real sierra
glass flower
midnight sigil
#

VM under 1024 tokens FOCUS

#

would be crazy

opaque sigil
#

Have you tried manually clearing before free'ing

real sierra
#

im almost certain that freeing the moves array that C returns is freeing the copies i made in python too

#

which is really confusing because i made sure to very explicitly make copies

opaque sigil
#

Hmm

#

How are you making the copies

tender river
#

so no

real sierra
#

its kinda ugly but i dont think it should cause bugs

tender river
real sierra
#

    def __init__(self, copy_from: Optional[Move]):
        if copy_from is not None:
            # awkward copy ctor
            self._from = _BitBoard(BitBoard(copy_from._from))
            self._to = _BitBoard(BitBoard(copy_from._to))
            self._promotion = c_uint8(int(copy_from._promotion))
            self._capture = c_bool(bool(copy_from._capture))
            self._castle = c_bool(bool(copy_from._castle))
#

you can make comments on the lack of elegance but these should definitely be copies

tender river
opaque sigil
real sierra
#

valgrind time Pointless

#

i see no leaks

#

i guess i can comment out the free command on python and see if the bug vanishes

#

didnt fix Sadge

tender river
#

shiro just test the c api instead neuroCatUuh

real sierra
#

so different bug

#

but the api works on linux uuh

tender river
#

but its windows

real sierra
#

i dont wanna mess with cmake again

tender river
glass flower
#

uuh thats why its the c api thats broken and not python

real sierra
#

are ints different size

glass flower
tender river
#

you dont have to cmake every time you change the source code

opaque sigil
#

I can't wait for someone to try and run this on macos and everything blows up again

real sierra
upbeat hollow
#

๐Ÿ‰

opaque sigil
#

POSIX will carry glueless

real sierra
#

in posix we trust

tender river
#

i win

real sierra
#

time to paste the entire source into an LLM and ask it to find the bug

glass flower
#

neurOMEGALUL funnily enough i was gonna suggest that....

#

but i thought... nah no way

#

also chat gpt 5 free can't take the chessapi.c file Think

real sierra
#

in grok we trust

sage crag
#

@tender river i have made peak vm execution

real sierra
real sierra
real sierra
#

in grok the do not trust

glass flower
#

PagBounce time for gemini

sage crag
#
PRESERVE_NONE void run_goto2() {
    void **pc = (void*[]){&&op2, &&op2, &&op1};
    while(1) {
        goto *(*pc++);

        op1:
            printf("op1 (should terminate)\n");
            return;

        op2:
            printf("op2 (should continue)\n");
            continue;
    }
}
#

it requires program being in terms of addresses to handlers

#

which is definitely not portable

#

unless i do some kind of pretranslation step, but that somewhat defeats the point

tender river
#

tangentially related

#

when i was reverse engineering uh

#

something

sage crag
tender river
#

i really liked the obfuscation scheme

glass flower
tender river
#

they split each function into small chunks, added some bogus chunks, and had a single switch statement per function

#

then each function looped a few times setting next "opcode" to run a different code chunk and update the next opcode

#

the thing is the next opcode was not just set, it was dynamically updated

#

this is not impossible to solve with symbolic execution

#

but in practice it just means you're gonna have to write custom control flow analysis for reassembling the program instead of just looking at the code

#

and i didnt feel like it mahi

sage crag
#

nyum

real sierra
#

why bug

#

cannot figure it out

obsidian mantle
#

What bug what

real sierra
#

on windows

#

all of the bindings seem to return illegal moves

#

NeuroBwaa not make sense

obsidian mantle
#

Cant you run it in debug mode and see where it comes from

#

If both chess api and chess bot have source

real sierra
#

i dont have the c version of the chess bot on windows, and bindings don't give stack trace into the api

#

and it only occurs when i use it through the cute-chess application, not when i test in terminal

obsidian mantle
#

I had same problem with arena because it restarted the bot and it forgot its board

tender river
real sierra
#

it does

#

in a terminal at least

obsidian mantle
#

Does api need to stay in memory between moves

#

To remember the board or smth

real sierra
#

it will stay in memory because it's an application

#

the application isnt being closed

#

and even if it were restarted, that wouldn't be an issue

obsidian mantle
#

Oh so you run it manually and not just provide exe to the cute chess

real sierra
#

no i do give an exe to cute chess

#

but that exe is not being killed

#

because it's replying to cute chess

#

that's a separate exe with its own memory, it can't just have its brain removed by another application

obsidian mantle
#

Is it giving illegal move on turn 0

real sierra
#

not always

#

the turn is random

tender river
nocturne olive
obsidian mantle
#

What moves does it give

#

Does it give startgame pawn moves or

real sierra
obsidian mantle
#

Or startgame whatever the board was when it started

real sierra
#

windows is horrible

nocturne olive
real sierra
#

and it wasnt a free issue like i thought

tender river
real sierra
#

bug is present even if python api doesnt call free

tender river
#

then you can use ubsan/asan with that

nocturne olive
real sierra
#

its definitely some kind of memory issue though

tender river
nocturne olive
obsidian mantle
#

I have an urge to look into it but im at work neuroCry why do timezones exist

tender river
real sierra
#

something i do notice is that when i as a human play against it, sometimes it tries to play the move i just played

#

which means uninitialized buffer

nocturne olive
#

Weird

real sierra
#

agree

#

no clue what could be causing it, no part of this is platform-specific

obsidian mantle
#

Initialize it mhm

real sierra
#

valgrind sees no issues

tender river
#

ubsan/asan?

nocturne olive
#

I have not had anything like that with the KT API

real sierra
tender river
real sierra
nocturne olive
#

Hm, so Windows being Windows then

tender river
real sierra
#

SCHIZO making me install clang

#

i should just preinstall every windows C build tool

#

why just have one when they each implement one crumb of the spec

tender river
#

neuroDinkDonk what if someone tries to use the intel compiler

real sierra
#

next question

obsidian mantle
#

But it works with cute chess on linux? Or mac or whatever you have

rigid timber
faint sandal
#

what if CerberDinkDonk

nocturne olive
obsidian mantle
#

Maybe linux cutechess is different?

tender river
#

not cutechess issue evilNopers

obsidian mantle
#

You cant run same exe on win and linux right?

nocturne olive
#

Everyone should just use Linux for real

real sierra
nocturne olive
#

Windows moment

tender river
#

intellij have their bespoke nonstandard tooling

nocturne olive
#

You mean JetBrains?

#

IntelliJ is the Kotlin/Java IDE

tender river
#

intellij is jetbrains's old name

#

intellij idea is the java ide, not intellij

opaque sigil
#

They're all intellij as a base anyway

obsidian mantle
#

100% solvable with debug messages

tender river
real sierra
#

this feels like such a no-win scenario

#

im trudging through the hell that is windows development to enable others to suffer the same fate

rigid timber
#

only C and C++ are hell on Windows tbf

tender river
#

shiro evilSMH

#

this is a chess competition

obsidian mantle
#

But if you never worked on linux you will suffer on linux

tender river
#

you're supposed to say zugzwang

sage crag
#
#define PRESERVE_NONE __attribute__((preserve_none))

PRESERVE_NONE void **translate(uint8_t *bytecode, size_t len, void *table[]) {
    void **translated = malloc(len * sizeof(void*));
    for (size_t i = 0; i < len; i++)
        translated[i] = (void*)table[bytecode[i]];
    return translated;
}

PRESERVE_NONE void run_goto2(uint8_t *bytecode, size_t len) {
    void **translated = translate(bytecode, len, (void* []){
        &&op1, &&op2,
    }), **pc = translated;

    next: goto **pc++;
    op1:
        printf("op1 (should terminate)\n");
        free(translated); return;
    op2:
        printf("op2 (should continue)\n");
        goto next;
}

ye works

#

i wonder if there's any tangible performance improvement from this

nocturne olive
sage crag
#

i bet it sucks for programs without loops

sage crag
#

no

real sierra
#

bwa

sage crag
#

this is for a vm that doesnt have a 1024 token limit

real sierra
#

how will i fit it on my floppy drive

sage crag
#

if im translating the bytecode i may as well JIT it

#

also i'll have to load operands from the original bytecode anyway

#

so its just not worth it due to cache i guess

sage crag
#

which is a shame evilThink

rigid timber
nocturne olive
#

I think it's time to add docs to Kotlin API

opaque sigil
nocturne olive
opaque sigil
#

you can

tender river
sage crag
tender river
#

ye surely l1 fast enough colonthree

real sierra
#
static Move *get_legal_moves(Board *board, int *len)
sage crag
#

i wonder if there's any way to get the best of both worlds

real sierra
#
    *len = len_moves;
#
    size_t len_moves = 0;
#

bad?

tender river
#

should be fine enub

real sierra
#

size_t to int fine?

tender river
#

ye

real sierra
hollow spruce
real sierra
#

chessapi.c

#

the .h is remaining unchanged

#

-# (i hope)

tender river
real sierra
#
memset(&add_move, 0, sizeof(add_move));
#

sizeof variable...

opaque sigil
#

I forgot what the static even does in this context

real sierra
#

doesnt export function

tender river
real sierra
#

maybe windows is just broken

tender river
real sierra
#

my code would never have bugs

opaque sigil
tender river
#

test with clang on windows

real sierra
#

cruelty

#

๐Ÿฅ€

opaque sigil
#

Would be funny if it's just msvc being broken

#

And unsurprising

tender river
real sierra
#

neuroDinkDonk adesi was using clang and doesnt work for them either

tender river
#

if it doesnt you have good debug tooling

#

(ubsan & asan)

real sierra
#

clear path for windows refugees: wsl2

#

if you want to submit a bot in windows please ask microsoft to write chessapi bindings

sage crag
#

wtf

#

the translated one is faster

#

cache randomiation

tender river
#

cpus are so weird

sage crag
#

ye on linear program it was about 5% faster consistently

midnight sigil
sage crag
#

and on the stdout throughput test it went from 1.2gb/s to 1.76gb/s

opaque sigil
#

I don't have a windows to test enub

sage crag
#

on a simple test vm, i should note

tender river
sage crag
#

so i just tested it

opaque sigil
#

I'm convinced cpus are secretly conscious and will vary their speed out of spite

sage crag
#

and its faster on 2 instructions

#

2

#

how

#

when instruction count small, previous one should be faster

#

its still slightly faster with 1 instruction

#

i hate computers

#

that literally makes no sense

real sierra
#

wait

#

how do i have clang-tidy

#

do i already have clang

sage crag
real sierra
sage crag
real sierra
#

why would i put that in a while statement

tender river
real sierra
tender river
#

scanf_s

real sierra
#

it fine

sage crag
#

the s stands for safe

real sierra
#

deprecation excessive

sage crag
real sierra
#

so why would i put in while loop

sage crag
#

ok now to figure out how to handle operands with this new format

tender river
sage crag
real sierra
tender river
rigid timber
real sierra
#

but if it did

sage crag
#

exit

real sierra
#

i guess it doesnt break anything to make it a while loop

tender river
real sierra
#

nevermind it apparently does break something

#

oh because i did it wrong

tender river
# real sierra

might want to make Semaphore* volatile neuroCatUuh not sure if the compiler can figure out that sem->locks can change after cnd_wait

sage crag
tender river
#

they wont optimize it out but they might optimize out the read

tender river
#

i'm not sure what c's definition of reasonably sure is

#

Semaphore* isnt restricted so it may be fine either way neuroThink

real sierra
#

im getting like 1000 warnings now

#

the mtx and cnd functions dont like that Semaphore is volatile

tender river
#

fine undo it neuroTsun

real sierra
midnight sigil
#

chat is using comic sans for programming cursed

real sierra
#

(ignore the "more than once" ones)

obsidian mantle
#

Warnings? Who cares cupsama

obsidian mantle
#

Its only bad if the code is bad

sage crag
#

cursed form of JIT where instead of actually jiting anything you just replace each instruction with the instruction handler

obsidian mantle
#

There was some safe function that behaved completely different for no reason relative to unsafe function. I hate safe functions

sage crag
real sierra
#

that looks pretty much like what i have

opaque sigil
real sierra
#

i resolved the warnings by only making Semaphore.locks volatile

#

is that sufficient

tender river
real sierra
tender river
#

i remember it

#

let me find it

real sierra
#

the problem is that the mtx_ and cnd_ functions ask for non-volatile pointers in their signatures

#

C doesn't like it when you typecast a pointer to something volatile, to a pointer to something non-volatile

opaque sigil
#

Good

real sierra
tender river
real sierra
#

so i just cant make this volatile period

tender river
#

who even suggested that

real sierra
#

i make Semaphore.locks volatile

#

maybe thats good enough

#

the loop is conditional on locks anyway

#

not on the mutex or condition

sage crag
#

me genius

real sierra
#

surely this fixes my issue

#

glueless !

sage crag
#

dont need registers

#

therefore dont need operand

tender river
#

stack?

sage crag
#

or accumulator

tender river
#

one opcode for pushing every possible byte neuroNOTED

sage crag
#

this would quickly turn the vm into esoteric territory though

#

since no immediate

obsidian mantle
#

Now the code is different and you are not sure it would work even on linux neuroTomfoolery

tender river
#

8 byte opcode 24 byte operand neuro5head

obsidian mantle
#

Make 128bit vm

sage crag
#

of course, i'll replace registers with addresses MyHonestReaction

#

overcome the indexing cost MyHonestReaction

real sierra
#

send bytes to my address PagBounce

sage crag
#

just precomputing the register memory address during the translation step

#

bwaa translation step being separate from main vm will double the program length

#

bwaa

#

bwa

obsidian mantle
#

Is read 1 byte = 2byte = 4 = 8 on 64bit systems?

#

In terms of time

#

Or how does it work

sage crag
#

ye koni make the fastest vm in the world TODAY

#

when i wake up

opaque sigil
tender river
#

thats how you know its fast

opaque sigil
sage crag
#

i'd rather do 24 byte operand and fit two instructions per cache line

#

since that makes it easier to pipeline

tender river
#

a 64-bit cpu except its a 64-bit opcode space rather than 64-bit address space

obsidian mantle
sage crag
#

its lower level than esolang

#

add1
add2
add3

opaque sigil
tender river
#

ye bring back room scale mainframes

sage crag
obsidian mantle
#

Or no

sage crag
#

technically an arm machine can read 2048 bytes with 1 operation due to wacky

obsidian mantle
#

Naah but its going to repeat it in cycles don't it

opaque sigil
tender river
#

technically x86 can rep stosb neuroCatUuh

sage crag
sage crag
#

but that a loop in microcode

#

not fair comparison evilNope

tender river
sage crag
#

typically alignment

tender river
#

in general you dont want to do a single operation on cpus

#

you want to do multiple operations

#

if the cpu cant figure out that you want to do multiple operations, everything is just going to execute one instruction at a time

sage crag
#

also in x86 ISA itself there is extra data to be encoded for 64 bit instructions than 8 bit instructions

tender river
#

where it really doesnt matter whether its 1 or 8 or 64 bytes

sage crag
sage crag
#

especially with pipelining

tender river
#

evilNodders and then other metrics like cache size and memory speed and prefetching and speculative execution come into play

sage crag
#

but you dont need to think about those

#

cpu magic rock

#

you programmer just throw bigger cpu or bigger library at it

#

until it work

tender river
#

i throw bigger brick

sage crag
tender river
real sierra
#

maybe i give up

tender river
real sierra
#

i think i do have clang

tender river
#

ubsan/asan

real sierra
#

i get clang linter errors at least

opaque sigil
#

clang-tidy != clang

real sierra
#

dont have ubsan or asan

obsidian mantle
#

Debug the process NeuroRage

real sierra
tender river
#

not external binaries

real sierra
#

ok i dont have clang

obsidian mantle
#

Who just switches compilers randomly NeuroRage

real sierra
#

ive switched compilers like

#

3 times tonight

real sierra
#

im so damn tired

#

i have an assignment due on wednesday

opaque sigil
#

Any excuse to not use msvc

real sierra
#

msvc is the only compiler that actually makes a working dll for me at the moment

tender river
real sierra
#

i dont wanna hear an "i told you so"

opaque sigil
sage crag
real sierra
sage crag
opaque sigil
#

The windows people can wait meow

tender river
real sierra
#

Tssk people wont wait that long

#

but they can use wsl in meantime

#

already added a note to the readme

#

letting people know that windows building/testing probably has to happen in wsl for the time being

opaque sigil
nocturne olive
real sierra
#

i had to modify the python api to search for a DLL if on windows

nocturne olive
#

It's not explicitly looking for an SO file

real sierra
#

OK then it probably maybe works

opaque sigil
#

You're like 3 levels above it probably works

real sierra
#

thats where the maybe comes in

nocturne olive
#

It's just trying to Native.load("chessapi")

nocturne olive
tender river
opaque sigil
#

Assuming that uses loadlibraryex it should work I think

#

Assuming the name is right

nocturne olive
real sierra
nocturne olive
#

Oh how silly

#

Well expect the rest of the things in a few more hours

real sierra
#

maybe i'll add a small note that it's under construction neurowheeze

nocturne olive
#

Once I push to a repo you'll want to definitely link that repo in your copy of the readme

midnight sigil
#

I waited 20 mins to download windows llvm installer neuroHypers catdespair

#

github you slow ass

real sierra
#

i'll review it when i get a chance tomorrow or the next day

nocturne olive
#

Silly

opaque sigil
real sierra
#

i hope it's working for linux users neuroPray

#

it hasnt even been a full 24h so not every timezone has even seen the announcement

#

but there's still surprisingly few people that've come to ask questions

nocturne olive
#

Based on the Kotlin API development it works fine on Linux

real sierra
#

either people are really uninterested or many have figured it out

nocturne olive
#

We will see

opaque sigil
#

It's been a quarter of a day at night shiro Awkward

real sierra
#

and ive slept for none of it Awkward

stray dragon
#

wait the announcement happened?

opaque sigil
#

Me neither neuro7

stray dragon
#

do we have api

#

should i be awake

opaque sigil
#

Yes

stray dragon
#

oh god i need to be awake

nocturne olive
nocturne olive
#

I personally have no clue how to create one

real sierra
#

it's pretty simple but idk if that can even be done via pull req

#

if you cant just lmk and ill pop the md into a new page

#

its very easy

nocturne olive
#

Well I assume a fork of a repo contains the wiki

real sierra
#

honestly not sure

nocturne olive
#

Well I guess we'll see

real sierra
#

the wiki isnt in the normal file system of the repo

#

its odd how github does it

nocturne olive
#

If not I'll just give you the file

real sierra
#

no pressure

nocturne olive
#

We will see what happens

real sierra
#

alright im off to bed its 4am

#

good night neuroPray

nocturne olive
#

That is indeed a bit late

opaque sigil
#

Imagine being up so late

#

smh

stray dragon
#

"late" is whenever i want it to be

#

i am in control here

tender river
#

its 3pm here

#

i should really be asleep by now

opaque sigil
midnight sigil
stray dragon
midnight sigil
#

I'm just here waiting for the typhoon impact neuroPogHD

stray dragon
#

about 12 hours out

obsidian mantle
#

I'll try to help figure it out later today

#

When im home

midnight sigil
#

imagine bro succeed before impact

stray dragon
#

didn't see windspeed drop

#

at least, no drop + regain

#

looks like it's just been entering unfavorable conditions

stray dragon
#

oh damn you're right

midnight sigil
#

there's total of 4 cycles according to some taiwan guys

opaque sigil
#

Stay safe neuro7

stray dragon
#

not a direct hit and the storm is weakening, so probably fine

midnight sigil
#

neuroPogHD 100+ km eye coming

stray dragon
patent elk
#

is that matthew

worldly acorn
#

Bartholomew?

midnight sigil
#

neuroCatUuh so I guess I didn't compile the dll correctly

trim valve
midnight sigil
#

is that not correct

obsidian mantle
#

How do you even link dll to main file
#include it on top?
Or need to do some project setting shenanigans

#

Never used dlls

opaque sigil
#

You include the header and link with the dll

midnight sigil
opaque sigil
#

Can also write a .def file I guess

#

Might need to have clang generate the corresponding .lib too for the declarations who knows enub

nocturne olive
obsidian mantle
#

Can I attach my visual studio to dll if i have source to debug it

#

Probably yes what

nocturne olive
#

If you have symbols, I don't know

#

The DLL needs to be compiled for debug at least for sure

opaque sigil
#

It's definitely possible

obsidian mantle
#

Maybe reconfigure it to run raw without dll

#

Might be easier

midnight sigil
#

and cute chess can run it

#

yes it's given illegal moves(and incorrect numbers of legal moves) mhm

obsidian mantle
#

Incorrect numbers like, it gave 20 moves but said its 3 moves?

#

Or does the structure of moves not work like that

#

Whatever i need to see it first
Speculating isnt so fun neuroBwaa

dry charm
#

I have a what moment

rigid timber
#

do you happen to have multiple node versions

dry charm
#

nop

#

I would use nvm then

#

but I use NixOS

#

that is why I have a what moment

#

WAIT

#

no shot

rigid timber
#

lemme guess, you figured out you do have multiple versions of node

dry charm
#

Nope

#

worse

rigid timber
#

that implies you only have one version of node but I don't see how that's worse kek

dry charm
#

LOVELY

#

NixOS @angular/cli ships own nodejs instead of using the installed one

rigid timber
#

lmao

#

tbh you don't really need it as a global package...

dry charm
#

the cli?

rigid timber
#

yeah

dry charm
#

it is not global, it is in a devshell

rigid timber
dry charm
#

basically, I can create development enviroments, where required packages are available when I enter the directory

#

and it doesn't dilute my global environment

#

I can specify versions even for different projects on demand

rigid timber
#

... but Angular projects already have @angular/cli as a devDependency, so why would you need an extra copy

dry charm
#

for ng command

#

dev dependencies do not extend for env

#

so you do not have ng command

#

This is why every angular install starts with npm install -g @angular/cli

rigid timber
#

Hmm true, you'd have to do npx every time or use something that does the env stuff for you automagically

#

and even then it'd only work for existing projects, not for scaffolding new ones bc npx can't run packages without installing them...

nocturne olive
#

Kotlin bindings for Chess thingy now just waiting for Shiro approval

rough bloom
#

if you want a different Nodejs then override it

dry charm
#

Just at the time I was very confused why this is the case

midnight sigil
#

4 illegal moves

obsidian mantle
#

So it counts them correctly. Good

midnight sigil
#

the counting mechanism is made by me, just doing len() on the legal moves given

#

I'm not sure if there's uci commands that returns the number of legal moves

obsidian mantle
#

There is none

#

Oh. I guess you are not using C bindings.
Thats why i was confused - c bindings give length right away with move array

#

And i definitely saw it somewhere before

midnight sigil
#

WHY WOULD A FREAKING DRAW DECREASE MY ELO

#

bruh

noble zodiac
#

but.... why tho

worldly acorn
#

Because chess is a language

#

It is also the friends we made along the way

olive sable
#

im home neuroHypers

#

tuesday is a short day NeuroBounce

hollow spruce
#

It means that ๐Ÿ™‚

midnight sigil
#

I can finally say "I speak chess" confidently

hollow spruce
#

๐Ÿคจ

fast pagoda
#

I have been asleep for 12 hours so I wake up to API drop hooray neuroHypers

amber fractal
fast pagoda
#

Also I like how hal 9000 is moving the chess piece from the observation side of the chess board implying he is not even a player @real sierra

thorn chasm
#

I told myself in the past to never go back into chessdev, but how can I resist Awkward

worldly acorn
#

You don't

#

It calls

amber fractal
#

Well, guess the month timer for chess has finally started.

olive sable
#

"i like the numpad, it has all my favourite numbers"

#

most insane quote from class

obsidian mantle
#

Whar

amber fractal
#

I thought that was your quote @olive sable

olive sable
fast pagoda
#

It has all my favourite numbers too

obsidian mantle
#

What about 21

fast pagoda
#

All the greatest hits in there

olive sable
olive sable
amber fractal
#

Just press the 10 key

obsidian mantle
#

Its not on the numpad NeuroRage

#

I hate numpad

amber fractal
#

(Why is the 10 key real)

#

There are so many keys that have no right to exist

#

Like the xf86 red, green, yellow, and blue keys.

olive sable
#

mine does have 21, but you have to do a key combo

#

you have to press 2 and 1

obsidian mantle
#

???? Am i supposed to know the combo for every number higher than 9

#

Insane

olive sable
#

yes

#

this is the difficult technique i have mastered a century ago, i call it counting

#

its from the far regions in arabia

obsidian mantle
amber fractal
olive sable
#

nobody uses the home, page up, page down and scroll lock keys

obsidian mantle
#

Ctrl + Shift + Alt + Win + L

olive sable
#

the other ones from that island above the arrow keys can stay

amber fractal
obsidian mantle
#

I used pageup/down

olive sable
obsidian mantle
#

In some old game console it was the only way to scroll

clear sedge
olive sable
#

ok but i spend 130 bucks on a keyboard with nice switches, i dont want to spend more than i have to on buttons i never press

obsidian mantle
#

It opens linkedin page in default browser

#

Anybody touched the new token counter yet? Does it have problems too neuroKufufu

amber fractal
#

Not as far as I know

midnight sigil
olive sable
#

corsair k70 rgb pro

#

with the cherry mx brown switches

obsidian mantle
#

cherry switches NeuroSip interesting

olive sable
#

wdym?

obsidian mantle
#

Sounds unusual

#

Oh its an term

olive sable
#

i think cherry is a pretty popular brand

obsidian mantle
#

Or is it a company

trim valve
#

glueless surely implementing a bunch of transmutes in my chess api will have no negative consequences

obsidian mantle
#

I thought its colour

olive sable
#

cherry is the brand, brown is the type

midnight sigil
amber fractal
olive sable
midnight sigil
#

wait for you to hear the 78db smack

olive sable
#

?

#

i dont feel like my keys arent that loud

#

wait

#

double negative

midnight sigil
olive sable
#

i guess they are loud Shruge my typos says so

amber fractal
#

Fact checked infomation yep, see no issues with the statement

midnight sigil
#

and cherry mx brown is uhh

olive sable
#

tactille

midnight sigil
#

stucked in the middle of linear and clicky

#

fragmented

#

bad

olive sable
#

i dont care much for your opinion

midnight sigil
olive sable
#

i liek knowing when the key has activated, hence i like the tactile response

#

but i dont like audible clickeyness

midnight sigil
#

get magnet switches

olive sable
#

i aint psendign my money on all that

midnight sigil
#

smh

trim valve
#

what did I do this time

#

why did you make the same move again silly computer

olive sable
#

we love weird errors

midnight sigil
obsidian mantle
#

What does N mean

midnight sigil
#

Imma hook a debugger to see wha da fa is happening in chess_get_legal_moves

midnight sigil
obsidian mantle
#

neuroBwaa you going to fix it before me

midnight sigil
#

no

#

I'm bad at programming

obsidian mantle
#

Every god programmer ever "im bad at programming"

trim valve
midnight sigil
trim valve
#

time to test the C bot

midnight sigil
trim valve
#

but I think I may have added a bunch of unsafe without thinking

#

no

midnight sigil
#

linux?

trim valve
#

yeah

midnight sigil
#

oh so it's a common problem

trim valve
#

hm?

obsidian mantle
#

Shiro said before its only windows problem

dry charm
#

uhoh

#

its spreading

obsidian mantle
#

But it was about "on windows it always gives incorrect moves"

midnight sigil
#

glueless he was wrong

trim valve
#

do not discount this being a problem entirely caused by me yet

midnight sigil
hollow spruce
#

New project update
Making new based on India theam games on pc
Max allocation gb is 302

midnight sigil
#

yes

trim valve
#
ucinewgame
position startpos moves e2e4
go
legal moves: 20
info currmove g8h6
bestmove g8h6
midnight sigil
#

it's correct and legal move

obsidian mantle
#

It looks like its rare on linux and frequent/always on windows

midnight sigil
#

neuroHypers repeat until bug appear again

trim valve
#
legal moves: 30
info currmove e1e2
bestmove e1e2
obsidian mantle
#

Inb4 memory alignment changed because of print function and now it disappeared neuroTomfoolery

trim valve
#

lemme test that theory

#

(it won't be memory alignment but could realistically be a skill issue on my part)

clear sedge
#

my guess is heap allocations are fucking me over

nocturne olive
#

Whar you sillying?

trim valve
#

low allocation json deserializer neuroPogHD

nocturne olive
#

I see a lot of Chess stuff

obsidian mantle
#

Doing research on false legal move bug

#

Damn my thumbs are too thick so many typos

clear sedge
trim valve
#

fair enough

stark needle
#

rrrrrr

midnight sigil
#

the C version seems fine

#

is it only happening in the bindings

#

python one happens everytime

obsidian mantle
#

Shiro has it in c every time on windows i think

midnight sigil
#

that's funny

fast pagoda
#

tfw sleep for 16 hours

#

and now i have to work for 10

final tinsel
#

just woke up... they still havent made a move

fast pagoda
#

but i want chezz

midnight sigil
#

your stockfeesh has analyzed 30878968564 chess positions

final tinsel
midnight sigil
#

great

#

๐Ÿ‘

final tinsel
#

i didnt expect it to think this THIS long lol

midnight sigil
#

you are supposed to limit its movetime

#

or depth

final tinsel
#

well ik

#

but like

trim valve
#

glueless new idea for the chess competition, move time inversely proportional to token count

final tinsel
#

i wanted to see how long itd take

trim valve
#

20 tokens -> 20 minutes, 1024 tokens -> 1 minute

final tinsel
#

i expected one move to be less than 10h at least

trim valve
#

surely that would end fine

midnight sigil
fast pagoda
#

me when "but let's just search to depth 9000"

midnight sigil
#

nah it won't surpass 300

#

even if we have infinite hash size

trim valve
final tinsel
midnight sigil
#

"We have made an evaluation algorithm for chess that's down to 5 decimal places, and we're going to find the most optimal(for now) chess game" glueless

midnight sigil
silent cloak
#

its calculating the best way to throw

stray dragon
#

the hell is -lchess supposed to be

midnight sigil
#

so uhh

#

it's returning len_move of 20

#

but returned an array with 21 elements

#

for the second move it only returns knight moves, with again an extra illegal move

#

third move and it's all nonsense with an extra a1c6, again

#

gotta look into that

rigid timber
#

neuroSMH Shiro should've just used a library

midnight sigil
#

I don't know about linux, but this is Windows 11, with LLVM 21.1.1(x86_64-pc-windows-msvc)

nocturne olive
#

With the correct passing method the Kotlin bindings at least work fine on Linux

stray dragon
#

very cool

final tinsel
#

it finally calulated another depth step

#

~3.5B nodes now

stray dragon
#

of course there's like no proper solutions on the first page of search results why would it be that easy

glass flower
#

Think do you have a old compiler?

olive sable
#

i thought you just did #include <thread>

#

thats how ive been doing it

stray dragon
#

in C it's threads.h

olive sable
#

huh

#

okay

stray dragon
glass flower
#

what compiler are you using?

stray dragon
#

gcc

#

the specific command used:

glass flower
#

Think i only tried clang... so good luck

#

and clang worked for me

stray dragon
#

followed the VScode guide on setting up a C/C++ environment to use, got that stuff installed, restarted computer, test the compile

glass flower
#

scrajj why would it not recommend msvc on windows...

#

gcc seems like a odd choice as the default compiler

#

atleast on windows

stray dragon
#

mostly using gcc because of this line in shiro's competition

#

i know precisely nothing on the differences between these compilers

glass flower
#

Think i see....

#

nowadays i don't think there is much difference. atleast on like the basic features

stray dragon
#

guess i try clang

shadow sinew
#

Any word on runtime/memory limits? Could you for instance set up a gigabytes-sized lookup table on the heap?

stray dragon
shadow sinew
#

Any extra time for precalculations on startup?

stray dragon
#

don't know but doubt it

worldly acorn
#

prob not though

#

heck if id know

stray dragon
#

apparently the bot's memory is not cleared after each game though

#

"Bots may not be restarted between tournament games, so be careful what you cache."

worldly acorn
#

dang

real sierra
# shadow sinew Any extra time for precalculations on startup?

in theory yes, but if you take too long and your engine is deemed unresponsive by the Gui you will probably be disqualified. I would try not to let this exceed a couple seconds.
as well, no thinking during the opponent's turn (i.e. ponder is off)

real sierra
#

in fact I may drop that further

#

given how many bots there may be

#

I would not exceed 1GB, I'll add this to the FAQ

midnight sigil
midnight sigil
#

I haven't read the codebase yet, just took some tests

#

and ate mcdonald enub

#

:NeuroopaTalk:

real sierra
#

your loop bounds are wrong

midnight sigil
#

so the extra move is explained

#

still returning incorrect numbers of legal moves tho

#

and incorrect legal moves

real sierra
#

how curious

#

windows?

midnight sigil
#

mhm

real sierra
#

naturally

sage crag
#

sync primitive mabe

midnight sigil
#

idk if it only happens on windows or not

real sierra
#

there's some windows bug bashing ongoing

sage crag
#

windows bashing

#

thats illegal Awkward

real sierra
#

not sure yet which operation I'm doing that's somehow platform dependent

sage crag
#

dont break windows glass is expensive

real sierra
#

maybe multiplication is too hard for windows

sage crag
real sierra
#

good info though, thank you

midnight sigil
#

idk man

#

I don't have a linux on my hand can't test that out

#

I think he's using the python binding

real sierra
#

bred said they hadn't ruled out it was them but if the C bot isn't working on Linux either then that's concerning uuh it works flawlessly on my system along with all bindings and nobody has reported issues until the contest started

rigid snow
#

should've developed the whole contest around docker containers

real sierra
#

there is a small concurrency change I haven't pushed yet for the C API because it didn't affect the outcome for me but it could be helpful

rigid snow
midnight sigil
#

glueless "I can't replicate this bug on my end, I'll mark this as Unresolved/Need More Information."

real sierra
stray dragon
#

windowsphobic

#

smh

real sierra
#

correct

#

work is ongoing to figure out why the API gets sad on windows

midnight sigil
lime galleon
real sierra
#

@fast pagoda you're up neuroDinkDonk

midnight sigil
#

macos should work, it's POSIX

#

my bro Windows think it should be self-dependent

#

fuck POSIX

#

who tf cares universal ABIs

rigid timber
#

there are no universal ABIs

glass flower
#

Think i saw this yesterday.... idk what it means. with clang -v

#

Think why does it say thread model: posix

midnight sigil
#

it means it's using POSIX as the threading implementation for the clang compiler

fast pagoda
#

@real sierra mfw i can't tell what is hatemail and what is normal messages directed to you

glass flower
#

and be possible to be used in windows

midnight sigil
#

the compiler is independent with your program

glass flower
midnight sigil
glad path
midnight sigil
nocturne olive
#

It appears that Shiro has awakened

fair horizon
#

For the chess stuff is there any limit on how long it takes to compute a move?

obsidian mantle
#

is it fixed yet? PauseSama im finally free

fast pagoda
#

@midnight sigil @rigid snow @glass flower It's been brought to my attention that there may be some issues with the API on your various machines and that there are some concerns regarding the process surrounding the API's development.

@real sierra has kindly directed me to handle any and all adverse messages regarding this issue and I would like to provide the following clarification that may help, it comes directly from on high:

midnight sigil
lime galleon
glad path
#

nothing is wrong with macos even for gaming

#

just get fusion or somethin g

#

or whisky

#

unfortunately crossplay is expensive

rigid snow
lime galleon
#

I just love unix

midnight sigil
glad path
rigid timber
#

can we fire this PM and get a new one

glad path
fast pagoda
worldly acorn
glad path
# worldly acorn W pfp

wait is it just me or is it the turret from portal but chopped up into an octopus looking thing

worldly acorn
#

Walle

rigid timber
#

no

worldly acorn
#

The steering wheel

glad path
#

what is it ._.

glad path
#

OH

#

wait its that one thingy from walle

rigid timber
#

it's AUTO from WALL-E

worldly acorn
#

Looks just like it

glad path
#

(i somehow have never watched walle ๐Ÿ˜ญ)

rigid timber
worldly acorn
#

Their name IS auto, complete forgot about that

fast pagoda
#

wall-e is incredible

worldly acorn
#

Ong

fast pagoda
#

one of my favourite movies

worldly acorn
#

Watched it on repeat as a kid, same with cars

fast pagoda
#

same

glad path
#

i watched cars but dont remember a lot of it

worldly acorn
#

Life is a highway

glad path
#

i also like
dont remember moana nearly at all