#💽Programming Chat v2
1 messages · Page 31 of 1
Ada is an L lang
Yeah rust is a W lang
L for Luigi, the inferior side character
Always living in the shadow of something better
What if I petition Mr Trump to get rid of Ada
ada is multinational so that doesnt matter
we got offices in paris
and our specification is with russia and the french
Ew Russia 🤢
shh
Psyop language
😭
I bet you’re a KGB agent
Go is good
go for gohome..
Stop using your dead boomer fakelang and modernize
i do taht with kotlin 💔
cause its good
and still maintained
they updated the copyrights on the github to 2025
Checkmate liberal
Trump unveiling more ada*
he probably doesn't even know we exist 😭😭
Also ur program was literally leaking memory
ゴー・トゥ・大都会 / coverばびお【歌ってみた】
CAUSE OF ACCESS TYPES
you don't even have a parallel to tehm 😭
We also have zero cost abstractions 🤑
WE DO TOO
Nuh uh
I mean references
attributes!!! !!!
references are a super generic thing in ada
those are 100% automated by the compiler
You don’t understand what a zero cost abstraction is
i mean discrete pointers
what is a zero cost abstraction then
because a functional attribute is quite literally what you're about to say
Basically any way that you could write code doesn’t have an impact on speed
No!!
So like for example
In JavaScript, Array.map could perform differently than doing a for loop
But in Rust, both .map and a for loop compile to the same stuff
So it’s literally 0 cost
yes we have that
Nuh uh
Also ur threading model is weird af
counterpoint
rust is for use by gay femboys
ada is for use by chad 80 year old devs
Counter counterpoint
Ada is for use by geriatric old geezers who don’t understand how to navigate Facebook on their magic handheld bricks (their phones)
😭
Rust is for use by modern gigachads who want low level control and performance with high level abstractions and memory management
Typical ada user ^
based
Cringe
idk
tell me how you can set an array anywhere in memory as rust
and have indexing/setting work perfectly
with full representation definability
Idk what the last part means but lemme pull smth up rq
array (1 .. 10) of Representation_Claused_Record_With_10_Bits_Per
'Size => 100
use crate::gba::Color;
use crate::VID;
const START_DMA_ADDR: *mut usize = 0x04_000_0B0 as _;
const DMA_DST_INC: usize = 0 << 21;
const DMA_SRC_FXD: usize = 2 << 23;
const DMA_ON: usize = 1 << 31;
pub enum DmaChannel {
ONE = 1,
TWO = 2,
THREE = 3,
}
pub struct DmaController {
src: *mut usize,
dst: *mut usize,
cnt: *mut usize,
}
impl DmaController {
pub unsafe fn new(channel: DmaChannel) -> Self {
let base_address = (START_DMA_ADDR).add(channel as usize);
Self {
src: base_address,
dst: base_address.add(1),
cnt: base_address.add(2),
}
}
pub unsafe fn draw_rect(
&mut self,
row: isize,
col: isize,
width: usize,
height: usize,
color: Color,
) {
let color_as_usize = color as usize;
let color_addr = core::ptr::addr_of!(color_as_usize) as usize;
for current_row in 0..height {
self.src.write_volatile(color_addr);
self.dst
.write_volatile(VID.add(240 * (current_row + row as usize) + col as usize) as _);
self.cnt
.write_volatile(width | DMA_ON | DMA_DST_INC | DMA_SRC_FXD);
}
}
#[inline]
pub unsafe fn draw_square_asm(&self, row: usize, col: usize, size: usize, color: Color) {
for current_row in 0..size {
core::arch::asm! {
"str {in_addr}, [{src}]",
"str {out_addr}, [{dst}]",
"str {ctl}, [{cnt}]",
in_addr = in(reg) &color,
out_addr = in(reg) VID.add(240 * (row + current_row) + col),
ctl = in(reg) size | DMA_ON | DMA_DST_INC | DMA_SRC_FXD,
src = in(reg) self.src,
dst = in(reg) self.dst,
cnt = in(reg) self.cnt
};
}
}
}
this is for the dma controller on a gameboy advance
and the dma control registers are an array
yeah you see
we don't have to do this part
we can just define an array to be at some System.Address with AOP
and use standard indexing
I mean what I've done here is basically that
type DMA_Record is record
Something : Integer;
end DMA_Record with Size => 32;
DMA : array (0 .. 3) of DMA_Record with Address => 16#040000B0#, Size => 128;
of course this isnt a perfect parallel to what you're doing
it's 0..3
not 1..10
fixed
I wonder if ada could compile for a gba
(generally you also dont make anonymous array types like that either, but just for simplicity..)
the rust target is thumbv4t-none-eabi
so
figure it out
armv7 iirc
unsure, you might need your own RTS for that; but one of the arm compilers could do it
this example wouldn't need an (advanced) RTS though
cringe imagine not already having this
okay well
I know uh
arm-none-eabi-gcc is what you use for C
unlike rust that has thousands of crustaceans
@spare quartz
if that could
idk
it'd probably work but again you'd need to build an RTS that would support more advanced features
cringeeee
cause i dont imagine just having the bare dma does anything
I mean in rust it's done with #[no_std] anyways
it might work
ur lang stupid
up until you use something not generic like uh
a file operation
then itll yell at you about missing a linker thing
then something simple would work
if you need to print something to screen though youll need to redefine the RTS for put_line though since
that uses a file descriptor on all desktops
oh u know how u do that on gba?
?
write directly to the vid buffer 
CGA textmode coded 💪
like the draw_rect and draw_square_asm functions
are literally just using dma to write to the vid buffer
heres how i write to the text buffer on x86
stdlib
who wrote the code for stdlib though
the person who made the runtime for the gba?
sigh
bruh
I deleted
everything
started from scratch
its still not reading the sectors
so fucking frustrating
The rust stdlib writers
Duhh
And whoever had to make platform specific code for thumbv4
ATP you forget I don’t use any stdlib on the gba
your println is like me showing you an Ada.Text_IO.Put_Line in my kernel
sure it works but
thats not what im looking at!!!!
ur lang is just stupid it’s ok
I’m going to kill you with crustaceans
They will swarm out of the ocean and snip you to shreds
聴いた瞬間一目惚れソング!
みんなもハマろうね
【日本語版】热爱105°C的你(熱愛105℃の君へ)
■vocal, MV, illustrator : ばやちゃお
■mix:kzmari
▼ばやちゃおTwitter
https://twitter.com/BAYACHAO
▼お仕事のご連絡
[email protected]
▼魔けモン!Web
https://bayachao.wixsite.com/makemon
#热爱105°C的你 #歌ってみた #かわいい #winD
cant wait for 99% of them to fail cause your lang is smelly
Can’t wait for all your forks to fall apart because they’re so old and rusty
Rusty 💪
🤢
friend sent me their project with nodemodules
worst mistake of my life opening it
:Sob:
Does your lang even treat functions as first class citizens
sorta
they need to be wrapped in an access type
applicable attribues can be used on them though
like
Put_Line'Address
what're those
@lyric mesa and @wheat zinc would agree that rust is superior
what is an fn once .. .. .
It’s exactly what it sounds like
Instances of FnOnce can be called, but might not be callable multiple times. Because of this, if the only thing known about a type is that it implements FnOnce, it can only be called once.
👎
👍
use rust more
you'll see why it's better
write uhm...........write the ftp server in rust
In Ada 2022, you can define string, integer, or real literals for your types. The compiler will convert such literals to your type at run time using a function you provide. To do so, specify one or more new aspects:
huh
cool
I need to add role binds to shield...
imagine having a ""reference"" ""manual""
rust is just so much better....
no u
yes but
people can also use GHS or HP solutions
GHS is for like, fighter jets and crap
if you had ada that emoji would've existed
but alas...
IMAGINE needing such a warning statement
imagine NOT HAVING such a statement
cause you have NO docs or resources
our language is so safe we dont need it 😎
the Unchecked_ functions in question
well actually
there is an entire legal section in the rm
but you dont need to worry about htat ...
❌
I think we're just gonna have to agree to disagree
()((which means i win, obviously())
yeah ok sure
cause my lang is just better
go back to your lang being infected with nodejsification
go back to your community oh wait you don't have one
:<
i fail to see what ada can do for me that rust cant
i fail to see what rust can do for me that ada cant
automatic memory management of all types :3
explain why you need box::leak
idfk
😭
if you really wanna leak it ig
we
literally had it just after C++
we had it before you were a lang
😭
how do you think every type is automatically cleaned up
anyways we do have auto management of access types (as defined by the implementor), since you can just shove them in a Controlled type which'll clean up when out of scope
sometimes you dont want that though and just defer it to the users discretion
the page is an interesting read but the examples are contrived
i don't like the way it's written but i can see that yeah
mostly idk when you'd ever mem::forget
This can be solved by just checking the ref_count and doing something. The standard library's stance is to just abort, because your program has become horribly degenerate. Also oh my gosh it's such a ridiculous corner case.
and if you're gonna mem::forget you probably already know what that's doing and have taken appropriate precautions

ugh why is ada so stupid...
ur lang is literally for boomers
write a rust program that scrapes bayachao art
do it do it do it
ruining the economy and then blaming us
true
e
it really is to me
Ada is annoying to write in
you need to study the rm more
you could've said i needd to study the rust manaul too 🙏 cause thats what you need to do 🙏
ok but
you do need to study the rust manual
well actually
what I said was "you need to learn rust first"
and you saw where you got by not doing that
but I ""learned"" ada and got further
okay but
you dont need to learn the full semantics of ada unlike rust to write something in it
your program wont be the best and will probably be '05 code but
res, err := fn_call()
if err != nil {
// do whatever
}
banned
try-catch gross
だいすこソングを歌いました2。
椎名林檎はカプチーノとおいしい季節が好きです🍎
▼お仕事のご連絡
[email protected]
▼ばやちゃおTwitter
https://twitter.com/BAYACHAO
▼魔けモン!Web
https://bayachao.wixsite.com/makemon
try {
someStupidFunc()
} catch (Exception e) {
// do stupid
}
I hate this syntax
with all my heart
yeah well we already had a conv on it ... and my philosophy is better 🏆
i am infallible
errors as values are so much better
hold on
even zig does it better
try potentially_bad_fn();
fn doAThing(str: []u8) void {
const number = parseU64(str, 10) catch 13;
_ = number; // ...
}
like
that's decent
that's manageable
imagine having to introduce more nesting
all of our variables are excellently defined
and we dont gotta do the crap you guys do with sharing references
imagine it not being explicit whether your passing by value or by reference
procedure Bad is
Is_This_Bad : Boolean := true;
begin
-- ...
declare
This_Is_Worse : Boolean := true;
begin
-- ...
end;
-- ...
end Bad;
This_Is_Worse will never be used outside its specified block
this is true BUT what if the programmer wants to pass by reference
perfect use
theres two ways
heap allocation: pass an access
direct access: pass a System.Address / aliased
but generally just out the variable
fn good() {
let this_is_good = true;
// ...
{
let this_is_better = true;
// ...
}
// ...
}
🤢
although honestly the most useful thing for that syntax is to scope drops
we all know a programmer would just not do that for sake of being clean
so like
fn whatever() {
// ...
{
let temp_thing = get_temp_thing();
temp_thing.do_whatever();
} // auto dropped at end of scope
// ...
}
and for the sake of being clean nobody would ever use declare
maybe have a better lang next time...
yeah we dont even need anything like that
poor package mgmt
you just overload the operator
ewww
and because in order to even use A and B
you have to import them
it just comes with
you must qualify A and B without a package wide use which is why use type is useful...
impl std::ops::Add<B> for A
what about gotos
gotos?
gotos considered unsafe -dijkstra
worst advice ever
'label: loop {
// ...
break 'label;
}
@spare quartz
i'm looking at guardsman code 😭
tell them to stop rping in code
i see
we have two different kinds of literals for labels
<<gotolabel>>
blocklabel :
aera die i saw that
no.
I bet spark doesnt support gotos
what are you guys talking about
how rust is better than ada
did atp uncover another us military programming language
just not backwarsd gotos
no, we just had a tiny tangent about SPARK which is the ultra-safe version of ada
it is the safest language
dude i've been doing the uh rustrover interactive things its not that bad
or maybe i just havent gotten to the hard part yet i have noc lue
for now a lot of things are similar to like js and ts
see it's good atp
no.
terrible ^
bro you're a js "programmer"
as if a dyslexic person wrote it
i do not wanna hear it
is the best way i can put it
gotos considered unsafe -dijkstra
die
:3
i know the report
dude rust is hideous
it looks worse than python
wait
rust is beautiful
astro
no
eheheheheheheheh
ive only seen the back of your desk and i wish i ddint
LOL
go talk to ben to get you on the payroll
i hate sysadmins
where's that one image
🤢
ur lang ugly
dude this isnt even that bad from the looks of it
@timid quartz ok but if rust is so amazing you have to rescript qdf helper from ts to rust
or kotlin 
That’s a massive undertaking
why lol
And it’s not getting open sourced cause ik you’d just fork the repo and rebrand it
no atp
ouch!
i am never going to script a bot in rust or kotlin though
id rather get run over by a bus, as much as i like rust
Rust better
but w-w-w-whatif it
were in... a...
no
wait isnt the idea of forking cloning the repo and making your own adjustments while adhering to the og license
So split_once() splits a string into two strings, the .unwrap() is necessary because split_once() returns an option, and the .1 gets the right side of the split
oh
Not when you remove credit
what where
if its that cfa thing i dont maintain that and it's not based on guardsman

