#💽Programming Chat v2

1 messages · Page 77 of 1

rustic vine
#

types r out the window

spare quartz
#

theres exactly two attributes used there

rustic vine
#
local State = Instance.new("CFrameValue")
State.Changed:Connect(function(Delta: CFrame)
    Tweened:PivotTo(Origin * Delta)
end)```
stoooooooooooooop
spare quartz
#

one could be done better yes

#

the other doesn't matter

rustic vine
#

why do u need a cframevalue there

spare quartz
#

because you can't

#

tween a model

#

without a cframe value

rustic vine
#

ye u can

#

yes u can

spare quartz
#

i know you can

rustic vine
#

huh

spare quartz
#

but the other way is harder and brings little to no benefit here

rustic vine
#

its not

spare quartz
#

it is

rustic vine
#

how

spare quartz
#

elaborate on how you would tween a model

rustic vine
#

u just

#

PivotTo(cframe)

spare quartz
#

harry you're dumb

rustic vine
#

in a loop

#

how

rustic vine
#

its not harder

spare quartz
#

if you have tweenservice right there

#

and it does the looping for you

#

in a more customizable way

rustic vine
#

and the benefit is avoiding the creation of instances

#

cuz instances are stupid

timid quartz
spare quartz
#

you literally only create one instance

spare quartz
timid quartz
#

but u have time to reimplement the entire tcp ip stack

#

smh

spare quartz
#

OKAY CAUSE I WAS PAID TO DO THAT

rustic vine
#

yeah why not just

while task.wait() do
  model:PivotTo(cframe)
end```
#

this seems a lot easier to me

spare quartz
#

because thats linear interpolation

rustic vine
#

no instance to track

spare quartz
#

and you're still missing the ... actual interpolation logic

#

which tweenservice does for you

rustic vine
#
while task.wait() do
  model:PivotTo(TweenService:GetValue(whatever))
