#💽Programming Chat v2

1 messages ¡ Page 17 of 1

rustic vine
#

tsan/asan and clangd catch pretty much everything imaginable

timid quartz
#

But the reason why borrows and lifetimes exist is because of the borrow checker managing memory

timid quartz
#

LMAO

timid quartz
rustic vine
#

just use smart pointers in cpp and you'll be fine tbh

spare quartz
#

no way thats actually real 😭

rustic vine
#

its extremely hard to unsafe memory stuff in cpp if you stick to good practices

#

LOL

#

evil

timid quartz
#

And it’s easy to not

rustic vine
#

ok well

#

u suck

timid quartz
#

Vs rust where the compiler hounds you until you do

rustic vine
#

if you don't stick to good practices

timid quartz
#

And I’m sure “sticking to good practices” works 100% of the time

rustic vine
#

it does

#

or, maybe 99% of the time

#

the 1% is caught by tsan/asan and clangd

timid quartz
#

Hm

#

Then how come so many memory vulnerabilities from software made by top companies that definitely follow best practices still exist

rustic vine
#

having a compiler backend for your static analysis is incredible

timid quartz
#

Hmm I wonder how that works

rustic vine
#

cause they DONT follow best practices

#

corporate code is the worst bruh

#

people be writing

#

all sorts of nonsense

timid quartz
#

Not claiming that rust is bulletproof either but it helps to have the compiler enforce things rather than just hand-wave sand say “oh you’re not following best practices blah blah blah”

rustic vine
#

no I get that

#

I've stated like 4 times why I don't like it

timid quartz
#

Like yeah bad C and C++ code is definitely a skill issue but even the most skilled are gonna fuck up because they ain’t perfect

rustic vine
#

geninunely corporate code is some of the worst I've ever seen

rustic vine
#

tsan asan and

#

whatever else san

timid quartz
#

ok throw another thread at your program have fun

rustic vine
#

tsan is a thread sanitizer

#

its good at its job

timid quartz
rustic vine
#

and it seems like writing simple code requires so much effort

timid quartz
#

At first yeah

rustic vine
#

because you have to prove to the compiler its safe

timid quartz
#

Once you get used to the rust mindset it’s no harder than Java

rustic vine
#

idk how you can say that

timid quartz
#

Some things are inherently more difficult eg trees

rustic vine
#

java has a gc

#

you don't even think about memory management in java

#

cause its done for you

#

in rust you do it all yourself

timid quartz
#

False

rustic vine
#

wym false rbah

#

brah

timid quartz
#

The borrow checker exists to manage memory for you

spare quartz
timid quartz
#

You have no stdlib and no other libraries

rustic vine
spare quartz
#

we have a giant stdlib with GNAT okay...

#

we just don't have automatic freeing, only controlled memory

timid quartz
rustic vine
#

rust is objectively bad (atm) for linear algebra

timid quartz
#

Ok if you’re doing linalg go use Kaylan

rustic vine
#

it is infinitely worse to do linear algebra in rust than it is in cpp

timid quartz
#

wtf keyboard

rustic vine
#

wth is kaylan

timid quartz
#

Matlab

wraith scarab
#

hi

#

aera is wrong

rustic vine
#

MATLAB

wraith scarab
#

bye

rustic vine
#

FR

#

matlab worst invention known to man

timid quartz
#

If you’re doing linalg use matlab

wraith scarab
#

fuck matlab

timid quartz
#

If you’re doing data sci use numpy

rustic vine
#

NUMPY

#

insane

spare quartz
rustic vine
#

goat

wraith scarab
timid quartz
#

I’m not gonna say that rust is the solution to everything

rustic vine
#

I would never use python in a production environment

#

numpy is great and all

#

but leave it to the scripts

spare quartz
#

hold on whats linear algebra about again

rustic vine
#

matrix

#

vectors

spare quartz
#

OH

rustic vine
#

everything you ever care about

#

it is absolutely awful to do linalg in rust

spare quartz
#

oh wow

rustic vine
#

cause

spare quartz
rustic vine
#

theres just no good libraries for it

spare quartz
#

field ada actually excels at

timid quartz
rustic vine
#

the pattern matching is kinda cool

#

the last I remember of it at least

#

that Result Err stuff

timid quartz
#

If everything was easy to do in one language then everyone would use that language (cough Python except it’s slow)

rustic vine
#

idk I forgot brah

#

python is only good because

#

of its ecosystem

#

if lua had pythons ecosystem it'd be gods chosen language

timid quartz
#

Python is good because you can do anything with it

rustic vine
#

yeah at

timid quartz
#

Due to the ecosystem but still

rustic vine
#

0.0001x the speed

#

ignore the profile picture thats from years ago when the only language I knew was py

timid quartz
#

But most normies don’t care about that

rustic vine
#

don't get me wrong though python is still a great scripting language

spare quartz
#

yeah cpython kinda traded all of its guts for developer speed over computer speed

#

i've heard it's getting faster though

rustic vine
#

cython

#

goated code

timid quartz
#

They’re letting you disable the GIL in the newest version

rustic vine
#

write fast python by writing as little python as possible

spare quartz
#

JNI mindset

rustic vine
#

instead offload all work to

#

c libraries

#

(numpy)

timid quartz
#

But for what I do Rust is great

#

