#programming
1 messages ยท Page 216 of 1
you pushed a new version?
17 min ago yea


is that with rust or py?
rust
thats better arguably
a language independent but system depended bug 
my respect for the windows software environment is plummeting tonight
Do you understand why wsl2 is so beloved now
shibo rn is like a corpa pushing and announcing untested products to public 

0 bugs have discovered :mhm:
:neuroTrue:
Are you calling fork anywhere by any chance shiro
it also seems like there is no patterns to when the illegal move happens... so good luck figuring it out
Hmm
bugs that make no sense and only happen on windows
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
i found one potential problem in the C api

-# ( @sage crag )
did not fix 

Have you tried manually clearing before free'ing
the issue isn't uninitialized data
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
problem in rust too
so no
its kinda ugly but i dont think it should cause bugs

gotta consider that it could be a shared flaw in both apis

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
caibi interested in vm
i can assure you its fine in rust 
Hmm looks fine to me
valgrind time 
i see no leaks
i guess i can comment out the free command on python and see if the bug vanishes
didnt fix 
shiro just test the c api instead 
but its windows

thats why its the c api thats broken and not python

cmake can create a makefile or msvs project and then you just build using the same command every time
you dont have to cmake every time you change the source code
I can't wait for someone to try and run this on macos and everything blows up again
but its only set to build the dll right now
similar enough to linux 
๐
POSIX will carry 
in posix we trust
time to paste the entire source into an LLM and ask it to find the bug
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 
in grok we trust
in grok the do not trust
problem
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


i really liked the obfuscation scheme

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 
nyum
What bug 
Cant you run it in debug mode and see where it comes from
If both chess api and chess bot have source
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
I had same problem with arena because it restarted the bot and it forgot its board
did you check that start_chess_api() actually blocks
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
Oh so you run it manually and not just provide exe to the cute chess
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
Is it giving illegal move on turn 0
can you try testing in terminal but not manually
How interesting
Pretty certainly not something that happens on Kotlin
with file input it's hard, the gui is not supposed to respond with more position or go commands until it hears back from the bot
Or startgame whatever the board was when it started
good morning superbox
windows is horrible
I assume because the copy is definitely made in JVM memory and cannot in any way be pointers to native memory
and it wasnt a free issue like i thought
just write your own test harness at this point, better than guessing
bug is present even if python api doesnt call free
then you can use ubsan/asan with that
True Windows sucks
its definitely some kind of memory issue though
depends on if you use msvc/clang too, they might exhibit different bugs
good luck
Are the move objects definitely being copied from the locations being pointed to into Python interpreter memory?
I have an urge to look into it but im at work
why do timezones exist
thats not even the issue, it happens without python too
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
Weird
Initialize it mhm
valgrind sees no issues
ubsan/asan?
I have not had anything like that with the KT API
im as clueless to what these are as i was the first time you said them
not language related, os related

Hm, so Windows being Windows then
they're part of clang
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
what if someone tries to use the intel compiler
banned from contest
next question
But it works with cute chess on linux? Or mac or whatever you have
hi yes hello will this work on Itanium
what if 
Getting what you want on Windows is so impossible
I downloaded like 25GB of garbage and still did not have C++ STD headers
works on linux 100%
Maybe linux cutechess is different?
not cutechess issue 
You cant run same exe on win and linux right?
Everyone should just use Linux for real
i downloaded only the build tools and it was still somehow 6GB
clion insists this still doesnt have threads.h but compiles anyway so
Windows moment
intellij have their bespoke nonstandard tooling
They're all intellij as a base anyway
100% solvable with debug messages
i just call jetbrains intellij at times, more descriptive 
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
only C and C++ are hell on Windows tbf
But if you never worked on linux you will suffer on linux
you're supposed to say zugzwang
#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
True just have everyone use either Linux or WSL
is this for your
your
no
bwa
this is for a vm that doesnt have a 1024 token limit
how will i fit it on my floppy drive
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

which is a shame 
can you even run cute chess under WSL?
I think it's time to add docs to Kotlin API
Give it a try 
I have no idea, I guess depends if you can run X11 under WSL
you can
biggest problem with jit is regalloc, if you have enough registers its not a problem 
the easiest way is to just back the registers in memory

