#🪅-progaming
1 messages · Page 70 of 1
year 13, the last year of sixth form
its 17-18 years old and you get your a-level exams
insanity
its an important year for british students
so 12th grade
are u in y13 rn
nope im in year 12 of sixth form and my age is NOT 12 it is 16
@valid jetty @valid jetty Rosie pie
if kindergarten counts to years
ok but on a real note i want to write a more complicated 3d example in elle
like, linking to opengl
not using raylib
@valid jetty when will Elle have a 2d graphics library of its own
never
@valid jetty
get nuked
@deep mulch your code will look like this from now on
const succ = n => f => x => f (n (f) (x))
const pred = n => f => x => n (g => h => h (g (f))) (u => x) (u => u)
const sub = m => n => n (pred) (m)
// these functions are using js primitives so theyre not pure anyway
// which means i can use js features like binops and ternaries
const churchToJs = n => n (x => x + 1) (0)
const jsToChurch = n => n === 0 ? False : succ (jsToChurch (n - 1))
const True = x => y => x
const False = x => y => y
const If = cond => x => y => cond (x) (y) () // requires to be unwrapped b/c lazy
const isZero = n => n (_ => False) (True)
const gte = m => n => isZero (sub (n) (m))
const Y = f => (x => f (y => x (x) (y))) (x => f (y => x (x) (y)))
const div = m => n => Y (f => m => If (gte (m) (n)) (() => succ (f (sub (m) (n)))) (() => False)) (m)
console.log (churchToJs (div (jsToChurch (10)) (jsToChurch (2)))) // 5
``` no more fancy binary operations or if statements
NO
where do u see
lmfao
yes
ive cursed you
every time you write a line of imperative or OOP code it will throw an error
oh i forgot i only have like two repos lmao
@valid jetty
this is a pure function

you're a pure function
"yeah im contributnig a lot"
lmao yeah ive seen that before
these mfs keep following em
i gen dont understand what theyre trynna achieve
like 90% of ppl on gh wouldnt even notice someone followed themlmao
my april is huge compared to every other months which is insane i think
mine
hm what if i just upload my unfinished projects on gh
instead of leaving them locally
jesus
HOW
oh dotfiles
😭
each commit is a single character change to my perfect rice :3 (i dont commit my dotfiles for this reason)
@valid jetty make Elle discord client
my only dotfile is fastfetch
yabe
i'm the type of person to make a 400 LOC change in a single commit
me too xd
me tooo
least insane thaunknown commit
its either that or
bange
banger
what the
already free becaus of prior error##name != NULL
assuming this condition is adequate to not free a second time
--- from https://cwe.mitre.org/data/definitions/415.html
Ensure that each allocation ...
let isSettled = false;
myPromise.then(() => isSettled = true, () => isSettled = true);
console.log("isSettled?", isSettled);
@valid jetty i think i found a bug in elle
hm?
fn test(i32 a) {
n := 5;
while a > 1 {
a -= 1;
}
return n;
}
should this work?
i'm getting qbe:test.ssa:21: invalid type for first operand %a.6 in sub
and when i add print into the while loop
im getting qbe:test.ssa:24: ssa temporary %a.6 is used undefined in @loop.4.body
this channel should be renamed to ellegaming
yeah its using the wrong a
its allocating a new a and then trying to use that a instead of the one from the function params
strange
i think this is mostly an issue with mutating arguments passed into the function as that was always an issue
let me try something
my fingers are so dead
@placid cape the reason this happens is
youre doing a -= 1, but i32 a does not give a an address
so doing a -= 1 sees that, goes to generate an address, but then the value is not put inside
@valid jetty bwa
yeah
the only issue with stuff thats passed to functions is that you dont have its address
so i would have to create a copy of the data to a new stack allocated variable
which is usually unnecessary because you only need that behavior when you wanna take the address of a stack allocated variable
ok i fixed it but i dont like this fix
i dont like that im copying the value of the arg to a stack allocated variable each time
function w $test(w %a.1102) {
@start
%n.addr.1106 =l alloc8 4
%a.addr.1104 =l alloc8 4
storew %a.1102, %a.addr.1104
storew 5, %n.addr.1106
@loop.1107.cond
%a.1103 =w loadw %a.addr.1104
%tmp.1108 =w csgtw %a.1103, 1
jnz %tmp.1108, @loop.1107.body, @loop.1107.end
@loop.1107.step
jmp @loop.1107.cond
@loop.1107.body
%a.1109 =w loadw %a.addr.1104
%tmp.1110 =w sub %a.1109, 1
storew %tmp.1110, %a.addr.1104
jmp @loop.1107.step
@loop.1107.end
%n.1105 =w loadw %n.addr.1106
ret %n.1105
}
but qbe gives me no better way because i dont have its address
these addresses are different which means C is doing a similar thing
gonna do it again 🙏
no FUCKING way
define i32 @foo(i32 %x) nounwind uwtable {
%1 = alloca i32, align 4
%2 = alloca i32, align 4
store i32 %x, i32* %2, align 4
%3 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i32* %2)
%4 = load i32* %1
ret i32 %4
}
llvm literally does this
it allocates new memory and copies the %x into it
thats fucking horrible
even if you dont take its address it STILL makes a new stack variable and puts the value into it
im assuming thats optimized out but thats insane
cool
yeah even with optimizations it still does that ```llvm
define i32 @foo(i32 %x) nounwind uwtable {
%1 = alloca i32, align 4
store i32 %x, i32* %1, align 4
%2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i64 0, i64 0), i32* %1) nounwind
ret i32 undef
}
ok that makes me a lot more confident in doing that in elle
ok i see it only does that if you take its address
ok i have a better way to do this then
or actually no because you cant assign to temporaries its abstracted to be their address
whatever
holy compilation speeeds @hoary sluice
these are all different tests which all individually import prelude
here i was thinking prelude was making things slow
sus
@valid jetty I'm going to give you 1 day sleeping stew
llvm<3
@hoary sluice looking at things in russian has made me realize how similar romanian and russian are
i can somewhat understand things which is INSANE to me
this would be peak if you just adjust the line height
anyone who knows how to remove this goddam thing from search bar firefox, idk css pls help
that looks pretty cool
the border doesnt even have the same width on all sides
what i think happened is it included the drop shadow for the window but didn't make the image transparent
I like this
i tried to make the importing of modules be only cached if the file path is the same too but 1. it doesnt work and 2. it brings parsing times from 200ms to 4.2s?????????????????????????????
this is what i tried to fix
either equating Rc<PathBuf> is really slow or creating Rc<PathBuf> is really slow
oh maybe cloning the module string is slow
You probably want Rc<Path> rather than Rc<PathBuf> though, double indirection is pointless
true
aids
its still significantly slower when equating the path
Are you sure the deduplication is actually working
Try adding some tracing even when it parses a file
ah yeah its not deduping properly
ok i figured out a compromise
ok the only issue now is that the time to import has tripled from 200ms to 600ms but at least its not 4.2s
i think i can speed that up by doing ptr_eq on the Path
i can just make a wrapper type that implements PartialEq and continue using .contains for the HashSet i think
actually i cant do ptr_eq on this because each Path is a different ptr
bwaaaa
now look at italian
WHAT
yup
I am probably the only person in the world who instinctively types (new Date).getDay() in js
Why tf would you do that and not new Date().getDay()
constructors without parens are the most cursed feature to ever exist
it's because you can't do new Date.getDay()
so i automatically do (new Date).getDay()

