#💽Programming Chat v2

1 messages · Page 55 of 1

spare quartz
#

var socket
socket = tlssocket(socket)

#

or however you do that in rust..

timid quartz
#

hm this might yield something

#

I need terry to re-send his sysroot though

spare quartz
#

2003…

timid quartz
#

yeah ik lmfao

#

if this doesn't work I'll sign up for the mailing list and send something

spare quartz
#

just shows it’s reliablity over LLVM!!!

#

GNU 4EVER

timid quartz
#

seems like a lot of mail on the gcc-help list just

#

goes unresponded to

#

I kinda regret deleting that sysroot now

#

coulda tested whatever is on that mailing list

pallid loom
#

hi anyone here available for a quick question

#

or actually i'll just ask

#

so the scenario i'm trying to figure out is the following; there's an interactive screen that has access to all public and private message, but the problem is i'm not sure how the hell do i check if the interactive screen is requesting messages from the api or just someone that guessed the url. unable to use stuff like IP's since it's going to constantly change, auth cookies won't work either since the requirement for viewing it is that you're not logged in, otherwise you use the normal process, and i am currently thinking about placing something in localstorage or similar?

timid quartz
#

hmmmm

#

perhaps something in localstorage

#

or otherwise an identifier that you can trace back to the machine

#

I think in your case it would be good to find some way to have the identifier predictably change

#

@spare quartz ca

#

I think I have to use gcc 8.x

pallid loom
#

implementing in the sense that it sends an intial request which then returns a cookie if it's valid

#

it's a bit more complicated but that's because servers can't read localstorage

#

which i really don't understand because the login cookie is set fine and their code is IDENTICAL

timid quartz
#

Could it be that it’s just sending two requests when it should be sending one?

pallid loom
#

it's much stupider than that.

#

api was on my machine's local address, i was accessing from localhost

#

that was the entire stupid issue

timid quartz
#

rrr @spare quartz

erroutc.ads:436:07: error: run-time library configuration error
erroutc.ads:436:07: error: file s-secsta.ads had semantic errors
erroutc.ads:436:07: error: entity "System.Secondary_Stack.Ss_Pool" not available
s-stoele.ads:87:13: error: unrecognized intrinsic subprogram
#

I configured it with --disable-libada why is it doing runtime lib stuff

#

whatever...

#

this was jsut for x86_64-elf anyways to like

#

try to compile it for something else that might work

pallid loom
#

i love testing on interactive screens! yay!

#

especially those that don't fit in my god damn room and i have to go to the living room every time i want to test it

spare quartz
#

ghi im awake

#

i had the weirdet drea mfo my life

spare quartz
timid quartz
#

maybe because that arch doesn’t target an OS or anything so I have to like remove all libc stuff

spare quartz
timid quartz
spare quartz
#

this is literally you

timid quartz
#

Listen I know for a fact this works

#

Someone somewhere before me has done it

spare quartz
#

yeah

timid quartz
#

I just gotta figure out how

spare quartz
#

ME

timid quartz
spare quartz
#

here

timid quartz
#

you and your stupid JVM

spare quartz
#

windows and arm

proud creek
#

🦾

spare quartz
#

COMPILER WE HAVE A PROBLEM

#

COMPILER WE HAVE A PROBLEM

timid quartz
spare quartz
#

why do you have to keep doing this

timid quartz
#

BECAUSE

#

I wanna get it running

spare quartz
#

okauy but you keep talking makes me wanna do stuff

#

and thats illega.l

timid quartz
#

L bozo

spare quartz
#

no./

timid quartz
#

I WILL make this work

#

I WILL run Ada on a SPARC

spare quartz
timid quartz
#

See this is my issue

#

I do something like this

#

It doesn’t work

#

I get more encouraged to make it work because it doesn’t work

spare quartz
#

okay but giving up is reasonable too

timid quartz
#

1 week later my wall has a giant head-shaped hole in it

timid quartz
pallid loom
#

it has no stand so we're using the bottom part of the box as it's stand

#

croatian tech ™️

spare quartz
#

イザナリまたはああああ?

pallid loom
#

i don speak Japanese atp

lavish dove
timid quartz
#

@spare quartz well....it's getting further than it has before

spare quartz
timid quartz
spare quartz
timid quartz
#

you built like a tungsten cube

spare quartz
#

i will mureder you..

#

unfortunately i am doign art

timid quartz
#

this is taking s o l o n g

spare quartz
#

so long

timid quartz
#

holy moly

#

the C-only compiler is done

spare quartz
#

holy shit these nukes are so powerful 😭

timid quartz
#

stupid SUN

#

HAS THEIR OWN ASSEMBLER AND LINKER

spare quartz
#

silly aera

#

explosive geometry is fun to compute

proud creek
#

kablooey

timid quartz
spare quartz
#

hold on im about to do sahder rstuff

spare quartz
#

SHADERS ARE HARD!

spare quartz
spare quartz
#

rust 🧟

timid quartz
spare quartz
timid quartz
#

Why would you do such a thing

spare quartz
#

dont worry we also use tamed dogs for our nuke experiments