ye surely l1 fast enough 
should be fine 
size_t to int fine?
ye

Are u modify chessbot.h ?
might be undefined if size_t is out of int range but its not gonna be so everything is fine 
I forgot what the static even does in this context
doesnt export function
is fine 
maybe windows is just broken
makes the function or data local to the compilation unit

test with clang on windows
if it works you have a clear path for msvc refugees at least
adesi was using clang and doesnt work for them either
clear path for windows refugees: wsl2
if you want to submit a bot in windows please ask microsoft to write chessapi bindings
ye on linear program it was about 5% faster consistently
is llvm on windows tested 
I don't have a windows to test 
on a simple test vm, i should note
shiro will test it any second now (please notify shiro about it)
so i just tested it
I'm convinced cpus are secretly conscious and will vary their speed out of spite
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
considering the second one calls malloc and free

Atomically unlocks the mutex pointed to by mutex and blocks on the condition variable pointed to by cond until the thread is signalled by cnd_signal or cnd_broadcast, or until a spurious wake-up occurs.

it fine
the s stands for safe
deprecation excessive

it blocks until signal and then wake up
so why would i put in while loop

ok now to figure out how to handle operands with this new format
or until a spurious wake-up occurs.


would be fun if the bug was because it did wake up...
but if it did
exit
i guess it doesnt break anything to make it a while loop
have separate array for data maybe? a bit scuffed though 
might want to make Semaphore* volatile
not sure if the compiler can figure out that sem->locks can change after cnd_wait

compiler might optimise out your waiting

they wont optimize it out but they might optimize out the read
compilers are allowed to reorder reads and writes to happen anywhere as long as they are reasonably sure (for a definition of reasonably sure, refer to the standard) it wont affect program behavior
i'm not sure what c's definition of reasonably sure is
Semaphore* isnt restricted so it may be fine either way 
im getting like 1000 warnings now
the mtx and cnd functions dont like that Semaphore is volatile
fine undo it 
chat is using comic sans for programming cursed
(ignore the "more than once" ones)
Warnings? Who cares 
could but locality 
Its only bad if the code is bad
cursed form of JIT where instead of actually jiting anything you just replace each instruction with the instruction handler
There was some safe function that behaved completely different for no reason relative to unsafe function. I hate safe functions

that looks pretty much like what i have
Is this about strcpy vs strncpy
no

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
Good
in fact, it might be undefined behaviour to do so
i think strncpy vs strncpy_s? the former pads with 0s, the latter one doesnt
ye dont do it 
who even suggested that
i make Semaphore.locks volatile

maybe thats good enough
the loop is conditional on locks anyway
not on the mutex or condition
me genius
stack?
or accumulator
one opcode for pushing every possible byte 
Now the code is different and you are not sure it would work even on linux 
you can use 2-byte encoding with opcode-operand
or 4-byte with 1 byte opcode and 3 byte operand
8 byte opcode 24 byte operand 
Make 128bit vm

of course, i'll replace registers with addresses 
overcome the indexing cost 
send bytes to my address 
at runtime of course
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
Is read 1 byte = 2byte = 4 = 8 on 64bit systems?
In terms of time
Or how does it work
8 byte opcode 56 byte operand, one cache line per instruction 
thinking of cache lines already 
thats how you know its fast

i'd rather do 24 byte operand and fit two instructions per cache line
since that makes it easier to pipeline
a 64-bit cpu except its a 64-bit opcode space rather than 64-bit address space
I mean how many bytes can a system read with 1 operation
esoteric ISA design
its lower level than esolang

add1
add2
add3
64 on most cpus
ye bring back room scale mainframes
depends what you mean with 1 operation
technically an arm machine can read 2048 bytes with 1 operation due to wacky
Naah but its going to repeat it in cycles don't it
In terms of speed? Yeah
technically x86 can rep stosb 
streaming vector extension
ye i was going to mention that too
but that a loop in microcode
not fair comparison 

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
also in x86 ISA itself there is extra data to be encoded for 64 bit instructions than 8 bit instructions
where it really doesnt matter whether its 1 or 8 or 64 bytes
0 performance impact i just wanted to mention

