#programming

1 messages · Page 225 of 1

real sierra
sage crag
#

shimimimi

clear sedge
#

shimi shimi ya shimi ya shimi yah

obsidian mantle
sage crag
tender river
olive sable
obsidian mantle
#

Where do they get probabilities from neuroDerp

sage crag
#

look into RANS and TANS for different ways of getting the probabilities

obsidian mantle
#

Wait how could Microsoft patent something that already exists neurOMEGALUL

#

rANS

#

Or is that forum I stumbled on lying

sage crag
#

its expired though

#

you can use it dont worry

clear sedge
#

just don't look up patents

#

they can't hurt you if you don't know they exist

tender river
clear sedge
#

unless it's nintendo
then they can and will use military forces against you

jagged turtle
maiden geyser
real sierra
#

bathroom

#

lock door

#

this is why you book seats ahead of time SMH

faint sandal
#

no bathroom visit allowed during turbulence

midnight sigil
rigid snow
#

recently

sage crag
rigid snow
real sierra
clear sedge
#

now i love linux
but i love doggos more

#

i'm sitting at #2

faint sandal
#

they're hungry

#

they're wolves

clear sedge
#

they're just big doggos

#

they can just eat the linux guy and i can wait until they finish first

#

then i can sit with them

#

problem solved

opaque sigil
real sierra
#

question

opaque sigil
#

Answer

real sierra
#
//! For Windows(MSVC) compatibility
#if defined(_MSC_VER)
    #define DLLEXPORT __declspec(dllexport)
#else
    #define DLLEXPORT
#endif
#

this is in chessapi.h for MSVC compatibility

opaque sigil
#

Yes that's what you want

real sierra
#

there's an issue to add this to bitboard.h, do i have to worry about it already being defined

#

e.g.

#ifndef DLLEXPORT
    //! For Windows(MSVC) compatibility
  #if defined(_MSC_VER)
      #define DLLEXPORT __declspec(dllexport)
  #else
      #define DLLEXPORT
  #endif
#endif
opaque sigil
#

Uhhhh

nocturne olive
#

So what happened, was the Chess API exploded?

real sierra
#

didnt have time to make changes yesterday

#

im taking a look at open PRs and issues today first

sage crag
real sierra
#

OK i'll change chessapi.h to use this as well

#

oh also

#

i guess bitboard.h should have

#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
real sierra
#

also adding #pragma once to it, shouldnt be needed but good practice

#

that should be all the easy compat changes for the header files

midnight sigil
#

ligma

clear sedge
#

#pragma once is non-standard actually

real sierra
#

already in use in chessapi.h with no issue Nerdge

opaque sigil
#

it's supported by all compilers that matter

real sierra
#

wontfix

nocturne olive
#

It's interesting how batch size effects training speed
Up to a point higher batch size will be at least the same speed, but eventually it starts to slow down, but also not linearly
Quite interesting

clear sedge
#

not using header guards SMH

#

disappointed

tender river
#

shiro how are you a java dev evilSMH

#

you are given a more verbose option and you just ignore it

olive sable
rigid timber
real sierra
rigid timber
#

long names are still one token nERMd

real sierra
#

well yeah, i still have that part of my java skills

#

have you seen my macro names

rigid timber
#

no

real sierra
#
#define best_score_eq_best_score_gt_score_best_score_or_score_sc best_score = best_score_gt_score best_score : score;
clear sedge
#

oh god

rigid timber
sage crag
rigid timber
#

that's a Java dev alright

olive sable
#

drawing tablets work on linux right?

real sierra
#

i like it because my code looks the same after i add the macro

sage crag
rigid timber
#

that would be your average C dev

real sierra
#

true

sage crag
#

x86 instruction MyHonestReaction

real sierra
#
#define cbclose_return_rv_sc_cbclose_void } return_rv_sc } void
rough bloom
clear sedge
real sierra
#

cat stepped on your keyboard

rigid timber
#

or it's a widely used C stdlib function for string manipulation

opaque sigil
#

There's probably an instruction with that name

clear sedge
real sierra
#

@shadow sinew apologies for the ping, i wanted to see if you would be free to get the PR resolved before a planned breaking api change? sorry for all the running in circles, that's on me

tender river
#

neuroNope python has pretty average names

#

other than all the dunders

clear sedge
#

for some reason they love shortening variable names to hell and back

#

literal opposite of java devs

tender river
#

variable names are fine to shorten tho

#

they're local

#

just name them whatever you want

opaque sigil
#

Half the "python devs" are just mathematicians enub

real sierra
#

im a mathematician and i like C and Java

#

python is ok tho

rigid timber
nocturne olive
clear sedge
#

if you're using non-self-documenting identifiers, you're either a psychopath or a code golfer Stare_Lizord

nocturne olive
rigid timber
#

autocomplete nub

real sierra
tender river
#

neuroNope np. faster than num<tab>.

rigid timber
#

shruge

obsidian mantle
#

Sometimes i make a 5 word sentence variable and i feel like its too long. Sometimes i leave it unchanged

nocturne olive
#

I like long variable names usually

rigid timber
#

by what, a couple hundred milliseconds maybe, not like typing speed usually limits the speed at which you can code anyway

tender river
#

also identifiers are selfdocumenting by their assignment enub

clear sedge
obsidian mantle
#

Is there a limit to variable name length

