#programming

1 messages ยท Page 190 of 1

real sierra
#

trying to connect a convenient and easy-to-use interface to a UCI server is like trying to plug a puzzle piece into an outlet

#

this file is doing an incredible amount of heavy lifting

#

but it could probably be split into two parts if im being honest

real sierra
#

just discovered i havent been incrementing halfmoves

#

that explains a lot

#

makes way more sense

hollow spruce
#

Im test new this in this account soon this account will be autobot

#

Test complete again

#

Reaction โœ“

#

Add ai to this account
Embedded permission
Much more
It will do reaction only

( Now I have stop program)

real sierra
#

someone please free() me Pointless typing

olive sable
#

free(Shiro)
undefined reference to Shiro

jagged turtle
#

"tf is a shiro" - compiler

olive sable
real sierra
#

help cryign

#

how to randomly make moves in chess and not draw

olive sable
#

luck

#

its random, what did you expect?

real sierra
#

why does it work for everyone else then

#

this paper managed to get-

#

500 elo?

#

..thats it?

#

ok

#

i think the move is

#

in case of stalemate

hollow spruce
#

Yo @real sierra what about chess bot ?

real sierra
#

check who has more material left

#

and they are the winner

hollow spruce
#

Fine ,good , poor , or worst

real sierra
#

fine

#

no more bugs

#

i am now working on improving the actual bot

hollow spruce
#

Mem leaking fixed @real sierra

#

Memory leaking is fixed

real sierra
#

YES fixed!

#

no mem was leaking though, it was other problems

#

i have never had a memory leak so far

#

๐ŸŽŠ

olive sable
hollow spruce
#

Maybe I need update gpp from msys2 module

real sierra
#

Pointless counting pieces with bitboards...

#

that's going in the bitboard library

#

no that's cheating SMH

hollow spruce
#

Mem edit

olive sable
hollow spruce
#

๐Ÿ˜‚

hollow spruce
#

OLD VALUE,+ NEW VALUE

real sierra
#

but idk a better way

#

i just hate that i have to do it for like

#

16 bitboards

#

12*

hollow spruce
#

Graphical user interface

real sierra
#

๐Ÿคฏ

olive sable
# real sierra but idk a better way
#include <bit>
#include <cstdint>
#include <iostream>

int main() {
    uint64_t board = 0b101101...; 
    int count = std::popcount(board); 
    std::cout << count << "\n"; // prints 4
}

supposedly

real sierra
#

sam

#

that's c++...

olive sable
#

fuck

hollow spruce
#
#include <iostream>
using namespace std;

void Shiro();

int main() {
    Shiro();
    return 0;
}
real sierra
#

I'M DECLARED

olive sable
#

im too used to c++

real sierra
#

the chess programming wiki probably has some insane assembly implementation

hollow spruce
#

Soory c#

olive sable
#

nah i still prefer C++

#

bad c++ code will be slower than c code tho

olive sable
real sierra
#

wait wtf is this

#
int popCount (U64 x) {
    x =  x       - ((x >> 1)  & k1); /* put count of each 2 bits into those 2 bits */
    x = (x & k2) + ((x >> 2)  & k2); /* put count of each 4 bits into those 4 bits */
    x = (x       +  (x >> 4)) & k4 ; /* put count of each 8 bits into those 8 bits */
    x = (x * kf) >> 56; /* returns 8 most significant bits of x + (x<<8) + (x<<16) + (x<<24) + ...  */
    return (int) x;
}
#

catdespair ?

hollow spruce
real sierra
#

k1-k4 are constants:

const U64 k1 = C64(0x5555555555555555); /*  -1/3   */
const U64 k2 = C64(0x3333333333333333); /*  -1/5   */
const U64 k4 = C64(0x0f0f0f0f0f0f0f0f); /*  -1/17  */
const U64 kf = C64(0x0101010101010101); /*  -1/255 */
#

idk how it works but im trusting the process

olive sable
#

do a test i guess

olive sable
#

its a gcc and clang thing or something

#

MSVC has __popcnt64

hollow spruce
pulsar edge
#

gcc and clang often share builtins

#

but its still bad practice to use them unless you account for multiple compilers

#

the upside of using the built in popcount is that it'll evaluate to the POPCNT x64 instruction which'll be faster than the biomass magic shiro found online

real sierra
#

ok that popcount function doesnt work

#

or i implemented it wrong

pulsar edge
#

just use the builtin

#

and have an ifdef for MSVC to remain portable

real sierra
#