I enjoy it

rustic vine
#

what do u do

#

I wish google was actually good at being devs

timid quartz
#

I’ve done a little GBA with it, mostly generic shit like discord bots and rest APIs because that’s all I do anyways

rustic vine
#

soulcrushing webdev

#

at least thats how I view webdev

rustic vine
#

its terrible

timid quartz
#

I will say I’ve done some embedded robotics too but like damn I gotta admit C is just way better

#

Way simpler

rustic vine
#

idk C that well

spare quartz
#

gotta suppress my urges

timid quartz
#

I enjoy the safety shit with rust but you gotta put more effort into it

rustic vine
timid quartz
#

HAHA

rustic vine
#

ban

spare quartz
#

WE HAVE ESP32 COMPILERS ON ALIREEEEEEEEEEE

rustic vine
#

ban them

#

please

spare quartz
#

😭

timid quartz
rustic vine
#

irrelevant languages shall not be tolerated here

spare quartz
timid quartz
#

show me.

spare quartz
#

its not even funny bro

#

we literally have a ton of embedded drivers but something as simple as cross compiling to windows is just ❌

#

hold on

timid quartz
#

based honestly

spare quartz
timid quartz
#

Actually @spare quartz show me teensy 3.5

spare quartz
#

its so infuriating

timid quartz
#

The other thing too is

timid quartz
#

Die

#

I know

spare quartz
#

bb-runtimes for everything else

timid quartz
spare quartz
#

I KNOW

#

the only people keeping ada alive is the company named after it and the GCC devs

timid quartz
#

Or esp32 for that matter

spare quartz
#

you can just make an RTS for either with bb or adl

timid quartz
#

Or I could just like

#

C

spare quartz
#

ewwwwwwwwwwwwww

timid quartz
#

Arduino.h

#

Boom

spare quartz
#

ewwwwewewewewewew

timid quartz
#

Done ez

#

0 work

spare quartz
#

or just like

#

bb-runtimes cortexm......

timid quartz
#

I have attempted to program a teensy 4.1 in rust and…

#

The library has a lot of boilerplate

#

But it worked faiiirly easily

spare quartz
timid quartz
#

It’s just more verbose

#

It took me a while to get a motor to spin but I wasn’t writing to the enable pin so that’s 100% a skill issue

spare quartz
#

please ecosystem gods.... bless us....

rustic vine
#

now do it in verilog

timid quartz
spare quartz
#

alr toolchain --select

4

timid quartz
#

But then I have to build the rts

spare quartz
#

no you dont

#

alire does that for you

timid quartz
#

or just

#

apt install gcc-avr

#

:3

spare quartz
timid quartz
#

Or use platformio

#

platformio is goated

spare quartz
#

whats platformio

timid quartz
#

idot

spare quartz
timid quartz
spare quartz
#

oh cool

#

ill save this for whenever i have money....

timid quartz
#

It’s free

spare quartz
#

yeah but boards aren't

timid quartz
#

They can be

spare quartz
#

okay how

timid quartz
#

Idk find one

spare quartz
#

im not gonna rob someone for their like

#

esp32 😭

timid quartz
#

A teensy is also like $25

spare quartz
#

thats a lot of money ...

timid quartz
#

That’s as much as a candy bar

spare quartz
#

$25???????? A CANDY BAR??

timid quartz
#

That’s like 2 weeks allowance right there

spare quartz
#

are you mad

#

i don't have allowance 😭😭

timid quartz
#

yeah cause you don’t do dishes or vacuum smh

spare quartz
#

i do......

timid quartz
#

ask for $25 then

spare quartz
#

fine ill ask for drain cleaner

timid quartz
#

Get a breadboard and a 5v supply while you’re at it

spare quartz
#

oh i actually have b

#

nevermind i don't

#

they were both destroyed

timid quartz
#

Custom voltage regulator

spare quartz
#

man i just realized

#

i've destroyed 3 rasp pi 3b+s

timid quartz
#

Criminal

spare quartz
#

no

#

just very umm

#

unsecure

timid quartz
#

My robotics team has fried so many chips so

#

I can’t judge

spare quartz
#

all of my chips were destroyed just cause they were crushed in some way or another

timid quartz
#

Anyways go back to leaking memory with your ESC or whatever

spare quartz
#

i've only fried one when i miswired an internal DP -> VGA pcb

timid quartz
#

So true actually

#

How would you even practically implement an ECS anyways

#

For something like idk Tartarus

#

Or the warhead

spare quartz
#

i dunno

#

do i look like a game dev

rustic vine
timid quartz
timid quartz
rustic vine
#

maybe I'll just explain tomorrow then lol, I gotta sleep too

#

finals coming up (its over)

rustic vine
spare quartz
#

hey

#

we do more than just like

#

mcreator slop

rustic vine
#

right...

spare quartz
#

trust...

timid quartz
spare quartz
#

@timid quartz

#

better img

#

top time is Item.Time_Stamp

#

heres it run on guardsman.exe

#

only spent 25 minutes on it

#

i skimmed over these until i have more information but i think thats good time

#

just needed a 5 hour warmup time..

spare quartz
#

kinda cool how these files have their original date