I forget exactly how but it’s trying to get the ESMTP options to give to parse_opt_str
man i just got a bad headcahe
Coding time
mmmrow
dooo it in ruuuust
元気のない時に聞くと落ち着くだいすきな曲。
■本家様 : https://www.youtube.com/watch?v=Scu5zZ0M4Cs
■Music, lyrics : Cocco
■vocal, MV,MIX : ばやちゃお
即興収録なのでMIXは己です!
▼音源お借りしました
https://www.youtube.com/watch?v=_4r2N1TgPhY
#強く儚い者たち #歌ってみた
▼お仕事のご連絡
[email protected]
▼ばやちゃおTwitter
https://twitter.com/BA...
figure out how to fix video playback for me
hmm deepseek says that discord doesn't play videos from an http link
but it says you should have uh
content-type: video/whatever
accept-ranges: bytes
ok now try serving from an https domain
couldn't find shit on google
siiiiighhh
will try after helping in a it
i trust deepseek with my life
絵を描く時、キャラクターを作る時、いつもそばで寄り添ってくれたのも
絵が上手くなりたくて苦しみもがいた時、心無い言葉に挫けた時、ずっとそばで励ましてくれたのも
OSTERさんの作る楽曲の数々でした
幼い頃から今日まで創作を続けてこられ、そんなOSTERさんに自創作のテーマソングを書き下ろしていただけて
今では隣で笑いあえて
幸せでいっぱいです
11/24 OSTERさん、お誕生日おめでとうございます!!
ラブラドライト5周年も兼ねて少し早めにお祝いさせていただきました!
▼【OSTER project】ラブラドライ...
tell it to summarize this video
hmm
i wanna see if this is possible with my server
update my computer isnt receiving a cnnect :<
oh i see
my phone was on the paernt network
it works locally!!
okay umm
im gonna use a binding to openssh
cause making tls is hard rn
LOL
updaet its forcing me to use linux
i hate c
74 tabs