implemented it wrong

#

the 3rd line moves the & k outside the brackets

#

working now

#

ok

#

lets see how this fares

pulsar edge
#

shiro you should sleep

real sierra
#

oh shit

#

its playing the craziest chess ive ever seen

#

actually plays kinda insane

#

i wanna see another game of that

#

that seems pretty sensible no?

#

other than the dim knight

#

well theres still some bugs but this is good enough for me to play chess against already

#

smadg i lost on time

#

it think fast

#

even if it dont think good

#

bot did its job, found a new bug

#

something with check checking

#

ok last thing before bed

#

i wanna see how this token counter works

olive sable
#

spoiler, it doesn't ReallyInnocent

real sierra
#

gotta install the entire rust toolchain to build it

olive sable
#

if slay the princess uses renpy, and it doesnt have issues witht he fps being wrong, then did they customize the engine, or did a recent update break the rendersystem? maybe its cuz it runs locally that nobody notices its broken? its possible nobody purposefully set it to 30 fps

faint sandal
#

new clickfix instructions LETSGO

olive sable
#

ive only played ddlc once

#

for like 45 minutes

real sierra
#

i played it when it came out, before i got to see any playthroughs

#

Aware sayori was my favourite...

olive sable
#

oh damn, you got the aurthentic experience

real sierra
#

authentic nightmares

faint sandal
#

we're getting a DDLC maid cafe collab here

olive sable
#

i closed the game at that scene and never opened the game again

real sierra
#

are you participating

faint sandal
#
Threads

ไธปไบบ่ฒดๅฎ‰๐Ÿซถ
ๅพžไปŠๅคฉ้–‹ๅง‹็š„่ถ…ไบบๆฐฃ็จ็ซ‹้Šๆˆฒใ€Œๅฟƒ่ทณๆ–‡ๅญธ็คพxๆœˆ่ฎ€ๅฅณๅƒ•ๅ’–ๅ•กใ€
็ฌฌไธ€ๆณขๅพžๆœฌๆ—ฅ้–‹ๅง‹้€ฒ่กŒๅ›‰โ™ฅ
ๆƒณ่ฆ็ฒๅพ—็”ฑๅพก็”จ็นชๅธซใ€Œใพใ ใ‚‰ใ•ใ„ใ€่€ๅธซ
ๅŸท็ญ†็š„ๅฟƒ่ทณๆ–‡ๅญธ็คพ็ฒพ็พŽๅ‘จ้‚Šๅ—Ž?

้‚ฃๆ‚จไธ€ๅฎšไธ่ƒฝ้Œฏ้Žๆœฌๆฌก่ฏๅ‹•!!
ๅ››ไฝๅฅณไธป่ง’็ฉฟไธŠ็‰น่ฃฝๆœˆ่ฎ€ๅฅณๅƒ•ๅ’–ๅ•กๅˆถๆœ
็ด—ไธ–้‡Œใ€ๅ„ช้‡Œใ€่Žซ...

real sierra
#

wtf its real

faint sandal
#

yea i think there's one in korea too

real sierra
#

dan salvato really had a golden goose

olive sable
real sierra
olive sable
#

im sure its fine

faint sandal
#

cargo space

real sierra
#

random repository with a billion dependencies

#

hasnt been touched in 4 years

#

surely none of these are compromised Clueless

#

perish my mcts code too big

#

but it nice to know token counter work

#

@real sierra this is the token counter

#

no not that

hollow spruce
#

Install rust ๐Ÿ™‚

faint sandal
hollow spruce
hollow spruce
maiden geyser
amber fractal
#

-# Noted, if I get my NN done before chess is over, I should be able to easily be able to be under token limit as long as I don't mind doing some parsing first.

#

something something arbitrary length python ints

#

This AI was not trained on integrals sorry for your inconvience

maiden geyser
#

oh, nvidia also fixed text encoding issues

olive sable
#

my phone broke

#

no touschreen input

hollow spruce
hollow spruce
olive sable
#

i used it, and it stopped responding to touch

#

like idk

hollow spruce
warped narwhal
#

Restart phone

olive sable
#

it does respond to the sidebuttons so its not nonresponsive

warped narwhal
#

Hold the side button for 10 secs

olive sable
warped narwhal
#

It will force it off

hollow spruce
#

Hold (volume down + power button for 10 Second )

olive sable
#

nope

hollow spruce
#

Or type !reboot in command prompt

rigid snow
warped narwhal
maiden geyser
olive sable
#

