#🪅-progaming
1 messages · Page 66 of 1
you need a compatible theme
ohhh
oh i dont remmeber where i got my theme from 😔 I just stole all the css from it
it says inside the theme
it's just monaco, you should be able to install them
fr?
alr imma search around then
you do know that you can just open the quickcss file in neovim itself right
yeah but it doesent feel as.. right
idk
might do that
@valid jetty do u love
17 or so long ugly cut open dicks
i need to be banned from sushicraft
why does that seaweed look like tree bark
idk i think i put it on the right side
maybe the camera
shiny side down
@valid jetty you will visit and teach me how to sushi
just make nigiri bro
how do u make cucumber nigiri
lmao not bad for a first attempt
hii

why is it so hard to make a hover diagnostic 😭
im using tower yeah
but exporting the symbol table from the compiler is whats hard
like if i do rs fn main() { x := 1; $println(x); } and i hover over the x in the println
Why would that be an issue
because i dont have any other info than the location where the user hovered and i simply call the compiler recursively
@valid jetty Elle will have built in cryptocurrency stuff
Elle will be used for crypto mining
and blockchain
i have to find a way to export a symbol map with the locations of identifiers and then do like scope resolution lol
@valid jetty bestie!!!
because you can do this ```rs
fn main() {
x := 1;
x := "a";
{
x = "b";
x := 3;
}
x; // we have to do scope resolution here and figure out to return `x: string` PURELY FROM A LOCATION
}
@valid jetty Elle risc v when
when qbe supports it i guess
drop qbe for your own implementation when
sounds like hell
for me yes but I think you'd enjoy it
Rosie is masochistic programmer
not really lol
hi
wel;l
HIIIIII
HIIIIIIIIIIII
IT WORKS
HOLY SHIT
oh my fucking god i cant believe this works
how could u tell its my first attempt 😭
rosie keeps insulting me every day
Why is there a semicolon
Oh okay
@valid jetty make jump to definition
fn history() {
let mut year = 1900;
loop {
year += 1;
if year % 100 >= 20 && year % 100 <= 50 {
fascism();
}
else {
overcomplicated_peace();
}
}
}
why not
i promise i wont beat you if you teach me sushi
while you teach me sushi*
i woke up today and my ear was broken
i have built in noise cancelling in my left ear now
it feels like i always have an earbud in
@dawn ledge HIIIII
i cant believe this works 😭
but i think i did this in the last hacky way possible
Elle will have built in js runtime
the lsp gives you a single position (row + col), so in the lexer i tag the token which is within that position, and prevent tagging any other token for the rest of tokenization
omg hover
then at compilation, when compiling a Literal node, if that node is tagged, instead of passing the type forwards i throw an error with it
and then its displayed
go-to definition next
(soon)
i wanna implement hover for variable declarations (like hovering INSIDE of a declaration) and things like numbers first
right now you can only hover over variables
i might go back to zed
zed eats all my ram
nvim requires sooo much config to get a proper ui
tbh the elle zed extension is really tiny its mostly just the lsp built-in to the compiler
like those hover bubble things are terrible by default in nvim and really hard to configure
making a vscode extension for it shouldnt be too hard
vscode is evil
the whole extension
use zed_extension_api::{self as zed, Result};
struct ElleExtension;
impl zed::Extension for ElleExtension {
fn new() -> Self {
Self
}
fn language_server_command(
&mut self,
_language_server_id: &zed::LanguageServerId,
worktree: &zed::Worktree,
) -> Result<zed::Command> {
let elle_lsp_cmd = worktree.which("ellec");
let path = elle_lsp_cmd.ok_or_else(|| "ellec must be in your path".to_string())?;
Ok(zed::Command {
command: path,
args: vec!["--lsp".into()],
env: Default::default(),
})
}
}
zed::register_extension!(ElleExtension);
rosie can your mom calculate binary
its been a running joke in our class for a few years to randomly ask but can your mom do binary
omg i keep losing more and more hearing in my left ear
vscode has a really nice api
also if you're doing it via LSP it should be really easy
hi guys I just joined
is there any new solution
to bring the old UI back
because this new UI tortures my eyes
vns
I can't get used to it no matter what
so called programming
yeah its like really easy in zed too
the entirety of the lsp is like 200 loc lol
afaik vscode can just work with LSP over stdio
but dont i need an extension to register the lsp
Elle will take 5 years to compile
yes, i think
ill look into that at some point later because i dont really wanna open vscode right now
import * as path from 'path';
import { workspace, ExtensionContext } from 'vscode';
import {
LanguageClient,
LanguageClientOptions,
ServerOptions,
TransportKind
} from 'vscode-languageclient/node';
let client: LanguageClient;
export function activate(context: ExtensionContext) {
// The server is implemented in node
let serverModule = context.asAbsolutePath(path.join('server', 'out', 'server.js'));
// The debug options for the server
// --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging
let debugOptions = { execArgv: ['--nolazy', '--inspect=6009'] };
// If the extension is launched in debug mode then the debug server options are used
// Otherwise the run options are used
let serverOptions: ServerOptions = {
run: { module: serverModule, transport: TransportKind.ipc },
debug: {
module: serverModule,
transport: TransportKind.ipc,
options: debugOptions
}
};
// Options to control the language client
let clientOptions: LanguageClientOptions = {
// Register the server for plain text documents
documentSelector: [{ scheme: 'file', language: 'plaintext' }],
synchronize: {
// Notify the server about file changes to '.clientrc files contained in the workspace
fileEvents: workspace.createFileSystemWatcher('**/.clientrc')
}
};
// Create the language client and start the client.
client = new LanguageClient(
'languageServerExample',
'Language Server Example',
serverOptions,
clientOptions
);
// Start the client. This will also launch the server
client.start();
}
export function deactivate(): Thenable<void> | undefined {
if (!client) {
return undefined;
}
return client.stop();
}
you would also want to register your lang and add some syntax highlighting, icon, etc...
rosie when will you bootstrap elle
slay
hmm ok doesnt look that hard
never
i have stockholm syndrome from companion 
i only really need a language client in vscode land
you can simply ellec --lsp and it should work with jsonrpc requests, tower abstracts that away
yes vscode, i agree
i have the same bug 
highly doubt it
if i had to guess, they're printing some wrong ANSI escape
like what?
the thing is if you select the text
it corrects itsefl
so it feels like a rendering bug
yeah i honestly have no clue what it could be
you can always bisect and find out 
then again, i've found so many chromium rendering bugs i wouldnt be surprised if it is
@supple whale just took a quick look, and it might be this
Screen cheese in the debug consol
AGREED
nah its a different thing
mine is a render artifact for sure
his is just overlapping elements
me when i havent cleaned the screen cheese
@lucid trail love?
hell yeahhh
you can hover over the things now
the variable declarations
oh and you can do this in loops now
:3
and buffers but im not sure how to print these
hiiiiiiiiiiiiiiii
idk about that one
new fake loading bar
why?
its a webhook, reloading the page makes the webhook do 2 GETs and return html/css/js data in raw text. since it can take a while this is required for decent UX 🙂
but my first time making a fake loading bar lol
WebpackAstParser.ts: Lines 911-933
ret = (function nestLoop(curName: string | symbol, obj: ExportMap | ExportRange):
ExportMap | ExportRange {
if (Array.isArray(obj)) {
return obj;
}
const keys = allEntries(obj);
if (keys.length === 1) {
if (obj[curName]) {
return nestLoop(curName, obj[curName]);
}
const key = keys[0][0];
obj[key] = nestLoop(key, obj[key]);
return obj;
}
for (const [k] of keys) {
obj[k] = nestLoop(k, obj[k]);
}
return obj;
})(x.name.getText(), ret);
Can I disable synchronization for one setting in the plugin?
(Auto-response invoked by @jade stone)
No, I'm asking as a plugin "developer", not a user.
#🧩-plugin-development , sorry don’t know off the top of my head
I don't have write access to this channel
why? https://xyproblem.info/ ?
because i stupid
That's cool
how to fix DataStore.get() returns promise Object, how to get string ?
i might do a tiny write up on how i got the hover thing to work because i think it’s cool
https://rosiepie.notion.site/How-I-got-hover-diagnostics-in-my-LSP-for-Elle-1d70817590e9803888daeec3b0a1b0c5 @hoary sluice love?
Notion clone in Elle
so good
We just need jsx in elle
i just noticed that elle has a std libs
thats so good
i will rewrite vencord in veescript
i think thats only because this channel is dead most of the time so it just looks like theres a lot because theres not a lot of anything else being said
if you look theres like several hour gaps between messages lol
lmao
cappuccino assassino or la vaca saturno?
cappucino assassino
cappuccino assassino or spioniro golubiro?
spioniro golubiro
spioniro golubiro or tung tung tung tung tung tung tung tung tung sahur?
tung tung tung tung tung tung tung tung tung sahur ALL THE WAY
i prefer tung tung tung tung tung tung tung tung tung sahur
tung tung tung tung tung tung tung tung tung sahur is almost as bad as bombardino crocodilo
i hate how i know what that is
the penguins of heard island and mcdonalds islands have responded https://youtu.be/HJ8qGOe2K0o
Instagram: https://www.instagram.com/demonflyingfox
Patreon to support this channel: https://www.patreon.com/user?u=87233464
#ai #tariffs #meme
@valid jetty i have spent so much time switching between different languages now i can more or less understand romanian. arabic, polish (and therefore czech/slovak and a bit of some other slavic languages), and a bit of esperanto but i can speak none of these
and now im tryna get kazakh involved too
its too hard
i have to learn all of these
hmmmmm
husk
btw @fleet cedar do you think there’s a cleaner way to have approached this?
Less cringe than the -ᗆ ligature though
idk i like how it looks lol
I kinda just hate ligatures on principle so
The fact that you had to jump through such hoops hints that your whole architecture seems quite messy, ngl
French Brainrot Speedrun… This Shouldn’t Be Possible 💀🇫🇷
Bienvenue to the "wildest" French brainrot speedrun you've ever seen 💀⚡ In this video, we’re diving deep into chaotic French memes, obscure references, and peak internet humor—all in record time. Blink and you’ll miss it.
What you’ll see in this video:
...
there isn’t really a lot of hoops it’s just
- send position to compiler
- tag token with position within location
- report the type when the token is compiled instead of continuing compilation
I kinda only skimmed it, but why would variable-resolution-for-hover be any different from variable-resolution-for-compiling?
that’s exactly what i do lol
i just use the value from compilation but instead of returning it to the compiler i extract it as a diagnostic
Parse tree, resolve scopes, look up token and find its scope
nope i don’t do any of that for hover diagnostics
the compiler itself already does that because compiling literals (ie identifiers) is done via token, so it propagates the tagged thing, when it resolves a variable with some name i get back a type and value, so i can just return the type instead of continuing compilation
insane
https://fxtwitter.com/bunjavascript/status/1911996212510921188
why would anyone do this
whats wrong with bcrypt
LMAO
so bun can secretly add a backdoor later and destroy the web dev industry
it sucks
these videos like suck you in once you start watching you cannot stop until youve watched all of them like 5 times its insane
use argon2
i guess they really want a big stdlib
but why
I mean a lot of batteries is very good
I would prefer large batteries over pulling 700 dependencies
people often pull dependencies for things that they could write themselves
my discord bot with rest api only has 9 direct dependencies 
And how many indirect
it's hard to see when multiple dependencies reference the same dependency
cargo tree | wc
this is node.js based
My decompiler has 12, of which 5 are for the cli frontend only
My bot uses python and iirc it has less than direct 10 deps, and its <20 deps total
you either end up with 500 micro-dependencies
or a bloated ass stdlib
only few settle with the middleground
-l :^)
but some are duplicated
and some types packages are in the dependencies instead of devdependencies
as well as typescript
which makes no sense
(at runtime i am not using typescript compiler, just node's built in type stripping)
cargo tree | wc gives 94 transitive dependencies
what does it decompile
Trails through Daybreak scripts
lol
are you compiling every hover event?
i feel like a lot of lsp performance could be improved by emitting an intermediate tree representation with types
and then recompiling it on change
inotify or soemthing
i fel like fastify is the library for people who unironically like kotlin
good point yeah
@valid jetty does elle accept shebang
Yeah one of the selling points of lsp is that it's a persistent process with persistent state
nop
i love fastify
this is why Bun should die
eh im fine with it
it would suck if you use bun stdlib in a library
but for applications using bun stdlib is fine
its equivalent to deno's stdlib
execept deno does it better
bun stdlib locks you/other contributors to that specific runtime
vs bcrypt which you can install anywhere
this is why bun and similar are a cancer to the js ecosystem
He knows
this new dm wallpaper experiment really isnt that well designed 😭
instead of just having like asset_blurred: they just copy over everything except the asset..........
insanity
What you did expect from nitro team
i mean, its a user-facing api, no one cares
will complain when its officially documented for bots
When you apply wallpaper it sends PATCH /channels/{channel.id} w wallpaper_id, idk what you're suggesting instead
my problem is that they use 2 separate entries for blurred and unblurred wallpapers, im suggesting that they instead just put "blurred" into default and put the blurred asset hash there
or better yet... just use filter in a style...
Dm wallpaper, is that another nitro nuisance like those name plates?
yep
im making a plugin that makes them clientsided
shrug
Probably nothing a few lines of css can't fix
the floating widget they have for this is really cool tho
you can move it around and stuff
You’re too good
Are the discord wallpapers?
yes
i write my math notes in a sort of pseudocode form, like so
TO FIND VERTEX...
GIVEN: f(x) = -0.02x^2 + 1.4x + 5.7
FIND X
x = (-1.4) / (2(-0.02))
x = 35
COMPUTE f(35):
f(35) = -0.02(35)^2 + 1.4(35) + 5.7
f(35) = -24.5 + 49 + 5.7
f(35) = 30.2
VERTEX = (35, 30.2)
MAXIMUM HEIGHT = 30.2 at DISTANCE of 35
at the beginning of the documents, i always put a recall block, for stuff i have to memorize like formulas and such
---- BEGIN RECALL
QUADRATIC FORMULA
x = ( -b +- sqrt(b^2 - 4ac) ) / 2a
where sqrt is "SQuare RooT"
TO FIND X from FORM f(x) = ax^2 + bx + c
-b / 2(a)
---- END RECALL
but now i'm getting into shit involving Long Division.
dividing polynomials with long division
i never learned how to do long division. i just straight up never did the assignments/problems and passed through anyway. the introduction of calculators saved my stupid ass later on
so now my document on dividing polynomials through long division begins with
---- RECALL
SUICIDE IS NOT WORTH IT
---- END RECALL
slowly refining the grammar for hana lang
hana lang?
my own language
which is too similar to rust
and i hate that
😭
trying to make it not similar to rust
i am too rust pilled
i dont dislike rust
but if my lang is too similar to it there really is no point working on it
everyone is making languages now 
are you writing a formal grammar for it?
I am not making a language, I am too silly for it
for now i just have an "example" file in which im writing stuff according the the syntax i like
and then i will write ebnf grammar
it makes it really simple to write parsers
i was studing about glr(1) parsers prior to this
even before i decided to write a lang
peer infulence
it's not a new language, but it is a note taking format i'm working on standardizing
big walls of text scare me
boiling it down into concise keywords makes me happy
I kinda wanna make a language but it'd just end up being functional rust
i would like to interject for a moment to introduce you to the modern, blazing fast, and awesome markup language called TYPST
essentially what im at rn
the syntax is too similar to rust its uncanny
you see this? this is how to reduce someone's will to live
never do this
there are some zig influences (like comptime and variable length integers) but its way way too similar to rust
zag, inspired by zig
true, looking at math reduces my will to live
inb4 zig-rs 

i am a weird person
i like the minimalism of c and zig
but i love the safety "features" (more like torture) provided by rust
and im having a hard time almagamating this into a format i would like to actively use
senddd
//////// CASE 1: CHECK PASS ////////
DETERMINE IF f IS POLYNOMIAL FUNC
GIVEN: f(x) = 9x^8 + 7x^5
EXP^s 8, 5 ARE POSITIVE INTEGERS
COEFFs 9, 7 ARE REAL NUMBERS
TRUE; f is POLYNOMIAL FUNC
//////// CASE 2: CHECK FAIL ////////
DETERMINE IF f IS POLYNOMIAL FUNC
GIVEN: h(x) = 2x^5 + 3x^2 + 7/x
TERM 2x^5 PASSES
TERM 3x^2 PASSES
7/x = 7x^-1
EXP^ IS NEGATIVE
TERM 7/x FAILS
FALSE; f IS NOT POLYNOMIAL FUNC
please dont shit on me (im gonna cry)
see this? this is concise. and sexy
this is much sexier than...
this
mathematician's wet dream
aa wait can you send it again but with .rs
plain text code is unreadable for me
thank ouu
hl breaks halfway through after raw strings
maybe explode in hellfire
it's in a thing it won't do the big text
stupid automaton
the # is for macros
does this mean you wanna make a borrow checker
like i can do manual mem management no problem
but i like the convenience of not having to maintain a mental model of the memory flow
lc.gemini explain what a borrow checker in rust is to a person who only uses python
what is this
TOYS?
i was just putting it there so i remember that ()s are valid tokens for delimiting expressions
(i am kinda stupid)
ok no basically @nimble quail instead of something like C where you manually manage the ownership of memory
or java where you never manage the ownership of memory (gc)
in rust memory's ownership is predictably passed around
memory ownership by a program/thread?
nope, its who has the responsibility to free the memory
because someone needs to but only 1 thing can
in manual memoory management
you, as the developer have the responsibility to allocate and free memory accordingly
in a borrow-checker system the compiler uses rules and heurestics to determine when an allocated memory is to be freed
and you as the developer only have to nudge it a little
i swear just a little
but so long as you're aware of the rules and heuristics. you can predict its behavior and work with it, right?
in theory. right?
currently writing a revised version that isnt a balant copy of rust
yes
stole that one from zig
also does this imply you want to break the C abi?
wdym
elle doesnt need extern C because it directly interfaces with C
all elle code is usable from C
having extern C means you want to make changes which breaks that
the entire extern and unsafe part is very much a draft
i see
idk
C++ has that because it does name mangling
rust has that because they have their own abi
isnt rust abi solely because of monomorphisation issues
yes lol
or atleast the reason why its unstable
and no variadics
yeah
elle has the same problem as c++ which is that you cant use an external generic function
because how do you compile a type T into an object file
is a vararg like passing a variable as an arg for a function?
i.e.
rnd(variable)
pull a swift, resolve genrics at runtime :^)
nope its variable number of args
oh what the fuck
like, foo(1) and foo(1, 2) and foo(1, 2, 3)
WHAT
its like the *args in python
rust doesnt have that, only available via macros
thats a really common language feature lol
lc.gemini write a function in python using *args, only the code, dont explain
def process_arguments(*args):
"""
Processes an arbitrary number of arguments.
"""
# You can implement your logic here to work with the *args tuple
for arg in args:
print(f"Argument: {arg}")
if __name__ == '__main__':
process_arguments(1, "hello", 3.14, True)
process_arguments("a", "b", "c")
process_arguments()
i haven't found a need for this but i'll keep it in mind
kinda just learning things as i need them
thats what we all do dont we
i started my star navigator project with little code experience. it has taught me a lot about programming
int sum(int count, ...) {
va_list args;
va_start(args, count);
int total = 0;
for (int i = 0; i < count; i++) {
total += va_arg(args, int);
}
va_end(args);
return total;
}
int main() {
printf("%d\n", sum(5, 1, 2, 3, 4, 5);
return 0;
}
you have no way to get the number of arguments so you have to pass them to the function lol
elle way
fn sum(ElleMeta meta, ...args) {
total := 0;
for i in 0..meta.arity {
total += args.yield(i32);
}
return total;
}
fn main() {
$println(sum(1, 2, 3, 4, 5);
}
``` loveeee runtime function call introspection
is an SQLite table good for storing save game data, or are there better systems for this
in a game where multiplayer doesn't exist (so cheating doesn't matter)
tbh it would have been better to put arity inside of args in some way but there are cases when you want arity without vargargs so idk
and args also doesnt really exist
sqlite is definitely great, its like the best embedded and minimal database
surely
better than a csv file or something
dont be valve, dont roll out your own shitty json dialect
at first for a smaller project i tried using a text file and using the line numbers for their index.
and it worked but man did it suck
Special thanks to Displate for sponsoring the video!
Discount code: SAVEWALLSFROMSADNESS
Discount link: https://displate.com/f4mi
This is the story of a txt file, and how it almost ruined Team Fortress 2's economy, a few times over. No, really, this is a 17 minutes video about a txt file. This is not clickbait, this is straight up what the vide...
depends on what you wanna save
sqlite has minimal overhead and gives you leeway for future additions
make your own binary format :^)
i wrote a basic table manager for python to store and sort my characters
it was a good exercise in working with sqlite
it has a terrible search function but it does work
unironically a good exercise
binary format?
i mean most games just use a binary format
@dawn ledge do you love how printf finds the number of arguments based on the number of format arguments in the fmt string
because theres no other way to do it
what do you mean "your own binary format"
you save data by writing bytes into a file
writting a db helps you understand how dbs work and with that knowledge if you use a real db you'll have cool ways to optimize your app
😭
writing a db sounds interesting and fun but not right now
i mean; every digital file in existence :p
idk how to explain it
nah its fine
i understand what you mean
but sql just isnt the best for storing game data
i mean yeah. but it is good at storing data
debatable
y'all know Uplink/Onlink?
Uplink uses an SQL table for its savegame data and it works fine
(in the end you're probably gonna be putting json into the columns LOL)
a lot of overhead for minimal value, if you have a bunch of upgrades storing bools in an upgrade table is stupid also stupid if you just store a json array lol
JsonDB my beloved
i just realized these structs are entirely written via ast nodes (there is NO elle code that represents them) and here they are displayed 
but if you just have to store that type of data why not just store it in json
sql is good at storing large amounts of data while being scalable
not just storing data
i've never touched json
is it worth it?
thats also why you dont store files in sql
it's not storing FILES, it's just storing data
numbers, strings, that kinda stuff
i don't expect to store images in an SQL table
im explaining what sql is good for
you could store an image. if you're brave
just convert it to text and back
surely nothing terrible will happen
its possible with data uris
basically if you have a binary save file, you as the developer know exactly how its laid out
so imagine you reserve the first 11 bytes for a character name, then upgrade1, upgrade2, upgrade3 (storing them as boolean values so 0 or 1) and then some currency (coins i guess?) as a 64 bit int it would look roughly like this
I mean json is probably part of the standard library of the language you're using
- the bytes for the name
- first upgrade
- second upgrade
- third upgrade
- the integer
etc.
sqlitefs is knocking on your doors
hxd my beloved
what if you wanted a name with 12 bytes
pro tip, whenever you write a binary format ALWAYS, i repeat ALWAYS, make sure to reserve bytes for version
and if you're feeling fancy you can also ahve your own magic bytes
<bytes for length of name><actual data>
you reserve as much space for the name as the character limit is, so a sane example would be to reserve 32 bytes for the name and a smaller name just has the unused bytes 0'd out
this is what formats do
@valid jetty no matter what i always go back to kde
reserving pages is an optimization for frequent read writes
on nix..?
your biggest enemy with binary is variable length, have fun storing arrays
if youre like sending this over the wire reserving extra bytes is kinda suck
im tired of sway
hop on hyprland
you have to do so much work to get anythin gto work
sure
hyprland has the same issue just on a smaller scale
for an offiline game both methods are fine though
just store json arrays
thw solution is to never configure
steal someone eleses dots 
rock default config
the solution is to use windows
no its not
wrong reply
help chloe is becoming dolfies
i love the
[len: i32][buffer: sizeof(len)] pattern
the youtuber who learnt python by "mistake"
might sound crazy what im about to say
json is also a binary format :^)
i will write the first enby file format
i cant decide whether i want lifetimes or not
if i do idk how to do them without screaming rust
i need more minimalism
it's a text format using utf-8, utf-16, utf-32 codec
can never be minimalistic enough
ref count
one of these days im gonna strip away all gui and live in the tty
do you call std::shared_ptr gc
ong i though you were mantika cause of the duke
make it so nothing is ever removed from memory
would be nice to not pay a billion dollars in ram to run my code
HOW LONG HAVE YOU THOUGHT THIS FOR
forever
dsrghxiufio8aegsiuhd978egs^YIUSET ^&*(Gy78diughx
make it so you dont ever store anything in memory in the first place
the kode tode
but kirby
only way to be even slower than python
sorry i dont remember people's avatars
unless im interacting with them every other minute
I pretty much exclusively go off of pfp 
imagine if you see somebody you think is mantika
i used to recognize people off of their usernames but ever since pomelo every turned into random things and i cant recognize half of my friend list now
and you see she/it in profil
make it so the user has to get a piece of paper to write down the memory and the program asks for the value every time it needs something
sorry kode, confusing people with mantika is indeed a great sin
i don't actually have she/it in my profil,e
imo you only really have 5 choices
- manual memory management (what you will probably do when first starting to make the language, ownership hell)
- garbage collection (can be made relatively easily out of manual, worse perf than manual, not a bad option for cleaner syntax)
- arena allocation (there is one global allocator which has everything allocated into it, the developer can choose to make new arena allocators, put things in them and free them all at once, etc)
- reference counting (same as gc in terms that it can be made easily out of manual mm, potentially less bloat than a gc, might be worse for the developer, slightly worse perf, slightly worse code)
- borrow checking (same perf as manual, HORRIBLE to write for the developer, if written correctly will look almost as clean as a gc ((once you get rid of all the compilation errors)))
or
- dont store anything
- dont bother removing anything from memory
yeah im leaning towards going from manual to borrow checking slowly
why not create a language based on a combination of sql php and assembly
i did that originally lol
manual memory management + no freeing ever
i dont wanna force a single allocator like arena, cause i want the apis to be allocator agnostic similar to zig
elle has custom allocator support too yeah
ref counting is just gc in denial
not really
at least if it’s manual ref counting
if you’ve ever seen objc code it’s full of [obj retain] [obj release]
isn't c's thing that it doesnt use objects. or am i misremembering
objective c is apple's C
just make a compiler for https://github.com/TodePond/GulfOfMexico
structs are basically objects lol
yeah
but the obj c in this context is https://en.wikipedia.org/wiki/Objective-C
Objective-C is a high-level general-purpose, object-oriented programming language that adds Smalltalk-style message passing (messaging) to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXTSTEP operating system. Due to Apple macOS’s direct lineage from NeXTSTEP, Ob...
OH ok
tbf objc doesn’t need retain release anymore because it has automatic reference counting
the retain release are inserted for you by the compiler
wrote some python on linux and then it failed to run on windows. for reasons i couldn't comprehend
i refuse to make support for macos in anything i write
supporting two os's is enough
you dont have to worry about os support on python unless youre doing something os specific
tell that to my program that works on linux but doesn't on windows
what does your program do
also macos is unix compliant, if anything it’s more likely to run on macos than windows
i tried to set up multithreading
the part i was trying to multithread makes a metric fuckton of objects and it took a while
so i wanted to split it up
does python even do multithreading?
it has a library for it
can you write postgres fuinctions in c?
import threading 
if you're getting into multithreadding in python you want to reconsider your language choices
awesome
rosie
im thinking of merging union and enum syntax
union Foo {
Bar(u8) // becomes a tagged union aka enum
}
// normal union
union Baz {
a: [u8; 4]
b: u64
}
i could make the data but for whatever reason it wasn't collecting the data it made
i knew it was making the data because it would occupy a massive chunk of my RAM
wasn't collecting it in the way i wanted, anyway
good idea but don’t completely change the syntax lol
unix or posix
fair but. throws rocks at you
wdym
i kinda liked how kotlin did multithreading, simply "hey this expression is multithreaded"
and its magically multithreaded
golang
rust probs has that too
idts
does threading work in gdscript
i HATE the distinction of unix and posix
make them one bro i cba to remember what goes where
close enough it’s all the same anyway
supposedly threading is supported in godot but there's a difference between it working well and working but sucking
Bar(u8) is COMPLETELY different from a: [u8; 4]
why would you need to do multithreading in godot
handling the generation of a LOT of things
world generation
yes
those are 2 different unions
basically im trying to procedurally generate a small galaxy
and each of those stars and the things orbitting them are meant to be interactable
on the atom level?
starfield by vencord member
I looked it up cuz it started to bother me and macos is unix v3 compliant but not unix v7 compliant and it's for the most part posix compliant (and uses zsh as the default shell which is posix compliant)
no
i'm not even handling astrophyics. stars and planets are static
oh on the quark level?
i just want points in space with simple sprites and some info attached to them
it's just that there are a LOT of them
i think i got to around 2 million objects on python before running out of RAM
or i could do
tagged union A {
Bar: u8,
Baz: u32
}
union B {
a: [u8; 4]
b: u32
}
but this was without handling graphics
i assume thats what you meant by not chaning the syntax completely
are you the people that talked about game games set in the galaxy?
one person, but yes
implement
😭
why load the entire thing all at once
ia m not writing brainrot lang
the fuck
sry. that was my bad english
yeah, that was something i considered
generating by "chunk"
add(1, 2)? ts sucks fr @print i gotta see this istg 
are you using japanese?
yes lol
i'm thinking i generate all the ones with stations and interactables on startup, then load the useless or less interesting ones by chunk
oh and btw i replied to your issue
kinda funny that all my software i use is not my native lang and rather english
oh you replied
thx
i replied too lol
concept:
instead of a try-except block
just put ? at the end of a statement to do the same thing as try (attempt but don't kill the program on error)
wow
if you have a question of japanese, plz ask me.
im japanese
hold up i got something
func(arg)?
sure!!!
usually the ? is used for something else
let x = get_thing()?;
turns into
let x = get_thing();
if x.is_none() {
return None;
}
ask me on dm or on this guild and I'll answer
it might take me a while to answer because of the time difference
kind of the same thing!
this photo have japan tag? lol
okieee
is learning another programming language easier once you've learned one?
yeah i guess so
absolutely
yesss just like irl languages
ok good
because this is definitely not python, but it makes intuitive sense to me
there are some languages that are easier to learn depending on what you already know
once you learn 3+ you realize there’s a huge pattern and that’s when you know you’ve learnt programming in general and not programming in a specific language
because there is a big difference
javascript feels a little... silly
correct
try except sucks so much
cjk languages are pretty close so if you learn one learning others will be relatively easy compared to like starting off from english
one of the worst inventions in programming history
python vs. whatever this is feels like english v spanish
trying to read java feels like trying to read japanese or something
why? /gen
"yeah let me just throw and exception and hope to god something up above catches it 🙏 " statements dreamed up by the utterly derranged
chole likes writing match for every function call ||/j||
not really an accurate comparison
i agree this
languages influenced by the c language have a common underlying grammar
no it's english v english
japanese is just different to english, but it’s not hard once you understand the patterns, java just sucks
once i actually start to learn it, it'll probably make more sense, but for now it feels like moon runes. to me
its very unintuitive, it teaches you bad habits, but basically it quite literally is just "i hope something up above catches my exception", it doesnt make any sense
at all enterprise level code i worked on we just didnt care about exceptions, something throws an exception? try catch is fucking ugly, just make the global exception handler do shit
possibly the worst part of js
you're saying to learn to catch unexpected cases without throwing exceptions?
try/except definitely doesn't seem necessary
i have worked without it
not exactly, programming languages with try catch dont have a lot of options, if you want good working code you have to put a try catch around every single function that might throw an exception
This is Japanese
彼 "は" 公園へ行く
He will go to the park.
彼 "と" 公園へ行く
I will go to the park with him.
i imagined the most horrible api ever
println returning an error and having to handle it
rust results are a good alternative, they try to make you handle every single exception case
using the error print to print to the console
what? lol
you make println?
i mean writing code that doesn't need a try/except to function
catching unexpected behavior/input without crashing
Error#getError() has a 20% chance to error
e.g. taking an input, checking if it's the right type before trying to use it
try {
do_thing();
do_thing2();
} catch(err) {
throw err;
}
``` who threw an exception? who CARES?? just send it up to the higher part of the code lol not my problem
yeah this is a pita
let me grab an example of what i mean
to be honest once you learn that jp is sort of backwards from english in the word order it almost makes perfect sense
go "tries" to make this better by the if err != nil for every fallible call but that too ends up as a return err
analogus to catching and rethrowing
lets go to heven
try {
do_thing();
do_thing2();
} catch(err) {
for (;;) {
throw err;
}
}
on the other hand.. java exceptions……….

there is no “good” way to do error handling
yeah; cjk language do be like that
i love the way element does errors but maybe that’s just me
love zig
love making vtables manually
Kanji「Next is me」
nevermind, i did end up using try/except. but i do see how it can be avoided
lol yeah
-> He with park go
<- I’ll go the park with him
what if python but negative tabs
if ...:
if ...:
...
already done
python users have made every horror possible with python
even python with braces
bython
by the way @spark ridge you might like https://github.com/acquitelol/ichigo lol
nintendo switching asap
is this programming language that use japanese? lol
yes
yes 🎀
do you love
関数 メイン()『
整数 値 = 乗算(
加算(
乗算(13、2)、
減算(23、10)
)、
乗算(5、2)
)。
整数 ミクの数 = 除算(値、剰余(100、90))。
プリント(「%d\n」、ミクの数)。
』
A Python preprocessor that translates Python into brainrot
that is one visual basic looking ahh translation
i can't believe that this was made by someone who is not a native japanese speaker
lol i’ve been learning for a little while now
there’s a lot you can do with time and a dictionary
jp spreads far and wide
too many weebs around :^) /lh
oh damn zig has exactly what i wasn trying to do
secSinceMidnight = None
while secSinceMidnight is None:
try:
secSinceMidnight = int(input('Enter time in seconds since midnight: \n'))
except:
print('INVALID VALUE; TRY AGAIN\n')
trying to rewrite this to suck less and also not need try/except
i do still want to catch invalid inputs though
i'm thinking i keep the while none loop intact but instead of try/excepting i use an if to check the type and only let it break when i get what i want
thoughts?
wow
keep up the good work on your japanese.
lets talk with me in japanese someday
A browser interface to the Rust compiler to experiment with the language

why you dont need try/except?
you forgot the best one of them all
let my_string = function_that_errors()?
right
if you have a question mark at the end you just pass through the error if there is one
someone said using try/except is a bad habit
though your functions return type must also match
(which is the same as try/except was my point)
well yeah because it doesn’t make intuitive sense otherwise
untrue
you can implement From
if you return an Option and you have a Result and you use ? the operator would return a Result even though the function returns Option
it just doesn’t make any sense
not really, you cant just have a global exception handler at the top unless every single function returns a result and thats incredibly tedious and not as easy as "just throw the exception bro!"
erveryones against u lil bro
windows >>>
keep linux to servers and android
i mean you can if you let your result propagate all the way to your main function
i meant if you have func_a -> Result<(), Foo> and func_b -> Result<(), Bar> you can use func_a()? in func_b if Bar implements From<Foo>
yeah exactly but thats tedious
linux doesn't even have ads built in, so lame
ikr i need something to complain abt
im just that goated
whats the point othjerwise
more haters than lovers (0)
u got exactly one characteristic that's similar to a goat
i have the desire to speak, but I can't express myself well in English
sry
linux lets me use my pc but windows makes me feel alive
current thought process:
for each character in the string...
check if character is int
if all characters are int,
set output to the int of the string
avoiding using try/except
ong stfu
i dont wanna know
no
wtf bros staying on win
i am not on a laptop
laptop gaming
use my options 👹
my laptop (which was my primary device) is waiting for me to get it a new charger
and im desperately waiting to move back to linux
@dawn ledge one feature that i wanted to implement (but i dont know how) is runtime type-based contracts for function signatures
fn add(0 <= i32 <= 5 x, 500 <= i32 y) {
return x + y;
}
fn main() {
add(1, 600); // success
add(-1, 500); // ERROR: x's contract `0 <= i32 <= 5` was not upheld
}
``` maybe you wanna try to implement it?
comptime?
cant you just use argument types?
runtime, otherwise it means the function itself must also be constexpr
i dont get the point of this
this feels like syntax sugar for just
fn add(i64 x, i32 y) { if 0 > x || x > 5 { throw error } }
instead of needing to check constraints in the function and return with an error you can just put it in the signature
in my reimplementation i tried to copy the let Some syntax 😭
how would that work..?
it was horrible realising js cannot pass values by reference
lmaooo
me when i update my qml file, clean, rebuild, delete build dir, reboot and it still doesnt update the ui
you create a ref which is a proxy and yea 😭
typescript doesnt have macros!!! annoying!
chloe when
when
when
not writing insane code
yeah you cant even do this
never i always write insane code
same
@lavish frigate
```ts
function callableArray<T>(...array: T[]) {
const _closure: (index: number) => T = (() => {}) as any;
const typedClosure = _closure as unknown as typeof _closure & typeof array;
array.toString = function() {
return `[${array.map(element => JSON.stringify(element, null, 2))}]`;
}
const proxy = new Proxy(typedClosure, {
get(_, prop: string, __) {
return !isNaN(+prop) ? array[+prop] : Reflect.get(array, prop, array);
},
set(_, prop: string, handler) {
!isNaN(+prop) && (array[+prop] = handler)
return true;
},
apply(_, __, [index]) {
if (typeof index === 'number') {
return array[index];
}
return null;
}
});
return proxy;
}
const arr = callableArray("a", "b", "c");
console.log(arr[0] === arr(0)); // true
fwiw
you can have and uninitialized var
let x;
if (x = foo()) {
}
i'll sleep
good night bros
gn !!
omg amazing
good night!!
nah this is actually crazy
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 POPOUT_SHOW listeners added. Use emitter.setMaxListeners() to increase limit
red squiggly lines...
thats jsut biome malding
i did everything stack overflow and claude said and everything you could possibly do
- verify i changed the right file
- make the build depend on qml files in .pro file
- clean & rebuild
- delete build dir
- delete any cached files
- reboot
- add
engine.clearComponentCache();
IT STILL DOES NOT REFLECT MY CHANGES
have you tried using claude + chatgpt + gemini + deepseek together
qt is awesome sometimes but feels like 1970 most of the time
this is why you use macos
this has absolutely nothing to do with the os im using
i could be on haikuos itd be the same
do you use macos...
i have fedora and macos on 2 different machines
also have fun doing Qt on macos i think youre gonna have a really hard time
ah!
qt is funny
i made a project on my windows desktop everything worked perfectly fine
i transfered it to my old surface
and it just constantly segfaulted there
0 code changes
I FIXED IT
the joy in that message transcends the internet and screen barrier
i had to grab the qml directly from the file system to make it reload at all
#ifdef QT_DEBUG
const QString qmlPath = QCoreApplication::applicationDirPath() + "/../../qml/Main.qml";
engine.load(QUrl::fromLocalFile(qmlPath));
#else
engine.load(QUrl("qrc:/qml/Main.qml"));
#endif
also for the record idk if theres a method to append to dir path you have to append /path not just path because its direct string manipulation
@valid jetty i feel like im getting somewhere with the non-rustification
that was insanely rude and offensize @solid gazelle smh ||/j||
@solid gazelle
:)
swift + zig also i just got blinded
interesting program
are you making a laguage
the ultimate de-rustification would be to make everything public by default and then use priv and remove pub
or you could do what i did and make it toggleable
yes

ive tried rust a little and honestly i dont get the appeal
i unironically considered a priv keyword but given how everything is private by default unless pub is added, i felt like priv would be unnecessary bloat
apparently rust used to have a priv keyword now its reserved
make it toggleable !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@solid gazelle i meant this
will see
o
make it so every function is automatically available on a http server unless the private keyword is added
this is like the best thing zig has
it makes bitsets so much more egonomic
kde so good
@dawn ledge add this feature
fn foo(x: i32) -> i32 {
if x == 1 {
panic!("i HATE the number 1");
}
x
}
fn main() {
foo(1);
foo(3);
}
this code wont actually compile, youll get this error
ERRROR: main.ha:3:9
It looks like you used "panic!" in your code.
Are you okay? How are you feeling? Are you feeling stressed? Do you wanna talk about it?
I'm here for you 💖
@valid jetty add cargo-mommy to elle
u28 🥀
LOL
maybe a compiler config for that
now hear me out, variable length integers are awesome
whats the use
real!
elle-mommy
to make it not rust like instead make it INSULT you
(ellec error message)
mommy always knew her little girl would fail... 💔
YEARS of char x[28] yet no real use found
how do i commit often if the changes i make are moving to another technology and completely break everything and are not done yet
make a new branch and push broken commits
what i would do is make a new file for the new implementation and slowly stub it out
// a.rs
fn foo() { ... /* old code */ }
fn bar() { ... /* old code */ }
// a_new.rs
fn foo() { ... /* new code */ }
// a.rs (again)
fn foo() { a_new::foo() }
that would mean i have to duplicate everything besides the readme and the license
or do it in the same file
// a.rs
fn foo() { new::foo() }
fn bar() { ... /* old code */ }
mod new {
fn foo() { ... /* new code */ }
}
thats more horror than pushing a broken commit
idk what language youre using
no its not
#ifdef RETARDED
i meant the old code is retarded not you lol
make a second branch and commit things while theyre all still broken them merge with squash into main
mommy in her abusive era...
@valid jetty theyre killing cve
I swear they changed that last min
elon is taking down cve
this is a good thing
the usa will collapse
in sha Allah
gj discord, you forgot to implement game invites!
woke up today to the uk becoming usa
why
what are game invites
i think thats under apps
lol
nope it aint
oh great, the name field for RPC is no longer modififable?
so now, only oauth activities can change the name dynamically
awfull
I think you can through gw, although it breaks some stuff
https://www.youtube.com/watch?v=-8IFL36RtAE @hoary sluice
💀 The Worst Programming Language Ever - A Hilariously Horrifying Creation 🤯
Every programming language has something good about it. But where’s the fun in that? Instead, let’s take the absolute worst parts of every language we know and mash them together into a nightmare of syntax, semantics, and runtime horrors.
Brace yourself for:
...
there are so many issues with it that i could see that happening
@dawn ledge hop on https://www.youtube.com/watch?v=TCcPqhRaJqc
Voiced by @tokisuno ... Check out his channel.
So, in this talk I want to tell about the reasons I love the Zig programming language, and I hope you will relate, or if you've never heard of Zig — consider learning it.
00:00 - Intro
01:00 - Error handling
04:50 - Explicitness and Control
08:46 - Tooling
09:46 - Language Design
12:36 - Comm...
true
we are SO back
what would the most basic language look like
i mean no abstractions types or whatever
what is like the core for any language
arithmetic and function calls?
hmm ig jumps too
Lambda calculus or turing machine
Elle in C
i see
most basic language is one that can compile a main function with a return 0
if youre making a procedural and not functional language
ellec stands for elle made in c dont let they tell you otherwise
i added a few more important ones but i THINK this is as far as i will be going...
the one for monomorphized generic fn Foo::x<i32>(i32 x) -> i32 is funny because i got it completely for free lol
like i just added info for function calls and this just works out of the box
worst thing ever
are you playing on adding documentation
pleasee do like kdoc 
do you eat crayons
i hope you explode
Let's see what's inside and decide if it's a scam...
i'm deleting this
- this will inevitably break quickly
- just get used to the old UI
- shady domain (why would anyone load CSS from some random domain)
- here isn't the place
shady domain (why would anyone load CSS from some random domain)
csp will block soon