月 - month
日 - day
yeah i figured that out
日 is also an abbreviation for sunday
the (日)-
im finishing the game rn
and then thats for year
12月31日 is a very special day indeed
fuck no way its december
Laaaame
Only if you use rust instead of Ada for another project :3
Tough luck then
Yall don’t even have a mascot
I’ll commission bayachao to kill you
you fr
?av @spare quartz
Not a mascot
we also have this
Get rekt
ada lovelace 💪
More like Ada LAMElace
we also have this
cmonnnn just use rust
That fuckin bird that I hate
they made the fucking bird a redditor 💔
That fuckin bird that I hate
dashiegames that fucking bird that I hate meme
original: https://youtu.be/8senhSRPMFI
The sequel: https://youtu.be/AkYIwHZ5Ax4?si=pC8na_38eTU8kX6a
to this day
i dunno if this inspired the DISA logo, or was made from inspiration frrom the DISA logo
DISA being the only good govt agency
i bet your language creator didnt look as cool as him
I bet your language wasn’t left behind- oh wait
LEFT BEHIND
FYM CAMBRIAN EXPLOSION
WE EXISTED DECADES BEFORE D AND OCAML
WE WERE A DOD PROJECT 😭
And now the DOD is moving to rust :3
mhm….but tractor
thats a darpa project dummy
well the internet used to be a darpa project
Just admit rust better
But now rust does things urs can’t
Like…automatic memory management of non stack allocated types
ugh i hate firefox
okay go on
whats your second point
What is this a virus
and reminder
Having good type semantics
you have to knee cap yourself to do that
Rust does not do this
tell me how to define a type with a predicate, such as always being even
yes you do
borrow checker
The borrow checker is a tool smh
a gun to your knees more like
You just enforce that in the new() method that you create
new()???
you have to write a constructor for it???????
we encode the semantics of a type much better than you do
you're great at encoding the logic in though i will admit
but again in ada access types are effectively your Rcs
99% of what you'll be doing is on the stack/sec. sta. (i.e. in GNAT)
an access type is something you can easily track down and free up if its a major concern
I mean not for generic bound and whatever but
but... in totality...
there's practically nothing you can't do in ada you can in rust
Mmm except be better
the procedural macros are the only one thing i can think of that you guys have that is pretty cool
uuuunforuntately in ada 2022 we got a facility for that too
Forgot about macros
Bet it sucks
whatever you code them to be i suppose
memory of a rust programmer
yknow what we have in ada though
aspect-oriented programming
try and beat that
That’s not really a macro
No because oop SUCKSSSSS
its the closest parallel
Ok what is it then
In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding behavior to existing code (an advice) without modifying the code, instead separately specifying which code is modified via a "pointcut" specification, such as "log a...
question
how would you, in rust,
do something like
type A is record
Padded : Integer;
end record with Size => 1024;
^^^^^^^^^^^^^
or idk
with CPU => 4;
I mean this is just repr
what does repr let you do
Like #[repr(u128)]
does it also let you set alignment
#[align()]
But do you have traits
because instead of having yet another compiler intrinsic for a type atomic_unsigned_16
you just with it to atomic
define
Say I have some external type
Like from a crate or stdlib
With normal interfaces you couldn’t apply an interface of your own to an external type
But you can with traits
in ada we have that by not doing that
just define a subprogram with some type x as an argument
geezer lang
We win cause we’re better
Bad lang try another
Uhm rust does easily
i like how at this point we're essentially just fighting over different brands of the same tool :Sob:
except mines older so it has more umm
xp
fml
iphone audio recongition just tagged me speaking as cat
Also Rust has compile-time checked pointers
wdym by compile time checked pointers
Also ur access types are not not nullable by default BAD DESIGN!!!!
but spcfy
have you seen this @spare quartz
apparently its a standard for audio
yes and i hate it
lol
cause its broke as shit on my computer
Stuff like Box, Arc, RefCell, etc
oh damn and I had high hopes 😭
nonono
i mean
what exactly is the compiler checking for
oh its probably useful
Ownership
just doesnt work when im present
yeah ada has that
Thread safety as well
depends
@lavish dove rust or Ada
if by thread safety you mean won't write corrupted data if two threads touch it then yeah we have that
otherwise; see protected types/objects
but our "pointers" have accessibility checks
and the reason they're not non-nullable by default is cause theres not many situations where you can use a non-null pointer
no
not really
what if you had a vector of a record x with non-null access type y
creating the vector will cause an instant constraint error
rust
W
cuz I can probably pick ti up faster
L
W
but yeah
Just use an option type
Instead of null
Me when my code is littered with if whatever is null because I don’t know if anything is null or not
all my computers have a pc speaker
it isn't 😭
but thats shit
again
and its really loud
access types are not a "common thing" in ada
the only reason i use them is for streams and i know they won't be null where they're used
for us thats just a plain (in)/out mode parameter
if you really wanted to, you could use an access type that's binded to an Address with a storage size of 0
which would avoid heap allocation n all but
that's really niche and i've only used it once for kernel stuff
Different
Your out is our &mut
I don’t know if you have an analog to just &
Which is immutable
if you mean a direct analog then no
cause that's compiler decided
but the next closest matching one is in/out
Lame imagine your lang not putting immutability first
With rust you have to be explicit about the &mut
EXACTLY
💪
Nuh uh
Ok but why would you ever need that
for setting things directly 😭
you see it in C all the time with their stupid pointers
But like
If you’re gonna out
What’s the harm of inout
idk
kinda rich from the lang who treats its programmers as if they were baboons
Because programmers are baboons
okay aera
All these memory bugs in C applications are from programmers trying to be “smart”
and our lang fixes that by being stringent
Compiler knows best
not forcing you to do one thing
So does ours
If only you used rust
Because you were too busy writing Ada code
I’m telling you if you had used rust this wouldn’t have happened
One of your mascots is 6 feet under and the other is about to get fried into a delicious meal
WHAT
Meanwhile my mascot is going to snip your kneecaps off
- No
- No
well cancel your order of 50 picos and buy one of those
i wish i had the money to get 50 picos in the first place!!...
im going to get brain rot
good
smh thats cause of my clipboard