nocturne olive
#

I think my Chess bot has a major lack of long and dumb variable names

opaque sigil
#

There's always a limit

rigid timber
tender river
#

i'm against wildcard imports

#

i'm not against arbitrary renames

olive sable
#

the drawing tablet has mouse acceleration AquaCry

rigid timber
#

what

tender river
#

as long as you can check what some name means, it doesnt matter if its short or long as long as its vaguely relevant

tender river
#

you can turn it off

#

somehow

olive sable
#

if i move faster it goes further

nocturne olive
tender river
tender river
nocturne olive
#

Silly

clear sedge
rigid timber
olive sable
#

it seems to only do that for toush inputs

#

the pen is pretty acurate to the width of my monitors

tender river
real sierra
#

ok

#

time to fix my chess bot

#

tokens can come later

olive sable
clear sedge
#

i have a golfed beers on the wall in js somewhere in my dms

#

let me find it Clueless

olive sable
#

oh it has bluetooth apparently

#

ill probably never use that

clear sedge
#
$=console.log,i=99,k=1,a=_=>`${i||"nN"[k^=1]+"o more"} bottle${i-1?"s":""} of beer`,c=" on the wall",d=".",e=", ",f="\n";for(;i;)$(a()+c+e+a()+d+f+"Take one down and pass it around"+e+a(--i)+c+d+f);$(a()+c+e+a()+d+f+"Go to the store and buy some more"+e+a(i=99)+c+d)```
look at this beauty from the year of our lord 2023
rigid timber
#

hell yeah

tender river
nocturne olive
midnight sigil
tender river
rigid timber
tender river
#

keeping them short makes your code concise

#

when you dont see the code, thats when you gotta have descriptive names

#

interface boundaries

#

and the more generic your code, the less descriptive names you even can give to variables

#

what are you gonna name it, "argument1"? yeah just name it "x"

real sierra
#

i single-handedly carrying 50% of for loops GIGACHAD

tender river
nocturne olive
#

Meanwhile my Chess bot has 0 actual for loops

#

forEach function more efficient

midnight sigil
tender river
nocturne olive
#

And then there's fun countOwnPieces(board: Board) = PieceType.entries.sumOf { ChessApi.getBitboard(board, color, it).value.countOneBits() }

midnight sigil
clear sedge
#

you're kind of strawmanning, i never said always use long names
my argument is usually it's best to use descriptive names, x, y, z may very well be descriptive for something like a vector

real sierra
#

descriptive =/= long mhm

tender river
#

evilShrug i do v' = push element v not vWithElement = push element v

real sierra
#

sometimes i use idx where i might be unclear w.r.t. other variables in use

tender river
#

i use idx outside of the context of loops

nocturne olive
clear sedge
#

call me a psycho, but i use index PepeCoffee

tender river
#

v prime NeuroBounce

#

same goes for intermediate variables in data processing, i'd rather give them no names at all and use point free style but sometimes i have to give them names in which case i'll just do x or y

nocturne olive
tender river
clear sedge
nocturne olive
#

Already got fun countOwnPieces(board: Board) = PieceType.entries.sumOf { ChessApi.getBitboard(board, color, it).value.countOneBits() }

clear sedge
#

o

#

yes yes

#

my mistake

nocturne olive
#

Kotlin STD peak

tender river
#

(most not all)

clear sedge
#

if you can reasonably say that you can infer what a variable name means, that is descriptive enough

tender river
#

i cant infer what x means from x alone

clear sedge
#

the context surrounding it is also important

tender river
#

but i can look 4 tokens to the left and see what it means

#

evilNodders thats my point

#

no need for long names when the assignment is right there

#

so you can literally just see what it is

clear sedge
#

then it's descriptive enough

#

i'm arguing for descriptive

#

not for long

tender river
#

x not descriptive

clear sedge
#

it's descriptive given the context

#

it's literally f(x) = ...

nocturne olive
#

Meanwhile I must do var scoreCpy = score because score is not mutable

#

And later legalMoves[move] = scoreCpy

clear sedge
tender river
#

oh i remembered go neurOMEGALUL

real sierra
#

SCHIZO HOW DOES ANY OF THIS WORK ANYMORE

nocturne olive
real sierra
#

MY TREE IS A CIRCLE

rigid timber
#

pretty sure trees are supposed to be planted in dirt, not be a circle...

real sierra
#

this is

#

so confusing

tender river
clear sedge
#

how is your tree a circle

#

what did you do

nocturne olive
tender river
#

shiro circular trees are the best NeuroBounce

#

if you wanted non-circular trees you could just rust

#

boring

clear sedge
#

rust (derogatory)

rigid timber
#

rust (oxide)

real sierra
#

ok ok so

clear sedge
#

my professional opinion? rust is fun but c is funner for me

tender river
#

rust (plant disease)

real sierra
#

consider the following game state tree, where you can make a move (indicated by letter) and the state is represented by the unordered set of moves preceeding it

rigid timber
real sierra
#

the problem with this tree is that the state AB occurs twice, but we regard them as separate entities

#

this means the work we did analyzing the first occurrence is repeated

#

which is not ideal

clear sedge
real sierra
#

to resolve this, we might consider merging the states:

#

but then a new problem arises, which is that this is no longer a tree, it is a graph

#

nodes no longer have a concept of "parent", as they can have multiple parents

tender river
#

circles in circles i go around

clear sedge
#

i'm still waiting for the now-diamond with two wings to turn into a circle

tender river
#

looking for something that cant be found

olive sable
#

the problem then becomes you have to start working with indices if you weant to reuse stuff

real sierra
#

this causes a number of problems, such as with backpropogation; if we were to naively propogate results up to each parent node from AB, they would be double-counted at the root

#

so now i have to rewrite my backpropogation functions to keep a list of visited nodes

rigid timber
real sierra
#

so i have an O(n^2) backpropogation now

tender river
warped frost
#

I accidentally unmuted this server

#

Lemme just

real sierra
tender river
#

because two boards with the same position that come after one another are NOT equivalent

clear sedge
tender river
#

they are different

clear sedge
warped frost
#

Bye chat

tender river
#

because the later the position the closer you are to draw

clear sedge
#

bye vixen

real sierra
olive sable
#

My deskspace has become too small neuro7

real sierra
#

depth should be an easy thing to integrate to the hash

real sierra
#

or halfmove counter, for your particular example

olive sable
#

that is medium yes

#

supposedly

olive sable
#

dont those cost a lot?

real sierra
#

i mean actually

#

is it bad to double count a node

olive sable
#

especialy for triple

real sierra
#

maybe thats not even an issue

#

if the node occurs twice and is a bad result, it should be counted doubly bad, once for each branch in which it occurs

trim valve
#

it depends

#

nice ones are expensive

#

but also you wouldn't need a triple one, just get multiple arms glueless

olive sable
#

ah

#

lets see

real sierra
#

question

#

on a one-to-one basis, is realloc or malloc more expensive

#

i have a case where i can either dynamically expand an array or add items to a linked list

clear sedge
#

the only way to tell is to bench it AFoxy_Nodders

real sierra
#

too much work Om gonna find someone on stackoverflow who did it already

rigid timber
#

pretty sure it also depends on the code around it so their result may not be exactly relevant to you

real sierra
#

On a modern OS the realloc will win by a huge margin because it can remap a buffer to a new address

olive sable
#

monitor arms are made to go against gravity so i cant mount one upside down right?

real sierra
#

different use case but relevant principle

opaque sigil
#

i mean, malloc can reuse buffers too

clear sedge
#

one for free, one for malloc

real sierra
#

ultimately i wish i just didnt have to do this

clear sedge
opaque sigil
#

who says free is a syscall

real sierra
#

but i really dont have an upper bound on transposition table parent count

clear sedge
#

free isn't a syscall??

opaque sigil
#

it depends enub

sage crag
#

free is a syscall

tender river
#

munmap is

sage crag
#

but libc free doesnt necessarily free

tender river
opaque sigil
#

libc malloc/free do a fuckton of micro-managment of memory to avoid calling to the os at all costs

sage crag
tender river
#

syscall overhead is pretty big and can only allocate in pages

opaque sigil
real sierra
clear sedge
real sierra
#

reminds me of some object pooling code i wrote once

sage crag
#

on a pure stdout throughput test fprintf (which locks, writes to, and unlocks a buffer) hugely outperforms the write syscall, which doesnt even do locking

tender river
sage crag
#

like, if write reaches 20 MiB/s, fprintf reaches 1GiB/s

tender geode
real sierra
clear sedge
sage crag
#

even more if you swap fprintf for fprintf_unlocked

sage crag
clear sedge
opaque sigil
#

so does '\n' for stdout enub

tender river
# clear sedge doesn't `std::endl` force a flush?

i have this in my cp template

#ifdef LOCAL
  #include "lib/local.hpp"
#else
  #define VDBG(...)
  #define DBG(...)
  #define endl '\n' // remove this line for interactive tasks
  #undef assert
  #define assert(expr) (expr) || (__builtin_unreachable(), 0)
#endif
tender river
sage crag
clear sedge
real sierra
#

thats a fun thing i discovered while making the C API

clear sedge
#

'\n' wouldn't necessarily flush, no?

tender river
real sierra
#

in C, printf containing a '\n' usually flushes

#

but not always

opaque sigil
#

am i misremembering something

#

maybe i am

real sierra
#

cute chess happens to be one of those "not always" cases

#

which is why the api has calls to flush after every important printf

opaque sigil
#

io is annoying

tender river
#

and the classic ios_base::sync_with_stdio(!1); cin.tie(0); cout.tie(0);

sage crag
#

phrr

real sierra
#

enub 📣 phrrr

obsidian mantle
#

soo rn i cant use bitboard.h

#

in cpp

real sierra
tender river
#

extern c

real sierra
#

how come

obsidian mantle
#

or can i

real sierra
#

i pushed a change today

opaque sigil
#

it worked fine for me Awkward

real sierra
#

did that break or fix your issue

obsidian mantle
#

oh i didnt update

#

what issue

real sierra
#

the one you just described

obsidian mantle
#

no i never touched bitboard yet just wondering

real sierra
#

there's a now chessapi.h and a new bitboard.h

#

the latter should support C++ and MSVC DLLEXPORT now

rigid timber
#

yay

clear sedge
#

i like how steam just shows me a big blue delete icon next to proton experimental

opaque sigil
#

ah i remember now, stdout is only line-buffered when it's a tty

#

you should try playing the new proton experimental

clear sedge
#

i physically can't it just has the delete icon

tender river
#

i only use lts protons sorry

nocturne olive
opaque sigil
sage crag
#

Java is the most used language but C is the language java is written in

#

c

clear sedge
#

is java the most used?

sage crag
#

that arent great

clear sedge
#

first i've heard of it

sage crag
opaque sigil
#

sth sth 3 billion devices YES

tender river
#

so maybe colonthree

clear sedge
#

that's exciting and terrifying

tender river
#

the vm approach worked really well for them enub

#

and nobody really made a vm standard that could compete

#

wasm is kind of getting there?

real sierra
#

hblang will overtake jvm

tender river
#

hblang not vm

#

hbvm vm

clear sedge
#

hbvm

real sierra
#

semantics SMH

clear sedge
tender river
#

shiro i'm gonna right bitshift you

clear sedge
#

is that not against the server rules??

real sierra
#

Susge barrel shift..?

clear sedge
#

DO A BARREL ROLL

tender river
real sierra
#

shro

clear sedge
#

shi

#

means rain in my native language

real sierra
clear sedge
#

you must be my long lost twin

fierce ether
real sierra
#

i actually dont know if id rather do a linked list or realloc for this array

clear sedge
#

isn't openjdk's javac made in c?

sage crag
real sierra
#

linked list has token overhead of the recursive call

sage crag
#

self hosted compilers are secondary implementations

real sierra
#

realloc has token overhead of reassigning the realloc'd buffer

fierce ether
clear sedge
#

the standard library uses jni

sage crag
tender river
#

as soon as self hosted compilers reach a fixpoint

#

a better argument would be llvm

#

but doesnt apply to java

real sierra
clear sedge
#

it's the year of the graalvm everyone!!!

real sierra
#

i feel like that's every compiled language developer's dream

fierce ether
sage crag
tender river
clear sedge
sage crag
tender river
#

langdevs optimizing for langdev neuromegadance

sage crag
#

"useful" <=> "popular" neuroExplode

olive sable
#

surely ReallyInnocent

tender river
obsidian mantle
#

why are you guys yapping and not mastering your bots NeuroHuh

real sierra
#

BASED holy

real sierra
#

im working on my bot rn

#

i gotta catch up

#

my tokens perish

tender river
#

im pickling neuroSMH bot can wait

real sierra
#

have you even started your bot

#

i thought you were the one saying a month might not be enough time

obsidian mantle
#

i have a question
what do i do if my bot beats random bot every time?
give it to stockfish to analyze moves?

tender river
#

ye because no time i have picklesto pickle evilSMH

obsidian mantle
#

(its not beating yet but all i need is checkmate mechanism)

real sierra
tender river
obsidian mantle
#

i was wondering if we could exchange our bots for testing NeuroClueless

#

is it allowed

real sierra
#

you can play games against it yourself, but get all of your moves from lichess or something

real sierra
#

i dont trust people here not to reverse engineer my code for fun

nocturne olive
real sierra
#

i also dont think anyone wants to run a random binary i upload

#

and im not sharing the source code

nocturne olive
#

There's actually a ton of overhead from just priting errors so I have to remove that

fierce ether
#

the rewrite has brought me down to 756 tokens

real sierra
#

when I wanted to test my bot I just recruited random people from genchat to fight it

fierce ether
#

but the bot is stupid

real sierra
lilac lantern
#

Hey superbox, funny question when you have a few minutes, is your neuros.click ftp server up

nocturne olive
nocturne olive
trim valve
lilac lantern
#

Hopefully wasn't me

real sierra
trim valve
#

but unfortunately people who don't write in rust, c or c++ exist and need bespoke ways to run

rigid snow
trim valve
#

so I have the mildly cursed idea to basically make a "proxy" mode

nocturne olive
trim valve
#

which would also absolve me of running anything

real sierra
tender river
#

sorry i meant ghc

real sierra
#

yeah im planning to deprecate threads.h

tender river
real sierra
#

we're just gonna go back to pthread.h and windows.h

nocturne olive
real sierra
trim valve
real sierra
#

in theory you just let people connect and print moves to you

trim valve
#

ye

nocturne olive
real sierra
#

over a network connection of some kind

rigid snow
#

telnet

real sierra
#

idk how the end user gets the match results tho

trim valve
real sierra
#

the bot will consume all stdin so

#

i guess you just mybot | tee | telnet ... ?

trim valve
#

i was probably gonna write a little wrapper program regardless

#

because I think it'd be useful if every bot wasn't just "My Bot"

rigid snow
real sierra
#

you can actually configure the fields sent in the uci handshake

#

i figured ppl didnt wanna waste tokens on it

tender river
real sierra
#

so i just did it this way

trim valve
#

i can't edit chessapi.c really

real sierra
#

they can change this on their own

rigid snow
real sierra
#

this name will be sent over UCI to the gui host

#

so you would get a bot name

trim valve
#

actually random question but would it make sense to throw an ifndef before those so people can pass -D to gcc

tender river
opaque sigil
#

it works with gcc and clang

#

this is just msvc being msvc

trim valve
#

not entirely sure if -D is the right thing but glueless

nocturne olive
tender river
trim valve
#

ideally it'd be runtime

#

actually potentially have chessapi.c read a config file from the cwd or something idk

real sierra
#

and also not really that important

trim valve
#

yeah

real sierra
#

-D is probably plenty

opaque sigil
tender river
#

please do ReallyInnocent

opaque sigil
#

does anyone even rely on it working in a c++ context

rigid snow
#

uhh node bindings

#

that's about it

rigid timber
rigid snow
#

i can just not do that i guess

opaque sigil
#

talking about node-gyp? or whatever it was called

rigid snow
#

yeah

olive sable
#

well idk if ill even participate cuz i have a lot of work now

#

but ill try

tender river
real sierra
olive sable
#

i bought the 3 monitor arms btw, shoudl arrive tomorrow. while i was at it i bought a larger mousepad

real sierra
#

ill just recompile libchess for each submission

rigid timber
#

fair

real sierra
#

but locally, just rebuild it if you wanna rename your bot (or yourself?)

opaque sigil
rigid timber
#

if you wanna put in the work kek

tender river
#

use env vars

real sierra
#

better option

#

recompile for each bot

#

minimal effort zero cost

rigid snow
#

shiro compute millionaire

tender river
#

evilNodders shiro slave labor

#

zero cost

real sierra
#

libchess takes like 0.1 seconds to compile

#

we're gonna have what, 50 bot submissions? max?

#

5 seconds compile time OK

rigid timber
#

Shiro slave labor... hey Shiro calculate all moves for my bot kthx

real sierra
#

i have to hand check each source file anyway, i promise making libchess will not be the bottleneck

olive sable
real sierra
#

i am horrendously bad at chess

opaque sigil
#

should be good then OK

rigid timber
tender river
real sierra
real sierra
#

wdym Bruhgi

tender river
trim valve
#

I'm still mildly trying to figure out how I'd pass those vars to my rust bindings

real sierra
#

SMH bindings devs making life harder for people

#

well if ur bindings dont run on my machine thats on u LOL

olive sable
tender river
#

they do but they use their own libchess ReallyInnocent

real sierra
#

uuh their own libchess?

tender river
#

(simply because i dont wanna make users set LD_LIBRARY_PATH so i link statically)

real sierra
rigid timber
trim valve
#

(I also link statically)

real sierra
#

everyone compiles it statically BRUHDANCEBUTFAST

nocturne olive
#

So somehow recursion = 2 works but recursion = 3 breaks in CuteChess

real sierra
#

thats wild

#

ok i guess it has to be an env variable then

real sierra
#

SMH bindings devs not following the spec and requiring the spec to change instead of adjusting the bindings

#

SMH bad practice

rigid timber
#

then again at least for Rust it should be possible to make it a compile-time const somewhere in a config so it doesn't take tokens...

tender river
nocturne olive
real sierra
#

env variable will work

nocturne olive
real sierra
#

i just have to figure out how to get env variables in c

opaque sigil
#

getenv

#

crazy name i know

rigid timber
#

it doesn't have an insanely short name?

#

I'd expect gete or ge

tender river
#

i wouldnt

rigid timber
#

but 3 character savings

obsidian mantle
#

wait aa second

#

what happens when i get color from empty square

#

do i get white

rigid snow
#

computer explode

tender river
#

cmake is celebrated as an improvement

opaque sigil
tender river
#

just how bad is gyp

rigid snow
#

ikr neurOMEGALUL

rigid timber
rigid snow
obsidian mantle
#

now i see what was my problem

opaque sigil
#

didn't shiro say c++ stuff would be compiled with c++23

rigid snow
#

msvc flag 20 is latest msvc supports

tender river
#

c++ is not specified

rigid snow
#

and yes

tender river
rigid timber
nocturne olive
#

Howwwwww?????
This thing thought promoting to a knight and causing a draw by insufficient mating material was a good idea
And this is supposed to be the bot with recursion
It's literally dumber than the bot with no recursion
Either the bug with get piece also corrupts board states or my multipliers and score numbers completely suck

#

By the way what happens if a move is made on a board object that is already in draw in memory?

real sierra
#

make_move does not check legality

#

the move will be performed

rigid timber
#

everyone gets moves from chess_get_legal_moves tho nub

nocturne olive
#

Then that can't be the bug either

real sierra
nocturne olive
#

Yeah except when there's that one broken castling move

real sierra
#

i thought there was an issue open for the castling stuff but it vanished

nocturne olive
#

But that probably has nothing to do with the weird bug with getting pieces that's causing me annoyances

#

Maybe I should do recursive move evaluation after all the non-recursive evaluation so it doesn't end up flipping the score negative

rigid timber
#

thanks Copilot, very cool neurowheeze

trim valve
opaque sigil
#

so who's writing the chess engine for the tournament enub

rigid snow
#

stockfish contributors

trim valve
#

incredible google pull

opaque sigil
trim valve
#

now I can truly realize my llm chess bot

final tinsel
fierce ether
#

ok i finally got the api to work omg

#

119 tokens is next gen

rigid snow
tender river
#

tokens neuroPeek

real sierra
#

im just gonna use cute chess

#

compile all bots

tender river
real sierra
#

add to 500 line cutechesscli command

#

tournament

#

start

#

dont use pc for a week

obsidian mantle
#

i get crazy numbers with this, something isnt right

#

so i get bitboard which is super big number for example 2,305,843,009,213,693,952
and it doesnt look like / or % by 8 is going to give something alright

#

i need to divide by 0b100000000

rigid timber
#

what are you trying to do exactly?

obsidian mantle
#

or am i wrong

#

i want to get coordinates of a piece to get distance

real sierra
#

you need chess_get_index_from_bitboard on that

final tinsel
#

git fetch origin
git checkout 7-create-the-lrzip-compression-benchmark-program

obsidian mantle
#

oh right

real sierra
#

that will give you a number 0..63

final tinsel
#

ope

#

wrong tab

obsidian mantle
#

neuroCry im so bad

real sierra
rigid timber
obsidian mantle
rigid timber
#

no

obsidian mantle
#

why

trim valve
#

maybe

#

it sounds like a very cursed version of bitshifting right

obsidian mantle
#

a2 is exactly this 0b100000000

final tinsel
# rigid timber `fatal: not a git repository (or any of the parent directories): .git`
From github.com:[FILTERED]
 * [new branch]      7-create-the-lrzip-compression-benchmark-program -> origin/7-create-the-lrzip-compression-benchmark-program
branch '7-create-the-lrzip-compression-benchmark-program' set up to track 'origin/7-create-the-lrzip-compression-benchmark-program'.
Switched to a new branch '7-create-the-lrzip-compression-benchmark-program'

worked for me neuroWicked

obsidian mantle
#

might save tokens

rigid timber
obsidian mantle
#

i am not trying to shrink tokens yet, will do everything as explicit as i want
then when im done i will do the shrinking

obsidian mantle
#

a is 1
b is 2
c is 4 and so on

#

i need to get log2?

obsidian mantle
#

then log2

#

by mod i mean % is it called "mod" in your language?

tender river
obsidian mantle
#

oh

tender river
#

or in maths rather

obsidian mantle
#

Pepega esl

tender river
#

(full name is modulo but its shortened to mod in maths and programming)

final tinsel
tender river
#

modulus is what you divide by

#

modulo is the operation

final tinsel
tender river
#

a modulo b, not a modulus b

fierce ether
#

ok bots done

#

944 tokens

#

its a little stupid but it wins vs itself in 29 moves

tender river
#

neuroNOTED it loses to itself in 29 moves

final tinsel
#

play it vs stockfish

fierce ether
#

lmao

final tinsel
#

also evilWAJAJA minor spelling error

fierce ether
final tinsel
#

that sentence stunlocks my brain every time i read it i keep forgetting what im doing and needing to reread what i just did

trim valve
#

clearly it will never be agi

fierce ether
#

lose in 13 moves

#

lol

trim valve
#

on one hand, would be cool

#

on the other, I have a cover letter to write

nocturne olive
#

This bot seems like a dead end
I may just have to go and figure out how real Chess bots are done and start from scratch

trim valve
nocturne olive
#

As soon as recursion was added it broke

#

And became stupid

obsidian mantle
#

NeuroPoggers no way

#

10 mates in a row

#

how do i run 1000 games nuero

#

i want statistics

nocturne olive
#

Tournament

trim valve
#

there's a setting for concurrent games in tournaments too

#

(do not set it larger than floor(threads / 2) otherwise cute chess segfaults neuroPogHD)

real sierra
#

makes sense Om

final tinsel
real sierra
#

i dont know if i'll do concurrent games for the final tournament or not

#

i dont want one bot thinking really hard to potentially impact the others

#

it shouldnt but

#

you never know

trim valve
#

neuroPogHD I can throw so many slow simd instructions at shiro's cpu that it downclocks and slows down my opponent

real sierra
#

SIMD explosion gambit

#

BigBrain

trim valve
#

sadly you have no avx512 so its not incredibly easy to do

trim valve
#

(I say this having experienced ffmpeg downclock me to 4.2GHz at full tilt)

nocturne olive
nocturne olive
trim valve
#

does your cpu have avx512

obsidian mantle
#

my tournament freezes
i think my bot disconnects after several games

trim valve
#

because that is a different beast entirely

fierce ether
#

i would show yall the image but my king just decided to roam around lmao

nocturne olive
trim valve
#

idk how but I was drawing 190W for my cpu

#

which uh

opaque sigil
#

avx512 go brrrrr

obsidian mantle
#

what can possibly cause my bot to freeze in tournament?

trim valve
#

bot crashing

obsidian mantle
#

how do i force a crash to check if cutechess detects a crash

trim valve
#

there's a setting like "recover crashed engines" that forefits if a crash happens

obsidian mantle
#

because rn it doesnt look like crash it just doesnt make a move (and not processing it)

#

OOOOH

#

i think i know why

trim valve
#

oh yeah that was an issue at some point

#

just replace it with for (;;) {

opaque sigil
#

wasting a token evilSMH

obsidian mantle
#

FUCK now random bot does the same neurOMEGALUL

#

because i built it from example bot

obsidian mantle
#

i think true is 1 token and ;; is 2?

#

oh someone mentioned it didnt see

trim valve
#

shruh

#

surely goto is less tokens

#

ok time to write a chess server and instantly implode

real sierra
#

bred trying to crowdsource move data Susge

trim valve
#

do I look like I have the storage requirements for that

#

actually I wonder how bad that would be

#

probably not very

real sierra
#

you could probably do a usefulness heuristic and only store a move if its hash has occurred more than a certain number of times

obsidian mantle
trim valve
#

shrug

real sierra
#

that lets you trim storing lots of data for rare positions

trim valve
#

I get 40 gigs of storage to play with (realistically less because of the os but shh)

#

surely

real sierra
trim valve
#

I will be fine

real sierra
trim valve
#

shrio about to submit a bot that plays random moves on alt accounts to bloat my numbers

real sierra
#

me submitting two random bots to play 1 million games against each other on bred's server

#

CAUGHT wtf

trim valve
#

smh shiro

stark needle
#

i minimized my nn down to 88 NN parameters shiro i cant with these optimizations😭

#

fp4

trim valve
#

at least I don't have to run the bots myself glueless

real sierra
#

POGGIES you're taking part in the contest?

stark needle
#

i am taking part in the contest

opaque sigil
olive sable
#

hi shadow

amber fractal
trim valve
#

oh wait huh

obsidian mantle
trim valve
#

they made the intel servers the same price and specs as the arm servers at hetzner

#

neat

#

smh why are the amd ones more expensive, I can't project my brand loyalty into vps purchasing

stark needle
#

my nn will be the most overtrained net in existence

#

trained on 100M games but only 88 nn params

#

😭

trim valve
#

neuroPogHD overtraining isn't real, its called being goated

tender river
#

NeuroPogHD more training means better network

trim valve
#

god I really should buy a new domain soon

tender river
#

are you gonna just stop training midway neuroSMH quitter mindset

amber fractal
#

I'm still not sure if I could pull off a submission but I can try to.

real sierra
#

training

stark needle
#

gemini is so carrying with the nn minification

#

i'm still trying to get it to compile

tender river
tender river
#

i have no idea how one would train such a network but i trust shadow to pull it off more than other participants

olive sable
#

true

rigid snow
#

you train it like any other network ReallyInnocent

tender river
#

gradient descent with 1.5 bits per weight neuro5head

rigid snow
#

or alternatively you train it on sane precision and quantize later

olive sable
#

Minamhm idk what that means

amber fractal
#

I think you have to do both because you'd lose too much data to quantizing

#

Your already starting very small

olive sable
#

wont it have to run on cpu btw?

rigid snow
#

network so small it cancels out

#

also simd

amber fractal
real sierra
#

im gonna lose my mind

stark needle
#

the NN in question

real sierra
#

my duplex neighbours have synchronized their smoking schedule with when i open my window apparently

olive sable
real sierra
#

i should just start dropping bricks out my window

rigid snow
#

the three possible weights

rigid snow
stark needle
sage crag
olive sable
#

my numlock isn't tho

trim valve
olive sable
#

i couldnt be bothered to install and configure that numlock exstension

#

ill just suffer

real sierra
amber fractal
#

Shattered brick neuroBwaa

tender river
olive sable
real sierra
#

i was feeling kinda sick so i took some nyquil

#

now im NeuroSleep

#

holy

#

how do i code like this

#

feels like 5am

trim valve
#

caffine

amber fractal
nocturne olive
#

Some people are doing NNs now?

cosmic sphinx
#

caffeine after a sedative?

neuro7

real sierra
#

many people doing NNs

nocturne olive
#

And meanwhile my bot is completely useless when it has recursion
I may have to start from scratch and look up actual techniques used in actual Chess engines

cosmic sphinx
faint sandal
#

one was enough

real sierra
#

honestly maybe i need to do a rewrite too

#

bot starting to feel stapled together

#

not enough foresight

nocturne olive
sage crag
real sierra
#

i have a pretty good idea of what i need to do mhm

stark needle
#

this challenge makes me want to start eating bricks

nocturne olive
sage crag
#

where is your programmer font

frank jacinth
#

hai

nocturne olive
#

Funny number go

rigid snow
#

i see a#5

frank jacinth
#

i saw rook a2

#

i just didnt like it

rigid snow
#

yeah a2 is too low

#

i don't like it either

sage crag
frank jacinth
#

bro its yung elo wtf 😭

opaque sigil
nocturne olive
rigid snow
#

i know we talked about a#5 a lot

nocturne olive
#

Well there's a lot more of it now

rigid snow
nocturne olive
#

One of the datasets was copied and pitched up an octave

#

In the RVC inference stage so no quality loss from pitching up

rigid snow
#

mhm

nocturne olive
#

There's now apparently 4 examples all the way at G6

#

Though those are likely garbage noise

obsidian mantle
#

its time to update api, i finally need the bitboard.h

nocturne olive
#

That's crazy

nocturne olive
#

HUHHHH??
This model literally was just spawned into the world and it already has insanely low loss

fierce ether
#
2. e4 3.0s Qa5+ 
3. c3 7.0s b5 
4. Bd2 11s Qa4 
5. b3 29s Qa5 
6. c4 3.7s b4 
7. d5 1.7s c5 
8. Nf3 4.9s h5 
9. Bd3 24s h4 
10. h3 8.5s Rh5 
11. O-O 5.1s e5 
12. g4 9.9s hxg3 0.59s 
13. Kg2 18s gxf2 
14. Ng5 42s Rh4 
15. Rxf2 14s f6 0.56s 
16. Nf3 10.0s Rh5 0.52s 
17. h4 6.5s g5 
18. hxg5 12s d6 
19. gxf6 14s Bh3+ 
20. Kg1 10s Bg4 
21. Nh2 75s Bxd1 
22. f7+ 5.2s Kd7 
23. fxg8=Q 2.9s Be7 
24. Be2 33s Bxe2 
25. Rxe2 3.2s Kc7 
26. Na3 51s Qxa3 
27. Bc1 37s Qa5 
28. a4 7.8s Rh3 
29. Qe6 13s Rg3+ 
30. Kf1 15s Kd8 
31. Ng4 32s Rxg4 
32. Qxg4 2.9s Qa6 
33. Bg5 12s Qa5 
34. Bxe7+ 1.9s Kxe7 
35. Qe6+ 5.8s Kd8 
36. Qxd6+ 9.4s Nd7 
37. Rg2 5.1s Qb6 
38. Rg8# 10s, White mates ```
final tinsel
#