timid quartz
#

D:

spare quartz
#

its fun.

timid quartz
#

you basically killed bayachao

spare quartz
#

bayachao doesn't look like that!

spare quartz
#

bayachao lore

timid quartz
#

yeah I think I'm done trying to get gcc to target this

spare quartz
#

YAY

#

HE GAVE UP

timid quartz
#

die

#

I gave it a really good shot

spare quartz
#

yeah well GCC is a special type of torture when it comes to ... making it

#

i really wish i knew what package maintainers used

#

cause what they make are perfect

timid quartz
#

they use scripts that have been built up over decades of trial and error

spare quartz
#

i think i know where the problem lies

#

gcc isnt made in jvm

#

therefore, it's bad

timid quartz
#

👎 that would make gcc worse

spare quartz
#

how.

timid quartz
#

gcc can compile java yknow

spare quartz
#

not any more

#

java compilation was removed eons ago

timid quartz
spare quartz
#

now its GrallVM

spare quartz
timid quartz
#

graalvm*

spare quartz
#

that meant you could compile ada to java!

#

but noooooooo stupid gnu

#

nothing should be open source

#

here have some bayachao schizo posting

timid quartz
#

ugh I really wish it could have worked

spare quartz
#

if you really want i could try doing it 4 u

timid quartz
#

I mean you could if you want

spare quartz
#

also wait

#

uuuuuhhhhh are you stilli n school

#

i forgot when shools end..

timid quartz
#

yes I still have classes

spare quartz
#

dont you have compielr classes or whatevr

timid quartz
#

that class is more about the theory

#

rather than "oh this is how you compile gcc"

spare quartz
#

okay well i meant

spare quartz
#

does it teach you actual implementation

timid quartz
#

hi katsumi!!!

spare quartz
#

or JUST theory

timid quartz
spare quartz
#

god i hate theory

#

worst class

timid quartz
#

I don't really feel like making an Ada compiler for sparc either

spare quartz
#

well that's a problem you should look into

timid quartz
#

no

spare quartz
#

solutions: don't go to school, don't leave your computer, open intellij..

lyric mesa
timid quartz
#

if you think trying to make a gcc cross compiler is a waste of time

#

trying to ACTUALLY make a compiler is even more wasteful

spare quartz
#

okay well

#

think about it this way

#

gcc = external dependency

#

making it yourself = not an external dependency and therefore good

timid quartz
#

im not making a compiler that im going to use once

spare quartz
#

wow you suddenly learned what practicality was

#

what were you gonna do with it again

spare quartz
#

harry this sucks

rustic vine
#

was it here that someone sent the trump phrases thing

#

I found the repo

spare quartz
#

correct

#

did you see the new white house post

rustic vine
#

I did not

spare quartz
#

they have technology that allows them to modify space and time

rustic vine
#

lol what

spare quartz
rustic vine
#

maybe if I ask nicely

spare quartz
rustic vine
#

they can roll it back to before I started blundering

spare quartz
#

and they can let me use my computer without having external responsibilities!

rustic vine
#

wait I have the tech to manipulate time and space too

#

if I just adjust my clock back

#

thats what they mean right

spare quartz
#

thats only manipulating time

rustic vine
#

if I gain more mass such that I exert a non neligible amount of gravitational force on other objects in space

spare quartz
#

the fak

rustic vine
#

would that count

spare quartz
#

was i in a voice channel this entire time?

#

what did i just disconnect from??

rustic vine
#

oh sorry I was listening in

#

forgot to hide it on your end

#

my mistake

spare quartz
#

It is said that there are 10 dimensions in String Theory, out of which 4 are our ordinary Length, Width, Height and Time. The other 6 dimensions are said to be closely packed together in a manifold called the Calabi-Yau manifold.

A Calabi–Yau manifold, or 'Calabi–Yau space', is a special type of manifold. It is described in certain branches...

#

become this

rustic vine
#

hm

#

mathematicians really be asking for our respect just to make that

spare quartz
#

that thing isnt even real

#

i bet some theoretical physicist just overdosed on lsd

rustic vine
#

ye thats how most things come to life

spare quartz
#

its supposed to be engineers doing that

rustic vine
#

btw I read a paper about 1-bit floating point numbers

spare quartz
#

not physicists

rustic vine
#

@timid quartz have you heard about that

spare quartz
rustic vine
timid quartz
rustic vine
timid quartz
rustic vine
#

"floating point" is a bit of a stretch

spare quartz
#

or just increment decrement in numbered form..

#

sounds useful!

rustic vine
#

from my understanding the math behind NNs/ML/LLMs usually gets truncated to 16 bit or even 4 bit floating point for the sake of speed (over accuracy of each tensor), the paper is taking that to the extreme and truncating to 1 bit lol

#

and the only 2 values they represent are 1 and -1

#

I thought it was pretty funny

spare quartz
#

gmie a cse c

rustic vine
#

u just mashed your keyboard

spare quartz
#

no i just approximated my sentence

rustic vine
#

ohhhhh

#

wth is a sparc

spare quartz
#

processor architecture designed by sun