i can hold down the power button for a full minute and it wont restart

rigid snow
olive sable
#

no

rigid snow
#

maybe volume up

#

i don't remember

hollow spruce
olive sable
#

a52

#

smasnug

warped narwhal
#

Vol down plus power for 7 secs

hollow spruce
#

Leave phone

olive sable
#

volume down + power worked

hollow spruce
#

Then try again

olive sable
#

nah its fully charged that would take hours

#

it works again now tho

#

just needed to restart

hollow spruce
#

Most used command in android was
!shutdown

#

And !restart or reboot

olive sable
#

Wdym command?

#

My phone doesnt have a console nor did the keyboard work

#

I might buy a new phone soon i guess

hollow spruce
hollow spruce
olive sable
#

Its system UI

#

The whole ui

hollow spruce
#

Closed it

#

And wait

olive sable
#

You cant close the system

opaque sigil
#

You actually can

hollow spruce
#

Close it bro and wait

opaque sigil
#

Maybe not from this screen

olive sable
opaque sigil
#

Yup

hollow spruce
#

And wait

olive sable
#

No app is open

#

Its the system

#

NeuroDown whats happening in vc rn?

hollow spruce
rigid snow
#

we're listening to music

#

to covers i mean

#

uhh

hollow spruce
#

Type !eilv

rigid snow
#

expect this to last one week

stark needle
#

ok shiro i was able to reduce alphazero to 574 parameters

#

this MAY become feasible

rigid snow
#

WHAT 574 parameters

stark needle
#

it's hyper oversimplified

#

i'm training on 100 million chess games rn

hollow spruce
hollow spruce
maiden geyser
rigid snow
#

scroll up a bit

#

or you can join and find out too

maiden geyser
maiden geyser
rigid snow
#

๐Ÿ’”

maiden geyser
#

just neuro fm thing

rigid snow
maiden geyser
#

i join and there's just music playing and some guy doing something on some chinese neuro wiki

rigid snow
hollow spruce
#

Test complete feeding brainrot in llm

#

Ai making โœ…
Training -
Fixing after training -
Post traning -

#

Atleast I know that mods are sleep

rigid snow
#

this is fine

#

it's in relation to the flag drawing on the canvas

#

which is getting "bombed"

#

context is important SMILE

hollow spruce
#

Yo @rigid snow

olive sable
#

Cloudburst getting pinged for no reason neuro7

hollow spruce
#

Back up in process i can't use desktop

#

Sorry for pin no reason cloudburst

sage crag
#

it shows up as a ping but the message is missing

stark needle
#

i got the new gumi voice NeuroBounce

#

much better

nocturne olive
#

New Gumi? You mean for SynthV?

stark needle
#

gumi v2 came out

nocturne olive
#

Well, I don't have SynthV nor can I run SynthV 2, even if I could afford it, so I've got no use for that
I'll just use NeuroSynth

stark needle
#

gumi v2 is much more clear

olive sable
#

This is like 10hz tho so its not normal operating cinditions

#

Eh i dont feel like fixing it

stark needle
#

can still hear gunshots

olive sable
hollow spruce
hollow spruce
nocturne olive
#

Gumi is a vocal synthesizer

brisk laurel
olive sable
#

Shadow realm

real sierra
#

how do I shrink c code

#

to be fewer tokens

#

it's kinda hard to make it take up less space

#

I guess I use #define everywhere instead of functions?

stark needle
#

what's the token limit shiro

real sierra
#

haven't decided yet

#

either 1024 or 2048

stark needle
#

what is a token

real sierra
#

first step in any compiled and most interpreted languages is to parse the source code into tokens to form a syntax tree

#

where a token is a single unit of code that has some associated "meaning"

#

e.g. int x = (1+2)*3; --> ["int", "x", "=", "(", "1", "+", "2", ")", "*", "3", ";"]

stark needle
#

yea i might be cooked then

real sierra
#

as you can see the token count rises quite quickly

stark needle
#

this is the pure forward function for a convolutional layer

real sierra
#

surely some of those loops can be combined

#

and you just do arithmetic to derive the components

#

e.g. combining o and y

#

into say, oy

#

and then oy = 0; oy < (l->o)*out->h;

stark needle
#

i need to do this

real sierra
#

and o = oy / out->h; y = oy % out->h;

stark needle
#

wait gif dead

real sierra
#

I'm not suggesting changes to how your code functions

#

just changes to how it's written

stark needle
#

sure if i pass it to the magical gemini 2.5 pro it somehow can optimize it

