#đȘ -progaming
1 messages · Page 103 of 1
hold on i dont think you can drop it yea
only opposites
the thing is you can check if its right if you have enough tim
theyâre also in different âandâ clauses
thereâs also stuff like de morganâs laws as part of these questions
point is you can see itâs a pretty hard question lol
ok i wrote down a truth table for it
gonna solve it now
you can drop the not w and x and y
okk
completely
because its fully encompassed in the others
the not w at the start can be ommited
if W is 1 then Q is 1, if W is 0 then Q is X
can drop the not Z at the end because anything the not Z blocks is already 1 anyways
@valid jetty my answuer is X * Z + W * Z + X * Y
where did you get X * W from
@valid jetty your answer is wrong
i think
x * w cant be true
look at the last one
its not 1 for the original expression
but it is 1 for you
i didnât this is my friendâs work
i have no idea what they did but it got all marks
edinburgh was the only one that rejected me đ
also isnt 10k per year a normal price for UK, non scotland students
you like big cities?
my options are rapid wien or real madrid
birmingham????
guh what do i even choose
actix seems interesting but like everyone uses axum lmao
personally never tried actix
have experience with axum through dioxus fullstack
everyone uses axum
oh huh. they have the same amount of stars on gh i assumed they were like equally popular
guess ill just go with axum thankku
im not sure then, i do not have much experience with rust on the web besides dioxus
ive always been told axum was more widely used, might be that actix is just easier to use and so more love
i just need a simple webserver that would return a json on a specific endpoint
initially wanted to go with python but decided i might try rust since well i'd like to get better at it
if its small and simple i think axum would be a better choice
yeah well axum seems kinda complicated due to it being async. i mean maybe it is easy i just never really touched neither tokio nor async in rust in general
actix is also async
oh right im dum
it just makes more sense having a webserver be async not only for scalability but also because most webservers do stuff like database requests, etc. where async is nice to have
if you arent the one handling async yourself its also just as easy as doing .await and async fn :^)
argh why does github api not have a simple way to check if a user is a contributor for a specific repo
thatâs so frustrating
yeah but itâs only 100 ppl per page
so like imagine if the repo is really big
with lots of contributors
without authorization you can only send like 60 requests per hour per ip
i wanna do it with an oauth
i just wish there was a simple endpoint like /owner/repo/is-contributor
only annonymous requests do
with authorized reqeusts you have 5k requests per hour
i think thats enough for u
argh okay but it still sounds kinda dumb to iterate thru the whole list. even tho the github web can already show if a specific user is a contributor
i just donât get it why there is no simpler way
it is not that difficult to implement pagination you couldve done it in the time you spent here talking about it
đ
i was eating
i like axum
everyone's on axum these days and also use tokio anyway so it fits into their stack
Doesn't venbot do that
Check that code
I owned codeburger.org
link-github.ts: Line 93
const res = await fetchJson(`https://api.github.com/search/commits?q=author:${user.login}+org:Vencord+repo:Vendicated%2FVencord&per_page=1`, {
why does this server not use linked roles though
That isn't the point of the command tho
well but it says LinkedRoles in the code
because you cant manually assign them
i couldnât find where exactly itâs used cuz itâs PITA to do it on mobile
wdym?
?
I think they mean use a linked github role to get the github user instead of oauth
i meant this https://discord.com/developers/docs/tutorials/configuring-app-metadata-for-linked-roles
OH
i get it now
that's dumb
i was going to try to make one for our server cuz ppl would keep asking someone to give them the contrib role
dioxus sounds like an actual nightmare from a support standpoint
i guess it also means we'd have to make a new role for that rather than using the old one?
yes
bruh
actually no
but i think it will remove it from everyone
cause they dont fulfil the link requirement
argh
i guess we just keep doing it manually with a command
!contrib 481532274211422209
their templating system with RSX just sounds like a really bad idea
particularly for mobile
Its literally just react but rust xd
right but they're advertising as a mobile framework
the technology is super cool though
âTemplating systemâ itâs a stateful frontend framework xd
no like the RSX part
Flutter is a good case study because it shows how much work goes into less so the framework and more so components
Yes itâs one codebase for all platforms and you can use rust features to specifically do stuff on separate platforms
It just sounds like a nightmare in terms of support
People have a already been doing this with react native but react native fucking sucks from a performance standpoint
No they haven't
Yes, react native tries to do exactly this too
React Native still calls native components
the work is solved for them
I dislike react native but the advantage they have is exactly the opposite of the position that dioxus is putting themselves in- they have to make the native components
Flutter had that problem as well but they had a massive team to do it
And even then it's far from perfect
Just seems very disingenuous to call it a mobile framework, and intentionally wrapping over web with nonconventional just so we can have more rust in our UI code sounds like disaster.
You are missing that itâs not trying to be just a mobile framework, itâs whole point is that one have one codebase for everything, if you use native components you have to bend and break them into looking exactly the same on all platforms itâs using its own renderer on platforms to ensure that everything works and looks the same everywhere
You are too focused on specifically the mobile part
I'm not claiming that we should be using native components- I have used React Native and Flutter and I much prefer Flutter's approach to re-implementing components. It's the fact that they re-implement systems they just don't have to in the name of making it all rust.
LMAO
Itâs not about making it all in rust and that makes it painfully obvious that you are just hating on the project because itâs rust
hiii
Its like saying âreact native sucks because its just about them trying to do everything in jsâ
React native sucks because the performance sucks and people continue to complain about it, using rust makes perfect sense because rust is performant, rust also makes it easy to make stuff crossplatform using conditional compilation and macros also make it easy to implement something closer to html in its components
shows how 99% of rust hate is either out of stupidity or baselessness
i hate rust because it encourages 5 billion method chains
its still a great language
but yeah
Can confirm that it has worst DX and UX ever (I have not used react native for a month)
i hate rust because every rust library ever uses the builder pattern !!!!!!!!!!!!!!!!!!!
ThingBuilder::new().foo().bar().foobar().foofoo().barbar().fuck_you().create().create_real_this_time().last_create();
this was the main complaint I had when i briefly tried it
thats what happens if you make software in js just to make it in js...
react native is worse because you still have to write platform specific code for some things and its really annoying
i spent forever trying to get bottom sheet behavior working right and it just never did
was too difficult to find a decent way to display blogs
finally managed to make something look good
ui crates are an entire different can of worms
its hard to incorporate the fluid idea of UI in a rigid language like rust
erm actually its the third blog post

what if someone else wrote the other 2
I've read the other two
test posts
I don't? My problem is that it's literally just compiling down to html and css, but rust has been slapped on top. It's not doing anything new, just adding another step.
it is quite literally not tho đ
like
That's all RSX is
the desktop renderer is specifically custom made to be more performant cutting out js
you are telling me this like react native, flutter dont compile down to html and css, like what the hell did they do new?
even if, its still in a package and i already gave you the reasons why it was made
nonconventional just so we can have more rust in our UI code sounds like disaster.
they just don't have to in the name of making it all rust.
sounds like a you issue
no one iis shoving dioxus down your throat
you are no better than the average rust junkie who goes to great lengths to defend their language
except youre defending flutter
when no one called out flutter
fwiw chloe, react native indeed doesnt compile down to html
crazy
they use jsx as a layer to call into native components
then how the fuck is it still so ass
because js? lol
i would like to say, dont use discord as a reference for rn apps
discord is just incompetent
rn isnt all that slow
^^^
They literally don't. Flutter uses skia, react native uses the native renderer
RN on web is html but that's it
What you're talking about is literally a webview
guess what also uses skia
lol
lmao
I'm using flutter as a reference point. I like rust. Stop making broad assumptions like that.
Skia underpins chrome but layouts are not handled by skia, it's just rendering
^
yes after reading the entire convo chloe also seems to be at fault
Lol no one is at fault it's just my take
fault đ
i just dont see the reason for the hate
this is like this but RUST so i dont like it
I think it's very cool, just a nightmare to develop with when you actually start building
I like rust
is flutter fullstack
No
dioxus takes the one codebase thing to the extreme, as in it also provides easy server side functions
Right I know how that can be useful but for local app development it's just a lot of extra steps on top of what will eventually be html/css
Where I work it really isn't that much extra work having the backend / frontend in different languages
People making all-platform apps via web isn't a new thing but it's also never worked to the extent it has to for mobile
i love rust mmmmmm rust
some people just don't want to learn new languages
so they force what they know into paradigms they weren't meant for
now I need to do something here that shows something meaningful instead of text on buttons
I'd probably use icons for socials
and put them at the top
they're the most important thing people look for when visiting a personal site
the rest could maybe be styled using the respective brand color(s)?
idk
so kewl
pai nt
I thought I knew all C99 features but this is new to me ```c
static struct {
unsigned bytes : 1, words : 1, dwords : 1, qwords : 1;
} options;
make RustUI @young flicker
let builder = HouseBuilderBuilder::new().with_colors(true).with_furniture(true).build();
let house = builder.with_foundation().color(Colors::GRAY).with_walls().with_roof().add_furniture([Furniture::Couch, Furniture::Shelf]).build();
do you see the vision
some might say the vision pro heh
this looks dumb we need wxrustui
nop i hate
Swift saner
oh is this web
sooooo insane
THE WEB WAS MADE FOR HTML
NOT RUST
you are crazy
is that a packed struct
yes with 1-bit fields
rate horrorcode
private fun generateQuadrants(size: Coord): List<List<Coord>> {
val xMiddle = size.x / 2
val yMiddle = size.y / 2
val nw = mutableListOf<Coord>()
val ne = mutableListOf<Coord>()
val sw = mutableListOf<Coord>()
val se = mutableListOf<Coord>()
List(size.x) { x ->
List(size.y) { y ->
Coord(x, y)
}
}
.flatten()
.forEach {
if (it.x == xMiddle || it.y == yMiddle) {
return@forEach
}
if (it.x > xMiddle && it.y > yMiddle) {
se.add(it)
} else if (it.x > xMiddle) {
ne.add(it)
} else if (it.y > yMiddle) {
sw.add(it)
} else {
nw.add(it)
}
}
return listOf(nw, ne, sw, se)
}
https://khcrysalis.dev/ @young flicker new website
I'm a programmer interested in darwin software platforms.
Also new blog
https://khcrysalis.dev/liquid-glass-methods/
@woven mesa
One of my family members insist on telling me that AI is going to take coding jobs and imply I should go a different route because of that
One of the main points I tried to make is âdid you make anything? or do you maintain a large projectâ then I got a âI donât careâ response lol
Itâs all fear mongering (I told them that) but they still insist
Itâs always the non-programmers saying that sort of junk, just becomes a bit annoying when you always hear it
what a good oomfie blog post
so good
i always keep my family informed of whats going on and explain it in detail whilst also ensuring itâs understood
Sadly in my situation itâs someone who doesnât like to be wrong or be someone who is the one informed about something they donât know about
My dad is more understanding though he actually programs like I do
scary
I think that person just severely underestimates me and just doesnât like when I say theyâre wrong in a way
Not a worry to me though, I shall stay strong and do what I do
nooo paimon
I have like 6 more blog post ideas
i wanna make blog posts tooo đ„ș
i should redo my website at some point
Because I know too much random stuff
I spent like the last 4 days rewriting my site and making it work with cloudflare
itâs all done now
i dont even have site at all, i plan to make it in cpp though (i have no clue how to write html/css and I know only Qt)
a website using cpp is astonishing atp just use a website template and modify a few things
@hoary sluice when i rewrote the generics system in elle i accidentally made cases like this (and more complex ones) work
where the generic type is part of a bigger generic type
T must be monomorphized as part of Tuple<T, U> where U = T, then Tuple<T, U> must be monomorphized as part of Array<T>, where T = Tuple<T, U>
you can give them variables
you have a root Array<T2>, whereT2 = Tuple<T, U>, where T = i32 and U = T, then T is monomorphized seperately as part of the function call monomorphization
are you going to generate html files with cpp and then serve them separately or you are going to make html generator and http server the same thing?
Qt can be used in browser with wasm
its time to do some coding
@fleet cedar I received c(10.2.0) compile errors
file0.code.c:1:1: warning: data definition has no type or storage class
1 | main;
| ^~~~
file0.code.c:1:1: warning: type defaults to 'int' in declaration of 'main' [-Wimplicit-int]
/piston/packages/gcc/10.2.0/run: line 6: 3588685 Segmentation fault (core dumped) ./a.out "$@"

true
u can do tbis with iphones with 3d touch too
@valid jetty do you primarily want a rust job
youre taking a gap year right?
im not a recruiting agent just curious if youd want to work with one of those blockchainification of services companies that use rust cause i think solana uses rust so thats where all the rust jobs are
vban recruiting agent
no
answer my other questions pls
zooter is in vencord part time
idk tbh i havent really considered job opportunities
i know C so i would rather get a C job than rust
you dont have a c portfolio
@spark tiger can u read this
russian?
how so fast
idk
XDDD
i was close
or can you
ur voice messages are too silent
silly
i wrote shi the first time
i cant read shit
not even a single word
i never learned russian handwriting
its ez
you just gotta feel it
russian doctor handwriting
lc.i russian doctor handwriting
looks insane sorry
just a specific sentence thats hard to read
how do you even differentiate the letters
one by one
they have minor differences
i couldnt decipher a single word tho
now that i know what it says i can read it just fine
well if u look closer u can actually see some differences
whats this
thats the most common example
ur other example looks the same đ
its shrimple
(fixed)
idk about that
yea the word you sent appears twice in my example
in different tenses
css is githubs passion
Learning how to do symbolic computation
EVIL
@frosty obsidian evil kotlin
wdym it works perfectly fine
evil
I wonder what the worst antiderivative is
zeet when people learn programming languages to make something other than apps
for now I'm thinking either division or powers
noppp math like this is too cursed
im used to seeing this in haskell
complex math on the jvm isn't a good idea usually
but im assuming this is just being done to learn
symbolic computation isn't a good idea ever tbh
mart has evil plans
i usually see math stuff done in c or cpp using jni
but this is deferred math
you essentially build an expression tree and optimize it or do partial evaluations as you go
and because you have it as expression tree, you can do things like take derivatives
evil
you should figure out writing a fractal shader with deep zoom in compose
horror
i couldnt get it to zoom as mcuh as i wanted
shaders are evil
zeet just telling people to do what he already did
what will it do
infinitely zoomable fractals
compose for javafxâą
thats just compose desktop
I did compose for Minecraft already, JavaFX should be much easier by comparison
ive never used javafx
compose dedsktop is on top of swing
yea but I mean make VBox a composable
and it also uses AWT for events iirc
oh i thought those were just different names for the same thing
nop
@lavish cloud https://github.com/zt64/compose-scripts you will run this
compose runtime becoming the new doom
@frosty obsidian
@frosty obsidian
actually why not have compose but for doom maps
yeah i saw your experiments before
reminds me of jake whartons compose tui thing
I used that as very loose reference actually
but implementing things like animation or modifiers is horror
wdym
@deep mulch try to use the balatro background shader in compose
get a framebuffer instance for mpv to render to
where
you can get it from the game files
compose supports using skija backends and you can make an opengl backend
balatro being made with lua just means that the direct source code is whats distributed
@frosty obsidian
its not even minified
if only "being made with lua" actually meant that for other games too
the shader would have to be converted
sksl is slightly different
@frosty obsidian im so wingy aha
oh i just assumed it was an inherent limitation
Pokemon PLA and SV use lua as well
but they luac'd it
so it's all binary and we have to manually decomp
scary
@frosty obsidian when will gloom use root to install itself a hidden binary thats impossible to remove
swizzle is a funny word
@frosty obsidian https://github.com/zt64/compose-scripts/blob/main/host/src/commonMain/resources/scripts/Fractal.composable.kts figure out how to make it deep zoom
i have zero familiarity with shaders
me neither i just found something online and made it work

@frosty obsidian real name Edwardo
I think at that point it might just be float precision detail limits you're running into no?
it could be but idk how to get a double working properly in the shader
so uh
you technically cant
but
you can write the math yourself to use two floats instead
then just pack those in a vec2
perhaps
how does nix know what these options are supposed to do? like where is it declared
i tried to find alacritty in nixos/nixpkgs and see if thereâs anything there but i didnât find anything related to settings/config
alacritty.nix: Lines 34-51
settings = lib.mkOption {
type = tomlFormat.type;
default = { };
example = lib.literalExpression ''
{
window.dimensions = {
lines = 3;
columns = 200;
};
keyboard.bindings = [
{
key = "K";
mods = "Control";
chars = "\\u000c";
}
];
}
'';
If you use nixd you can sometimes jump to package source
Nixd is either great or useless
@young flicker
Vencord: v1.12.7 âą 03fe7d1 (Vesktop v1.5.7) - 22 Jul 2025
Client: canary ~ Vesktop v1.5.7
Platform: Linux x86_64
why does it look so weird
aaaa
why did discord make quotes look so bad
muted
aaaa
i love verbose logs 
evil
evil
you want verbose? do adb shell setprop persist.log.tag V
that will fill up your 100MB cache within <0.1s
XD
And I thought x11 logs were bad.
yeah
i legit cannto profile my app on android
because the profiler lasts 50ms before the buffer is filled
sorry
15ms
How large is the buffer?
Are you sure there really isn't a way to increase it? I feel like that's something that just should exist.
might be
even if i increased that to my 64 gigs of ram
it would be <6s of profiling
XD
too lazy to review 
exec="$(grep '^Exec=' < "$HOME/.config/autostart/$file" | sed 's/Exec=//')"
file_nodesktop="$(echo $file | sed 's/\.desktop$//g')"
mkdir -p "$HOME/.var/autostart/$file_nodesktop"
printf "#!/bin/sh\nexec %s" "$exec" > "$HOME/.var/autostart/$file_nodesktop/run"
chmod +x "$HOME/.var/autostart/$file_nodesktop/run"
8 husks holy fucking shit
10
11
that said, I got Claude agent mode to set up git LFS for me, and it did it all full auto without issues
that was peak.
all the way from start to committing the files
12
iâll bring in my alt soon to react
@spark tiger you got husked by just about every single active programmer in this channel how do you feel
nop! llsc, samara, vee didn't react!
the betrayal 
@woven mesa @solemn ravine @royal nymph get on it
hey don't snitch 
i'm the 1 denist who doesn't recommend the toothpaste
TIL how utf-8 works finally (I never found a good resource)
at least... i think this is correct
size_t count_utf8_codepoints(const char *str) {
size_t result = 0;
while (*++str != '\0')
if ((*str >> 7) == 0 || (*str >> 6) == 0b11)
++result;
return result;
}
basically
fn char::utf8_len(char self) {
if (self & 0b10000000) == 0 {
return 1;
} else if (self & 0b11100000) == 0b11000000 {
return 2;
} else if (self & 0b11110000) == 0b11100000 {
return 3;
} else if (self & 0b11111000) == 0b11110000 {
return 4;
}
}
fn string::utf8_decode(string self) -> rune {
length := self[0].utf8_len();
if length == 1 {
return #cast(rune, self[0] & 0b01111111);
} else if length == 2 {
return #cast(rune, ((self[0] & 0b00011111) << 6) |
(self[1] & 0b00111111));
} else if length == 3 {
return #cast(rune, ((self[0] & 0b00001111) << 12) |
((self[1] & 0b00111111) << 6) |
(self[2] & 0b00111111);
} else if length == 4 {
return #cast(rune, ((self[0] & 0b00000111) << 18) |
((self[1] & 0b00111111) << 12) |
((self[2] & 0b00111111) << 6) |
(self[3] & 0b00111111);
}
}
fn rune::encode(rune self) -> string {
res := "";
if self <= 0x7F {
res.push(#cast(char, self));
} else if self <= 0x7FF {
res.push(0xC0 | (self >> 6) & 0x1F);
res.push(0x80 | (self & 0x3F));
} else if self <= 0xFFFF {
res.push(0xE0 | (self >> 12) & 0x0F);
res.push(0x80 | (self >> 6) & 0x3F);
res.push(0x80 | (self & 0x3F));
} else if self <= 0x10FFFF {
res.push(0xF0 | ((self >> 18) & 0x07));
res.push(0x80 | ((self >> 12) & 0x3F));
res.push(0x80 | ((self >> 6) & 0x3F));
res.push(0x80 | (self & 0x3F));
}
return res;
}
did it 
i just said i learnt how it works.. 
and the first byte can also be valid ascii in which case the length is 1
that's what i just learnt...
oh lol
đ
wait until you hear about utf16
i just wanted confirmation that i was doing it right
i canât reason about your source code but itâs probably right
wdym...
i haven't put this in a codebase it's might as well be pseudocode as i haven't even tested it but i was wondering if i had the right idea
iâm on mobile and i canât really analyze your code without being able to run it, but if you took it following some information source then itâs probably right
yeah i think that is right
isn't utf-16 kinda annoying
utf16 is just 2-4 bytes instead of 1-4

"basically"
posts this thing
rosi e insane
rosieeeeee đ
@winged mantle you might like to read this
thatâs a sane idea
i just wanted to explain that unicode in itself is just abstract numbers to represent each grapheme cluster and then stuff like utf8 is an encoding form so you can actually encode text using those abstract code points
iâm assuming this is what you learnt but might aswell reinforce
omg you should look at GB18030 itâs pretty silly
wait i'm dumb
Windows has insane backwards compatibility so unsurprising
i was researching utf-8 to work out whether i needed to implement it
and the answer was no
lmao
the clever thing is if you're searching for an ascii char you don't need to be aware of unicode at all
yes thatâs kinda the point of utf8
if the character is ascii the code point length is 1 and the value is just straight up the single byte
yeah i did work this out and then remember that but for some reason i thought i still might need to decode stuff
but it's just a json parser... i basically just need to copy the string apart from some escape sequences which are ascii anyway
iâm pretty sure json keys can be any utf8 canât they?
because js strings can be any utf8
one of you is going to betray me
âgoing toâ
yes
but i can just give the string straight to the consumer of the api lol
utf128
this thing isnât even hard to understand
super mario 256
zoot shares a single braincell with minky
@winged mantle https://github.com/YaLTeR/niri
you
itâs quite literally
- bit masking to get the length of the utf8 char
- packing multiple bytes into a single 32 bit int
- unpacking the int into multiple chars which become a string
if you try to actually read it it is so stupidly simple
nop
i find it hard to understand things in youtube videos with people talking quickly
i finally found a good article
bestie i put youtube videos in 1.5x đđđ
insane...
sometimes 1.75x
i knew him from the silly halflife mods he was making, and then i decided to check his repos and was surprised to discover niri
i always watch videos at 1x
niri looks interesting though
the only exceptions are movies and emotional videos
those i will watch at 1x because thatâs how theyâre intended
but technical videos are sooooo slow
like pls speak faster
omg
do you take adderall
how do you keep up with things
carefully
Rosie memorizes for centuries
typically when i watch a technical video i already understand some of it
so itâs not learning from square one but reinforcing what i already know with more info
which makes it not hard to keep up
i know some people who watch at 2x and those people are ACTUALLY deranged
like at 2x words are quite literally slurred for me
idk how they do that but they exist
i imagine you as a really fast talker
yeah i am lmao
i have to purposefully slow down
I already talk at 2x speed irl so I can understand it pretty well 
i swear english has a slower average talking rate than other languages
yop
but the way some ppl pronounce words is insane
i cant understand a single word in songs i listen to
i remember trying to understand base64
okay watch https://youtu.be/f9I0O3OgdrM
In this video I discuss and make a small quantity of the notorious compound TNT or trinitrotoluene.
PLEASE READ: I do not recommend anyone but trained professionals attempt this process due to several significant hazards associated with the synthesis of this chemical.
I intentionally made a very small amount, but with compounds that can potenti...
still don't understand it
people were explaining it at tiktok speed
how do people typically deal with utf-16 in c
isn't it annoying
but on windows isn't it basically the default encoding
I thought utf8 was
i usually just save everything in utf-8 when i'm developing an applicastion that stores its own files but when it comes to arbritary user files i guess you potentially have to try and guess encoding and/or let the user select it
if you're developing a text editor you'll probably consider the fact that not everything is necessarily utf-8 but i can imagine making wrong assumptions with an import feature for some sort of app
@winged mantle are you koding
@valid jetty I added hardware accel and optimized byte transfer in my ffmpegkt library for like 8x+ performance
and yet you canât read a basic utf8 impl
I can't read elle
why is that the reason you canât read it lmao
elle is as readable as rust
just add comments
elle is rust except you donât lose your sanity because it has a gc (before you lose your shit, the allocator is hot swappable!! you could turn it into arenas or normal heap allocation or whatever you like..)
@zoot
I found my width function was taking like half a second of processing cause it would constantly make a native call
rosinga
here's the kotlin translation
val string = "minkĂż"
val encoded = string.toByteArray(Charsets.UTF_8)
much simpler
that utf8 thing isnât designed to be used my a normal developer, itâs part of ichigoâs internal libs
because it assumes the whole string is a single rune, rather than many
and thatâs fine for my usecase because the lexer only cares about a single character at a time
you can however encode multiple runes into a single string because stuff like identifiers might need that (you accumulate runes and then collect them all into a string)
@valid jetty elle can't do this smh
fix
says who
me
rosie will make elle stdlib the biggest stdlib for any language
x := âminkĂżâ;
encoded := Array::from_string(x).to_repr<u8>();
itâs a byte array why do you need to specify the encoding
itâll just have the bytes verbatim
because it can use other encodings?
but even in other encodings isnât this just giving you the bytes???
yeah and they're gonna be different
i donât get it why would they be different
every encoding is still made up of an internal array of bytes
???
youâre just getting that array of bytes
???
oh you mean that
well i think the linker encodes string literals as utf8 sooo
elle string literals are passed to the IR verbatim which passes it to assembly verbatim which interprets it as utf8
taking an elle
elle looks good, just needs a discord bot library to be called a language /j
true
thereâs lazy iterators and tcp server/clients what more do you need /s
is there a discor bot library for objekctive c
Does Concord count
u need a million compiler extensions to use it
make elle UI framework that's not raylib@valid jetty @valid jetty
i wish you could do switch (true) in c
that's for subjective c
why
i love switch true after programming go
switch (true) {
case false: volatile asm ("hlt");
case true: return true;
}
wtf is volatile
she is just volatile đ
switch (true) {
case c == 'a':
// thing a
break;
case c == 'b':
// thing b
break;
default:
// thing c
break;
}
like an if else but cooler
in go it's the behaviour if you do switch without true
it signfies your code is like bromine https://en.wikipedia.org/wiki/Volatility_(chemistry)
In chemistry, volatility is a material quality which describes how readily a substance vaporizes. At a given temperature and pressure, a substance with high volatility is more likely to exist as a vapour, while a substance with low volatility is more likely to be a liquid or solid. Volatility can also describe the tendency of a vapor to condense...
bro mine
/run ```java
volatile int foo = 1;
craft
@crude star I only received java(15.0.2) error output
file0.code.java:2: error: illegal start of expression
volatile int foo = 1;
^
file0.code.java:4: error: class, interface, or enum expected
}}
^
2 errors
error: compilation failed
husk
now this is real documentation
I also didnt smh
you will struggle
there is like no networking support, youâll have to use C networking functions
there is tcp server and client but thatâs about it
then youâll enjoy https://github.com/acquitelol/elle/tree/rewrite/examples/net/s11n
s11n = serialization
i0 l2e n8s s0o m2h :03
âIf y1u a1e t1e f3t p4n w1o c1n g3s t2s e4e m5e c7y, a1d p2t t1e a4r as a c5t in my b2g, I w2l s2d y1u a g3s b2t f2m t1e S4t.â
âIt's l2e a g3n-up v5n of l2t-s3kâ
In c7g, I18n a1d l10n a1e m3s of a6g c6r s6e f1r n1n-n4e e10s, e8y o3r n5s a1d c6s. I18n is t1e p5s of e6g t2t an a9n is c5e of a6g to l3l r10s, f1r i6e e6g t2t t1e l3l w5g s4...
I was actually looking at it
what did i do
me and a freslet got a connection to a http server working a few weeks ago
A FRESLET
this is exactly the same as rust
yop
that was on purpose actually
i really really like rustâs tcp socket apis
yop
why do languages use ::
love
it has to look like rust
:: so ugly
@valid jetty
remove semicolons when @valid jetty
probably at one point
i do wanna rewrite the parser in the distant future
io:format
sloplang
erlang has very esoteric syntax though
killing you
shouldve used |
elle already has
thatâs annoying to do
Array|bytes(1024)
oh
i have to generate partial strings and interpolate them in the parser
o
fn `minkĂż`()
you can do that without the backticks
add string interpolation
lerp("hello world", "good riddance", 0.5)
recent feature
add ai to ele
with backticks yes
hallucinate!("hello world")
add coroutines to elle
just:
count := ai_function("counter")
count += 1
yes there is
but can you
port java.lang.Thread to elle
oh wait
t
vencord bans cyrillic
right
what if you made a compiled language which resembles javascript as close as possible
@deep mulch
assemblyscript
but introduces more low level features
assemblyscript
assemblyscript is that actually
i used japanese to showcase that comments can also be any utf8
js with manual memory management
@valid jetty but can it do moon runes
the comments say âEnglishâ âJapaneseâ âRussianâ âAustralianâ âEmojiâ
why do no languages have google translate built into the standard library
Australian language
these comments
that would be kind of useful
look at it
allow me to recite moon runes
ááĄááá ááááá áᥠá áŁááááá
if thatâs considered an alphabetic character by the unicode standard elle will be able to have functions and variables defined using it
can you use zero width space @valid jetty
probably not unless you wrap it with backticks
i donât think thatâs an alphabetic character
btw the backticks are ignored in the parser
so the symbol in the executable would still be the zero width space
Direct access to the memory manager.
good
does elle have macros
no but you have generics for functions and structs
C++ to C is as Java is to JavaScript
and you have conditional compilation through directives
Please enter a Last.fm username or mention someone to compare yourself to.
Examples:
.taste fm-bot.taste @.fmbot
Please note that the other user must also have an .fmbot account.
freslet set a tag called elle which clones elle and builds everything then runs the code you specify
icic
FRESLET
why does fmbot work here and not notsobot 
this is what i mean btw
!pub fn __internal_get_errno() @cfg(target = "macos") {
return __error();
}
!pub fn __internal_get_errno() @cfg(target = "linux") {
return __errno_location();
}
const errno = *__internal_get_errno();
fn os_get_last_error() -> string {
return strerror(errno);
}
.wt
1.ââ
âŠjoleâ© - 90 plays
2.ââ
âŠAdriansandwichâ© - 87 plays
3.ââ
âŠzâ© - 68 plays
4.ââ
âŠBHSS03NOVAGOONNMNSâ© - 58 plays
5.ââ
âŠb6â© - 54 plays
6.ââ
âŠfaintâ© - 48 plays
7.âââŠnarikoâ© - 47 plays
8.ââ
âŠbladebladebladeeâ© - 43 plays
9.âââŠkawairazorbladesâ© - 27 plays
10.ââŠwump600â© - 26 plays
11.ââ
âŠđ1dlings0mewheređâ© - 26 plays
12.ââ
âŠPunchhyâ© - 25 plays
13.ââ
âŠouterâ© - 25 plays
14.ââ
âŠđâ© - 25 plays
im gonna cry
you can conditionally compile every top level construct
tf is !pub
private
first 2 don't have explicit return but last one does
horror
insane
if only there was an antonym for "public"
no hitting the pub
prv
@valid jetty add io::stdout << "hello world";
wait why do u even need !pub if u can just not specify it
like are they private by default
read the screenshots too
yeah i sent it before i saw them
i made it just ! so you donât need a seperate antonym keyword for every single modifier you apply
where obj keyword
private better
no longer reserved
@valid jetty make is_even stdlib
so far i only operator overloaded the necessary things
no operator overloading is necessary
add is_even and is_odd @valid jetty
write assembly-like instructions
that being,
Can overload x[y], &x[y], x[y] = z, x == y, *x = y, aswell as hash, tuple, triple, & iter.
probably a few more that i forgot about
I wanna call mov like a regular function @valid jetty
let me access registers without inline assembly
nop
so evil
and as you can see there is no overloading for arithmetic operators except == !!!
i donât plan to do it either, at least for now
custom operators when
the only one iâm considering is cmp which would cover > and <
== already also covers != implicitly
tbh idk
at some point i might allow infix functions if the parser becomes powerful enough for it
right now itâs just not
haskell so good
lmao
witch
witch
first 2 are clearly internal btw
the last one is intended to be used by the developer, the first 2 arent
hate
@valid jetty
use std/prelude;
struct Square { i32 length }
const Square::draw = fn(Square *self) (0..self.length).for_each_with(fn(_, self) $println("*".repeat(self.length)), self);
struct Triangle { i32 length }
const Triangle::draw = fn(Triangle *self) (1..=self.length).for_each(fn(i) $println("*".repeat(i)));
struct Shape @nofmt {
void *base,
fn(void *) draw
}
fn Shape::from<T>(T *shape) {
return Shape {
base = shape,
draw = T::draw
};
}
fn Shape::draw(Shape self) {
cb := self.draw;
cb(self.base);
}
fn main() {
square := Square { length = 5 };
triangle := Triangle { length = 4 };
shapes := [Shape::from(&square), Shape::from(&triangle)];
for shape in shapes {
shape.draw();
$println();
}
}
smh
when are they making a language that supports this
@deep mulch @deep mulch i wrote a shunting yard for ichigo
fn Parser::parse_expr(Parser *self) {
res := [Result<AstNode, Token>;]; // using Result as a Sum type
ops := [Token;];
for ;; {
token := self.current_token();
if token.kind == TokenKind::Operator {
if ops.is_empty() || ops[0].precedence() < token.precedence() {
ops.insert(0, token);
} else {
while !ops.is_empty()
&& ops[0].precedence() >= token.precedence() {
res.push(Err<AstNode>(ops.remove(0).unwrap()));
}
ops.insert(0, token);
}
} else {
res.push(Ok<AstNode, Token>(self.parse_primary()));
}
if self.is_eof() || self.next_token().is_some_and(
fn(x) x.value == TokenValue::String("ă")
) {
break;
}
self.advance();
}
while !ops.is_empty() {
res.push(Err<AstNode>(ops.remove(0).unwrap()));
}
out := [AstNode;];
while !res.is_empty() {
val := res.remove(0).unwrap();
if val.is_ok() {
out.push(val.unwrap());
} else {
rhs := out.pop().expect("ééăŁăćŸçœźèšæł");
lhs := out.pop().expect("ééăŁăćŸçœźèšæł");
op := val.unwrap_err();
out.push(AstNode::BinOp(lhs, rhs, op));
}
}
return out[0];
}
it can parse math now
éąæ°ăăăȘăłăæŽæ°ïŒæŽæ°ăxïŒă
ăăȘăłăïŒă%d\năăxïŒă
ă
éąæ°ăăĄă€ăłïŒïŒă
æŽæ°ăx ïŒă1ïŒ2ïŒ3ăŒ4ă
ăăȘăłăæŽæ°ïŒxïŒ3ăŒ4ă»3ïŒ
7ïŒă
ă
what does that mean
Rosie .....
im going to feed you to minky
minky food
turn 1 + 2 into 1 2 + and then evaluate it as reverse polish notation to have arithmetic expressions parsed correctly with operator precedence
surely you learnt this in your years at uni
explicit return would be good here
you are in London
wrong
what benefit would it serve
developers would have no idea what it returns unless they look at the implementation
i mean thatâs fair
fn a() {
return b();
}
fn b() {
return c();
}
fn c() {
return d();
}
you have no idea what it returns without looking at the implementation of d
in ocaml you can overload let
this is an anti practice I think? idk if that's the right word