rustic vine
#

definitely irrelevant then 😄

spare quartz
#

indeed it is

#

its about as relevant as itanium

#

but that also means there are autistic nerds who craze about it

timid quartz
#

you need gcc 8.x

spare quartz
#

i know i knowwww

timid quartz
#

I used gcc 8.3.0 and binutils 2.32

spare quartz
#

i DID have a reddit post on r/ada that helped me with ARM cross compilation...

#

but ill need to dig for it in my history

timid quartz
#

the ISSUE is that, once I got gcc built, when I tried to compile a C program with it, LD complained about not being able to find crt0 and other stuff

spare quartz
#

how were you testing it

timid quartz
#

wdym

spare quartz
#

how did you test your C program

#

or was it not able to compile in the first place

timid quartz
#

it wasn't able to compile

#

ld complained

spare quartz
#

have you tried

#

not linking it?

timid quartz
#

yeah so I did try doing gcc -S and then using as on it

#

but when I gave it to terry it just didn't work

#

terry's sun machine thought it was 64 bit even though I compiled it as 32 bit too

spare quartz
#

did you run file on it on your computer?

timid quartz
#

sparctest2: ELF 64-bit MSB relocatable, SPARC V9, relaxed memory ordering, version 1 (SYSV), not stripped

spare quartz
#

what about the output from gcc

#

what does file say for it

#

ive had a similar issue with ada compilation

timid quartz
#

the output from gcc?

spare quartz
#

gcc -S, yes

timid quartz
#

test/test.s: assembler source text, ASCII text

#

as one would expect

spare quartz
#

oh i thought you had an object file

#

frown

#

give me asecond

rustic vine
#

also apparently gcc on macos is an alias for clang?

#

someone showed me that today

spare quartz
#

brainge

timid quartz
#

yes im

#

building this in a debian container

spare quartz
#

in a debian what

#

:<

timid quartz
#

because of stupid clang

spare quartz
#

oaky my bayachao video is voer

#

let me get a vm

timid quartz
#

but I swear it's because it's not using the solaris linker and assembler

spare quartz
#

question

#

is sparc a risc or a cisc

#

i could've sworn it was a risc

timid quartz
#

risc iirc

lavish dove
#

@timid quartz can I use arduino as cartridge

#

gba cartridge 😭

#

lmfao

#

my arduino is the same speed as the gba

#

I only have 3 cartridges and they are all good games I dont wanna risk them by flashing them

#

I also have a raspi

#

but my new wifi wont let me fucking use it raagh

spare quartz
lavish dove
#

oh my gyat

spare quartz
#

upgraded our HTTP router

#

its now twice as memory efficient and 20 times less CPU intensive

#

primarily due to these two stream wrappers we now use

lavish dove
#

I feel like every other time I look in this channel its you saying the thing is now x times better lol

spare quartz
#

things can always be improved...

lavish dove
#

yea

#

like how my router from ~2010 is quadruple the speed of my gba lmao

spare quartz
timid quartz
spare quartz
spare quartz
lavish dove
spare quartz
normal bison
spare quartz
#

mainly so we can add flair to our nuclear explosions

spare quartz
# spare quartz

shader here basically does blockcolor * rgb(x / 16, y / 16, z / 16)

#

specifically on the vertex shader (aka applied to each vertex in the scene), which causes the gradient of color

lavish dove
#

if it doesnt destroy the entire world it isnt a worthy nuclear explosion

spare quartz
spare quartz
#

oh shit its tomorrow

timid quartz
spare quartz
#

I turn 17 tomorrow :<

timid quartz
#

Keep yourself safe btw

#

You got some thunderstorms moving through

spare quartz
#

YAYYYYYYYY

#

ロゼットちゃん。。。

timid quartz
#

Sheesh it’s super early

spare quartz
#

What do you mean

timid quartz
#

Nearly 5am

#

For me

#

I never stay up this late lol

spare quartz
#

Umm?? Sleep???

timid quartz
#

Soon

spare quartz
#

Ughhh what’s the japanese word for “song” again..

#

うた

#

Okay

timid quartz
#

spare quartz
#

That is not what I expected to get when searching for it

#

BAH

#

YOUTUBE SUCKS AT BROWSING JAPANESE

timid quartz
#

L

spare quartz
#

how

#

oh cmon

#

I had it kana by kana and THE LACK OF A MUSIC NOTE

#

stupid algorithm

#

god I can’t sleep

#

Back to shader dev I go

#

but first. I need to clean my glasses

#

god i hope this lasts forevr

#

unfortunately the precipitation doesn't seem like it'll be super strong

#

operationally... perfect!

#

just need to protect against A/C failure and our primary server will be as redundant as it will ever need to be

#

barring the still unshielded cable

#

oh well. interference doesn't seem to cause any big issues, DNS still resolves okay

spare quartz
#

might resume work on IA-32 processor finally

timid quartz
spare quartz
#

yes

timid quartz
#

gg

#

make it rust next

spare quartz
#

no .

#

mainly we wanna add radio support to the CPU through serial pins to interact with the world

timid quartz
#

Wait you use Linux?