it does kind of look clearer...
Yeah but why aren't you just doing the sane thing
because i never normally use parens after the class name unless there are parameters
Wait wtf that's possible in JS????
Why
Why would you not use parens when doing a function call
It's partly js's fault for allowing that of course, but still
Why
is there anyone that has a database of known vpn hosting asn? since i use cloudflare free, I need to make my own vpn list.
or maybe a better vpn blocking method
Why do you want to block vpns
it takes 1 google search....
actual depression
i love when people mistake discord chats with google search
i found one but it was too large to add to waf.

gpt just lazy to give me all
@valid jetty my world view is shattering
i just found out beneficent is not spelled "beneficient"
Same with magnificent but not efficient
well for magnificent its understandable
nah. i found a list of asn. but its csv and i need to extract only asns and put them into waf. This is just taking a long time, so im asking if someone has a pre-made version of that
magnificent: magnifi - SENT
efficient: effi - SHENT
beneficent: benefi - SHENT?????
one of these three needs to be changed
oh i thought beneficent is spelled like that because of beneficial
insane
jesus christ dead code elimination takes up like 60% of the compilation process
i disabled it and compilation times went from 1.6s to 155ms
for ichigo which is a pretty big project* (around 1.6kloc)
potentially not a bad idea
i might just get rid of dead code elimination because qbe proooooobably does that for you
let me test that theory
Have you published it anywhere by any chance? 
jesus christ there were some huge low hanging fruits to pick
simply making the compiled functions be a hashmap for lookup and not doing DCE made compilation of ichigo go from 9.2s to 150ms
insane
that is literally insane
single digit compiltation times for smaller programs
is ichigo qbe
you did at manually??
yes
idk what you mean, ichigo is a compiler in elle that compiles to qbe
i meant does ichigo compile to qbe
yeah it does
so yes ok
why
qbe actually does not do DCE for you
the main selling points is that its lightweight
im sure if i compile the assembly with a C compiler and -O3 itll be DCE'd tho
i also thought that QBE has dead code elimination
it sorts makes sense that DCE takes so long
its an O(n^2) algorithm that checks if every function is used in any other function than itself
that is awfully slow
especially if there are many functions in the compilation unit
i was writing a quick prototype
the whole reason it works is hacky
the fact that this exists should show that xd
rewrite elle in elle
horrible but, for the time spent it works!
you need enums first
i was like "if compilation takes so long in rust, how tf am i gonna do this in elle in a reasonable amount of time"
now that compilation takes 9ms i think i can do it
Why do you not have an Instruction::Binop(op, v1, v2)
whats the point
you have to make an enum for op either way
might as well make each op its own instruction
actually wait i have it this way too
Binary {
left: Box<Expression>,
operator: Token,
right: Box<Expression>,
},
i did it like that in ichigo lol
same
struct QbeInstrBinop {
QbeValue *left;
QbeValue *right;
string op;
};
having this doesnt even make sense i think im gonna remove it and have only polish notation
but i also do this because i didnt have time to implement operator precedence binops yet
fn Parser::add_arithmetic(Parser *self, string name, string op) {
self.tree.push(Primitive::Function(
name,
[Argument::new("x", "整数"), Argument::new("y", "整数")],
[AstNode::Return(
AstNode::BinOp(
AstNode::from_token(Token::new("identifier", ValueKind::String("x"))),
AstNode::from_token(Token::new("identifier", ValueKind::String("y"))),
op
)
)]
));
}
fn Parser::add_arithmetic_methods(Parser *self) {
self.add_arithmetic("加算", "add"); // 「かさん」と読みます
self.add_arithmetic("減算", "sub"); // 「げんざん」と読みます
self.add_arithmetic("乗算", "mul"); // 「じょうざん」と読みます
self.add_arithmetic("除算", "div"); // 「じょざん」と読みます
self.add_arithmetic("剰余", "rem"); // 「じょうよ」と読みます
}
``` lmao
Is anyone here good at Compose
lol sure
@frosty obsidian
do u have to switch keyboard layouts in ichigo
yes
for what
to type in japanese
but its just alt+space on thinkpad or opt+s on macbook its not hard
no switch between jp and en while typing
nope
can u do it all with just jp layout
its the reason tsoding did -? and +? for < and > in huya
theres no <> on the default russian layout
thats why i have 『』 for curly braces
thats what the jp ime does when i try to put curly braces
can u use normal curly braces
i can add it to the lexer
but you cant from jp input i dont think
oh you can
but you have to select the right character
im still shocked that simply removing DCE gives like a 10x speedup 😭
10x memor increase
it makes sense but i didnt know it had THAT big of an impact
add dce to qbe
(until i flamegraphed it)
WHY IS SUBSETTING A FONT SO HARD
you should make a compiler backend in elle
and then rewrite elle in elle
so you can have full elle elle
i want to make a C backend for elle
from C i can compile to wasm and many other embedded platforms
write it in elle
and compile that elle to c
bootstrap your c backend into c using elle
well now i just have a C compiler
youll have an elle into c transpiler written in c
written in elle transpiled into c using itself
i can use the C transpiler for elle to compile elle into C and then i can write a C compiler in elle
so it compiles rust -> C -> elle -> C -> elle -> C -> C
and then compile it to cobol
THE FACT THAT I HAD TO WRITE MY OWN LIB WITH HARFBUZZ FOR THIS
should have done this insantly holy
why is every1 so fucking incompetent
3 python libraries, 10 online websites
nothing works
me rn
@valid jetty im having withdrawal symptoms from doomscrolling
doomscrolling has ruined me
i told myself today i wont watch youtube or play minecraft and will actually finish the project and now im really productive and my head hurts
mental health heh
oh i know i have this too
here's my fix
try to "catch" the moment you tab out from ur project
like when u get the impulse of "lets open youtube"
then get up from ur chair
and go take a piss, take a shower, make some tea, make some food
just take an actual productive break
eat food when you're bored 🔥
yep legit
then my whole day will be filled with breaks
just do something productive when u want to procrastinate, but just not in front of ur pc
block youtube, tiktok and other crap on dns level
yep, thats how it is
its a good thing
at least you'll have shit done IRL
well i havent watched any youtube or played any minecraft today
you'll make ur bed, wash urself etc
no its not, deadline is tomorrow
I had this for like a month
now discord is the problem
and I just didn't want to do anything
and then i do everything the day before the deadline
maybe you can try to go to bicycle and outside?
exactly
i dont have time for that
yesterday i did
today i dont
most of the time this is just an excuse
man mix-blend mode is fucking OP for making image masks
its INSANE
you can turn ANY DOM element into a mask
i have to finish the docs for a project that i was supposed to be working on since september and the deadline is tomorrow
you have time for the things you want to have time for
okay turn off discord
ok bye
bye bye
top: mix-blend-mode: multiply, makes a hole with the text, showing the background behind it
bottom: text with the same background but clipped using text-clip background
no lol you are like on the same level as me
top performance: 5k fps
bottom performance: 60fps
XDDDD
right? i spent a lot of time trying to get fontforge to work
should really make a docker container/nix flake for this
i got a $40ish commission, how do i make myself actually do it 
i have an online cs course i haven’t touched in months i have to finish before i graduate
force yourself
pay the customer 5 bucks if you dont complete it in time
donate 10$ to some zionist "charity" for every day youre late
Eagely you already finished the documentation???
i was waiting on chatgpt
okay
well they haven’t paid me yet
so
vcf
🪙 Tails!
vcf if tails i do it rn
What's a if
okay i’m sleeping
@valid jetty finally
i could never get 100 on this keyboard
on time 60
???????????
Is documentation done?
ok and this is better than my qwerty pb
today is the last day that im working on it
nice 👍
i wonder how many more records i can get in a row
yay
wtf
its funny because i cant get 116wpm on time 60 on qwerty lol
itll be 110 max
116.99 🥀
yea since last time i did monkeytype i had a few months of training my accuracy
previously i was making way too many mistakes
typing at like 120 raw with 80% accuracy
long nails really ruins my accuracy lol
you also used rpi instead of esp?
i can type well just not with good accuracy unless i cut my nails
yes
actually same
my keyboard is low profile
so if my nails are even like 3mm long they sometimes get in the way
Which model
i keep clipping on the keys if i type too fast lol
like my nails get stuck under the key
noo i got too nervous
I have 123 99% acc on 60 seconds
4 but it doesnt matter it just needs to have linux
notice how its 166 at the start
my 10 words qwerty pb is 178
i wonder if i can beat that
I have 159 on 10 words
181 wow
i wonder when ill get 200 on 10 words
btw, this only says the app doesnt track you
privacy policy tells the full story
:^)
i love how i completely skipped 160 and 170
i skipped 160 on qwerty too
never seen 16x wpm
200 wpm on 60s puts you #160 global 
all time
shows how absolutely insane the guy in #1 is
he just has long fingers and spent his entire childhood on monkeytype
inhuman
@valid jetty @valid jetty @valid jetty
eagely literally has higher than me
lmao
zoot will see a stick on the floor and say it’s a magic wand if i’m the one who dropped it
i just got 160
on time 60?
@frosty obsidian how do I make a TextField for massive chunks of text in compose
The regular impl takes a few minutes to measure the 20MB of text
My idea was to use a mono font and just measure how many chars fit on one line, then somehow use that to do efficient layouting
For static text that's easy with a LazyColumn and a bunch of Text split in lines
But when it needs to be editable idk
teach
that’s because 120 is just a little above average for someone who can program
120 really isn’t that high for someone who types all day long
i think my biggest disadvantage is that i only type with 1 finger on the right side of my keyboard
so i need a very good left leaning seed to get a good score
words like test are BLISS to type for me
1 finger???
i did 178 on qwerty with 2 fingers and a thumb
yess
full left hand, 1-2 fingers on right hand
it’s a really bad habit but it works because i can type 125+ avg with it
manual is a very right leaning word so i type it slower (and it’s extra slow for that because i was ensuring it was right)
no clue
I've never had to work with that much text
@deep mulch is smart compose user
@valid jetty they made gpt o4
I know 😭
you're better in everything than me
@valid jetty you can get so much stuff done when youre not on youtube the whole day
soo true
i wrote pretty much the entire 2nd semester of documentation in one day
not really lol
idk any compose and i’ve barely written any java
rosie wrote fizz buzz enterprise edition
rosie when fizz buzz enterprise edition in elle
it’s not enterprise edition but it exists
well thats not the point
you function on 2 hours of sleep
i’m just as surprised as you are that i’m functioning on 2 hours of sleep
i was expecting to be half asleep all day but i have more energy than i had the last month
rosie you will compete in aoc this year and go to sleed at 22 every day
to fix ur sleep
aoc made it worse lol
how
i just ended up sleeping at 1am and waking up at 4:45 instead of sleeping at 1am and waking up at 6am
you usually go to sleep at 7 am the next day not at 1 am
when i have school i try to sleep at 1am (it ends up being later but i try)
today it was 4am because i fucked my sleeping schedule during easter
you dont realize how much better sleep improves your life
oh i know it does but i also have a lot of things to do
you can get so much more done with less time if u sleep 8h with a fixed schedule
i tried 8h of sleep for like a month a few years ago
i always end up sleeping 3h later and 3h more during breaks and it messes me up
i was so tired i fell asleep during school and that has never happened before
idk what it is but it’s like the less sleep i get the more energy i have
it’s probably not good but whatever it works
u dont wanna do fixed 8h
u wanna find the closest point to 8h when you are not in NREM stage 3
true
otherwise it wont work
even better is polyphasic sleep but thats really hard to manage
u cant have a 9/5 job or school with poly
i have a much better system: sleep whenever i can no longer continue doing what i’m doing because of fatigue
You can't English go to sleep

i can english but i’ve discovered that i started making such typos far more often ever since i started focusing on japanese more and idk why because it really shouldn’t have any effect
same
ive been trying to speak and think less in english
more in russian
yeah exactly this but japanese lol
russian?
yea im getting worse at russian
i only speak it with family
and my english is already good i dont need to think in english
buna seara igali
who is igali
btw do you have any apps where you can learn/practice language?
yes many
also why ive been tryna find russian tsoding streams
insane
on duolingo since i have duolingo super and max
2 years 4 days ago
why 😭
.
but duolingo is nowhere near to being my primary source
how did you figure out how to bypass it
uhh teach pls
one of my friends recommended me anki
i tried but i think i have to patch it at the network level
i can invite you to the repository where i have revanced patches
yep
i was using duolingo school up until recently which has some of the features of super but then i did super free trial and now my school doesnt work anymore
yes pls
ty
@valid jetty hii
i figured out how to patch it on ios but it doesn’t apply, presumably the values are cached on the network level so no swizzling will work, i have to patch the file or the network request like eevee spotify does
@valid jetty swizzles you
i also invited you so if you wanna look you can
it's pretty easy
okok i’ll see
i just set subscriberLevel field in user class to GOLD, two more booleans and fill one array with all features
btw you need https://github.com/AbdurazaaqMohammed/AntiSplit-M to merge duolingo apkm/xapk into .apk file and then you'll patch it
i can even send you the patched apk file if you want
virus
i have no idea how any of this works, that would be the easiest
sure
i dont do android dev
zoot is a virus
there are 13 backdoors in the source code hidden from plain sight
the only thing ive reverse engineered is checking if minecraft mods are rats and that barely even counts
they have a pretty interesting obfuscation tbh
you’re in vencord 
everyone here has probably done at least a little bit of discord reverse engineering
.
never seen something like that:
void method(something) {
switch (something) {
case a:
// 1 do stuff
callProxyMethod(c);
return;
case b:
// 2 do stuff
callProxyMethod(a);
return;
case c:
// 3 do stuff
return; // done
}
}
ya i know
they basically have bunch of classes with one integer and then big switch statement with arguments (everything is object) and they call proxy methods there
i think it works a lot differently on ios
the only thing i could get working is refilling the hearts without watching an ad but that crashes the app lol (it still refills them)
you can just use duolinga school for that
not anymore
lmao
dualipa
they removed it from the apk code
but i'm sure it's also client side
ig that way it works offline
in spotify there’s a file created on the fs with cached user info, i think i have to edit that or something similar
they remove hearts like this :p
lol yeah
or just use a better os
but i like making tweaks for ios
i get to write in objc
which is a really nice language even though it looks weird at first
nope its not
technically you can do tweaks in swift but i prefer objc because i know C
is objc anything more than what the name says
yeah it’s really different its apple’s take on object oriented
+ (NSString *)hexStringFromColor:(UIColor *)color {
CGFloat red, green, blue, alpha;
[color getRed:&red green:&green blue:&blue alpha:&alpha];
int redInt = (int)(red * 255.0);
int greenInt = (int)(green * 255.0);
int blueInt = (int)(blue * 255.0);
int alphaInt = (int)(alpha * 255.0);
return [NSString stringWithFormat:@"#%02X%02X%02X%02X", redInt, greenInt, blueInt, alphaInt];
}
+ (UIColor *)colorFromHexString:(NSString *)hexString {
NSString *cleanString = [hexString stringByReplacingOccurrencesOfString:@"#" withString:@""];
if (cleanString.length == 6) {
cleanString = [cleanString stringByAppendingString:@"FF"];
} else if (cleanString.length != 8) {
return nil;
}
unsigned int rgbaValue = 0;
NSScanner *scanner = [NSScanner scannerWithString:cleanString];
[scanner scanHexInt:&rgbaValue];
CGFloat red = ((rgbaValue & 0xFF000000) >> 24) / 255.0;
CGFloat green = ((rgbaValue & 0x00FF0000) >> 16) / 255.0;
CGFloat blue = ((rgbaValue & 0x0000FF00) >> 8) / 255.0;
CGFloat alpha = (rgbaValue & 0x000000FF) / 255.0;
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
``` i can’t really find a good example
that looks disgusting
it is disgusting
got it
@deep mulch pls can help with #🪅-progaming message
nop
objective c objectively ulgy
I think you might need custom implementation
@valid jetty have the lambda calculus people created an array that isnt a linked list
everything probably
maybe make an issue in the tracker since if it's measuring even lines that aren't visible that's bad
idk i only know of the linked list approach to lists
zt has only ever touched kotlin and can’t read other languages…
nop
Rosie forgot I started with java
@hoary sluice basically instead of color.get(&red, &green, &blue, &alpha) you do color getRed:&red green:&green blue:&blue alpha:&alpha]
it looks weird but its actually really good
anyway @placid cape this is the code i had left over after trying a bunch of things
#import <UIKit/UIKit.h>
#define ROSIE_LOG(fmt, ...) NSLog((@"[DontFeedTheOwl] " fmt), ##__VA_ARGS__);
@interface DUOUser : NSObject
@end
@interface DUOSubscriptionInfo : NSObject
@end
%hook DUOSubscriptionInfo
- (BOOL)isFreeTrialPeriod {
return YES;
}
%end
%hook DUOUser
- (BOOL)hasDuolingoMax {
return YES;
}
- (BOOL)hasRegularDuolingoMax {
return YES;
}
- (BOOL)hasPlus {
return YES;
}
- (BOOL)hasUnlimitedHeartsAsFreeUser {
return YES;
}
- (BOOL)isAdmin {
return YES;
}
- (BOOL)adsEnabled {
return NO;
}
- (BOOL)rewardedAdsEnabled {
return NO;
}
- (BOOL)isImmersiveMaxFreeUser {
return YES;
}
- (BOOL)hasFamilyPlan {
return TRUE;
}
- (BOOL)hasFullFamilyPlan {
return TRUE;
}
- (NSInteger)maxHealth {
return 39;
}
%end
%ctor {
ROSIE_LOG("Hello world!");
}
``` i couldnt get it to apply though
iirc there was a second class in another file with obfuscated names and i swizzled that too but idk where that code went
zoot can only read kotlin and java..
i kinda hate how you cant know what exactly any of the things you hook do
unlike in like well modding on windows
this is user class in android duolingo
they didnt obfuscate subscriberlevel enum, that helped me a lot
you can
you can inject FLEX into apps and/or your system (if jailbroken)
you can find methods and if its not obfuscated you can know their type
oh yeah flex i remember that but i didnt know u can view impl
oh no you cant view impl
but you can view a pseudocode reconstruction of the assembly in like ida
similar to pseudojs generated from hermes bytecode for mobile discord
what do you think?
i dont think it will have these uh symbols like the one you extracted from the software which name i forgot
but you dont need to view impl you just need to know what the relevant functions are (unless symbol names are stripped in which case ur fucked)
@valid jetty i wanted to mv a file and forgot which one so i did ls
hopper?
its in bash btw, just a fancy wrapper around multiple cmds and the whole monorepo
why is it called blm
idk
i only know about classdump
so cool
and ktool
call it blomc
blomc is the compiler
blm is the black lives matter movement
this is just a fancy wrapper in the monorepo
so i dont have to do go run toolchain/cmd/blomc/main.go ...
g*o
yea call it blom
what does blm mean other than black lives matter
where did the o go
go mentioned
youre right i guess
but nvm i dont want it to call "blom" because it's really only for the development
blomctl
why do you have seperate tools for the ast and tokens
wrong reply
husk
you'll have these cmds after "installing" blom lang
why is the function called getRed
because its trickery
what does blom mean
the first argument of an objc call is the function name
so its technically color.getRed(&red, &green, &blue, &alpha)
the first one is the method ur calling on an object
the rest are named arguments
zoot has a crush on rosie
@valid jetty hiiii
bye
hm ok bye
i just made it yesterday bcs why not /shrug
zoter she is TWELVE
WHAT
eagely is on the same level as me
good one
i just wanted to have a custom cmd for each module
thats fair but idk
it's probably useless i know
i dont run the compiler at all
i am so tired of writing docs maybe doing a masters/phd isnt gonna be a gread idea after all
i have everything modular
i see
because of the interpreter etc.
work on icypeas
i just finished extracting the qbe abstraction from toolchain
should I get a masters @hoary sluice
not yet
so it's a real lib and i can implement qbe ir -> js, py
when
bcs that's not really related to blom itself
next year
do a masters in vienna
can't afford
i forgot ur american, thats in europe
i meant a separate cmd tool just for it
wrong
housing 300$
warm
you might need to know german but for masters there should be a uni that offers it purely in english
youre 27
nop
zeet doesn't know that he's an adult
can't afford to leave
do u have a job
@frosty obsidian
you spend all your money as soon as you get it
nop
you spend all your money on buying gifts for rosie
@valid jetty does your compiler exit upon the first error? If so how does the lsp give multiple diagnostics
maybe stop that
zeet invested in tesla
i wanna do a phd on the correctness and efficiency of monomorphization of complex types in functions and data structures for a statically typed language
yop
thats why hes broke now
none of those are real words
i shorted tesla and then it went up
it does and it doesnt (i need to refactor this to collect them into an array and throw them all at once when the number of errors exceeds 20 or the number of errors finishes)
as in it does exit and it doesnt report multiple
i understood all of that
im a compiler
good
it's your life you will move soon
where
@lucid trail it will report hover diagnostics and warnings if they happen before the error happens
lmfao
you can live in my town
Rosie lives in an abandoned town
yea that makes sense
i have no idea when you mean me or not
I always mean you
btw im serious about this
generics get REALLY complicated REALLY fast
ok rosie finish school first
i could easily write a whole paper on that
physics..........................
i have a practical tomorrow
sleep........
something about emf waves i forgot
please stop saying ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
emf waves are easy.........
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
i dont remember what it was because i havent done the practical report yet
(its due tomorrow too)
this is so evil i hate school
i wanna just go full into programming
is that why I can't do HF listening during the day
@valid jetty i will buy an indian on fiverr to write icypeas for me with the money i just made

idk
ur not alone
will he write it in javascript html and css
actually maybe u are cause im thinking abt doing a computational math masters
i think im generating waves not previously possible
in elle
REAL
@valid jetty what if you were indian
@valid jetty
horror
racist
is this a slur or nah
thats the name of indians in romania
i think its split
good to know
rosinga
nvm i didnt read that
@deep mulch
both scammer and romani
its on things that ask for your ethnicity
guh@valid jetty
only java and kotlit
the installation process got easier,,,
add regex to elle std
is there a binary release yet
or nixpkgs
$ git clone git@github.com/acquitelol/elle
$ cd elle
$ make
make: command not found 
theres a lot of other things that i need first
- stdlib is very lacking in features (missing ascii, encoding, crypto, file api, command api, socket api, maybe json parser?)
also install qbe from master and not the website unless they updated it
n*x
nah you dont need a json parser in stdlib
have you seen my beautiful thing i made yesterday
i just didnt have it installed
no
does nixos not come with make
insane
however elle does depend on fhs
[object.le:63:5] i32 obj["foo"].to<i32>() = 42
[object.le:63:5] string obj["bar"].to<string>() = "a"
[object.le:63:5] Array<i32>* obj["baz"].to<i32[]>() = <[1, 2, 3] at 0x600002f90150>
[object.le:63:5] i32 obj["a"]["b"].to<i32>() = 1
ellescript
this gave me a breakdown
look at the raw object ```rs
object.le:63:5] Object* obj = <Object {
entries = <{
foo => <Object {
entries = <invalid at 0x0>
type = i32
value = <unknown at 0x600002f90100>
} at 0x600002d95380>
bar => <Object {
entries = <invalid at 0x0>
type = string
value = <unknown at 0x600002f90130>
} at 0x600002d953e0>
baz => <Object {
entries = <invalid at 0x0>
type = Array<i32>*
value = <unknown at 0x600002f90250>
} at 0x600002d95480>
a => <Object {
entries = <{
b => <Object {
entries = <invalid at 0x0>
type = i32
value = <unknown at 0x600002f90350>
} at 0x600002d95940>
} at 0x600002f902b0>
type = Object*
value = <unknown at 0x600002f90290>
} at 0x600002d95760>
} at 0x600002f90060>
type = (nil)
value = <unknown at 0x0>
} at 0x600002d951c0>
or well
with cleanptr fmt
[object.le:63:5] Object* obj = Object {
entries = {
foo => Object {
entries = invalid
type = i32
value = <unknown at 0x60000194c100>
}
bar => Object {
entries = invalid
type = string
value = <unknown at 0x60000194c130>
}
baz => Object {
entries = invalid
type = Array<i32>*
value = <unknown at 0x60000194c250>
}
a => Object {
entries = {
b => Object {
entries = invalid
type = i32
value = <unknown at 0x60000194c350>
}
}
type = Object*
value = <unknown at 0x60000194c290>
}
}
type = (nil)
value = <unknown at 0x0>
}
😭
i could technically make a thing like
use std/json;
fn main() {
obj := Json::parse("{ \"a\": [1, 2, 3] }");
$dbg(obj["a"].to<i32[]>());
}
rosie does vim have a key equivalent to be
no i dont think so
crying
I wonder if it's a really good idea to do QBE IR -> JS
I will have to manage memory in js using typedarray and other shit
i would do that
not really
@valid jetty @valid jetty elle
why do u want to compile to js at all
^^^ you could do this thing
what about storing and loading addresses?
just an example
yeah try it
@deep mulch @deep mulch @deep mulch make zootlang
hm that's true
if you want exactly-typed types you could also use these things https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array
The Int32Array typed array represents an array of 32-bit signed integers in the platform byte order. If control over byte order is needed, use DataView instead. The contents are initialized to 0 unless initialization data is explicitly provided. Once established, you can reference elements in the array using the object's methods, or using standa...
and store the value at [0]
the type of the numbers in an Int32Array is exactly 32 bits unlike JS's number type which is dynamic
oh yea
I'll use that
well yes I could also create hir but in current stage of blom it's worthless
qbe ir is still relatively high level
$ mkdir -p ~/.local/bin # make dirs if not already there
$ git clone https://c9x.me/git/qbe.git
$ cd qbe
$ make
$ mv ./qbe ~/.local/bin/qbe # install qbe
$ cd ..
$ git clone git@github.com/acquitelol/elle
$ cd elle
$ make # install elle
$ export PATH="$HOME/.local/bin:$PATH" # add the bin dir to $PATH
``` foolproof guide
husk
you can then make sure its working by doing make test in the elle dir
building qbe from source
Rosie forgot I can just install using the aur
that probably wont be latest
you might get compilation issues, ive filed bug reports in the past when qbe failed to compile because qbe generated wrong asm
oh ok
i thought zoot was a windows user
@valid jetty @valid jetty
correct
i read that as "I use windows"
why do you sometimes just randomly ping rosie twice
@hoary sluice @hoary sluice
nothing will happen and then zoot will go @valid jetty @valid jetty
me
:3
funny
@valid jetty @valid jetty
i’m about to take a beautiful picture if i can get to the spot before it gets dark
Btw don't you want to directly embed qbe into ellec?
cant believe rosie goes outside
it’s closed 😭😭😭😭😭😭
it’s so over unfortunately
i think it’s gonna rain tomorrow too
you will get there but I will be there
@valid jetty You are being monitored.
WHY
Rosie...

nooo that sucks i promise
usually i love the rain but i want this picture so bad
i got there but it was closed
i got there too late
I was there
evil
Is it where it happened on 16/07/2024
what happened
it
idk what to say ong ??
what
idk what to say ong ??
no that’s unrelated i just saw a really good spot for a photo earlier and i went back to it today but it’s closed
just trespass lol
do
but first tell us what "It" is
Heyy guys, if anyone is interested, I am currently making a customisable tool for the pokeball plus!
You know pokeballs aren't real, right?
Yes they are
You probably think Santa isn't real either
@valid jetty @valid jetty
mfw 360ms to show first frame and 380ms to first contentful paint in my electron app
we love .jsc
doubled by bundle size from 2.5MB to 3.9MB
but its so worth it
what are you doing?
@valid jetty https://github.com/eagely/voice-frontend-docs/commit/02b605506256e9c780a481aabd6a7dae7267dd26 https://github.com/eagely/voice-frontend-docs/commit/88c13646585496524c44f9d433de819832405f7b 998 lines of documentation in 1 day 
preloading my JS, compiling it to bytecode, then on load instead of loading and interpreting the entire JS file, i just load the pre-compiled bytecode
but youre finally done ig?
hopefully yea
nice gj
prob gonna do some more minor improvements tomorrow
however tomorrow is also diploma thesis presentation practice day and i havent even started on the presentation yet
idk if i wanna do the practice or not
i wish you a good luck tomorrow
nice
tomorrow ill start working on my core, apis, matching etc
since now i have it like homeassistant
you have "satellites" and the core itself
what are u making it for again?
oh my classmates did that
but no voice
Just a home assistant
https://www.skupinazse.sk/Uvod/Kariera/Pre-studentov-a-absolventov/Pre-stredne-skoly it's called 4E.ON
Pre stredné školy
const vm = require("vm");
const script = new vm.Script(dummyCode, {
filename: filename,
lineOffset: 0,
displayErrors: true,
cachedData: bytecodeBuffer
});
script.runInThisContext({
filename: filename,
lineOffset: 0,
columnOffset: 0,
displayErrors: true
});
trully a thing of beauty
but i hope he didnt use https://www.home-assistant.io/ right? xddd
what is that exactly
like a company competition?
idk im pretty sure he wrote his own software
well ik he did, idk if he also used any premade ui
he also submitted it for bosch innovation prize
it's organized by electricity distibution company and it's just about making something technical
i couldve submitted mind too but meh its just more work
yea thats similar to bosch innovation prize i think
interesting
but bosch one is for diploma theses specifically i think
i want to do voice + home assistant and mobile/desktop app for managing the assistant (satellite) and core itself
and i'll use kotlin multiplatform for the mobile app i guess
i didnt want to do any of this i wanted to make a programming language but i needed a parner to get grade 1 on it and nobody wanted to make a compiler
my partner did effectively nothing
his job was hardware and the hardware isnt done
im in team with 3 more people