which cpus are pretty good at still
especially with pipelining
and then other metrics like cache size and memory speed and prefetching and speculative execution come into play
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
i throw bigger brick


go to sleep but do clang tomorrow
i think i do have clang
ubsan/asan
clang-tidy != clang
dont have ubsan or asan
Debug the process 

ubsan and asan are clang things
not external binaries
ok i dont have clang
Who just switches compilers randomly 
everyone 
Any excuse to not use msvc
msvc is the only compiler that actually makes a working dll for me at the moment
ye go sleep
and i did warn you about rushing 
Why are you doing this then 

because it needs to be fixed
The windows people can wait 
either way good luck, cant help with windows stuff 
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

I kinda wonder if KT API works with a Windows DLL
i had to modify the python api to search for a DLL if on windows
It's not explicitly looking for an SO file
then it probably maybe works
You're like 3 levels above it probably works
thats where the maybe comes in
It's just trying to Native.load("chessapi")
From the ./native folder
maybe intended but the kotlin bindings only have a readme for now, letting you know just in case 
I haven't even pushed them anywhere yet?
i pushed the readme you sent 
maybe i'll add a small note that it's under construction 
Once I push to a repo you'll want to definitely link that repo in your copy of the readme
just put in a pull request with the link and remove the "UNDER CONSTRUCTION" header on the README.md when it's ready
i'll review it when i get a chance tomorrow or the next day
Silly
I had the pleasure of downloading the nix index for an hour the other way, was fun
i hope it's working for linux users 
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
Based on the Kotlin API development it works fine on Linux
We will see
It's been a quarter of a day at night shiro 
and ive slept for none of it 
wait the announcement happened?
Me neither 
oh god i need to be awake
Canary Deployment
Should I also add a wiki entry in that if I can figure it out or do you want to do that part?
yes please
I personally have no clue how to create one
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
Well I assume a fork of a repo contains the wiki
honestly not sure
Well I guess we'll see
If not I'll just give you the file
We will see what happens
That is indeed a bit late



I'm just here waiting for the typhoon impact 
about 12 hours out
it's in the middle of changing its eye again 
imagine bro succeed before impact
eyewall replacement cycle? i don't think it's gone through one yet
didn't see windspeed drop
at least, no drop + regain
looks like it's just been entering unfavorable conditions
been one at least
oh damn you're right
there's total of 4 cycles according to some taiwan guys
Stay safe 
not a direct hit and the storm is weakening, so probably fine
it's trying to cycle again at this moment, this pic was 10am GMT+8 iirc
100+ km eye coming
is that matthew
Bartholomew?
so I guess I didn't compile the dll correctly

I did clang -o libchess.dll -shared bitboard.c chessapi.c 
is that not correct
How do you even link dll to main file
#include it on top?
Or need to do some project setting shenanigans
Never used dlls
You include the header and link with the dll
Chances are it doesn't actually export the functions by default

Can also write a .def file I guess
Might need to have clang generate the corresponding .lib too for the declarations who knows 
In Kotlin using Native.load("name")
If you have symbols, I don't know
The DLL needs to be compiled for debug at least for sure
It's definitely possible
๐ you're correct
I did this and it at least can run now 
and cute chess can run it
yes it's given illegal moves(and incorrect numbers of legal moves) mhm
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 
taiwan
I have a what moment
do you happen to have multiple node versions
nop
I would use nvm then
but I use NixOS
that is why I have a what moment
WAIT
no shot
lemme guess, you figured out you do have multiple versions of node
that implies you only have one version of node but I don't see how that's worse 
the cli?
yeah
it is not global, it is in a devshell

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
... but Angular projects already have @angular/cli as a devDependency, so why would you need an extra copy
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
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...
Kotlin bindings for Chess thingy now just waiting for Shiro approval
why would it not 
if it's an application then the interpreter is built into it, otherwise you have funny runtime dependencies
this is pretty much always the case in Nixpkgs AFAIK
if you want a different Nodejs then override it
It makes sense, and obvious
Just at the time I was very confused why this is the case
it should be 20 moves but instead gave 4 moves
4 illegal moves