spare quartz
#

that is my codevs video

timid quartz
#

oh

#

Based codev but he also doesn’t value his time

spare quartz
#

he uses arch btw

#

ughhhhhhh shaders are so hard

#

idk how to make world position lights

timid quartz
#

Debating IRC server in Rust or Kotlin

#

Rust because Rust, Kotlin because run it on Terry’s SPARC

#

Maybe both…

#

@spare quartz

spare quartz
#

what!!!

timid quartz
#

I need engagement

#

well ok when I say it that way

#

idk

#

wyd

spare quartz
timid quartz
spare quartz
#

what is that

spare quartz
timid quartz
timid quartz
spare quartz
# timid quartz

さくし/さっきょく/うた…ばやちゃお
へんきょく…OSTER project

spare quartz
#

the only bayachao video i can understand

#

... because its all kana ...

timid quartz
#

Well

#

“Read” (sound out) or actually understand without Jisho lol

spare quartz
#

both

timid quartz
#

Mmm I doubt the second point

spare quartz
#

i do!

#

i can transcribe it hold on

#

ロゼットちゃん ロゼットちゃん
ro ze (-tsu) to chi (-ya) n ro ze (-tsu) to chi (-ya) n
rosette-chan rosette-chan

#

わたし 私
wa ta shi
i


no
my

ロゼットちゃん
rosette-chan

timid quartz
#

Ok fair enough that’s simple grammar

#

I believe you now

spare quartz
#

なんでそんなにかわいいの?
na n de so n na ni ka wa i i no?
why (na n de) are you (so) [so n na ni] cute?

spare quartz
timid quartz
#

I thought this was like a full song

spare quartz
#

no its just 4 lines

#

bayachaos most recent song?? that'd take forever

#

もふもふもふもーふ

spare quartz
timid quartz
#

Unless you don’t know programming then C#

spare quartz
#

and their only experience is scratch

timid quartz
#

Ok C#

#

Better Java

spare quartz
#

no

#

kotlin

timid quartz
#

C#

#

CLR >>

spare quartz
#

okay but they expressed interest in making phone apps

#

also it should be noted

spare quartz
#

this person is 13 and the real bayachao is 25

timid quartz
spare quartz
#

nope

#

hey have an android phone from 2012

timid quartz
spare quartz
#

well

#

bayachao USED to be in the server at some point

timid quartz
#

Can’t blame her for leaving

#

Server’s probably more degen than her

spare quartz
#

what does that even mean 😭

#

the server has rules against nsfw, unlike bayachaos original makemon server

#

she IS the ultimate form of degen

timid quartz
#

Guess I should start on Kotlin IRC

#

Hmmm what to name it

spare quartz
timid quartz
#

Lame name

spare quartz
#

no

timid quartz
#

Maybe if I put it under BEG it would be “kotlin_irc_server” or something

spare quartz
#

piaz,,

timid quartz
#

But idk if this is going under BEG

#

@spare quartz you should deprecate Telegram next because Telegram sucks

spare quartz
#

no

#

you should deprecate pizza next

#

im hungry

timid quartz
spare quartz
#

not a furry

#

not applciable to me

#

also i do not care about cryptography and signals is just as bad

timid quartz
#

Ok but the fact that the guy is a furry and it’s a tech article makes their opinion objectively true

#

Furry cybersecurity hobbyists >>> government-trained professionals

spare quartz
#

polticial figures inviting journalists to war plan chat >>> furries

timid quartz
#

REAL

#

it happened again I think

spare quartz
#

😭

spare quartz
#

yuck

#

id never trust a guy who cant even make his own website

timid quartz
#

German army uses matrix

spare quartz
#

every military probably uses signal

#

but only for unclassified things

#

its so easy to make an end to end encrpyted chat i just realized

timid quartz
#

I forgot to change this

#

guess we gotta go bald

spare quartz
spare quartz
timid quartz
#

hmm name name name name....

spare quartz
#

chat is end to end encrypted

timid quartz
#

ok but that doesn't have forward secrecy

spare quartz
#

that depends on the key/cipher used

timid quartz
spare quartz
#

not the protocol

timid quartz
#

maybe kirk instead of kirc

spare quartz
#

you are so close to making that name very nsfw i hope you know that

#

this is why i hate naming things

timid quartz
#

what

spare quartz
#

nothing.

timid quartz
#

get your mind out of the gutter

spare quartz
#

ばやちゃおばやちゃおばやちゃおばやちゃおばやちゃお

timid quartz
#

hmm

#

maybe...

#

circuit

spare quartz
#

maybe bayachao!

timid quartz
#

irc -> relay

#

-> circuit

#

has a "k" sound

spare quartz
#

how do you pronounce circuit

#

sir kit or sir cut

timid quartz
#

I think sir kit

#

yeah

spare quartz
#

ばやちゃお

timid quartz
#

temmie

spare quartz
#

ACKKKKK

#

HOW DOES WATER GIVE ME A BRAINFREEZE

timid quartz
#

LMAO

#

because all you drink is SODA

spare quartz
#

i should drink more soda..