brotli sucks

#

lrzip is better

#

-# for my specific use case

#

lrzip was straight up ~17.3x faster and with a better compression ratio

amber fractal
#

Chat, I am trying to do anything but work on the NN framework. I really don't feel like trying to deal with a loss function without floats.
So much so I'm trying to see if I can implment what I need to with literally anything else.

nocturne olive
obsidian mantle
#

vscode doesnt like this

#

(gcc compiles it alright)

#

what the hell is that "travel" doing

lilac lantern
#

@nocturne olive i think your ftp server doesn't like when i try to download a lot of stuff, appears to be down again

nocturne olive
#

This must be a bug that was introduced recently, hopefully a new FileZilla server version comes soon

lilac lantern
#

dang

#

i'll cool it on trying to mirror all your stuff for now then

nocturne olive
#

Try different files, and also what client are you using?

lilac lantern
#

filezilla

nocturne olive
#

Try WinSCP

lilac lantern
#

only 1 concurrent transfer waaGONE

obsidian mantle
#

finally someone mentioned a program i know

nocturne olive
#

Maybe FileZilla server x FileZilla client is broken somehow

lilac lantern
#

2.1 TB over 500KB/s is gonna take a hot minute to finish

nocturne olive
#

What are you downloading? The entire subathon?

#