#
miko@ATProcessorMk2:~/exe$ bin/validation/exe-native -f=/mnt/c/Windows/System32/ntoskrnl.exe
1985-01-22 14:19:53
miko@ATProcessorMk2:~/exe$ bin/validation/exe-native -f=/mnt/c/Windows/System32/cmd.exe
1990-12-15 00:18:23
miko@ATProcessorMk2:~/exe$ bin/validation/exe-native -f=/mnt/c/Windows/System32/ntdll.dll
1988-05-11 11:11:15
#

some of them appear broken though

#
miko@ATProcessorMk2:~/exe$ bin/validation/exe-native -f=/mnt/c/Windows/System32/charmap.exe
2040-08-16 21:25:33
#

pretty cool how all of these files have their own offsets to the new PE data

timid quartz
#

@spare quartz smh you’re trying to compete with me

timid quartz
#

Yes you do

spare quartz
#

I think I did pretty good ao far rn…

timid quartz
#

but honestly you'll probably complete it first

spare quartz
#

blehh

timid quartz
#

idk how much of this you are wanting to read

#

cause there's

#

a lot

spare quartz
#

how much is a lot

timid quartz
#

this is after the section headers

#

which is after the optional header

#

which is after the pe header

#

which is after the dos header

spare quartz
#

:<<<

rustic vine
#

their screams fuel me

spare quartz
rustic vine
# spare quartz

still waiting for someone to make a please datastore library

#

please:save() and please:get() would be golden

spare quartz
#

Creates a thread to execute within the virtual address space of the calling process.

Reserves, commits, or changes the state of a region of pages in the virtual address space of the calling process. (VirtualAlloc)

spare quartz
spare quartz
#

and set the starting address to be the 'Address of a byte array or something

rustic vine
spare quartz
#

exe reader(/loader) to compete with aeras

rustic vine
#

just cause?

spare quartz
#

yeah

rustic vine
#

fun

spare quartz
timid quartz
spare quartz
#

yeah im only reading one

timid quartz
spare quartz
#

an Indefinite_Holder is so i can hold a "null" without needing an access type

#

.Is_Empty for the win

timid quartz
#

Though what atp fails to realize is that I don’t really care about Ada or this exe reader

#

So really I am the winner here :3

spare quartz
#

❌

timid quartz
#

✅

spare quartz
#

go back to writing guardsman in ts

timid quartz
#

I will :3

#

You go back to having to reinvent the wheel because there’s no libraries to do what you want

spare quartz
#

i will

#

and ill enjoy it

timid quartz
#

And then having no support when you run into issues because the other Ada coders are either dead or forcefully silenced by the military

spare quartz
#

mf the military funds ada compilers 😭😭

#

we're not making cancer vaccines

timid quartz
#
  • they’re probably still on Ada 95
rustic vine
# timid quartz For something like idk Tartarus

idk what that is but I can explain how I've done buttons, switches, and linking their behavior together

just to define a few things, a world is a container for entities and their components
entities are nothing special on the user side (they are typically represented as just an entity id), they are like an oop object but without any of the data, alternatively kinda like a pointer to the data
components are essentially key-value pairs, they have a name and a specific value, like a single field in an oop object

at the very start of the game, I create an entity that represents each button and add components that describe behavior to the entity, such as how long a button stays pressed for, how to animate a press, etc..

then I write a system that adds a "Clicked" tag (tags are components without a value) to an entity whenever their ClickDetector is clicked, this clicked tag is added early in the gameloop (the systems that run), then all clicked tags are cleared from the world at the end of the gameloop - the significance of this is so that I can detect the specific frame in which something is clicked

in a system that processes buttons, I can query for entities that have both the Button component and the Clicked tag, which gives me all buttons that have been clicked in this current frame, now I can do whatever I need to animate this button

the neat thing about this kind of setup is that, the button system has no dependency on anything else, it only reads the Button and Clicked components, which means to click a button without user input (say I wanted to link 2 button presses together), I can just add the clicked tag wherever and trust that it just gets properly handled by the button system

#

my fault

spare quartz
#

the military intentionally put ada in gcc as the first compiler from nyu

rustic vine
#

if I distrupted this convo lol

timid quartz
#

No it’s just ATP and me arguing that the other person is more stupid

rustic vine
#

nvm its about ada

#

I don't feel as bad anymore

spare quartz
#

Kill

rustic vine
#

😃

timid quartz
#

Yeah don’t

timid quartz
#

@spare quartz what language do I do AoC in

spare quartz
#

i dunno what language do you like

timid quartz
#

I mean rust duh

spare quartz
#

aside from ri ust :

timid quartz
#

I was thinking of maybe trying OCaml or Elixir

#

Do a little FP

spare quartz
#

ewww

#

how about you use... R

#

:3

timid quartz
#

Gross

#

I will also probably do a little Advent of Ada too

spare quartz
#

consoom

rustic vine
# rustic vine idk what that is but I can explain how I've done buttons, switches, and linking ...

I simplified the client/server stuff here because some stuff is separated there, but the code in general looks like this

-- this is a system that processes clicks
-- clicks is a queue of entities that were clicked in the current frame
for id, player in clicks do
    world:add(id, pr.Clicked)