end```
#

now its not linear

#

yw

spare quartz
#

okay now wheres t

rustic vine
#

t is just elapsed/total

spare quartz
#

yeah but at that point you've literally just redone the entire tween machinery

#

again for little to no benefit

rustic vine
#

yea but no instances

#

and no connections

#

thats a win in my book

spare quartz
#

tumors in my brain

rustic vine
#

bruh

#

the less I have to deal with the datamodel the better

#

cuz it sucks balls

timid quartz
spare quartz
#

one is named aerasto and harry

#

the other is Segmentation fault

timid quartz
#

segmentation fault << general protection fault

spare quartz
#

shut up x86

#

EXCEPTION_ACCESS_VIOLATION my beloved

#

ugh

#

@rustic vine i hate you so much

rustic vine
#

what?

spare quartz
#

you've made the machinery appealing

#

im going to do it now

rustic vine
#

ye well

#

I TOLD U BRAH

spare quartz
#

LOOK

#

talking is a lot easier than thinking

rustic vine
#

generational hater

spare quartz
#

ZGenerational was removed in JDK 24

timid quartz
rustic vine
#

hates the ideas not cuz they're bad but cuz I proposed them

spare quartz
#

YES

rustic vine
#

actually a hater

spare quartz
#

just to elaborate

rustic vine
spare quartz
#

do closures receive the same optimizations as local functions do

timid quartz
spare quartz
#

or are they treated like global functions

timid quartz
#

next it'll be g1 removed

#

zgc was booty anyways

spare quartz
spare quartz
timid quartz
#

GO USE CLOJURE

timid quartz
#

smh

#

if u like lambdas so much

spare quartz
rustic vine
#

closures are not lambdas tho

#

I wish we had real lambdas

#

but no we get function() return 5 end instead

spare quartz
rustic vine
#

() -> 5 would be infinitely nicer

spare quartz
#

you can't go 20 lines in kotlin without a lambda

#

invokedynamic is my lord and savior

#

fym 👎

#

invokedynamic is what makes lambdas lambdas

rustic vine
#

oh ok

#

it sounded bad to me

#

so I downvoted

spare quartz
#

idk the jvms has like

rustic vine
#

vibes based downvoting

spare quartz
#

5 different ways to invoke a function

rustic vine
spare quartz
#

invokestatic, invokespecial, invokeinterface, invokevirtual, invokedynamic

rustic vine
#

u think they'll hire me

#

nvm I need a phd

spare quartz
timid quartz
#
(import '(java.net ServerSocket Socket SocketException)
        '(java.io InputStreamReader OutputStreamWriter)
        '(clojure.lang LineNumberingPushbackReader))

(defn on-thread [f]
  (doto (new Thread f) (.start)))

(defn create-server 
  "creates and returns a server socket on port, will pass the client
  socket to accept-socket on connection" 
  [accept-socket port]
    (let [ss (new ServerSocket port)]
      (on-thread #(when-not (. ss (isClosed))
                    (try (accept-socket (. ss (accept)))
                         (catch SocketException e))
                    (recur)))
      ss))

(defn repl
  "runs a repl on ins and outs until eof"
  [ins outs]
    (binding [*ns* (create-ns 'user)
              *warn-on-reflection* false
              *out* (new OutputStreamWriter outs)]
      (let [eof (new Object)
            r (new LineNumberingPushbackReader (new InputStreamReader ins))]
        (loop [e (read r false eof)]
          (when-not (= e eof)
            (prn (eval e))
            (flush)
            (recur (read r false eof)))))))

@spare quartz I bet you like this huh

spare quartz
#

i can immediately tell you i dont like the syntax

#

buuuuuuut

rustic vine
#

yup thats peak

spare quartz
#

i kinda dig the program flow

#

its pretty nice

timid quartz
spare quartz
#

the weird use of non-letters specifically

timid quartz
spare quartz
#

*ns* 'user ???

rustic vine
#

kotlin (still a jvm lang)

spare quartz
#

no

#

and since when couldn't jvm langs be functional

#

wait that is a weird sentence

timid quartz
spare quartz
#

since when...
couldn't...
be functional...

#

oh okay nvm i made that correctly

rustic vine
#

no as in

#

ur still cursed by the jvm

spare quartz
#

so

timid quartz
#

^^

#

jvm == curse

rustic vine
#

use a diff lang 👍

spare quartz
#

the jvm is my god

#

🙏

rustic vine
#

you chose the wrong god

spare quartz
#

leagues better than the lua vm

rustic vine
#

it is not

spare quartz
#

js vm is satan

#

what was i writing..

rustic vine
#

thanks I hate it

spare quartz
#

.oh right

#

my beloved...

timid quartz
# spare quartz what was i writing..

you were writing ocaml

let process_file file out_file =
  is_file_extension_valid file
  >>= fun () ->
    let file_content = read_file file |> String.trim in
    is_file_content_valid file_content
  >>= fun () ->
      let generated_content = generate file_content in
      write_to_file generated_content (Option.value out_file ~default:file)
spare quartz
#

AGAIN i like the control flow

#

unfortunately i just do not like how its written

timid quartz
#

or you were writing haskell

putTodo :: (Int, String) -> IO ()
putTodo (n, todo) = putStrLn (show n ++ ": " ++ todo)

prompt :: [String] -> IO ()
prompt todos = do
    putStrLn ""
    putStrLn "Current TODO list:"
    mapM_ putTodo (zip [0..] todos)
    command <- getLine
    interpret command todos
rustic vine
#

did you see that haskell job posting from andruil that I sent @timid quartz

spare quartz
#

the funniest part is that the flow is practically 1:1 with how kotlin does things

rustic vine
#

would u work for them

spare quartz
#

he would

rustic vine
#

oh ok

#

ethics class was useless

spare quartz
#

pretty sure all cs college students would develop missiles

#

if it meant they got a job

timid quartz
# spare quartz the funniest part is that the flow is practically 1:1 with how kotlin does thing...

or you were writing fsharp (CLR 💪)

let mutable RevenuePerItem = Map.empty<string, double * double * int>
for item in DataSeq do
    if RevenuePerItem.ContainsKey(item.AssetName) then
        RevenuePerItem <- RevenuePerItem.Change(item.AssetName, (fun oldRevenue ->
            match oldRevenue with
            | Some(value) -> Some (
                match value with
                | totalRevenue, revenuePer, purchases -> (totalRevenue + item.Revenue), revenuePer, purchases + 1
                )
            | None -> None
        ))
    else RevenuePerItem <- RevenuePerItem.Add(item.AssetName, (item.Revenue, item.Revenue, 0))
spare quartz
#

OH IVE PLAYED AROUND WITH F#

#

like .. almost a decade ago

#

i dont have any grievances with it

timid quartz
#

I played around with it to analyze qs budget data

rustic vine
#

@timid quartz

timid quartz
#

NIXOS

#

NIXOS

#

RAAAH

spare quartz
#

SHUT UP

#

UGHH

rustic vine
#

LOL

#

I knew he'd say that

timid quartz
#

IM WORKING FOR ANDURIL

#

LET'S GO

rustic vine
#

grim

spare quartz
#

AERA ON HIS WAY TO BOMB COUNTLESS CHILDREN IF IT MEANT HE COULD USE NIXOS

#

🙏

#

im ngl ive never haerd of andruil outside of nixos conversation

#

probably because the only mil contractors i know about are intel instead of whatever andruil does

#

booz allen my behated

lone sky
spare quartz
#

BOOZ ALLEN HAMILTON!!

#

NOT CHABASHIRA!!

timid quartz
#

I thought someone legit vandalized the buses but I looked it up and it's part of the marketing

spare quartz
#

i just looked at their wikipedia page and god

#

$1 billion in revenue after being founded in 2017???

#

yeah OK aera

#

cyberwarfare is better anyways

timid quartz
#

well the drones are all running nixos

#

so

#

basically cyberwarfare

spare quartz
#

guess what they're actually running though

#

ada........

timid quartz
#

nixos.

spare quartz
#

<3

timid quartz
#

WRONG

#

WRONG

lone sky
timid quartz
#

human lives are meant to be at stake, they're not running ada

spare quartz
#

LITERALLY WHAT ADA WAS DESIGNED FOR!!

#

lets be honest

#

if everything running ada rn was rewritten in rust everyone would die instantly

timid quartz
#

but drones aren't meant to protect people they're meant to kil

spare quartz
rustic vine
#

atp they are a startup

#

there is 0 chance

#

they are using

#

ada

#

anywhere

timid quartz
spare quartz
#

can we bomb them ...

rustic vine
#

no

#

all your bombs

#

run ada

spare quartz
rustic vine
#

and are out of commission

spare quartz
#

no.....

#

the only bombs i could think of that'd be out of commission are nuclear

timid quartz
#

all ur ada bombs are rotting away in silos in the middle of the mountain timezone

spare quartz
#

nah

rustic vine
#

nobody knows how to repair them because theres no documentation

spare quartz
#

all my ada jets are flying over your house

spare quartz
spare quartz
#

oh my god so much yap i havent even written my FactoryDSLFactorySemaphore

timid quartz
rustic vine
#

hmTypeError: Type function instance eq<boolean, a> depends on generic function parameters but does not appear in the function signature; this construct cannot be type-checked at this timeLuau1039

spare quartz
timid quartz
#

based

rustic vine
#

looool u still have to put strict at the top of every script

timid quartz
#

wait

#

add FunctionGenerator

#

at the end

#

becaus e it returns a function

spare quartz
#

i give up

#

test

#

okay i just exploded a few usb ports

timid quartz
#

usb killer ❤️

spare quartz
#

okay so

spare quartz
#

i have like 4 usb ports coming off a usb header right

lone sky
#

💔

spare quartz
#

accidentally spilled my mountain dew all over them

timid quartz
spare quartz
#

they're still operating even though windows complained though

rustic vine
spare quartz
rustic vine
#

cuz mountain dew is disgusting

spare quartz
#

its good

rustic vine
#

no its not

spare quartz
#

it is

timid quartz
#

ew not only are you a soda drinker

#

you're a mountain dew drinker

#

you're going to die at 21

rustic vine
#

LOL

spare quartz
#

💪

lone sky
#

@timid quartz I think I am not Fond of linux

rustic vine
spare quartz
#

    local Tweens, TweensOrigin = {}, {}
    local LocalTweenInfo = TweenInfo.new(Object:GetAttribute("TweenTime"))
    for _, Tweened in TagMap["__TweenedActivation"] do
        assert(Tweened:IsA("PVInstance"))
        local Origin = Tweened:GetPivot()
        table.insert(Tweens, TweenProducer(Tweened, LocalTweenInfo, Tweened:GetAttribute("Offset")))
        table.insert(TweensOrigin, TweenProducer(Tweened, LocalTweenInfo, CFrame.new()))
    end

    EventListener.OnClientEvent:Connect(function(Mode: boolean)
        print(Mode)
        for _, Tween in (if Mode then Tweens else TweensOrigin) do Tween() end
    end)
#

behated

rustic vine
#

don't fall for it aera

lone sky
rustic vine
#

nah wth was that

spare quartz
#

kotlin

#

accident

rustic vine
#

bait bruh

spare quartz
#

ACCIDNET

timid quartz
lone sky
#

i'm going to freebsd

timid quartz
#

LOL

rustic vine
#

low tier bait

spare quartz
#

freebsd users existing:

timid quartz
#

bro is going from an unusable desktop to no desktop

spare quartz
#

@lone sky pack it up

#

move to Plan9

timid quartz
#

no no move to redox

#

yes move to redox

spare quartz
#

WQ

#

EW

#

RUST

#

🤮

lone sky
#

actually no i'm moving to a custom OS built on rust called inte

rustic vine
#
for i, Tweened in TagMap["__TweenedActivation"] do
    assert(Tweened:IsA("PVInstance"))
    local Origin = Tweened:GetPivot()
    Tweens[i] = TweenProducer(Tweened, LocalTweenInfo, Tweened:GetAttribute("Offset")))
    TweensOrigin[i] = TweenProducer(Tweened, LocalTweenInfo, CFrame.identity)
end

@spare quartz yw

timid quartz
#

never heard of it

lone sky
rustic vine
#

there is acftually

spare quartz
#

table.insert my beloved

#

there isn't

rustic vine
#

there is

timid quartz
#

@spare quartz do I do haskell or ocaml

lone sky
#

ok so one of my is making a rust based OS

spare quartz
lone sky
#

under their group

timid quartz
#

or.......clojure idk clojure is like 500th on the list

rustic vine
timid quartz
#

only followed by kotlin and java

spare quartz
lone sky
#

they're working on the task scheduler and desktop manager as of recently

timid quartz
lone sky
#

they got drivers and boot working so far

#

along with syscalls

spare quartz
timid quartz
spare quartz
#

but only cause they're not actually deviating from anything

rustic vine
#

oppermann

#

opperheimer

timid quartz
#

we love phil opp

rustic vine
#

oppenheimer

timid quartz
spare quartz
#

move to nanokernel design..

#

godi love nanokernels..

rustic vine
#

virtual memory?? is that like download more ram

timid quartz
#

pretty much

spare quartz
rustic vine
#

thats goated

spare quartz
#

YKNOW WHAT LANGUAGE CAN TAKE ADVANTAGE OF VIRTUAL MEMORY, SUCH AS MEMORY MAPPED FILES, IN A PLATFORM AGNOSTIC WAY?

#

THATS RIGHT. JAVA AND KOTLIN

#

100 YEARS

timid quartz
#

RUST!

rustic vine
#

u know what language can't do anything without first making an object?

#

java and kotlin

spare quartz
#

LUA!

rustic vine
#

100 years

#

huh

timid quartz
# rustic vine thats goated

the gist of virutal memory is that your OS basically tricks every process on the system into thinking it has a ginormous memory space, but under the hood it backs that by managing what chunks of each process's memory are loaded into ram and swapping parts into disk as needed

rustic vine
#

wait thats some genius cooking

timid quartz
#

you also get memory isolation between processes from this too

#

because each process thinks they start at say virtual address 0x0

spare quartz
lone sky
timid quartz
#

but the os redirects it to the memory for each process

lone sky
#

they also want to implement a JVM before anything for some reason

#

😭

timid quartz
rustic vine
#

oh so this is just atp

#

in a different reality

spare quartz
#

they're not going to

timid quartz
#

UNBASED FRIEND

rustic vine
#

agree

spare quartz
#

not a useful JVM, that is

rustic vine
#

I think ur just a hater

#

where did u find that

#

I just posted that a few days ago

rustic vine
#

is this bait

spare quartz
#

and you've clearly never stepped foot in x86 ever if you think it was

#

virtual memory is so much more better dude

timid quartz
timid quartz
#

dont lecture me with your 30 dollar haircut.

spare quartz
#

AND I AM LITERALLY AN IMPLEMENTOR OF A VIRTUAL X86 CPU

lone sky
rustic vine
#

30 dollar army buzzcut

timid quartz
spare quartz
#

step down computer boy

rustic vine
#

30 dollar no hair cut

spare quartz
#

30 dollar i NEED a hair cut

#

my hair is so long

rustic vine
#

join the army

timid quartz
#

@lone sky ask if they're referencing https://os.phil-opp.com/

rustic vine
#

wait the DOD dropped a goated recruitment ad the other day I can't even lie

#

they locked in

timid quartz
#

mine is down to my shoulders

rustic vine
#

huh

spare quartz
rustic vine
#

what the

#

cut ur hair

timid quartz
#

nah

spare quartz
#

like maybe 2 inches below ... what is a good scale

rustic vine
#

why

spare quartz
#

my armpit?? i guess

timid quartz
#

WOW

#

damn your hair is long

#

congrats

rustic vine
#

wait u have arms??

spare quartz
#

its so hot 😭

rustic vine
#

ye thats what im saying

#

short hair is goated

timid quartz
#

mine unfortunately just gets thick and curls up rather than go straight down

#

I'd really want mine to just go straight down like normal hair

rustic vine
#

use a thing

#

for that

#

theres a thing for that

#

isn't there

timid quartz
#

no im not a woman

rustic vine
#

ok but its a solved problem

#

just sayin

spare quartz
#

project manager jumped into my script... its over..

timid quartz
#

UR COOKED

#

ew ac

rustic vine
#

its 2025 btw

timid quartz
#

^^

spare quartz
#

proof?

rustic vine
#

u got me

spare quartz
#

thats right

timid quartz
#

@spare quartz you should delete every reference to qs and make it auto ban any qs hrs for ac 25

spare quartz
#

i mean i can

rustic vine
#

huh

#

why not just ban everyone who joins

spare quartz
#

do you really want since you're a directorate and are kinda the authority

rustic vine
#

yup

#

he really wants

#

go for it

spare quartz
#

okay adding...

rustic vine
#

green lit

#

funding approved

spare quartz
#

wait no you'd be the authority for china

#

please select something else to ban

rustic vine
#

ban the americans

#

from playing

spare quartz
#

okay.....

rustic vine
#

thx

#

add tariffs

spare quartz
#

sorry only trump can do that

rustic vine
#

reciprocal tariffs

spare quartz
#

he invented tariffs

rustic vine
#

ye ok

#

nvm

spare quartz
#

Mode and Tweens or TweensOrigin

rustic vine
#

STOP

#

#

👎

spare quartz
#

THATS SO FUCKING FUNNY

#

THE SHORT CIRCUIT CONDITIONAL FORM

#

DOESNT HAVE A TYPE ERROR

#

BUT IF/ELSE DOES

rustic vine
#

U SUCK

lone sky
#

@timid quartz ok so i found out that she has a trello for allat

#

want me to link

spare quartz
#

AHAHAHA

rustic vine
#

TRELLO??

lone sky
#

y/N

rustic vine
#

NOTHING IS EVER GETTING DONE

spare quartz
rustic vine
#

IF U MAKE A TRELLO THATS LIKE COMMITTING TO NEVER DOING ANYTHING

spare quartz
#

i fucking love lua

rustic vine
spare quartz
#

im not actually setting it to that but i love it

rustic vine
#

no

#

I hate it

spare quartz
#

its

#

beautiful

rustic vine
#

terrible

#

nope

#

use a variable

#

like a sane person

spare quartz
#

oh my god

#

short circuit evaluation = john mccarthy eval

#

john mccarthy... ai developer...

rustic vine
#

what

spare quartz
#

x and y or z form is the original form of vibe coding

#

it all makes sense now

rustic vine
#

what is u waffling

spare quartz
#

x and y or z form is short circuit eval

#

this is vibe code

rustic vine
#

bruh

#

thats like saying I know a guy who knows a guy who knows a guy who knows a guy who knows a guy

#

I can reach anyone in the world that way

spare quartz
#
local TweenService = game:GetService("TweenService")
local function TweenProducer(Object: PVInstance, TweenInfo: TweenInfo, Destination: CFrame)
    return function()
        local Rest = Object:GetPivot()
        local T = 0
        while true do
            T += task.wait()
            local Delta = TweenService:GetValue(T / TweenInfo.Time, TweenInfo.EasingStyle, TweenInfo.EasingDirection)
            Object:PivotTo(Rest:Lerp(Destination, Delta))
            if T > TweenInfo.Time then break end
        end
        Object:PivotTo(Destination)
    end
end
#

gh

rustic vine
#

while T <= TweenInfo.Time

spare quartz
#

fair

rustic vine
#

😁

#

what does GetValue do for > 1

spare quartz
#

im pretty sure it just overshoots

#

so ill just
T = math.min(T + task.wait(), TweenInfo.Time )

rustic vine
#

welllllllll

timid quartz
spare quartz
#

me when i parameterize wrong .3004-23-

spare quartz
#

oh cmon

timid quartz
spare quartz
#

you are literally in a variable how are you not coerced

rustic vine
#

I don't believe this error is real

spare quartz
#
--!strict
local TweenService = game:GetService("TweenService")
local function TweenProducer(Object: PVInstance, TweenInfo: TweenInfo, Destination: CFrame)
    return function()
        local Rest = Object:GetPivot()
        local T = 0
        while T <= TweenInfo.Time do
            T = math.min(T + task.wait(), TweenInfo.Time)
            local Delta = TweenService:GetValue(T / TweenInfo.Time, TweenInfo.EasingStyle, TweenInfo.EasingDirection)
            Object:PivotTo(Rest:Lerp(Destination, Delta))
        end
    end
end

return function(Object: Instance, TagMap: { [string]: { Instance } })
    local EventListener = Object:WaitForChild("__TweenEvent")
    assert(EventListener:IsA("RemoteEvent"))

    local Tweens, TweensOrigin = {}, {}
    local LocalTweenInfo = TweenInfo.new(Object:GetAttribute("TweenTime"))
    for _, Tweened in TagMap["__TweenedActivation"] do
        assert(Tweened:IsA("PVInstance"))
        local Origin = Tweened:GetPivot()
        table.insert(Tweens, TweenProducer(Tweened, LocalTweenInfo, Origin * Tweened:GetAttribute("Offset")))
        table.insert(TweensOrigin, TweenProducer(Tweened, LocalTweenInfo, Origin))
    end

    EventListener.OnClientEvent:Connect(function(Mode: boolean)
        local SelectedSet = if Mode then Tweens else TweensOrigin
        for _, Tween in SelectedSet do task.spawn(Tween) end
    end)
end
#

just realized i had the beta feature on for strict on all scripts so that tags redundant

#

doesn't warn on nonstrict! whoopsies

rustic vine
#

thats not a beta feature

spare quartz
#

they integrated it??

rustic vine
#

the beta feature is nonstrict by default

#

otherwise the default is nocheck

spare quartz
#

oh

rustic vine
#

there is no strict by default beta feature

#

lol

#

thats why u use vscode

#

yw

spare quartz
#

15 9/11s

rustic vine
#

annotate ur variable

#

Array<() -> ()>

#

or {() -> ()} ig if ur a noob

#

that makes it work

spare quartz
#

空のコード候補しか受信しませんでした。

spare quartz
#

are functions just parsed weirdly

rustic vine
#

prolly cuz its old solver

#

and its a bug that just hasn't gotten fixed

#

since they've stopped working on it

spare quartz
#

lame

rustic vine
#

what is going on in that picture

#

why does it look so weird

#

the materials clash with the door I think lol

spare quartz
rustic vine
#

yea that looks

spare quartz
#

a little to the right of the shot theres a vibrating part thats unanchored

rustic vine
#

bad

spare quartz
#

but i wasn't told to build any of this

rustic vine
#

its ok I couldn't make doors for the life of me anyway

spare quartz
lone sky
spare quartz
#

guis on invisible parts 0.1 studs away from the real part 💔

#

oh i love you z buffer

#

yknow theres a whole like

#

reactor control thing in the bottom of this building

#

i sure hope they're not gonna make me code all the physics for it

#

then again i think im the only scripter for whatever this is ..

#

oh god and theres an annunciator panel.....

lone sky
#

person with pio and developer on their name we all know and love work in that group too

#

or am I on acid

spare quartz
#

idk

spare quartz
#

when you say this

#

i need you to be a little more clear

#
  • is the ada code interpreted, like it's formed into some sort of AST, then into IR?
  • or, is the ada code transpiled into lua code, then loadstringed, or something else?
  • or, are you asking me to compile the ada into machine code, and running that? (you will be doing the compiling)
rustic vine
spare quartz
#

I Saw!!!

rustic vine
#

the code too?

#

I thought it ended up being pretty clean

#

😁

spare quartz
#

i didnt see the code

rustic vine
#

tragic

#

mainly im just happy I got it working with the rest of the existing stuff

#

measure a programmer's skill by how long they can go without refactoring

spare quartz
#

i gotta ask the people of this build what model of annunciator to replicate

#

but first... clash of clans...

rustic vine
#

☑️ 2025/02/08

timid quartz
spare quartz
rustic vine
#

thats pretty mid

#

M for mid

spare quartz
timid quartz
rustic vine
#

do not elaborate on ada

spare quartz
rustic vine
#

stop using loadstring

spare quartz
#

no

rustic vine
#

huh

#

u just hate everything I say

timid quartz
spare quartz
spare quartz
timid quartz
#

hmmm

rustic vine
spare quartz
#

with what though

timid quartz
#

Lemme ask

rustic vine
#

or are u apprehensive about the workflow 😅

spare quartz
#

i feel like you and ricard are doing well enough

spare quartz
rustic vine
#

rlly?

#

actually

timid quartz
#

Ok ATP

rustic vine
#

nvm

#

theres lots to hate

#

I agree

timid quartz
#

Terry says only in an Ada VM in Roblox

rustic vine
#

ada vm??

#

I thought ada was compiled

spare quartz
#

explaining how it all worked helped but it's a whole other paradigm i gotta make my brain code in

spare quartz
timid quartz
#

I will also accept compiling Ada to x86 and running the x86 code on a simulated CPU

rustic vine
#

loool

#

the workflow will get significantly simpler (cuts out the string require tools) at some point

timid quartz
rustic vine
#

when I have the time to do it

#

nvm I have the time im just lazy

#

nvm I don't have the time

spare quartz
#

compared to the breadmod x86 cpu though its a lot less sophisticated

#

h,mm

#

what is the syntax for multiline strings in lua again...

#

""" i think?

#

or [[?

timid quartz
#

[[

spare quartz
#

good enough of a base

#

i think i'll just write the parser off what i see instead of relying on the RM for now

#

deltarune in 5 days..

#

@rustic vine btw i wanna ask

#

so loadstring is one of those functions that causes the luau vm to abort a lot of optimizations right

#

in your opinion... do you think a VM over luau would be faster than transpiled+loadstringed lua code

#

AST -> IR [exec] -> Lua [out] instead of AST -> Lua [exec; out] directly would probably be a better pipeline anyways

rustic vine
#

it doesn't have to be in my opinion

#

it is

#

it is faster

#

thats why they exist

spare quartz
#

ill probably run a benchmark when i have simple IR

#

horrible

#

the TLVs will never escape my mind..

rustic vine
spare quartz
#

except for the "" part i need to keep writing

#

so many already

rustic vine
#

also u can do

type A =
  | "A"
  | "B"
  | "C"```