real sierra
#

also you might be able to implement this really efficiently using the bitboards the API will provide

#

then you could just slide a mask across it

stark needle
#

wtf is this shit

real sierra
#

now that's much more efficient

#

terrible choice of names tho

#

maybe remind it that variable name length doesn't affect lexer token count

real sierra
stark needle
#

IT WORKS

real sierra
#

at least two people doing neural net stuff now

#

idk if my bot can compete

olive sable
#

Ye idk either

wet jewel
#

Anyone have a second?

maiden geyser
maiden geyser
wet jewel
#

To spare I mean ;^ ^

#

I am following a guide on learning the baisics of python, when I noticed that I was being prompted with
"Python was not found; run without arguments to install from the Microsoft Store, or Disable this shortcut from settings > app > advance app setting > app execution aliases."

maiden geyser
wet jewel
#

I got it both in my CMD and Python

#

but I got it after typing

python --version
in cmd

#

and just trying to run the project "Helloworldโค๏ธ" in python

#

"Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Apps > Advanced app settings > App execution aliases."

maiden geyser
wet jewel
#

Yeah

#

I did that earlier

#

but still no luck.

maiden geyser
#

have you tried reinstalling windows? /s

wet jewel
#

Re-installing windows? Wouldn't that wipe out everything?

nocturne olive
#

If you do an in-place install no actually

wet jewel
#

:x

#

I fixed it

#

but thanks

maiden geyser
#

how?

wet jewel
#

It turned out that the shell was giving me an option to either run it though the store or disable the shell prompt for the application.

#

Hello World โค๏ธ

hollow spruce
#
poll_question_text

What i will use next project

victor_answer_votes

5

total_votes

6

victor_answer_id

3

victor_answer_text

Or both

olive sable
hollow spruce
tender river
hollow spruce
hollow spruce
maiden geyser
quaint summit
#

apparently files start with a bunch of information that tells the computer what to do with it, called a header
if you do some stuff with it you can make the file readable in multiple ways ig

quaint summit
#

idk the details but seems interesting

hollow spruce
#

<iframe = "nun" >

stark needle
hollow spruce
hollow spruce
#

139.79MiB/s soo fast

olive sable
stark needle
gritty dust
olive sable
#

i ate pizza

#

its cold outside

#

im cold

gritty dust
#

yeahhhh

tender river
#

neural

sage crag
#

study pyramid

tender river
rigid snow
#

arg mentioned neuroSCHIZO

sage crag
#

i made vm 5% faster

#

for cost of 10% binary size

#

reasonable tradeoff

real sierra
#

been working so hard to shrink my MCTS chess bot

#

idk if it can get much smaller

stark needle
#

Wrong reply message neuroLookUp Awkward neuro7 neuroD

#

So sad

#

๐Ÿ˜ญ๐Ÿ’ข๐Ÿฅ€

#

bye guys im going to cry now

real sierra
sage crag
#

i was already using lookup tables

#

i just changed from using a for loop to directly embedding the goto inside the instruction macro

real sierra
#

unrolled loops Aware

sage crag
#

17kb virtual machine

real sierra
#

do you have any cursed tricks for reducing token count

sage crag
#

ye this the main performance improvement

#

instead of having a for loop with a continue i just inlined the dispatch inside the instruction

sage crag
#

more like the loop was an indirection and ive removed the indirection

#

its hard to describe since i dont want to make two operations

loop
if fuel == 0 goto ret
goto op

op
fuel -= 1
goto loop

ret
return

vs

goto op

op
fuel -= 1
if fuel == 0 return
goto next_op
#

but essentially im cutting out a jump at the cost of increasing the size of the jump table

#

which could cause bad cache things to happen, but in principle is better

#

so its likely platform dependant but it should be better on most x86 cpus

tender river
sage crag
#

this is my vm

#

whole proj

real sierra
#

so tiny

sage crag
#

most of it is just instruction templates

real sierra
#

my code only 200ish lines

obsidian mantle
#

what does it do what

sage crag
#

you can think of it as an emulated cpu

sage crag
sage crag
#

ive been called a monster for this code but i dont see any problems with it evilNod

opaque sigil
#

that's the kind of c i'll open and just close immediately to go take a break

real sierra
#

i assume macros are included in the token count tho

sage crag
#

you think so?

#

let me run the preprocessor and get back to you

tender river
#

ye included not expanded

sage crag
#

true...

obsidian mantle
#

i tried backreading but still have no idea what you are doing neurOMEGALUL