spare quartz
#
#version 330 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec3 aNormal;

out vec3 FragPos;
out vec3 Normal;

uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;

void main()
{
    FragPos = vec3(model * vec4(aPos, 1.0));
    Normal = mat3(transpose(inverse(model))) * aNormal;  
    
    gl_Position = projection * view * vec4(FragPos, 1.0);
}

#


#version 330 core
out vec4 FragColor;

in vec3 Normal;  
in vec3 FragPos;  
  
uniform vec3 lightPos; 
uniform vec3 viewPos; 
uniform vec3 lightColor;
uniform vec3 objectColor;

void main()
{
    // ambient
    float ambientStrength = 0.1;
    vec3 ambient = ambientStrength * lightColor;
      
    // diffuse 
    vec3 norm = normalize(Normal);
    vec3 lightDir = normalize(lightPos - FragPos);
    float diff = max(dot(norm, lightDir), 0.0);
    vec3 diffuse = diff * lightColor;
    
    // specular
    float specularStrength = 0.5;
    vec3 viewDir = normalize(viewPos - FragPos);
    vec3 reflectDir = reflect(-lightDir, norm);  
    float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32);
    vec3 specular = specularStrength * spec * lightColor;  
        
    vec3 result = (ambient + diffuse + specular) * objectColor;
    FragColor = vec4(result, 1.0);
} 

#

please hold this for m

timid quartz
#

no

spare quartz
#

or rust gets removed..

timid quartz
#

whag

#

you dont have the power

spare quartz
timid quartz
#

yes im aware of the "advanced" hiragana

spare quartz
#

no

timid quartz
#

おきゃくさま

spare quartz
#

the worst part about shader development

timid quartz
#

いらしゃいませ

spare quartz
#

the only debugging you have is looking

timid quartz
#

lmao

#

👁️

spare quartz
#

im blind!!!

timid quartz
#

cause you dont get enough sunlight

spare quartz
#

actually

#

aisde from the genetic part

#

i used to look at the sun as a child 😭

#

too much sun..

timid quartz
#

LOL

#

honestly same

#

I did stare at the sun a little

spare quartz
#

the UV went past your eyes and into your brain

#

this caused you to become a rust dev

#

💔

timid quartz
#

yep

#

but unlike you my brain wasn't entirely fried

spare quartz
#

WHAT

timid quartz
#

if it was I'd be full time JVM and Ada dev

spare quartz
#

okay but youd also be a baychao fan

timid quartz
#

yes even worse

spare quartz
#

no!

timid quartz
#

ugh JB is trying so hard to push this AI stuff

spare quartz
timid quartz
#

hm atp

#

what file format do kotlin "people" use to store config

#

like toml is popular for rust

timid quartz
#

but like

spare quartz
#

i use command line

timid quartz
#

ok fair enough

#

im guessing you made your own logging lib too

spare quartz
#

we found it was better to use javas integrated one

timid quartz
#

"we" (you)

spare quartz
#

yes

timid quartz
#

didn't know java had an integrated one

spare quartz
timid quartz
#

or is that like l4j

#

java.util.logging.Logger

#

now here's the logger

#

also I wonder

#

how often do you use classes in Kotlin code

spare quartz
timid quartz
#

bruh

spare quartz
#

what

timid quartz
#

"whenever I feel like it"

#

I just noticed a lot of your stuff isn't contained in classes

spare quartz
#

if you want a serious answer i only do it when i feel like ill be dealing with some object carrying data or state

timid quartz
#

Java code be like org.beg.ServerBuilder

spare quartz
#

otherwise i just use procedures in global package scope like ada <3

timid quartz
#

ServerBuilderConfigurationFactory

#

need longer name

#

ServerBuilderConfigurationFactorySingletonModel

#

java code be like

#

rust code be like Arc<Mutex<Box<impl ServerConfiguration + Send + Sync>>>

spare quartz
timid quartz
#

fearless concurrency™️

spare quartz
#

rust users are like marketers except they wont shut up and get no money from it

timid quartz
#

it's just so good

#

you gotta spread the word

spare quartz
#

yeah spread the word about ada kotlin and bayachao

#

you're right

timid quartz
#

noe

#

spread the word about rust

spare quartz
#

Rust is an iron oxide, a usually reddish-brown oxide formed by the reaction of iron and oxygen in the catalytic presence of water or air moisture. Rust consists of hydrous iron(III) oxides (Fe2O3·nH2O) and iron(III) oxide-hydroxide (FeO(OH), Fe(OH)3), and is typically associated with the corrosion of refined iron.
Given sufficient time, any iro...

timid quartz
#

❤️

spare quartz
#

🤢

timid quartz
#

kotlin isn't even real

#

and ada was a historical figure not a programming language

spare quartz
#

rust is literally an iron oxide

timid quartz
#

yep

#

rust is real

#

and exists

spare quartz
#

nah

#

you're delusional

timid quartz
#

what even is a "kotlin" huh

spare quartz
timid quartz
#

lame

#

Poland based tho

timid quartz
#

JVM moment

timid quartz
#

wait I wonder

#