timid quartz
rustic vine
#

tbh tho none of this typechecks very well on the old solver

spare quartz
#

should i use the new solver

rustic vine
#

string literals I mean

#

give it a try

#

u might like it u might not

#

it fixes some things and it lacks in other areas

spare quartz
#

yeah its already mad about the strings

proud creek
spare quartz
#

ive never made an ast parser before

#

so ill probably die

spare quartz
rustic vine
spare quartz
rustic vine
#

you have to do

"STRING_LITERAL" :: "STRING_LITERAL"
spare quartz
#

eugh

rustic vine
#

otherwise it will assume string type

spare quartz
#

OH

spare quartz
#

this video just reminded me of this thing

#

need to work on it more

timid quartz
spare quartz
#

WHY

#

ive got no idea what an ast even looks like

#

so take everything im about to write with some grain of salt

timid quartz
spare quartz
#

burn

#
Ada.Text_IO Package
   Put_Line Name
( FUNCTION_CALL
 Dummy     Name
 'Image    Attribute ATTRIBUTE_EVALUATION
      &    CONCATENATION
 "... log" LITERAL 
)
timid quartz
#

make an LL(1) parser :3

spare quartz
#

idk what that is

timid quartz
#

Goog it

spare quartz
#

no

#

okay..

timid quartz
#