sage crag
tender river
#

shiro host chess tournament

#

konii make hbvm c impl

sage crag
tender river
sage crag
tender river
#

evilSMH remove typedef count again

sage crag
#

ah i should have stripped the includes

real sierra
sage crag
real sierra
#

is it not including the macros in the token count

#

i may have to ban macros if thatts the case

tender river
#

shiro dum

real sierra
#

undocumented git repo

#

not my fault

tender river
#
#define a 1 2 3 4 5
a a a a a

12 tokens ye

obsidian mantle
#

what does it all have to do with chess

sage crag
#

ok correct token count was actually 22350

real sierra
#

submitted bots will have a max token limit

sage crag
#

@opaque sigil would you rather read the non-expanded or the expanded file SMILE

#

why doesnt c expand sizeof(u8) to 1

tender river
#

java dev evilWAJAJA

sage crag
tender river
sage crag
#

ye but

#

bad

tender river
#

evilNopers different compilation stage

sage crag
#

ye

#

but bad

tender river
sage crag
#

its always annoyed me how sizeof is happy with whatever you give it

tender river
#

sizeof 5

sage crag
tender river
#

sizeof u8

real sierra
#

EZ C

tender river
#

sizeof konii

real sierra
#

never crashes

sage crag
#

but sizeof works on vlas so

tender river
sage crag
#

annoying, sometimes runtime sometimes comptime

real sierra
#

how many tokens is something like a->b->c

#

is that 5 tokens

opaque sigil
#

i sure would hope so

sage crag
#

ligatures

#

i thought i turned them off

real sierra
#

in theory i should make everything void pointers and access all properties via []

#

for min tokens

sage crag
#

wrong and fake

#

need to cast to not void pointer if you want value

opaque sigil
#

computing the offsets is going to be more tokens

real sierra
#

instead of a->b->c you determine that c is at offset x from a and then do a[x]

#

but brackets only index in bytes if size of a is byte

real sierra
sage crag
#

what if alignment shenanigan

opaque sigil
#

do the compilers even let you do subscription on void*

real sierra
sage crag
opaque sigil
#

does it just implicitly become a char* or what

real sierra
#

i would post my code here so someone could shrink it ubt

#

i dont wanna share my bot code

sage crag
#

it treats it like an integer

#

so it just adds 1 (or whatever the platform dependant thing is i guess)

sage crag
opaque sigil
#

well yeah but it's still byte by byte no?

#

so char

sage crag
#

check c spec and see if it says something about the minimum aliasing being 1 byte width

#

for all you know platforms could be addressable down to the bit

#

c probably has something to say about that though

#

its likely 1 byte (regardless of if char is 1 byte) to preserve consistency

opaque sigil
#

i don't think i care enough to look at the spec

sage crag
opaque sigil
#

guess we'll never know

tender river
#

c isnt real Neurorb

real sierra
#

here we go Pointless

tender river
#

ye bitwise = () everywhere

opaque sigil
#

pretty much

sage crag
#

this is injustice

#

please

#

search conure in discord gifs

#

tell me what you see

real sierra
#

birb

sage crag
faint sandal
#

managed to crash my computer whilst testing plugin compatibility fixes for IDA 9.2 excellent
๏ธ€๏ธ€
๏ธ€๏ธ€> IDA crashed immediately when I opened an old IDB presumably because of a bad plugin
๏ธ€๏ธ€> it tried to write a 1.5GB memory dump
๏ธ€๏ธ€> said memory dump contains code from TOneShell
๏ธ€๏ธ€> Defender goes off
๏ธ€๏ธ€> everything goes haywire
๏ธ€๏ธ€> blue screen

**๐Ÿ’ฌ 3โ€‚๐Ÿ” 2โ€‚โค๏ธ 34โ€‚๐Ÿ‘๏ธ 2.9Kโ€‚**

faint sandal
#

LETSGOO my remote computer crashed I can't recover it from afar

sage crag
#

completely wrong

#

stupid discord

faint sandal
#

I thought it said ViralHag

#

tf kinda name is viralhog

sage crag
faint sandal
#

or a famous pig

sage crag
#

or a sick person who takes more than their fair share

obsidian mantle
#

or something like that

tender river
#

evilNopers unrelated to chesss

obsidian mantle
#

oh

sage crag
#

i just wanted to write a version of hbvm in c

#

that was tiny and fast

real sierra
#

i mean

sage crag
#

and freestanding

real sierra
#

you could probably strip some opcodes out that you dont need