end
-- button system
-- this queries for all entities that have both the Button and Clicked component, but without the ButtonDebounced component
for id, button, _ in world:view(
    pr.Button,
    pr.Clicked
)
:exclude(pr.ButtonDebounced) -- exclude debounced buttons
:iter() do
    world:add(id, pr.ButtonPressed) -- press buttons that were clicked
    world:add(id, pr.ButtonDebounced) -- debounce buttons that get pressed
    world:set(id, pr.ButtonPressedTime, os.clock()) -- save time that the button was pressed, so I can unpress it later
end
timid quartz
#

Stupid car

spare quartz
#

i did try to write an ecs type system for LWJGL

rustic vine
#

what in the world is lwjgl

spare quartz
#

lightweight java game library

rustic vine
#

java 😭

timid quartz
#

ATP is a Java fiend

spare quartz
#

basically a really good thick binding for OpenGL/Vulkan for any JVM lang

#

it's a little contrived (you have to use a little reflection) but i thought the ecs was pretty okay

rustic vine
#

writing a game in java must be like willingly cursing yourself

rustic vine
#

or neither

spare quartz
#

this was a while ago so i dont have the code on hand anymore

rustic vine
#

gotcha

#

sparse sets are coool

#

O(1) clear is awesome

spare quartz
#

there's things you have to worry about occassionally since it's super JNI heavy, but it's good everywhere else

rustic vine
#

well I'd expect to have to think about performance a lot more

#

LOL jni

timid quartz
#

Game pauses every 3 seconds for a GC

rustic vine
#

the java jni api in cpp is actually awful

#

theres a way to pass objects but I never do it because its so digusting to write

spare quartz
rustic vine
#

which makes it

#

at least liveable

rustic vine
#

because theres no operator overloads

#

unless you use a mutable vector api, but then that sucks for maintainability

spare quartz
#

JOMLs pretty light on memory alloc

rustic vine
#

vec.add(vec2).minus(vec3)

#

this is like

spare quartz
#

at least from what i've seen on my graphs

rustic vine
#

5 allocs

timid quartz
#

@spare quartz hurry up and finish your exe reader/loader

spare quartz
#

why....

spare quartz
#

JOML is compatible with java 1.4??????

#

tf 😭

rustic vine
timid quartz
rustic vine
#

thats really sucky

#

because objects aren't cheap

spare quartz
rustic vine
#

in a langauge where you have to use them

spare quartz
timid quartz
#

honestly I barely even care to write tons of code nowadays

timid quartz
spare quartz
#

sentenced to write a jvm in rust 🙏

timid quartz
rustic vine
#

school eating time?

#

I try to find like 10-15 minutes a day to work on something I enjoy

timid quartz
#

Yeah school eats time

#

And then when I sit down to like code or whatever

#

Just not a whole lot of energy to

#

Usually at least

rustic vine
#

do you got classes on friday

#

my friday this semester is free and its been really awesome

spare quartz
#

too much time, not spending enough of it on schoolwork

rustic vine
#

I wish

timid quartz
rustic vine
#

🙏

#

I'm hoping to move off campus for junior year

timid quartz
rustic vine
#

I was meant to move off campus this year but

#

it didn't end up happening cause

#

idk I forgot something something

rustic vine
#

roommate complications

#

install oracle today

timid quartz
rustic vine
#

GPA := 0.7

timid quartz
#

real lemme add that

rustic vine
#

walrus operator

timid quartz
#

at least you can't do

int myvar = 0;
if (myvar = 1) {
  // ...
}
rustic vine
#

wym

#

can't do in what

timid quartz
#

in ada

rustic vine
#

oh

spare quartz
timid quartz
#

I mean honestly that's really only a C/C++ problem

spare quartz
#

i don't know if i wanna trust the default 'Read...

timid quartz
#

trust it

spare quartz
#

what if it reads minor first 😓

timid quartz
#

skill issue

spare quartz
timid quartz
#

smh

spare quartz
#

not trustable

timid quartz
#

im using interfaces and im fine

#

smh

spare quartz
#

cause you're on a little endian machine

#

what if my code needs to run on like

#

powerpc big endian or something

timid quartz
#

it wont

spare quartz
#

it will

timid quartz
#

mmm nope

spare quartz
#

middle endian

timid quartz
#

modern endian

#

ancient endian

spare quartz
#

😓

timid quartz
#

I might learn how to use blender to model and texture stuff

timid quartz
#

my brain dont wanna

rustic vine
#

I took a really long break from doing luau stuff cause I just hated the platform (rblx)

#

im slowly getting back into it now because the language itself is fun to write

#

at least personally the moment I don't find myself enjoying what i work on I lose motivation for it and find it extremely hard to gain it back

spare quartz
#

linker version added

#