GOOG

spare quartz
#

this is my approximation of it... now to parse.

timid quartz
#

tbh if/when I get around to the Ada LSP and having to semantically analyze Ada I may have to implement a parser for it

#

and I may do LL(1)

#

although making an LL(1) grammar that matches Ada may be hellish

spare quartz
#

you're saying a lot of terms idont know about

#

and this isnt helpful

timid quartz
spare quartz
#

Tag = "LITERAL"
Of = "Standard.Integer"
is effectively a contant pool entry

timid quartz
#

HAHAHA ATP IT'S STORMING

spare quartz
#

i hope your power lines get struck by lightning and your computer gets destroyed.

timid quartz
#

laptop :3

spare quartz
#

i hope your house goes out of power.

timid quartz
#

hotel :3

spare quartz
#

i hope your hotel gets BOMBED!!!

#

GRAAAHHH

#

anyways let me think

timid quartz
# spare quartz

so the gist of an LL(1) parser (that uses an LL(1) grammar) is this

your parser looks at your code from top to bottom, left to right, and it looks at it one token at a time

consider a simple string 1 + 2 + 3 and we want to parse it

first we need an LL(1) grammar, which is a grammar that won't cause issues with an LL(1) parser. specifically it needs to not have left-recursion -- something that's left recursive would be like expr ::= expr ; (semicolon is a literal) but you can see how this would keep recursing infinitely as it tries to parse one token at a time