#

maybe you really could fit a chess bot in

sage crag
#

i cannot strip the opcodes

real sierra
#

why

sage crag
#

well i can

#

but it will be noncompliant

real sierra
#

OK thats fine

sage crag
#

i could remove fp ops and such

#

but neuroSadge

obsidian mantle
#

wait is it a valid strat though?
make vm that plays chess bytecode

real sierra
#

chess-optimized hblang

sage crag
#

its valid but not a good strat

real sierra
sage crag
#

there are better ways to use those tokens

#

and interpreting bytecode is damn slow

real sierra
tender river
#

better algo can be better than better performance

sage crag
real sierra
#

turns out its useful to be able to compress chess api calls to a single opcode

sage crag
#

that only really works with stack vms

tender river
#

evilHyperYay forth

sage crag
#

register vms still require tokens for the operands

real sierra
#

catdespair forth

sage crag
#

which is basically the same as just writing the code

tender river
#

string = 1 token

sage crag
#

ye string banned

real sierra
#

future me looking at the chess tournament submissions

tender river
sage crag
#

i might write a novelty compression algorithm

real sierra
sage crag
real sierra
sage crag
#

but then again, what about languages like zig that have arbitrary length integers

real sierra
#

or similar exec()-like functions

#

if you wanna implement your own vm, go for it

sage crag
#

so you can just encode the entire alphazero

#

in a string

tender river
#

ye

sage crag
#

and its just 1 token

real sierra
#

how are you gonna run it

sage crag
#

but point stands

#

you can make arbitrary sized ml models

#

with strings

#

for cost of only 1 token

real sierra
#

i mean

obsidian mantle
#

but if you make it, you can give it any length bytecode

real sierra
#

upper limit is your ram allocation i suppose

sage crag
real sierra
#

if the string doesnt fit in memory then you're gg

sage crag
#

but ml model is

#

just program

#

but blackbox

real sierra
#

if you can somehow put it in a string

#

and somehow parse this string

sage crag
#

it really not that hard

real sierra
#

and the performance hinderance from working with a string doesnt ruin you

sage crag
#

like genuinely not hard at all

#

string in most languages just byte array

real sierra
#

OK good tactic then

sage crag
#

i will submit a program that is 99% string and 1% execution logic

#

it will embed a stockfish binary in the string

#

and then execute it

real sierra
#

execute how

tender river
#

mprotect

sage crag
tender river
#

or

#

just riscv

real sierra
sage crag
real sierra
#

it against rules to

obsidian mantle
#

create dll from string :tf:

real sierra
#

cant read/write files either nuhuh

sage crag
#

doesnt have to be dll

#

can just run it with mprotect

obsidian mantle
#

ok then make it virtual

#

no file

real sierra
#

what is mprotect

sage crag
#

its like chmod but for memory

#

changes access permissions

#

so you can give the string an executable flag

sage crag
real sierra
#

konii is now banned from the tournament

tender river
#

can use linker attributes NeuroBounce

real sierra
#

(joke)

sage crag
real sierra
#

stop using library functions to execute strings

obsidian mantle
#

what is the limit for tokens rn

tender river
#

na not library

#

just goto

#

goto not function MyHonestReaction

sage crag
#

no library functions

#

comptime only

tender river
#

ye "" one string

real sierra
#

AINTNOWAY C wtf

tender river
#

many lines cause \n

obsidian mantle
tender river
#

4

sage crag
tender river
#

erfs

obsidian mantle
#

what are you going to spend your free tokens on

sage crag
#

train

tender river
#

๐Ÿš‚

real sierra
#

if your bot tries to run code out of strings using any kind of language feature, banned

#

you know what i mean

sage crag
#

so no more machine learning models in strings

tender river
#

no

#

i do not

sage crag
real sierra
#

10 hour semantics argument over obvious rule

tender river
sage crag
tender river
#

not obvious

sage crag
#

can i write an interpreter and then a very long bytecode string

#

ye ban string

#

byte array only

obsidian mantle
#

isnt it the same

tender river
#

token

sage crag
#

token

#

"abcdef" one token

#

['a', 'b', 'c', 'd', 'f']
~11 token

real sierra
#

Susge strings...

sage crag
#

ye strings

#

bane of existence

real sierra
#

i guess you dont really need them

sage crag
#

ye

#

no strings needed

#

unless your language stupid

tender river
#

only include names

sage crag
#

in which case dont use string

rigid snow
#

why are we counting tokens
program size limit?

tender river
#

ye