if there's a log level flag...

spare quartz
#

there is

timid quartz
#

how does anything before that (eg logging that you're getting args)

#

work

#

how does that work

spare quartz
#

?

timid quartz
#

like

#
fun main(args: List<String>) {
  val logger = whatever  // initialize logger
  logger.finer("Parsing args...")
  args.forEach {
    // ...
    if $it == "--log-level" { /* ... */ }
  }
  // ...
}
#

how does the logger.finer() call even do anything

#

before you actually get the desired log level

spare quartz
#

the jvm has a logger configuration file

timid quartz
#

oh huh really

spare quartz
#

yeah

#

newer page

timid quartz
#

oh so you don't actually uh

#

have a cli flag

#

to modify logging?

spare quartz
#

we can

#

but im lazy

timid quartz
#

doesn't make sense to if you have a logging config file

spare quartz
timid quartz
#

oh

#

so that's only for default config

#

you don't do that per-project

spare quartz
#

scary

spare quartz
timid quartz
#

oh interesting

#

you force a strict -+[a-zA-Z]+=.+ regex for your arguments

spare quartz
#

yes

#

primarily cause its simple and hard to confuse

timid quartz
#

fair

spare quartz
#

then its fed into a conversion function and added to either singleArgs or multipleArgs

#

-alpha=53 will become Int(53) with conv=::stringToInt, which also does -alpha=0x35 or -alpha=0b110101

timid quartz
#

-{1,2}[a-zA-Z]+=[^\n ]*

#

ok this is a more correct regex

#

but I think both that and yours would technically match a ---arg

spare quartz
#

the system would read that as an argument of name "--arg"

timid quartz
#

yes

spare quartz
#

wrong but

#

most servers would crash with that argument though since its strict on the names

timid quartz
#

ugh

spare quartz
#

connective form of verbs... interestnig..

timid quartz
#

no mechanism to indicate that a function can throw an exception...

timid quartz
spare quartz
#

yes im trying to learn how to use inflections more appropriately

#

i know た is for past tense and て connects

timid quartz
#

て can also be used as a commanding/request form

#

おきて = "Wake up!"
おきてください = "Wake up (but polite)"

#

typed ざ not さ lol

timid quartz
spare quartz
#

プログラミング言語だらけ蟻 (Rust)

timid quartz
#

ant???

#

programming language something ant

spare quartz
#

programming language full of ants

timid quartz
#

smh

spare quartz
#

of course with assistance from jisho

timid quartz
spare quartz
#

ohh

timid quartz
#

though て form kinda implies that each thing happened in that exact order

#

so

#

be aware of that nuance

spare quartz
#

how does ねた imply sleeping?

#

i assume it involves something with context

timid quartz
#

or like

#

went to sleep

#

idk

#

it's 寝る

#

寝た is past tense

spare quartz
#

oh and the kanji 寝 is ね

timid quartz
#

yes

#

I just didn't want to use that kanji since you probably didn't know it

timid quartz
spare quartz
#

ジャック・ブラックの マインクラフト映画は「mid」

timid quartz
#

Rust Result<T, E> >>>

#

hm

spare quartz
#

"didn't" is past tense so

#

た and ない ??

timid quartz
#

た and ない ah yes

#

なかった

spare quartz
timid quartz
#
struct ArgumentVal {
  String(String),
  Integer(i32),
  Custom(MyEnum),
}

hmm how could I translate this to Kotlin

spare quartz
#

it used to take in two lambdas for memory access or register access definitions but that was simplified to this

timid quartz
#

nice

timid quartz
#

ok but

#

kotlin enum is

#
enum class Whatever(val thing: OneType)
spare quartz
#

use an enum and sealed class

timid quartz
#

whag

spare quartz
#
enum class A {
  STRING,
  INT,
  WHATEVER
}

sealed class ACarrier(val type: A)
class ACarrierString(val datum: String) : ACarrier(A.STRING)
#

or just

#
class Carrier<T>(val datum: T)
#

whichever you deem better

timid quartz
# spare quartz でも, ご覧になない

this is ungrammatical btw but I'm assuming you wanted to say "didn't see" so
ご覧にならかった (fixing what you said exactly but this is "honorific" language and you'd never use this verb for yourself, it's also)
見なかった (what you'd actually use)

spare quartz
#

grammar schrammer

timid quartz
spare quartz
#

i dont know exactly what you're trying to do

#

thats just what i use for primarily discerning mesasge types in wire protocols

timid quartz
#

parsing arguments

#

so like

#

"--address" has string value
"--port" has numerical value
"--log-level" needs to have a valid log level

spare quartz
#

this is what we do for that

timid quartz
#

mm ok

#

interesting

spare quartz
#

ughuggh

#

where didi put my second drawing tblet

timid quartz
#

interesting

#
enum class ArgumentKind {
    LISTEN_IP, LISTEN_PORT, LOG_LEVEL, DISABLE_TLS, REALLY_DISABLE_TLS,
}
// ...
// fun parseArguments(args: Array<String>)
ArgumentKind.valueOf(argName.uppercase())
#

that's valid

#

the valueOf thing at the bottom

spare quartz
#

yeah but itll throw an error if a name doesnt match

timid quartz
#

yknow im gonna make this a lot less abstract

#

it doesnt need to be extensible

#

ugh stupid stupid

#
// whatever can't be reassigned even if
// you do
// var thing = Test()
data class Test(val whatever: String)
spare quartz
#

yes

#

var thing = ... just makes the local variable "thing" itself variable

#

it doesnt do anything to the value contained

timid quartz
#
// whatever can be reassigned so long as you have
// let mut thing = Test { whatever: "init value".into() }
struct Test {
  whatever: String,
}
timid quartz
spare quartz
#

if you wanted it that way you can just make everything a var

timid quartz
#

ik

#

ughhhh and I hatehatehate

spare quartz
#

WinRing0

timid quartz
#

that

#

@Throws

#

isnt baked into the lang

#

like .toInt() can throw an exception but there's nothing indicating that except a doc

#

you just have to know

spare quartz
#

if it happens it happens

#

im apathetic to it most of the time

timid quartz
#

still

#

it's nice to know

#

exactly

#

when things can error

#

because for rust, ::<T>parse() returns a Result<T, E>

#

that you HAVE to handle

spare quartz
#

@Throws is also just another documentation tool if you wanna be blunt

#

due to how the JVM works there is no way to be certain when or where an exception will be thrown

timid quartz
spare quartz
timid quartz
#

bad design

#

And by the nature of it, if you implement one yourself, the abstraction isn't zero cost

spare quartz
#

welcome to VMs

timid quartz
#

ugh

#

this is why I like Rust

spare quartz
#

cause you're weirrrdd!

#

the way i have it in my planned lang is kinda like what java is doing

#

except that there is no unchecked exceptions everything must be checked

timid quartz
#

it's just objectively better to have

fn my_faulty_fn() -> Result<ResultType, ErrorType> { }
timid quartz
#

to know about it and to reckon with it*

spare quartz
#

i just know itll cause some form of issue later down the line though

timid quartz
#

nah

spare quartz
#

well like exactly how far down does the exception tree go

#

if you're doing something like writing to a stream, are you also supposed to handle SIGKILL

timid quartz
#

hmm

#

only if all of the functions along the way annotate that they can throw that error

spare quartz
#

but a SIGKILL can happen anywhere

#

ill probably just have a breadcrumb exception backing that applies to everything in the crumb

timid quartz
#

so maybe for those kinds of things, then those don't get annotated

spare quartz
#

orr orr orrr

#

i could pull an x86

#

and implement interrupts in my language

#

that would be cool..

timid quartz
#

what you'd probably want to do is this

int lowLevelFunction() throws SomeException { }

int highLevelFunction() throws AnotherException {
  try {
    lowLevelFunction()
  } catch (e: SomeException) {
    // do something to map from
    // SomeException -> AnotherException
  }
}
timid quartz
spare quartz
#

CALL writeToStream

  • StreamClosedError: close stream procedure
  • Otherwise: program interrupt handler
#

CALL program interrupt handler

  • StreamIsActuallyFine: return to caller
  • Otherwise: log reason and exit process
#

and the same process for signals...

timid quartz
#

or like if errorKind is SystemGenerated then goto Program::InterruptHandler

spare quartz
#

yeah

timid quartz
#

default handler is just log and exit

#

for critical stuff

spare quartz
#

ah

#

might as well get started on building an interpreter for it

#

i need to cleanup my notepad

timid quartz
#

java logger doesn't use color does it

#

sad

#

color logging is nice

spare quartz
spare quartz
#

we have a moderately complex color logger for log4j

#

with the associated ANSI handler

spare quartz
timid quartz
#

what's better about log4j

spare quartz
#

minecraft forces us to use log4j

#

there isnt any other reason personally

timid quartz
#

oh gg

spare quartz
timid quartz
#

gg it also defaults to logging to stderr

#

instead of stdout

spare quartz
#

stdout is also used as program output for other programs to inteface with

timid quartz
#

"java knows best"

spare quartz
#

it does!

timid quartz
#

nah

spare quartz
#

bayachao <33333333

timid quartz
#

rust knows all

spare quartz
#

if rust had bayachao in it id use it

timid quartz
#

ill publish a crate called bayachao

spare quartz
timid quartz
#

bruh

spare quartz
#

those are the rules

#

you know what

#

whenever i make my first compiler compiler for win32

#

im gonna sneak in bayachao in a header

spare quartz
#

so n na ni

#

hm

#

just remembered i cant actually write my programming language

timid quartz
#

y not

spare quartz
#

its binary

timid quartz
#

ok...and?

#

oh well

#

you can't WRITE it write it

#

not like you can't develop it

spare quartz
#

well

#

i guess i can make a human interchange format before hand

timid quartz
#

damnit gradle

#

why can't you find the main class if I ./gradlew run

spare quartz
#

did you use the application plugin

#

ands et a maincalss

timid quartz
#

yes

#
plugins {
    kotlin("jvm") version "2.1.20"
    application
}
kotlin {
    jvmToolchain(21)
}

group = "xyz.aerasto"
version = "1.0-SNAPSHOT"

application {
    mainClass = "xyz.aerasto.CircuitServerMain"
}
spare quartz
#

run it as a distrigbution

timid quartz
spare quartz
#

or through your ide

timid quartz
#

as a whag

#

ugh I dont wanna run it in intellij

spare quartz
#

im bleeding i dont knwo

#

whgy

timid quartz
#

because I added color to the logging

#

but intellij makes stderr red

spare quartz
#

rthen redirect stderr to stdout

timid quartz
#

ugh

spare quartz
#

System.setErr(System.out)

timid quartz
#

oh

#

it's CircuitServerMainKt

#

stupid

#

and...still errors

#

ok

#

stupid java packages

#

stupid idiot

#

stupid

#

hate java packages

#

@spare quartz this thing sucks, rust is better

spare quartz
#

hold on im writing this

timid quartz
#

anyways I wonder if I can make intellij use zgc

#

the answer is yes

#

still 500mb

spare quartz
#

ZGC is primarily for low latency

timid quartz
#

I wonder if it'll-

#

yes

#

improve the reaction times

spare quartz
#

it will most likely achieve worse throughput than G1GC

timid quartz
#

what really

#

deaht

spare quartz
#

yes

timid quartz
#

so I should use G1GC for intellij?

spare quartz
#

thats the default for every jvm application

timid quartz
#

yes but

#

I should use it

spare quartz
#

if you find zgc is better go for it

timid quartz
#

and not ZGC

#

ok

spare quartz
#

its all about testing

#

hm

#

return values..

#

also gotta figure out how i want to syscall/read registers in this language

timid quartz
#

hm

#

the java logger is a singleton isn't it

spare quartz
#

?

timid quartz
#

like if I call Logger.getLogger("name")

#

in two different spots

#

it gets the same logger

spare quartz
#

most likely not

timid quartz
#

oh? really

spare quartz
#

check the JDK

timid quartz
spare quartz
#

welcome to Ada

#

Note: The LogManager may only retain a weak reference to the newly created Logger. It is important to understand that a previously created Logger with the given name may be garbage collected at any time if there is no strong reference to the Logger. In particular, this means that two back-to-back calls like getLogger("MyLogger").log(...) may use different Logger objects named "MyLogger" if there is no strong reference to the Logger named "MyLogger" elsewhere in the program.

timid quartz
#

ah that makes sense

#

well

#

the main method that calls the server loop should retain a reference to it

#

since it'll be in the call stack

#

or I could uh

#

make it a global

spare quartz
#

okay

#

iiiiiii

#

might do something cursed

timid quartz
#

yeah if I just uh

#

do that

#

that works

spare quartz
timid quartz
#

but

#

...idk

#

it works

#

logger mutex :3

spare quartz
#

wdym by that

timid quartz
#

wdym

spare quartz
#

logger mutex

timid quartz
#

it's a shared global so

#

probably should have a mutex

spare quartz
#

you do not need thread safety on loggers

timid quartz
#

:33

spare quartz
#

all operations on them are thread safe

#

okay lets see

#

what would be the best way to repersent an instruction in this format..

#
RAW
  INSTRUCTION L"Sytem Call"
    WITH L"Index" AS 4
#
syscall 0x4
timid quartz
#

how about uh

#
asm!("int3 args")
#

:3

spare quartz
#

this is bascially just a direct keyword -> binary file

#

at the top there will definitions like L"DATATYPE" 0x83

timid quartz
#

L"DATATYPE"

#

putting the L

#

in your Lang

timid quartz
spare quartz
timid quartz
#

yeah you do

spare quartz
#

i dont

timid quartz
#

yuh uh

spare quartz
#

this is a direct binary translation, so anything delimited by any form of whitespace is good enough

spare quartz
timid quartz
#

nah

#

we love rust macros

spare quartz
#

int3 might not exist where you're compiling

#

INSTRUCTION L"System Call" can be defined for any architecture in mine

timid quartz
#

why dont you use uh

#

IntelliJ MPS for this

#

seems close enough to a DSL

spare quartz
#

whats an mps

timid quartz
spare quartz
#

oh

#

dont need it

#

bread experts group human interchangable binary format

#

the structure of the actual contents are arbitrary and replaced by a token -> byte sequence after

timid quartz
#

HEIF

timid quartz
pastel tinsel
#

I always have to convert my shit off

timid quartz
#

hi ben

pastel tinsel
#

hi

timid quartz
#

has that guardsman fix been tested at all

#

to make sure it works

pastel tinsel
pastel tinsel
#

I haven't tested it lmfao

timid quartz
#

gg

#

really just gotta make sure that it didn't break verification

rustic vine
#

gg

pastel tinsel
#

it is prob fine

spare quartz
#

bg

rustic vine
#

I saw someone use 1 commit and keep amending it and force pushing today

pastel tinsel
#

just tried the update command

#

I am gonna retest anyways

rustic vine
#

I think they were being funny

#

I hope so at least

timid quartz
#

oh I never did log into proxmox