our LL(1) grammar could look like this

start ::= num + expr eof
expr ::= num + expr

and using that grammar we can make a parser

spare quartz
#

ohhh

#

            {
                Tag = "VARIABLE_DECLARATION",
                Name = "Dummy",
                Type = {
                    Tag = "LITERAL",
                    Of = "Dummy"
                }
            }
timid quartz
#

(num is also a literal number that youd match with regex)

spare quartz
#

spoopy

#

better filtering

timid quartz
spare quartz
#

no.

timid quartz
#

"ob"?

#

like "obv"?

spare quartz
timid quartz
#

like "obviously"?

spare quartz
#

ggh

timid quartz
#

you're so right

spare quartz
lone sky
timid quartz
#

ada might have a reference grammar?

spare quartz
#

whats that mean

#

procedure Main is...

#

okay i made the new solver angry

timid quartz
#

alraedy

spare quartz
#

ough

timid quartz
#

rotting rot

spare quartz
#

hmm

#

need to figure out how to add "context"

timid quartz
spare quartz
#

Parse(Source) -> procedure -> DECLARATIVE REGION ->
Literal : Literal (:= Literal);

#

-> begins -> EXECUTIVE REGION

spare quartz
timid quartz
#

french?????

#

oh hell naw

spare quartz
#