rigid snow
obsidian mantle
#

what is the limit

sage crag
obsidian mantle
#

not defined yet?

real sierra
#

1024 or 2048

#

i havent decided yet

sage crag
#

1000 tokens WHAT

#

tiny chess bot

real sierra
#

is that more or less than you expected

tender river
#

its code golfing territory

sage crag
#

ye

#

sebastian lague had 4000 tokens

real sierra
#

sebastian lague has 1024 tokens

sage crag
#

nevermind it 1024

#

ye ye brain

real sierra
sage crag
tender river
rigid snow
#

is it maybe possible to hack the token counter to count each character inside of a string literal as a token

#

i need to sleep

#

dumb ideas

real sierra
#

i dont really wanna modify the token c ounter

#

i want it to be easy for others to download and install

sage crag
#

add rule that strings are banned evilAlright

real sierra
#

thats also just super high effort to enabled strings

#

i probably do have to ban strings

#

cant have nice things

sage crag
#

if u using string probably up to no good

#

what need string for

rigid snow
#

if the limit is 1024 anyway

real sierra
#

true

#

well not true

rigid snow
#

itโ€™s not much effort to check

real sierra
#

but kinda true

rigid snow
#

if thereโ€™s foul play

real sierra
#

but yeah ill hand-check most entries i think

#

to make sure nobody is being sneaky

rigid snow
sage crag
#
`string`
#

some language

#

like javascript

real sierra
#

yeah ill check for ` and ' and "

#

and of course check by hand anyway

#

thats just for quickly filtering

sage crag
#
#define STR "
const char *string = STR test STR;
obsidian mantle
rigid snow
obsidian mantle
#

quotes are banned now despair

real sierra
#

sus quotes users...

obsidian mantle
#

look what you did

real sierra
#

but no, you're submitting the source so you cant hide stuff in #defines

tender river
#

wont work

#

" not token

sage crag
tender river
sage crag
#

still not work

tender river
real sierra
#

salute people who wanted to store opening books as strings

tender river
#

shiro said preplayed

sage crag
#
#define Q(x) #x
const char *s = Q(erf)

something like this

tender river
real sierra
#

what'd i do

real sierra
#

how

tender river
real sierra
#

opening books wouldnt help anyway...

sage crag
# real sierra how
#include <stdio.h>

#define Q(x) #x
int main() {
    printf(Q(erf erm));
}

ye arbitrary string

#

it work

tender river
#

still fine

sage crag
#

time to hide this somewhere in my code

tender river
#

actually

#

erf = 1 token

#

ye ban evilNodders

real sierra
#

OK i ban all preprocessor except #include

tender river
#

no MyHonestReaction

sage crag
#

noee

real sierra
#

banned

tender river
#

neuroDinkDonk shiro banned

sage crag
#

ye interesting

#

apparently string is two tokens

sage crag
#

no

#

either that or () is a single token

tender river
#

#x = 2 tokens?

sage crag
tender river
sage crag
#
#include <stdio.h>

#define Q(x)#x
int main() {
    printf();
}

20 token

#
#include <stdio.h>

#define Q(x)#x
int main() {
    printf("erm");
}

22 token

#

() must be its own token

#
#include <stdio.h>

#define Q(x)#x
int main() {
    printf(0);
}

21 token

real sierra
#

"" is a token

sage crag
#

() not its own token

real sierra
#

and erm is a token?

sage crag
#

nope

#

more in string still 22 token

real sierra
#

yea

#

because

#

string quotes = 1 token

#

string contents = 1 token

sage crag
obsidian mantle
#

is "" still 2 tokens

sage crag
#

why string quotes not two token

real sierra
sage crag
#

nope i think each quote is a token

#

and strings are not counted at all

tender river
#

MyHonestReaction "abc" supposed to be 1 token

obsidian mantle
#

strings could be defined like this

string_ahead sdakhdkaskjdhakj

sage crag
#

'' being counted as 2 tokens too

real sierra
#

if preprocessor defs aren't included in the token count they should probably all be banned tho

tender river
real sierra
rigid snow
#

preprocess first then submit

tender river
#

no

warped narwhal
real sierra
#

then i just ban # from preprocessor defs

sage crag
#

no

#

absolutely not

real sierra
#

no stringify allowed

sage crag
#

c need preprocessor to make up for

rigid snow
sage crag
#

it stupid lack of generics

real sierra
#

besides, in practice i mean

#

if i see

sage crag
warped narwhal
real sierra
#

Q(00001110101010101101010101010101010)

#

then you're banned

#

i feel like this is not that big an issue in practice

sage crag
#
#erm uh
real sierra
#

you can hide the string conversion but not the data

sage crag
real sierra
#

surely

#

if you dont wanna be banned you better avoid suspicious-looking macros

tender river
#

neuroDinkDonk preprocess and check for strings

sage crag
tender river
#

count tokens before preproc

#

check strings after

sage crag
#

check for "" after running preprocessor

tender river
sage crag
#

also saves you from

real sierra
#

not doing this for every single supported language

#

too high effort

#

i just eyeball it

tender river
#

only c

sage crag
#

shimo

#

im going to embed a string in there non-maliciously and you will never find it

rigid snow
real sierra
#

i will find it

#

and then ban you

sage crag
#

actually i've already told you all of my ideas for hiding and using strings

tender river
real sierra
#

well regardless please don't embed things against the rules in code im running on my computer Awkward

sage crag
#

you can actually ban the standard library in c

#

if you want

real sierra
#

nah thats too mean

rigid snow
#

thatโ€™s crazy

real sierra
#

math.h is pretty vital

sage crag
#
#include <stdio.h>

malloc(1024)
``` โŒ lame