Oh no that's 1.71TB

lilac lantern
#

the whole thing, ideally

#

(i have a storage server i want to use)

nocturne olive
#

That's decent, has 6TB more storage than my system

#

Yes I have 29TB on my local machine

clear sedge
#

i have

#

this much

nocturne olive
#

SMOL

amber fractal
nocturne olive
#

Yes it is SMOL

lilac lantern
#

i also hit the jackpot because i bought a sff disk enclosure:

#

and they forgot to take out the sas SSDs

clear sedge
#

holy shit

nocturne olive
#

I don't have anything crazy like that, I need more funding to expand the NeuroSynthProject infrastructure

lilac lantern
#

Lackrack

nocturne olive
#

I only have this one machine

amber fractal
#

Counting the amount of storage I have, 2TB, 1.5, 2, 1. 0.5, 0.5. (9.5TB plus whatever I forgot existed) Man is my storage split up like crazy.

nocturne olive
#

Crazy indeed

amber fractal
#

Adding +1 for whenever I figure out the fate of this laptop's old drive

#

Unlike a lot of chatters here, I have the storage but not the amount of interface to use all of it. So most of it is cold spares

nocturne olive
#

I have some storage but I want a dedicated storage server of like 100 TB with parity

amber fractal
#

I'd be fine with a desktop rig to at least collapse what I have