mwahhahaha

#

making it pedantic too

lone sky
spare quartz
#

check that out

snow oak
#

i could smell the strict type checking from miles away

spare quartz
#

parsing the executive now

timid quartz
spare quartz
#

I just got on bed so what

timid quartz
spare quartz
#

Rn I just gotta figure out how to do this part

#

(X’Image & “…”)

lone sky
spare quartz
#

A2 = ‘ > A1 = EVAL (A1 A2)
ReadToken() < A2

#

@timid quartz remember this for me ^^ thx

timid quartz
lone sky
#

he's cute

#

idc aera

timid quartz
spare quartz
#

It is pretty easy to parse yeah

#

The executive still contains variable* assignments though, which I’ll probably just handle by checking NextToken like :=

timid quartz
spare quartz
#

Official Flowey Business

#

Chiharu parser

timid quartz
#

encrypt data using that as your key

#

go

spare quartz
#

How

timid quartz
#

uh magic

spare quartz
#

ImageMagick? External dependency

spare quartz
lone sky
timid quartz
# spare quartz How

Use your jpg parser to get some kind of raw data then use math like RSA does and encrypt idk

spare quartz
#

RSA sucks though

#

I’d use an EC key but

#

The number you could create from an image would be unimaginably huge

#

And would probably take an infeasible amount of time for encryption or decryption