__builtin_malloc(1024)

real sierra
#

stdbool.h also vital

warped narwhal
#

force everyone to use a freestanding GCC mhm

real sierra
#

might ban stdio

sage crag
#

bye bye stdio

tender river
#

bye bye shiro

sage crag
#

typedef char bool;

sage crag
warped narwhal
real sierra
sage crag
real sierra
#

please do not run syscalls on my computer

sage crag
#

requires you to:

#include <unistd.h>
#include <sys/syscall.h>
warped narwhal
sage crag
#

also to

#define _GNU_SOURCE
sage crag
#

banned

warped narwhal
#

ah

#

wait. why are we banning strings?

sage crag
sage crag
warped narwhal
#

arb code exe?

#

I think we're taking a big enough risk by just compiling and running others code tbh

real sierra
#

too many ways to give strings to the system and get them run

real sierra
sage crag
#

im not a risk to your pc

tender river
real sierra
#

have to write a 500 page rule manual with every specifically banned feature

sage crag
#

im just listing all the risks to your pc

real sierra
#

no generality allowed

sage crag
#

you heard it here

warped narwhal
#

well, you could always require us to compile to WASM and then run it in a sandbox

real sierra
#

thats a pain for the submitters

sage crag
#

this has in fact been suggested

opaque sigil
#

it all circles back to wasm

sage crag
opaque sigil
warped narwhal
sage crag
#

i dont think it is

real sierra
#

i wanna make the contest open to entry level participants YES

sage crag
#

if you are only allowing the standard library and the chess api

#

then no issues

warped narwhal
sage crag
#

since stdlib in language that support wasm is going to work

sage crag
#

arbitrary language

real sierra
#

submitters can write in any language

#

the point of the api being C is that it's easy to make bindings to

tender river
#

api bindings so much tokens Neurorb

warped narwhal
#

if they are good enough to write in many different languages, I think it's a reasonable assumption that they can compile to wasm.

sage crag
#

then you just use

real sierra
#

i dont assume people can write in every language

sage crag
#

you write it and then

real sierra
#

i assume they can only write in one

sage crag
#

shiro adopt it

#

and then you use it

real sierra
obsidian mantle
#

wait does that tcount even work on windows

real sierra
#

its the only tcount in existence somehow

sage crag
warped narwhal
sage crag
real sierra
#

i cant install wasm for any of the langauges i know

#

i have no idea how and have never tried

opaque sigil
#

tcount is written in rust i'm sure it runs on windows

sage crag
#

who keeps putting this slop in here

warped narwhal
sage crag
#

isekai slop

warped narwhal
#

but good slop nevertheless

sage crag
#

i will never consume slop

opaque sigil
#

i should probably go eat something, lost the entire day trying to figure out how network namespaces work neuroPogHD

warped narwhal
sage crag
sage crag
obsidian mantle
#

tcount works on windows
random chessbot from the internet

sage crag
#

you think i read anything i see here

#

nope im an ai

#

llm

warped narwhal
opaque sigil
#

i just want to isolate arbitrary applications to my wireguard interface is that so much to ask for

warped narwhal
#

surely the best language to use for this will be brainfuck glueless

obsidian mantle
#

when is the tournament happening? approximately

obsidian mantle
#

in a week, in a month?

warped narwhal