nocturne olive
#

I just have a major lack of money

#

2 NeuroSynth comms from Aurum did not do much

#

Just paid for my new CPU cooler

amber fractal
#

Storage server is far off for me as I'm light on data usage

nocturne olive
#

I use so much data a storage server makes a lot of sense

amber fractal
#

I don't think there is much tech I'd put cash into next. Maybe just maybe GPU, but if I swap for a desktop VRAM will already be less of an issue.

nocturne olive
#

I personally would like more of just everything

#

Either more 3090s, or a 4090D with a 48GB mod
But it's so pricy, I would need to get a ton of NS comms and nobody wants those somehow

amber fractal
#

I feel like people mostly get the songs they want officially, so not much interest in unoffical

nocturne olive
#

How silly
NeuroSynth is really good though

#

There's orders of magnitude more songs than have been covered by Neuro and Evil

#

I'm sure there are ones people would want to see

amber fractal
#

Don't know what to say, people are just people. I'm not someone who is into marketing

cosmic sphinx
#

the joy of it comes from them singing it live on stream

cosmic sphinx
#

not just the fact of that cover being available for you to listen

nocturne olive
cosmic sphinx
#

i dont think you can run vedal's channel for him LULE

nocturne olive
#

Vedal already doesn't make the karaoke anyway

rigid snow
cosmic sphinx
#

well, he still has to use his synth model to get the voice output, but that's just part of the pipeline already

#

most of the work as usual is done by pb

amber fractal
nocturne olive
rigid snow
#

even the inference is probably done by pb it's just easier

cosmic sphinx
nocturne olive
#

No, it's 100% not

#

That's not how vocal synth works

#

That's not at all how vocal synth works

nocturne olive
cosmic sphinx
#

afaik thats how you do all the processing with any NN model if you want to wrap it in an app

nocturne olive
#

Nope

#

NeuroSynth is nothing like that either

amber fractal
#

I wait for a neurosynth orginal neuroPray