#

Ugh can’t sleep

timid quartz
#

yknow

#

I wonder how

#

if you have an elf executable

#

how tf can you take that and write a fs image that you could boot off of

spare quartz
#

wdym

timid quartz
#

like @lone sky's friend is making an os in rust

#

and i get compiling your rust kernel to a freestanding elf

#

but then taking that elf and creating some kind of image

#

that you could say boot with qemu

#

vexes me

spare quartz
#

bootstrap assembly

#

lemme get an example

#

this isnt a complete example but its the bootstrap used in breadmod

#

its loaded onto an ISO along with the kernel elf

timid quartz
#

no but the uh

timid quartz
#

I get the bootstrap

#

but taking your boot loader + kernel and placing it on a disk image

#

.img or .iso or .wahtever

spare quartz
#

are you looking for a command

#

or the technical description

timid quartz
#

maybe the description

spare quartz
#

excerpt from our disk loader

timid quartz
#

el torito

spare quartz
#

and lemme get the second part of that

lone sky
spare quartz
#

its inside the IA32 BIOS

lone sky
#

they also wrote some assembly for specific shit

#

i don't remember what parts for but they did

spare quartz
#

the EL TORITO segment is used to find where:

  • in the disc, where the actual part to load is (the bootstrap asm, here)
  • in the physical memory, where to load to
timid quartz
#

like for example

#

my os class

#

the os they gave us to hack on

#

has a thing in tools/ called mkfs.c

#

that builds the fs image

spare quartz
#

we have that in breadmod too

#
#!/usr/bin/env bash
cd bootloader
nasm ./fs/boot/loader.asm -Ov
unix2dos ./fs/splash.txt
mkisofs -input-charset UTF-8 -boot-load-seg 0x0000050 -R -J -c boot/bootcat -b boot/loader -no-emul-boot -boot-load-size 4 -o bootable.iso ./fs/
qemu-system-i386 -cdrom ./bootable.iso -s -m 5M
timid quartz
#

mkisofs

spare quartz
#

uh huh

#

the -boot-load-seg / -no-emul-boot / -boot-load-size are all pertinent to EL TORITO

timid quartz
#

el dorito

lone sky
timid quartz
#

sounds like smth you'd enjoy