As we approach delivery of Visual Studio 2022 v17.9, the MSVC toolset version is 14.39. In Visual Studio 2022 version 17.10, the MSVC Toolset minor version will continue with 14.40 and continue incrementing in the ‘14.4x’ series. The file version and directories in Visual Studio v17.10 and subsequent installations will appear as follows: [VSInst...

#

except for guardsman.exe which uses v14.0

spare quartz
#

mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm

#

JVM v3 time

timid quartz
#

@spare quartz you finished?

spare quartz
timid quartz
#

ur lil exe reader

rustic vine
spare quartz
#

creator didnt appear to comment, probably editablemesh

rustic vine
#

oh I have no idea what editable meshes are

spare quartz
#

basically blender but programmatic

rustic vine
#

oh interesting

spare quartz
#

allows you to create vertexes/triangles and set UVs/colors

#

along with editableimages they're quite powerful (but scaling up becomes a challenge cause luaus performance gets in the way)

rustic vine
#

you can do some really weird/cool things with glass transparency set to >5

#

it kinda inverts the refraction calculations I think

rustic vine
#

whats slow?

spare quartz
rustic vine
#

yeah, luau is fast

#

extremely fast

#

fast enough to beat out native code sometimes

#

I wish lua caught on instead of python

spare quartz
#

the places where it's performance is capped is stuff like, say,

#

if you wanna add a psuedo screenspace shader you need to raytrace... a llloooottt

#

because roblox doesn't expose rendering buffers

rustic vine
#

Raycasts are fast

#

Or, fast enough for 99% of use cases

spare quartz
#

not en masse which is what you need for a shader

spare quartz
#

great for mouse/target occlusion obviously but here

#

¯_(ツ)_/¯

spare quartz
#

luau "running" on the gpu would be cool though...

#

honestly i wish there was a version of roblox for like

#

scratch projects

#

it's a stupidly good visualization tool sometimes

spare quartz
#

port over more of the optional header

#

and im gonna try adding loading

rustic vine
timid quartz
spare quartz
#

zero

#

it's probably editablemeshes (above)

rustic vine
#

It might be a skinned mesh too

#

Bones are extremely cheap to set transform to

#

Even cheaper than setting cframe sometimes

spare quartz
timid quartz
#

arent editablemeshes pretty expensive tho

spare quartz
#

because they gotta maintain their mobile support we don't get to have things like deferred decals

#

(which they showed off in the forums once but it was never pushed)

spare quartz
lavish dove
spare quartz
ashen pollen
#

kinda excited this will be my first year doing advent of code lol

lavish dove
#

woah I had no idea it was today

#

well toomrow

lavish dove
#

day 1 was ez

#

in the instructions, it says to take the distance between the numbers so instead of |x-y| I did x+y lmao

timid quartz
# lavish dove day 1 was ez

Yeah they go from “a baby could do this” to “this has a novel solution in a research paper published last year”

pallid loom
lavish dove
lavish dove
pallid loom
lavish dove
#

I mean it wont let me ssh into it from my pc

#

i have to use it from the website

#

lmao it says theres a incus man page and there isnt 💀

#

by this I meant like I could game on it lol

#

I think I can game on this

#

but I cant get x forwarding for any cool games

#

I remember I used to hunt for free gpu plans and play some games with those

#

Access to this service may be revoked at any time for any reason
Access to this service is solely provided to evaluate Incus
they would probably straight up ban me if they saw me reliably using it and playing games on it

timid quartz
#

@spare quartz maybe this is a sign

spare quartz
timid quartz
#

mmmaybe

#

still is stinky jvm

spare quartz
#

THE JVM IS NOT STINKY BARK BKAKTKAKRBAKKKRA

timid quartz
#

IT IS

#

ME WHEN MY APP PAUSES FOR 5 WHOLE SECONDS TO GC

spare quartz
#

no-op gc

#

:3

#

anyways NOT BEING PEDANTIC thats an issue of HotSpot

timid quartz
#

Or Azure

spare quartz
#

no i use intellijs

#

code hotswapping

timid quartz
#

IntelliGay

timid quartz
spare quartz
#

who cares

#

"memory is cheap" as the webdevs say

timid quartz
#

I have Zulu JVM installed currently hmm

spare quartz
#

🧌

timid quartz
#

or at least that's the default

#

@spare quartz is temurin any good

spare quartz
#

i dont see much use of any of the other jdks

timid quartz
#

mainly hotspot and intellij huh

spare quartz
#

everything is hotspot

#

its the reference implementation

#

but this is what i have installed if it means anything

timid quartz
#

openjdk

#

hmmm

#

ocaml, elixir, or kotlin..

#

YOU will definitely say kotlin

#

idk it does seem like a neat lang but it reeks of jvm copium

#

the repl doesn't even have up arrow support sob

spare quartz
#

Might do that idea I had a while ago

timid quartz
#

?

#

Making JVM #3?

spare quartz
#

Programming langauge

timid quartz
#

oh dewit

spare quartz
#

But making it compile for JVM bc

timid quartz
spare quartz
#

I’ve only heard of clojure

#

Not something that I’d ever use but it sounds interesting

timid quartz
spare quartz
#

but that one sounds weirder :<

timid quartz
#

Well

#

You can use just Common Lisp

spare quartz
#

What about Forth

timid quartz
#

¯_(ツ)_/¯

spare quartz
#
pe.adb:12:14: error: missing body for "Read_COFF_Characteristics" declared at pe.ads:126
pe.adb:12:14: error: missing body for "Read_Optional_Header_Windows_Subsystem" declared at pe.ads:223
pe.adb:12:14: error: missing body for "Read_DLL_Characteristics" declared at pe.ads:260
pe.adb:12:14: error: missing body for "DLL_Characteristics_Flags_Put_Image" declared at pe.ads:267
pe.adb:12:14: error: missing body for "Read_Windows_Specific_Optional_Header_64" declared at pe.ads:297
pe.adb:12:14: error: missing body for "Read_Windows_Specific_Optional_Header_32" declared at pe.ads:310
spare quartz
#

nothing i just made a ton of changes

#

thats a list of everything i need to imple

full berry
#

based linux messages cont.

spare quartz
#

it is time

#

i do real PROGRAMMING

timid quartz
#

me wanna dev qserf

#

me look at todo list

#

me dont think can do any of it

lavish dove
#

did a free trial, it immediately tries to charge me 100 bucks

#

they used to be respectable and wait until the free trial was over lmao

spare quartz
#

All I did today was submit some stupid old JVM to the Roblox spotlight thing

timid quartz
#

rip

#

meanwhile I've done 0 programming at all today

spare quartz
#

BUT I’m getting food soon

#

So maybe programming then

#

You have been issued a demerit.

spare quartz
#

@timid quartz @rustic vine

#

ignore weird crop, image I got from another server

#

it appears the events persist on players

rustic vine
#

actually, while its not surprising I feel like roblox should call destroy behind the scenes

#

not sure why they don't

spare quartz
#

maybe they’re doing memoization/caching in some way with the player object behind the scenes?

#

you’d at least expect them to disconnect all events either way

#
#

looks like docs are outdated

rustic vine
#

so I wouldn't say the docs are outdated

#

maybe its worth a mention of this opt-in setting in that section, though

#

docs are OSS so submit a pr 🙂

spare quartz
#

and mid ‘24 they’ll remove the option to opt out

rustic vine
#

early... 24?

#

its late 24 my guy

spare quartz
#

yes

rustic vine
#

where are you seeing that

spare quartz
#

that’s why I said the docs were outdated

rustic vine
#

its still opt-in

#

im 95% sure of that

spare quartz
#

wh

#

what was this deadline??

rustic vine
#

looks like they forgot

#

about the deadline

spare quartz
#

average engineers

rustic vine
#
#

ah

#

its opt-out

#

nevermind

#

its not opt-out

#

LOL

spare quartz
#

😭

spare quartz
#

maybe typing was a mistake

proud creek
#

i agree

rustic vine
#

the types aren't that bad

#

they're only bad when the typechecker is sucky

rustic vine
rustic vine
#

instead of being removed

#

(parent to nil, children not cleared, whatever else)

lavish dove
#

oh damn lol

#

that sounds more like a bug

lavish dove
#

than a feature lol

rustic vine
#

but can't be fixed without a rollout period because

#

people rely on UB

#

yay ub

lavish dove
#

fr

#

cant they just do what they did with filtering and make it so old games have to toggle it on and new ones cannot turn it off

#

so they dont stop working if they are abandoned

rustic vine
#

thats what it is

#

or well, eventually it'll be opt-out

#

which'll break whoever still relies on it and doesn't opt out

lavish dove
#

wait but opt-out would still break abandoned games

rustic vine
#

yes

lavish dove
#

bruh

#

average roblox L

rustic vine
#

🤷‍♂️

#

without breakage there is no progress

lavish dove
#

yeah but

#

they could make it so only new not abandoned things are broken lol

rustic vine
#

whats abandoned

lavish dove
#

bro

#

that welding game

rustic vine
#

not my point

lavish dove
#

anomalous a-888

rustic vine
#

im saying how do you count abandoned

lavish dove
#

developer stopped touching it, but because nothing is broken they still work

rustic vine
#

yeah how is roblox gonna count that

#

ask every developer if they've stopped touching it?

lavish dove
#

by if its old or not!!!

rustic vine
#

that doesn't work

lavish dove
#

that worked with filtering enabled

rustic vine
#

filtering had the same process

#

it was opt in, then opt out

#

then opt out was completely removed

lavish dove
#

fr??

rustic vine
#

im not sure whats different from this vs. fe

lavish dove
#

I remember fe everything old worked even after the opt out was disabled

#

because they were still opted out, as they were untouched

rustic vine
#

in 2018 FE became the default and it was made opt out

#

later, opt out was removed completely

lavish dove
#

but I remember they undid it because every single game broke

rustic vine
#

this is the same rollout cycle they do for the majority of their features

#

idk what to say

lavish dove
rustic vine
#

yeah?

#

its been that way since 2018

lavish dove
#

bruh im looking for proof

#

to support my point

#

because I vivdly remember

rustic vine
#

fumbling rn

lavish dove
#

the old iron man game worked after 2018 into 2019 when something else broke it 😭

#

and the welding game still works

#

I cant find a link to teh welding game but its from like 2013

#

and wasnt updated since like 2016

#

and still works to my knowledge

rustic vine
#

🤷‍♂️

#

not all games necessarily relied on non-fe behavior

#

it wasn't a guarantee break for everyone

lavish dove
#

wait but before fe the only way to do client <-> server was by just modifying the parts right????

rustic vine
#

not sure what you mean by that

#

pre-fe all changes on the client replicated to the server

lavish dove
#

yea

rustic vine
#

so yeah, not all games necessarily relied on that behavior

lavish dove
#

what other behavior was there?

rustic vine
#

and if they didn't and never got updated, they were never broken

#

?

#

changes on the server would still replicate to clients

lavish dove
#

yes

rustic vine
#

if you didn't rely on a client change replicating to the server (and thus other clients) then your game was not broken

lavish dove
#

wait what but didnt fe make it so that was impossible because that was the security issue

#

bro I am fumbling 💀

rustic vine
#

you've lost me

#

idk what ur talking about brah

lavish dove
#

because any change you made on client replicated to server, you could delete every part on the client and every part on the server would be deleted

rustic vine
#

yeah?

#

whats your point

lavish dove
#

fe made that impossible
so every game broke because the only way you could do client <-> server was to change something on the client that replicates immediately to the server

#

bruh nvm

rustic vine
#

dude idk what ur on about

lavish dove
#

me either

rustic vine
#

the last 2 things you said are just facts

#

theres no disagreement

lavish dove
#

wait fr?

rustic vine
#

???

#

when did I contradict what you said

lavish dove
#

then connect the dots

#

uhm

rustic vine
#

what

lavish dove
#

old games dont have filtering enabled

rustic vine
#

you're saying that you remember games that weren't updated post fe being forced still working

#

I responded with that not necessarily all games pre-fe relied on non-fe behavior

#

and if they didn't, they weren't broken

#

thats all i said

lavish dove
#

yea

rustic vine
#

ok so whats the confusion??

lavish dove
#

Its all in my head

rustic vine
#

insanity

lavish dove
#

the voices

spare quartz
spare quartz
#

okay

#

i finally know how to run exes on linux

#

unfortunately i dont know how to execute it

#

WAIT

#

THATS HOW JIT COMPILATION IS DONE

#

im so stupid

#
  • get hot function
    • iterate over instructions
    • assemble
    • optimize
    • write machine code to memory segment
    • mark as executable
    • return
  • push to stack
#

the closest i got to this in lua was essentially transpiling JVM bc -> Lua then using loadstring

#

but that's more of a footgun since loadstring disables luau optimizations iirc

spare quartz
rustic vine
#

im in the thick of it

spare quartz
#

just found my new favorite scp

#

💯💯💯💯💯💯

spare quartz
spare quartz
#
 OPTIONAL_HEADER => 
 [
  (MAGIC => PE_32_EXTENDED_ADDRESSING,
   LINKER_VERSION => v14.40,
   SIZES => 
   (CODE =>  2560000,
    DATA => 
    (INITIALIZED =>  2818048,
     UNINITIALIZED =>  4096)),
   ENTRY_POINTER =>  1213760,
   BASES => 
   (MAGIC => PE_32_EXTENDED_ADDRESSING,
    CODE =>  4096),
#

this parts done

#

now moving onto windows 64/32

spare quartz
#

windows header read

#

and with not a lot of extra work, DLLs read in full

#

now to read sections

full berry
#

atp go to bed

spare quartz
#

no im busy

full berry
#

atp..

#

how fucked up is your sleep schedule

spare quartz
#

i date a british person

#

is that enough

full berry
#

TERRY???

spare quartz
#

wha

#

no

spare quartz
#

sections done

spare quartz
#

section flag done

#

time to sleep

timid quartz
spare quartz
#

booooorinnnnng

#

Send.Fields.Replace ("Content-Length", Size'Image); ftw

spare quartz
#

🙏

#

ALL OF THEM‼️

#

COMPILER BOOTSTRAPING IS A COMMON THING

lavish dove
#

lol

spare quartz
#

time to do this

spare quartz
#

that seems to have worked

spare quartz
#

lint test:

#

食べること、ハムスター

lavish dove
#

no way

#

are you making an ime

spare quartz
#

no just sending that to troll aera rn

lavish dove
#

lol

#

i keep having trouble with page tables

#

its mostly where they are in memory

#

well its more all were they are in memory

#

cuz nothings fucking aligned

#

im trying to access phsical memory through 4 layers of abstraction because of bootloader

#

at this rate im literaly just going to make bios and then uefi boot with how crazy it is being

spare quartz
#

progress i think

spare quartz
timid quartz
#

And why are you going to eat a hamster

spare quartz
spare quartz
#

I have an ego the size of a small planet.
My name is Linus Torvalds and I am your god.
Do you pine for the days when men were men and wrote their own device drivers?
If you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.
You know you're brilliant, but maybe you'd like to understand what you did 2 weeks from now.
An infinite number of monkeys typing into GNU emacs would never make a good program.
Is "I hope you all die a painful death" too strong?
Most days I wake up thinking I'm the luckiest bastard alive.
I'm always right. This time I'm just even more right than usual.
And what's the internet without the rick-roll?

proud creek
#

hi linux

spare quartz
#

for<'a> F: FnOnce(&'a T) -> Pin<Box<dyn Future<Output = Result<U, Box<dyn Error>>> + 'a>>

spare quartz
#

Stupid !

timid quartz
#

honestly it's so bad because of async

#

that's what the whole Pin<Box<dyn Future<...>>> mess is about

#

F is a FnOnce (so a function that runs once) that has a borrowed reference to some T that lives as long as the 'a lifetime

#

This FnOnce returns a future that resolves to a Result<U, Box<dyn Error>> and the future also lives for lifetime 'a (the Box<dyn Error> just means that the error could be virtually any type of error)

#

The future is also heap-allocated and pinned to a spot in memory

#

@spare quartz boom :3

spare quartz
#

🤢

#

that'd be AT LEAST 5 package declarations in ada

#

the way it should be

timid quartz
#

rust way >>

#

we love encoding semantics directly into types

spare quartz
#

🤢

#

rustだ凄まじい

timid quartz
spare quartz
#

DAMMMIITTT

timid quartz
#

I think you meant は or が

spare quartz
#

what did I say then

timid quartz
#

uhh grammatically incorrect

spare quartz
#

well

#

literally what did I say

timid quartz
#

hold on gotta install fcitx5

timid quartz
#

so you kinda like ended a sentence and started a new one

#

it's like "Rust. Terrible." almost

spare quartz
#

Aaaaa

timid quartz
#

it's also used in a few other places but it depends

spare quartz
#

はrust凄まじい

#

?

timid quartz
#

not quite

#

but close

#

particles normally follow things rather than preceed them

spare quartz
#

I see は “indicates sentence topic,” buttttt I still need to learn placement

timid quartz
#

yes

timid quartz
#

placement normally is after the noun or whatever that is the topic

#

so

#

rustは凄まじい

#

is grammatically correct

spare quartz
#

Google translate apparently thinks I’m calling rust awesome….

#

I think they’re biased

timid quartz
#

lmao based

#

が can also be used in place of は and the meaning is largely preserved

spare quartz
#

what’s the difference

timid quartz
#

however が normally puts more emphasis on what comes before it while は puts more emphasis on what comes after

#

so it's the difference between
は -> Rust is TERRIBLE
が -> RUST is terrible

spare quartz
#

would it make sense to emphasize the indication?

#

like rust IS terrible

timid quartz
#

it depends

#

with は it's almost like you and whoever you're talking to already know what Rust is and you're stating that it's terrible
with が you and the speaker already know something is terrible and you're emphasizing that Rust is

#

it's like what's known and unknown

#

so perhaps が would be more appropriate if we were already on the topic of bad programming languages

#

it's strange and the japanese professors have said that even japanese people debate about when to use either

spare quartz
#

adaが遥かに上回るえー javascript

timid quartz
#

im not really sure what the えミ is doing there

#

but the ミ is only used for katakana

spare quartz
timid quartz
#

if you want to get the same effect with hiragana you do some shenanighans

timid quartz
#

ええと is commonly used for that

#

im sure えええ is fine too

spare quartz
#

that’s what I was trying to remember

rustic vine
#

japan somehow took chinese and made it more complicated

spare quartz
#

input directories read... just gotta resolve the RVAs

spare quartz
timid quartz
#

Don’t gotta resolve em

spare quartz
#

Yes you do

timid quartz
#

Mmm no

spare quartz
#

Mmm yes

#

Tell me what RVA means rn

timid quartz
spare quartz
#

yessss

#

which means you have to resolve it

#

dum dum

timid quartz
#

Mmm nah

spare quartz
#

you can't just Set_Index (F, RVA)...

timid quartz
#

uh

#

notlin

spare quartz
#

what.

#

that’s not kotlin you dolt

timid quartz
#

i know

#

im doing kotlin rn

spare quartz
#

uhhhhhggg

#

so dumb!!!

timid quartz
spare quartz
#

cause it’s good

timid quartz
#

nuh

#

jvm

spare quartz
#

JVM is good

#

have you even written one

timid quartz
#

nope

#

cause it's stinky

spare quartz
#

gay..

timid quartz
#

says the jvm user

spare quartz
#

while Ada beats them all

timid quartz
#

rust is second to first :3

spare quartz
#

ugh

#

YOU KNOW WHAT I MEAN

timid quartz
#

Ada isn't even on the thing

spare quartz
#

yeah cause we beat all of that

#

we got an average of 0.42s

#

but the guy who made it doesn’t know how to code….

timid quartz
spare quartz
#

LITERALLY 0TH PLACE

timid quartz
#

rust betr

spare quartz
#

I don’t have any good images to send in response to that

timid quartz
#

exactly

#

cause you know rust is peak

spare quartz
#

'a:

timid quartz
#
    fun parseInput(input: List<String>): Pair<List<Int>, List<Int>> {
        var list1 = mutableListOf<Int>()
        var list2 = mutableListOf<Int>()

        val split = input.map { it.split("   ").map(String::toInt) }
        for (row in split) {
            list1 += row[0]
            list2 += row[1]
        }

        return Pair(list1, list2)
    }

icky

spare quartz
#

your compiler taking 5 years to do hello world:

spare quartz
#

use the infix form x to y

timid quartz
#

x to y

#

wtf

#

infix form

#
(def list1 (sort
             (map Integer/parseInt
               (map first lines))))
(def list2 (sort
             (map Integer/parseInt
               (map second lines))))

❤️

spare quartz
#

🤢

rustic vine
timid quartz
spare quartz
#

well… it is a mapping

#

x to y maps to Pair(x, y)

timid quartz
#

blah

#

tuples ftw

rustic vine
#

tuples are bad instead allocate a new object with 2 fields

#

although isn't java supposed to (or already) get structs that can be pushed to the stack

#

value objects

#

I guess its not in yet

spare quartz
#

Aside from arrays I haven’t seen that in the JVMS

#

but I’m only up to code for 21

#

not 23… or whatever else they’re adding in 24

rustic vine
#

you're getting module in

#

23?

#

or was it 24?

#

idk bruh

#

import module org.whatever.whatever

spare quartz
#

please Java gods… bless us by adding more annotation field types…

rustic vine
#

ah its 23