@valid jetty
antipattern
no
do you mean implicit
no
zoot wants me to add explicit return type annotations to every function even if it can be inferred
if you have a bunch of functions that call eachother or are very simple then you end up repeating yourself pointlessly
what if it has multiple return statements
that nest deeper into other functions
can you do something like that in rust -> _ though
no

it will look at the first one and infer from that, other returns are type equated to the first one and if they fail you get a compile time error
you already need to specify the return type if youre calling a function recursively or if it is external/forward-declared
Rosie insane
well technically i can infer it too
i just need to look at all return paths, and find the first one which does not end up calling the current function's name
infer that, but make returns explicit
i just need to actually implement it
đ
its not that simple of a problem because you have to like.. compile the astnode and then check recursively
if u do that mutually recursive functions will explode your type inference
but its definitely doable
that is also true
Rosie hates readability
this is a funny bug
ocaml can infer mutually recursive functions just fine tho
you just have to https://en.wikipedia.org/wiki/HindleyâMilner_type_system
A HindleyâMilner (HM) type system is a classical type system for the lambda calculus with parametric polymorphism. It is also known as DamasâMilner or DamasâHindleyâMilner. It was first described by J. Roger Hindley and later rediscovered by Robin Milner. Luis Damas contributed a close formal analysis and proof of the method in his PhD t...
those are also functional languages
yeah elle's type system is based on hopes and dreams
i didnt apply any type theory
the generics system is made from trial and error
boring
hindley-milner inference is really simple
the problem is functional programmers are worse than mathematicians and write like this
scary
i hate sequent calculus with a passion
there are 6 numbers in that entire screenshot
programmers went too far when they started writing enchantment books
x11
f u
đ
tode insane
i really wanna do this now...
but i have so many crazy ideas
that would unironically be the coolest thing ever though
i love doing dumb things with scratch
I want to make scratch transpiler to c++ now
Don't think thats possible
How do you represent a pointer
Eg: void***
@crude star
what do you mean
transpile scratch to c
how can anything be impossible in a turing complete language
sure it would be hard as hell
maybe it wouldn't take that long to make some basic stuff work though?

especially considering there are existing libraries to parse c
@jade stone I'll tell you how you have pointers though
have a big list which is the RAM
and the pointer is the index

transpile x86_64 assembly to scratch
i mean just write an emulator for x86_64 assembly in scratch

didn't somebody use a similar approach to get linux working in scratch
What are the odds that has already been done?
you guys know scratch has library bindings right
like you can programmically create scratch modules
kinda boring
much more fun to:
- transpile something to scratch blocks with the core modules
- modify the scratch 1.4 smalltalk source code
after procrastinating for a billion years
pretty cool huh
i just realised the fundemental problem of transpiling c
well... it would just be super hard to implement linking in a c -> scratch transpiler đ
just dont