So it counts them correctly. Good
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
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
but.... why tho
It means that ๐
๐คจ
I have been asleep for 12 hours so I wake up to API drop hooray 

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
I told myself in the past to never go back into chessdev, but how can I resist 
Well, guess the month timer for chess has finally started.
Whar
I thought that was your quote @olive sable

It has all my favourite numbers too
What about 21
All the greatest hits in there
how did you know? why are you in my walls?
just press the 21 key
Just press the 10 key
(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.
must not be a good numpad 
mine does have 21, but you have to do a key combo
you have to press 2 and 1
yes
this is the difficult technique i have mastered a century ago, i call it counting
its from the far regions in arabia

There are some that do deserve to exist, like the 30ish dedicated macro keys
nobody uses the home, page up, page down and scroll lock keys
Ctrl + Shift + Alt + Win + L
the other ones from that island above the arrow keys can stay
Can't tell which app that opens
I used pageup/down
im on linux so idk
In some old game console it was the only way to scroll

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
It opens linkedin page in default browser
Anybody touched the new token counter yet? Does it have problems too 
Not as far as I know
Edit, found the site that I use to check keys
2.7 seconds sounds suboptimal
Which keyboard you have
cherry switches
interesting
wdym?
i think cherry is a pretty popular brand
Or is it a company
surely implementing a bunch of transmutes in my chess api will have no negative consequences
I thought its colour
cherry is the brand, brown is the type
cherry mx brown ๐ฅ
*prown
why? i dont like clicky switches
wait for you to hear the 78db smack

i guess they are loud
my typos says so
Fact checked infomation yep, see no issues with the statement
and cherry mx brown is uhh
tactille
i dont care much for your opinion

i liek knowing when the key has activated, hence i like the tactile response
but i dont like audible clickeyness
i aint psendign my money on all that
smh
we love weird errors

What does N mean
Imma hook a debugger to see wha da fa is happening in chess_get_legal_moves
Knight h6
you going to fix it before me
this may or may not be my fault

time to test the C bot
are you on windows
linux?
yeah
oh so it's a common problem
hm?
Shiro said before its only windows problem
But it was about "on windows it always gives incorrect moves"
he was wrong
do not discount this being a problem entirely caused by me yet
modify your bot to print the length of the returned legal moves, and run the bot directly then do
ucinewgame
position startpos moves e2e4
go
see if the result(printed number) is 20 or 4(or neither)
New project update
Making new based on India theam games on pc
Max allocation gb is 302
Which one is correct? 20?
yes
ucinewgame
position startpos moves e2e4
go
legal moves: 20
info currmove g8h6
bestmove g8h6
It looks like its rare on linux and frequent/always on windows
let's continue and do position startpos moves e2e4 g8h6, go
repeat until bug appear again
legal moves: 30
info currmove e1e2
bestmove e1e2
Inb4 memory alignment changed because of print function and now it disappeared 
lemme test that theory
(it won't be memory alignment but could realistically be a skill issue on my part)
it is very suboptimal
my guess is heap allocations are fucking me over
Whar you sillying?
low allocation json deserializer 
I see a lot of Chess stuff
Doing research on false legal move bug
Damn my thumbs are too thick so many typos
i'm just gonna write my own allocator so i only need to do actual heap allocation a couple or so times per deserialisation

fair enough
rrrrrr
the C version seems fine

is it only happening in the bindings
python one happens everytime
Shiro has it in c every time on windows i think
that's funny
just woke up... they still havent made a move
but i want chezz
fucking 30878968564 nodes

your stockfeesh has analyzed 30878968564 chess positions
30.9B nodes 
i didnt expect it to think this THIS long lol
new idea for the chess competition, move time inversely proportional to token count
i wanted to see how long itd take
20 tokens -> 20 minutes, 1024 tokens -> 1 minute
i expected one move to be less than 10h at least
surely that would end fine
it'll go on until it reach the limit of your hash size
me when "but let's just search to depth 9000"
ig inversely proportional isn't the right term here
i was thinking the same thing lol
"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" 
that many nodes and yet the engine will still tell you e4 is the best move 
its calculating the best way to throw
the hell is -lchess supposed to be
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
Shiro should've just used a library
I don't know about linux, but this is Windows 11, with LLVM 21.1.1(x86_64-pc-windows-msvc)
With the correct passing method the Kotlin bindings at least work fine on Linux
:neuroTrue:
very cool
of course there's like no proper solutions on the first page of search results why would it be that easy
do you have a old compiler?
that's how it works in C++
in C it's threads.h
got it fresh today
what compiler are you using?
followed the VScode guide on setting up a C/C++ environment to use, got that stuff installed, restarted computer, test the compile
why would it not recommend msvc on windows...
gcc seems like a odd choice as the default compiler
atleast on windows
mostly using gcc because of this line in shiro's competition
i know precisely nothing on the differences between these compilers
i see....
nowadays i don't think there is much difference. atleast on like the basic features
guess i try clang
Any word on runtime/memory limits? Could you for instance set up a gigabytes-sized lookup table on the heap?
60 seconds on the bot's side in total for each chess game
Any extra time for precalculations on startup?
don't know but doubt it
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."
dang

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)
mem limit per bot is ~4GB but I wouldn't try to get too close to that limit
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
you need windows sdk to be installed/linked/included
cc @real sierra what's your thought
I haven't read the codebase yet, just took some tests
and ate mcdonald 
:NeuroopaTalk:
should be < len_moves not <= len_moves
your loop bounds are wrong
so the extra move is explained
still returning incorrect numbers of legal moves tho
and incorrect legal moves
mhm
naturally
sync primitive mabe
idk if it only happens on windows or not
there's some windows bug bashing ongoing
not sure yet which operation I'm doing that's somehow platform dependent
dont break windows glass is expensive

good info though, thank you
according to bred, this also happens on linux
idk man

I don't have a linux on my hand can't test that out
I think he's using the python binding
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
it works flawlessly on my system along with all bindings and nobody has reported issues until the contest started
should've developed the whole contest around docker containers
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

"I can't replicate this bug on my end, I'll mark this as Unresolved/Need More Information."
should've banned windows 
because only 3~6 personals were able to access your chessapi before the contest announcement smh
What about macOS 
@fast pagoda you're up 
macos should work, it's POSIX
my bro Windows think it should be self-dependent
fuck POSIX
who tf cares universal ABIs
there are no universal ABIs
i saw this yesterday.... idk what it means. with clang -v
why does it say thread model: posix
it means it's using POSIX as the threading implementation for the clang compiler
@real sierra mfw i can't tell what is hatemail and what is normal messages directed to you
but wouldn't that mean pthreads should have been included?
and be possible to be used in windows

MSVC doesn't support POSIX, but the compiler works on POSIX, compiling a program with POSIX threading doesn't mean your program works with POSIX
nothing is wrong with macos
sry meant APIs
It appears that Shiro has awakened
For the chess stuff is there any limit on how long it takes to compute a move?
is it fixed yet?
im finally free
i see...
@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:
shibo just awake and he stated he's investigating
"if it works it works"
Happy to hear that cuz gamers roasts me for using it 
they're just idiots
nothing is wrong with macos even for gaming
just get fusion or somethin g
or whisky
unfortunately crossplay is expensive
i have not done anything what issues 
I just love unix
bro speaks like a high-salary PM
real
can we fire this PM and get a new one
good question
i can't tell what is hate mail to shiro and what is just normal messages to shiro (
theyre the same) so i just tagged whoever seemed to be talking about it 
W pfp
wait is it just me or is it the turret from portal but chopped up into an octopus looking thing
Walle
no
The steering wheel
what is it ._.
it's AUTO from WALL-E
Looks just like it
(i somehow have never watched walle ๐ญ)

Their name IS auto, complete forgot about that
wall-e is incredible
Ong
one of my favourite movies
Watched it on repeat as a kid, same with cars
same
i watched cars but dont remember a lot of it
Life is a highway
i also like
dont remember moana nearly at all

language-independent bug