timid quartz
spare quartz
#

we're not

#

thats a text file

timid quartz
#

but mkisoimg

#

external...

spare quartz
#

its a text file

timid quartz
#

you could write it yourself...

spare quartz
#

i dunno what to tell you

timid quartz
#

YOU COULD WRIT EIT YOURSELF

spare quartz
#

i did write it myself

#

its a text file

lone sky
# lone sky

ok nvm it has nothing to do with the boot process @timid quartz

timid quartz
#

no but the actual

spare quartz
#

what boot loader do they use unfunnylad

timid quartz
#

you're calling the command mkisofs

spare quartz
#

its a text file aera

lone sky
#

it's custom

timid quartz
#

?? wh

lone sky
#

fully homegrown

#

organic

#

kosher certified

timid quartz
#

mkisofs is an executable atp

spare quartz
#

its a text file aera

#

i dont know what to tell you

timid quartz
#

how tf is it a text file

spare quartz
#

its a text file

timid quartz
#

next you're gonna tell me cd is a text file

spare quartz
#

no external dependencies here

rustic vine
#

why make os when windows do trick? 😁

timid quartz
#

IM

#

:SLKDJF

spare quartz
#

its a text file aera

rustic vine
#

we don't like those here

timid quartz
spare quartz
#

text file

timid quartz
rustic vine
#

thou shall not use an external dependency

spare quartz
#

its a text file

timid quartz
rustic vine
#

CMakeLists.txt

spare quartz
#

no

timid quartz
#

and it runs mkisofs

spare quartz
timid quartz
#

and you did not write mkisofs

spare quartz
#

its a text file

#

you ever say something so much you think it doesnt sound real

rustic vine
timid quartz
#

your shell script is a text file yes

#

and you wrote it

#

but

spare quartz
#

its a text file

timid quartz
#

your shell script text file

#

uses other things

#

that are external dependencies

spare quartz
#

nah

timid quartz
#

yes

timid quartz
#

go write mkisofs yourself

spare quartz
#

it's mainly just a comfort thing

timid quartz
#

go write cd yourself

spare quartz
#

we already have mkisofs

#

but to run it we'd need to run breadmod along with it too

timid quartz
#

go write unix2dos yourself

spare quartz
#

we have that yes

rustic vine
#

damn bruh u guys are nerds

rustic vine
#

I give up

spare quartz
timid quartz
#

ok then use that

#

smh

spare quartz
#

we'd need to run minecraft to compile our system though!

spare quartz
timid quartz
#

nah

spare quartz
#

its a mod file

spare quartz
#

btw

#

ISO is such a dense format

#

can you believe like no program actually uses any of these fields

timid quartz
#

i could make...

#

fs.img file

#

and write fat32 structures into it

spare quartz
#

fatty

timid quartz
#

seems so clamplicated

lone sky
#

think about it, aerasto and miko.

#

why can't we live in a perfect world

#

where there is ZERO kernel-level anticheats

spare quartz
#

mbmbmbbm

#

need to figure out how to handle this cleanly.....

timid quartz
#

when you could just use windows and be happy

lone sky
#

im just saying

timid quartz
#

ok welllll

#

you could still just use windows and be happy

pastel tinsel
rustic vine
spare quartz
#

魔魔魔⭐︎マジカル

#

OK

#

my first complete AST

#

some messages too..

#

okay now to make a VM

timid quartz
spare quartz
timid quartz
#

この広い世界へ旅だそーーーーー

spare quartz
#

pain

timid quartz
spare quartz
#

恋色病棟

#

恋 love
色 color
病棟 hospital ward

#

some liberty... love-colored hospital

timid quartz
#

uhhh

#

that last kanji doesn't look like 棟

#

it looks like

#

spare quartz
#

so take that as you will

timid quartz
#

I also don't really know what コメクイ means

timid quartz
spare quartz
#

(probably)

timid quartz
#

stupid balding dog

spare quartz
#

NOT BALD..

#

I THINK..

timid quartz
#

LOOKS BALD TO ME

spare quartz
#

i still suck at katakana so i cant tell you the right one but

timid quartz
#

oh. it could be a ユ

spare quartz
#

yeah

timid quartz
#

(yu)

#

ugh the stupid little

#

thing

#

on the right

#

bad font

spare quartz
#

what if its handdrawn

timid quartz
#

bad drawing

spare quartz
#

you

timid quartz
#

but then like

#

ゆめ - dream?
くい - eat?

#

EATING DREAMS???

spare quartz
#

😭

timid quartz
#

DREAM EATER???

spare quartz
timid quartz
#

reverie eater

#

makes sense

spare quartz
timid quartz
#

reverie, dream

#

yeah

#

SHES EATING DREAMS

spare quartz
#

no wonder i barely dream!!!

timid quartz
#

basically like this lady

spare quartz
timid quartz
#

damn

#

yeah you would tho

#

true statement

spare quartz
#

ngl

#

the place coraline lives at is sick

#

its cloudy and foggy 24/7

#

my type of weather

#

(except for the being in the middle of a random ass forest and having a death hole)

timid quartz
#

sentenced to constant 95 degrees 70% humidity

spare quartz
#

AUGGHGHHH