#development

1 messages · Page 186 of 1

wooden yarrow
#

so

gentle grove
#

In sizeof

wooden yarrow
#

just remove that for non alloc

#

!

gentle grove
#

no you can just directly use a string constant

placid kraken
#

yeah string literals in elle literally just create a data section like this and then return a pointer to the data section

wooden yarrow
#

hm

placid kraken
#

so yes null bytes

gentle grove
#

pretty sure that works

gentle grove
#

if you need the length you use sizeof

wooden yarrow
#

fr

gentle grove
#

No null bytes

wooden yarrow
#

hm wb immutable string slices created from alloc'd strings

#

those don't have fixed length

#

thus sizeof not resolvable at compile time

#

runtime sizeof

#

?

gentle grove
#

yeah then

#

copy rust

cloud yacht
#

My tasty null bytes

wooden yarrow
#

length + ptr

#

!

gentle grove
#

yeah

#

the distinction is made in rust since a string is always an allocated owned buffer

placid kraken
#

you can use strlen tho

gentle grove
#

if it's non allocated string slice you can definitely use that but it acts like an object with length and ptr

gentle grove
#

idk why sizeof isn't exclusively compile time

placid kraken
#

i swear it is

wooden yarrow
#

.

placid kraken
#

once i get better semantics i will abstract it to be more like zig

wooden yarrow
#

💀

placid kraken
#

do you guys know if theres a runtime sizeof

#

strlen is similar but it only returns the size of data that is allocated in the specified buffer rather than the whole size of the buffer

gentle grove
#

don't make the same confusing mistake as c

placid kraken
#

which is? to make sizeof a dynamic function?

gentle grove
#

yeah

placid kraken
#

yes very unpopular

#

why in hell would you EVER need that

#

youre passing around functions by byte pointer to the start of the blob anyway

#

when would you ever need the size of a function

sonic totem
#

I was looking for exactly this recently

#

Smh

wooden yarrow
sonic totem
#

I did in the end

wooden yarrow
#

that way you know exactly how many

#

.

sonic totem
#

Wasn’t even my code it’s reversed asm

#

That chops itself up a lot and copies specific functions as shellcode to other places

placid kraken
#

like what applications does it have

sonic totem
#

It’s checkra1n shellcode

#

It has to calculate the size of itself (being the payload) as well as specific portions of itself (for copying as additional shellcode for the next stage bootloader, plus it also copies specific instructions as binary patches for the next stage bootloader)

placid kraken
#

wonderful

#

opinions on a $ operator

#

malloc(1024 * $double) = malloc(1024 * 8)

#

i dont like the whole word sizeof

native orbit
placid kraken
#

™double

#

i can actually implement this super easily too

harsh junco
placid kraken
#

there you can do this now

double *zBuffer = malloc(size * $(double));
#

wrapped in () so its easier to read when its a pointer type

#

this is literally all i did lmfao

#

i could turn this into sizeof pretty easily

#

but i like $ more

radiant idol
faint stag
#

not size

placid kraken
#

thats fair

#

idk, if anyone has a better idea for a single character keyword for it ill change it

#

if not ill just go with sizeof

#

maybe @ or %

#

it cant be !, &, or *, and ^ looks wrong

orchid fulcrum
placid kraken
#

already used for inline IR

native orbit
#

sz

placid kraken
#

actually not a bad idea

#

but that would mean you cant declare any functions as sz anymore

#

you can declare it as a variable tho because thats checked before the global scope is checked for functions

#

maybe ill just go with @ for now

#

and change it later

#

actually

#

ill make inline IR $ again and then i can make # the sizeof

radiant idol
#

do sizeof please

#

making stuff really short makes readability harder

#

yes, that counts for you too, statur

native orbit
#

ok then

#

s

placid kraken
#

s#$sz*(double)

#

(i will do sizeof)

#

now its even more like C

#

who wouldve guessed the ideal low level language is just.. C

orchid fulcrum
#

Do size

#

Just to differ

placid kraken
#

yea but then i dont get distinct syntax highlighting for it when using C++ syntax highlighting

orchid fulcrum
#

Because its not c++ 🤷‍♂️

placid kraken
#

no as in

#

sizeof is a special keyword in c and c++

#

so the syntax highlighter colors it differently

#

oh i

#

read what you said wrong

#

ok ill just do size thatll make it easier

orchid fulcrum
#

Yay 🎉

placid kraken
#

wait i have an idea

#

just so it doesnt block a function from being called size

#

ill just make it #size(double *)

#

and its intuitive too

#

because # is usually related to preprocessor directives

native orbit
#

#size nice tbh

placid kraken
#

it actually gets a special color in c++ syntax highlighting lmao

#

that wasnt on purpose

#

great

#

i implemented proper validation

tepid olive
#

without having to download ktool and all that

#

thanks

radiant idol
#

or uh

#

hold on

placid kraken
#

should i make loop {} like in rust

#

which just evaluates to while 1 {}

placid kraken
#

@radiant idol

radiant idol
#

he's right

gentle grove
#

That's because you switch to c++

hasty ruin
proud geyser
#

how does one show alerts in swiftui app

#

by using .overlay perhaps ?

#

like email already registered, request timedout

sonic totem
#

.alert

proud geyser
#

looks like it got killed in ios18

sonic totem
#

There’s some library for it

#

That does nicer ones

#

Uhhh

#

Popovers or something?

proud geyser
#

nah i like raw dogging my shii

proud geyser
#

that’s popover

torn oriole
#

Raaagh peardb code

#

I believe ispresented is optional

proud geyser
torn oriole
#

Alert is what’s deprecated

#

.alert as a view modifier is what replaced it

proud geyser
#

but the ui/ux is bad yk isn’t .overlay better for my situation

torn oriole
#

All else fails you overlay a custom view in a little rectangle in the same place alert would

proud geyser
#

wym all else fails ?

torn oriole
#

As in you can’t cope with .alert

proud geyser
torn oriole
#

Fire

proud geyser
torn oriole
#

In my humble probably not correct opinion yes

placid kraken
#

i put the donut elle code into a donut shape

                  pub fn main(){double A =0;
            double B = 0; double *a = malloc(19200);
        char*b=malloc(2400);char*c=".,-~:;=!*#$@";printf(
    "\x1b[2J");while 1 {memset(a,0,19200);memset(b,32,2400)
   ;double d = cos (A); double e = sin (A); double f =cos(B);
   double g=sin(B);for double h=0;h<6.28;h+=0.07{for double i=0
  ;i<6.28;i+=0.02{double j=sin(i);double k=cos(i);double l=sin(h);
 double m= cos(h);double n=             m+ 2;double o=1 / (j * n*e
 + l*d+ 5); double p= j*n                 *d- l*e;int x=30+ 36*o*(k
*n*f- p* g ); int y= 12+                   12 * o * (k * n * g + p*
f);int q  = x + 100 * y;                   int r = 8 * ((l * e -j*m
 * d) * f - j * m*e- l *d                 - k * m *g) ;if 24 > y&&
 y > 0 && x >0&& 100 > x&&o             >a[q] { a[q]=o; if r>0 {
 b[q] = c[r]; } else { b[q] = c[0]; } } } } printf("\x1b[H");for
  long s = 0; s < 2400; s++ { if s % 100 { printf!("%c", b[s]);
    } else {printf!("\n");}}A += 0.004;B +=0.002;}return 0;}
    //~::;;;;;;*********################*******!!====;;;:~~~
        //~~~~:::====!!!!!!!!!**********!!!====::::-----
            //....,,,~~~~;;;========;;;:~~~~~---....
                //....,,,,------------,,,****///
#

it compiles

#

it looks a bit less wide in my editor lmao

#

looks very clean in discord before its sent

gentle grove
#

wait did you make that from scratch or did you translate the c version into elle

placid kraken
#

i basically just took this and made it as little as possible and then donutified it

#

i need to fix arithmetic tokenizing tomorrow for the infix operator

tepid olive
#

has there ever been a public ios userspace pac bypass

blazing warren
#

@fading shell

wipe the jailbreak and the device.

I already installed glance and it seems to work fine, but when installing tweak by tweak I found respringloop WITH THESE TWEAKS:

facebooknoads

iclaner pro

jade

tepid olive
#

because if it is ive wasted like 6 hours of my time 💀

placid kraken
blazing warren
#

yep

placid kraken
#

you can just force restart and then launch the jailbreak with tweak injection disabled

#

ok good

blazing warren
#

but I'm a bit extreme

#

I wanted to give glance a chance, but it only brings me problems
The only way for it to work well with all my tweaks is with oldabi

queen ruin
#

I wanna remake the icon tint thing

#

Well the tint shouldn’t be that hard but the dark mode conversion might be

cloud yacht
#

the first person to do so and make it a tweak will make a lot of money

queen ruin
#

I don’t wanna race

#

I’ll probably work on it but if a paid version comes out before mine I’ll just publish mine for free, otherwise it’ll probably be free anyways

queen ruin
#

Oooo extending functionality with something like this or more would be nice as well https://fxtwitter.com/Gavmn/status/1800982973392494968

Would love to see Apple take dark mode icons one step further and sample the primary icon color to use as a subtle tint on the dark background.

▶ Play video
tepid olive
# sonic totem Yes

lol then my 8 hour work of symbolicating IOUSBDeviceFamily was useless

sonic totem
#

I don’t understand why you went for IOUSBDeviceFamily for a PAC bypass

tepid olive
#

IOUSBDeviceFamily is locked behind PAC instructions

sonic totem
#

Every kext is…

tepid olive
#

I noticed it while looking at the disasm

sonic totem
#

The whole kernel has PAC throughout

tepid olive
#

right because it's arm64e. i forgot about that

#

💀

tepid olive
#

the thing i wanted to do probably wont work

naive kraken
#

before you were able to replace PAC keys with KRW

#

But that's behind SPTM now

#

But that's not relevant, you can bypass userland PAC by finding a bug in it's implemetation

sonic totem
#

Oh hm interesting

placid kraken
kind herald
#

Donut 🍩

wooden yarrow
#

.

harsh junco
hasty ruin
#

?

wooden yarrow
#

?

placid kraken
#

?

placid kraken
slender glade
#

@granite frigate @grim sparrow I miss making apps for jailbreakers so much, like, whatever u make for jailbroken iphones, SOMEONE will have a use case for it no matter how niche. but for normal apps u need to get like 10x out of the box with thinking and it hurts my head

granite frigate
#

like ever

slender glade
#

happens to the best of us buddy

slender glade
grim sparrow
#

Its a classic

slender glade
#

same APIs and tools that we use. buddy how about you dump UIView ^& UISearchbar and get back to me on that

slender glade
#

@grim sparrow I wonder how much CPU energy is wasted checking for if String(data: data, encoding: .utf8) returns nil because it turns it that it literally just doesn't

grim sparrow
#

No it can

#

If the last byte isn’t 0

#

But in all other situations no

slender glade
#

like i'm 100% serious when I say that most String(data: data, encoding: .utf8) should just be force unwrapped

#

@grim sparrow OHHH I CONFUSED IT WITH string.data i'm so stupid omfg

grim sparrow
#

💀

slender glade
#

yeah string.data is the one that can never return nil if it's utf8

grim sparrow
#

Yeah…

slender glade
grim sparrow
#

Profiling

slender glade
#

i tried to profile discord one time and oughhh

grim sparrow
#

Yeah it’s only good for ur own app

granite frigate
#

Chat how do I build for iOS 11

#

tried xcode 15 and setting deployment target to 11.0, fails when I try building

#

tried xcode 13, crashes when I try opening or creating a project

orchid fulcrum
#

Use theos hm

native orbit
slender glade
sonic totem
#

No Xcode itself crashes

granite frigate
#

Not my app

native orbit
granite frigate
#

Should i go lower

#

Xcode 11 perchance

native orbit
#

no

granite frigate
#

Idk

native orbit
#

i used xcode 13 for ios 9+

granite frigate
#

Wtf.

native orbit
#

what macos you on?

granite frigate
#

Sonoma

#

14.2.1

native orbit
#

try xcode 14

granite frigate
#

ok

#

time to download another 10gb

#

fuck

steady nest
native orbit
#

trol

native orbit
#

try xcode 3.2

orchid fulcrum
#

Try xcode 5

frail cedar
#

never again

lusty jacinth
#

A tweak that replicates those motion sickness dots from the new update would be cool

frail cedar
#

pain

#

i hate intents

#

so much

#

I have NO CLUE what changed between beta 6 and 7

#

but SOMETHING BROKE IT

#

lemme look at commits

#

is it just

#

is it literally just i didnt recompile the new binary and so the library thinks it isnt working

#

and then the entire thing dies

#

Hold on

granite frigate
#

TIL there are intents on iOS

lean ermine
#

just updated to sequoia wonder if this is doable 😮

#

oh wtf

#

thats jj lol

tepid olive
frail cedar
#

#!/usr/bin/env zsh will work on both rootless and rootful right

#

It will

placid kraken
#

@oak meadow https://www.youtube.com/watch?v=ZR8KivbEzLI they basically took your idea and 10x'ed it lmfao

Apple Intelligence is the most important announcement from Apple in nearly a decade. A lot of what was announced is not new — but no matter how jaded you are to all of this, I’m asking you to take a step back and hear me out because the intention and purpose behind Apple Intelligence is new- and it’s a game changer. Quite literally, after this, ...

▶ Play video
native orbit
frail cedar
#

Yea it does work

#

It gets rid of the error bit though

#
        posix_spawn(&pid, "/bin/zsh", NULL, NULL, (char *const *)args, NULL);```
This would work to spawn uialert right
#

Or I could just yoink the code from uikittools hm

#

i do not know what uikittools is doing

slender glade
placid kraken
#

someone help me dream up syntax for lambda functions in elle

#

im currently thinking ^(int a, int b) -> int: a + b

radiant idol
#

I HATE that thing so much

frail cedar
placid kraken
#

dont you love objc blocks smh

radiant idol
#

NO

frail cedar
#

no

radiant idol
#

THEY SUCK

frail cedar
#

no we dont

placid kraken
#

so

#

without that ^

native orbit
#

^ should only be used for xor 🙏

placid kraken
#

pls tell me how the parser can differentiate between (int) type casting and (int a): a * 2 lambda functions

#

without looking super far ahead

frail cedar
#

making a pr to fix this one typo

radiant idol
#

ANYTYIJG BUT OBJC BLOCK SYNTAX

placid kraken
radiant idol
#

ITS BEEN 3 YEARS AND I STILL DONT KNOW THAT STUPID SYNTAX

placid kraken
#

thats why js has the liberty to do () => {}

#

😭

radiant idol
#

EVERY TIME I HAVE TO GO ON GOSHDARNBLOCKSYNTAX TO REMEMBER

placid kraken
#

what about this

frail cedar
#

errx(1, _("JSON formating failed: %s"), error.localizedDescription.UTF8String);

#

ITS FORMATTING

#

TWO T

placid kraken
#

but instead of { return a - 1 } its just a - 1

#

(i found this random image online when searching c lambda function lmfao)

#

also yes im aware its just a C++ lambda

frail cedar
#

uikittools is no longer important

#

my power cable is here

native orbit
#

server back s0n?

frail cedar
#

yeah

#

both xserves

native orbit
#

W

frail cedar
#

and all my apple tv

#

poweredge and xserve raid No though because my dad said no 240v

#

(we'd need to upgrade to 250a service)

native dune
#

@naive sedge so what did you change in a backup to get iPhone mirroring working troll

frail cedar
#

so im powering this shit off a 120v 20a circuit

#

I may explode the pushmatic breaker from the 60s

native orbit
#

💀

placid kraken
#

basically i wanna implement lambdas so i can do currying

frail cedar
#

Big cable

placid kraken
#
pub fn main() {
    int res = a(1)(2);
}

fn add(int x) {
    return [](int y) -> x + y;
}
#

fun i guess

frail cedar
#

Here we go!

acoustic imp
frail cedar
#

vrrrrrrrrt

#

ITS WORKING

frail cedar
#

HAHAHAHA

#

Oh no one of my RAM sticks died

placid kraken
#

@radiant idol hear me out

pub fn main() {
    function *someLambda = fn(int x) {
        // full block with return available
    }

    int res = add(1)(2); // 3
}

fn add(int x) {
    return fn(int y) -> x + y; // single statement only
}
#

im concerned as to how im gonna put variables from the declaration scope into the scope of the lambda

#

considering under the hood itll just make a new standalone function with tmp_counter name based on the parent function

#

but we'll see

radiant idol
#

This s scares me

placid kraken
#

lmfao

#

perhaps something like this to keep it more consistent

pub fn main() {
    function *someLambda = fn(int x) -> {
        // full block with return available
    }

    int res = add(1)(2); // 3
}

fn add(int x) {
    return fn(int y): int -> x + y; // single statement only
}
#

ok yea i think this is what im gonna go with

#

inside of statement parsing the fn keyword is literally never used so this is perfect

#

i think i know how to do this actually

#
  1. create a standalone function with the existing arguments of the parent function first then the new arguments after
  2. store the lambda in some hashmap in the compiler ctx
  3. when the lambda is called, check if its in the hashmap and retrieve it
  4. insert all of the parent function's arguments before the new arguments that the function can actually take
  5. call the temp function like normal
#

so internally

fn add(int x) {
    return fn(int y): int -> x + y; // single statement only
}

will make

fn add.1(int x, int y) {
    return x + y;
}

fn add(int x) {
    return add.1; // store this somewhere so that you can insert `x` when it comes to running the lambda
}
native orbit
placid kraken
frail cedar
#

I KNOW

#

I HATE IT TOO

#

I WANT TO MAKE PATCH CABLES

frail cedar
#

(pentium 4 xeon)

#

THEREs everyone

#

Sarafine got a memory wipe??

#

Oh yeah I threw big sur at it

#

Let me

#

make a monterey USB

#

and reinstall macos

native dune
cloud yacht
#

I accidentally installed windows on my Mac

kind herald
#

how do you accidentally do that

cloud yacht
#

Took the hard drive out so I didn't have to wait like 3 days for it to transfer files before I could use it and apparently the drive I stuck in had windows on it

#

I thought it had arch Linux but I guess that's a different drive I was thinking of

placid kraken
#

guys is this overengineered enough

ifeq (run,$(firstword $(MAKECMDGOALS)))
  RUN_ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
  $(eval $(RUN_ARGS):;@:)
endif

DIST_PATH = dist/$(RUN_ARGS)
IR_PATH = $(DIST_PATH)/target.ssa
TMP_PATH = $(DIST_PATH)/tmp
ASM_PATH = $(DIST_PATH)/out.s
EXEC_PATH = $(DIST_PATH)/$(RUN_ARGS)

run: $(EXEC_PATH)

$(EXEC_PATH): $(ASM_PATH)
    cc -o $@ $<

$(ASM_PATH): $(TMP_PATH)/out.new.s
    mv $< $@
    rm -rf $(TMP_PATH)

$(TMP_PATH)/out.new.s: $(TMP_PATH)/out.tmp.s
    sed -E 's/Lfp([0-9]+):/_Lfp\1:/g' $< > $@

$(TMP_PATH)/out.tmp.s: $(IR_PATH)
    mkdir -p $(TMP_PATH)
    qbe -o $@ $<

$(IR_PATH): examples/$(RUN_ARGS).elle dist/compiler
    rm -rf $(DIST_PATH)
    mkdir -p $(DIST_PATH)
    dist/compiler $< $@ > /dev/null

.PHONY: run
run:
    clear
    @$(EXEC_PATH)

compile:
    mkdir dist
    rustc -o dist/compiler src/main.rs
gentle grove
#

No

placid kraken
#

what more can i add

gentle grove
#

cmake

placid kraken
#

right now building is as simple as make run <name>

gentle grove
#

cmake is the father of all build system overengineering

placid kraken
#

but

#

this is a rust project

gentle grove
#

oh

#

Even better

#

Do everything in cargo instead of make

placid kraken
#

uhhhh

#

but the project has no dependencies so i dont even need to use cargo at all

gentle grove
#

you don't need dependencies to justify using cargo tr

#

After all it's just another build system

#

it'd probably be nicer bevause built in functionality like cargo run

#

and you can make whatever build scripts you want with build.rs

placid kraken
#

oh god i forgot i need to write my whole build system in rust

#

ok i can do this

gentle grove
#

cargo time

placid kraken
#

i dont know what approach to take for lambdas 😭

#

if i capture all of the variables defined from the parent function they wont be in scope when calling the lambda because %x.23 is a temporary or whatever

cloud yacht
#

You should make your build system in objective c

placid kraken
#

ill stick with a makefile for now because its really simple

placid kraken
#

its as simple as running gmake run compile to get a compiler executable and then gmake run <file> to compile and run ./examples/<file>.elle

placid kraken
#

i gave up making lambdas

#

but i did make fake constants

#

look

const int MAX_INT = 2147483647;
const int MIN_INT = -1 * MAX_INT;
#
function w $MAX_INT() {
@start
    %r.v0.1 =w copy 2147483647
    ret %r.v0.1
}
function w $MIN_INT() {
@start
    %MAX_INT.2 =w call $MAX_INT()
    %tmp.3 =w copy -1
    %tmp.4 =w copy %MAX_INT.2
    %tmp.5 =w mul %tmp.3, %tmp.4
    %r.v5.6 =w copy %tmp.5
    ret %r.v5.6
}
#

at compile time it turns the literal expressions into a funcall

#

i could also make it into a data section and then make it a pointer derefence but that wouldnt work very well because you cant put ssa form into data constants

placid kraken
#

thats pretty cool i think

gentle grove
#

so probably that's how you have to do it

#

closures are such a clusterfuck in non-reference counted languages

placid kraken
#

i gave up and decided elle will just not have lambda functions

#

i made array literals tho!!

pub fn main() {
    char *test[] = {"abc", "meow", "test"};

    for (int i = 0; i < 3; i++) {
        printf!("test[%d] = %s\n", i, test[i]);
    }

    return 0;
}
native dune
#

abc meow test

placid kraken
#

meow

radiant idol
#

ew

#

also make size_t arrlen(...) or something

placid kraken
radiant idol
#

cursed

placid kraken
#

should #size return the size in bytes or the size in bytes divided by the size of the type

#

so if you do

long test[] = {1, 2, -39};

should it return 3 or 24

native orbit
#

always size of bytes

placid kraken
#

if it returns size of bytes then instead of

const long MAX_SIGNED_LONG = 9_223_372_036_854_775_807;
const long MIN_SIGNED_LONG = -MAX_SIGNED_LONG - 1;

pub fn main() {
    long test[] = {MAX_SIGNED_LONG, MIN_SIGNED_LONG, -39};

    for (int i = 0; i < #size(test); i++) {
        printf!("test[%d] = %ld\n", i, test[i]);
    }

    return 0;
}

you would need to do

const long MAX_SIGNED_LONG = 9_223_372_036_854_775_807;
const long MIN_SIGNED_LONG = -MAX_SIGNED_LONG - 1;

pub fn main() {
    long test[] = {MAX_SIGNED_LONG, MIN_SIGNED_LONG, -39};

    for (int i = 0; i < #size(test) / #size(long); i++) {
        printf!("test[%d] = %ld\n", i, test[i]);
    }

    return 0;
}
``` to get the behavior youre aiming for
#

is it the same in C?

#

ill make it size in bytes i suppose

#

literally just a difference between

Instruction::Copy(Value::Const(
    ty.clone(),
    data_section.unwrap().size as i64
        / buffer.unwrap().size() as i64,
)),
``` and
```rs
Instruction::Copy(Value::Const(
    ty.clone(),
    data_section.unwrap().size as i64,
)),
``` lmao
radiant idol
#

make a builtin arrlen func tho

#

please

placid kraken
#

(horror)

gentle grove
placid kraken
gentle grove
#

close enough

placid kraken
#

i dont like how in c sizeof looks like a function

#

because its not

#

its a macro

#

and yet nothing is special about it

#

at least user-made macros are all caps usually

#

ok @radiant idol ```c
const long MAX_SIGNED_LONG = 9_223_372_036_854_775_807;
const long MIN_SIGNED_LONG = -MAX_SIGNED_LONG - 1;

pub fn main() {
long test[] = {MAX_SIGNED_LONG, MIN_SIGNED_LONG, -39};

for (int i = 0; i < #arrlen(test); i++) {
    printf!("test[%d] = %ld\n", i, test[i]);
}

return 0;

}

#

someone remind me to document all of this behavior in the morning before i push

#

because its like 1am and i cba to do it now

radiant idol
#

nice

gentle grove
#

i will forget to remind you if that helps

placid kraken
#

oh also birthday lmao

#

i am officially 16

#

since 55 minutes ago

gentle grove
#

@placid kraken HAPPY BIRTHDAY!!!!!!!!!!!!!!!!!!!!!

radiant idol
#

happy birthday

placid kraken
native dune
#

Bro is younger than me and is making a whole ass programming language

#

I’m cooked

granite frigate
cloud yacht
#

@placid kraken congradulations on being born

proud geyser
#
import Foundation

class ErrorHandler: ObservableObject {
    static let shared = ErrorHandler()
    @Published var latestError: Error?

    private init() {}

    func storeError(_ error: Error) {
        latestError = error
    }

    func clearError() {
        latestError = nil
    }
}
``````swift
.overlay(
(ErrorHandler.shared.latestError != nil) ? AlertView() : nil
)``` and the view in overlay doesnt update even if the value of latesterror changes
#

help ?

wooden yarrow
young meteor
#

i thought you were like 20

#

happy birthday though

lusty jacinth
#

Would it be possible to backport RCS support with a tweak?

tepid olive
#

you would be doing a lot of work

#

like a significant amount of work

#

maybe though

main apex
lusty jacinth
#

True true

rigid lily
#

17.1 bad or good trollstore let me know

#

If someone say is bad I’m going to. 18 quick

radiant idol
reef trail
slender glade
reef trail
placid kraken
placid kraken
wooden yarrow
#

and are more mature than others your age

#

(low bar troll )

#

so

#

.

warped sparrow
crisp frost
#

happy birthday @placid kraken

placid kraken
#

tyyy

shrewd moth
#

Happy birthday!

drifting heron
#

pretty cool

celest granite
#

Hi

#

I seen the TrollStore page and it updated iOS 17 to coming soon…

velvet path
#

that has nothing to do with this channel

celest granite
#

Ah

#

Sorry

#

I was gonna ask for the name if it is in development

#

Of the app

slim bramble
#

Happy birthday @placid kraken

granite frigate
#

Happy birthday @placid kraken

sonic totem
young meteor
#

no it's alfiestore

cloud yacht
wooden yarrow
#

how do i hook/edit a dyld function in lldb

#

.

#

most likely the wrong tool for this but

#

lldb is all i know

#

(macOS)

sonic totem
#

You can’t hook a DSc function

#

From LLDB

slender glade
#

character growth!!

#

nearly 3 years lol

#

lool

atomic horizon
#

i needed to wait for it to be loaded

radiant idol
lean ermine
#

anyone know a way to bypass tethering throttle on linux

#

ik about pairvpn for macos but linux does not have

#

ive tried mangling ttl

#

ive seen some things about hosting ad hoc network from pc and using ssh proxy but i cant download necessary packages without internet lol

#

and that'll cut my speed in half

placid kraken
slender glade
#

also on the newest macOS version it can't work

#

they added in an entitlement you need for thread_* functions that gdb relies on iirc

frail cedar
#

do we not know what that entitlement is

#

or is there another reason we can't just grant it

reef trail
#

@lusty jacinth

lusty jacinth
reef trail
#

hehe

#

bro thought

lusty jacinth
#

I didn’t tho

lusty jacinth
reef trail
lusty jacinth
#

o

atomic horizon
#

just make it listen to a notification

#

forgot which one tho

radiant idol
#

Nice

hasty ruin
radiant idol
#

I regret wasting that time

hasty ruin
#

we all have

hasty ruin
radiant idol
#

ICRAZE GET TO WORK ON THE PROJECT

#

TOO MANY EXCUSES

sonic totem
#

What project

radiant idol
#

Dw about it

kind herald
radiant idol
#

He keeps being lazy

hasty ruin
#

Alfie can vouch

radiant idol
#

OK ICRAZE

cloud yacht
young meteor
sonic totem
naive sedge
#

can't believe it spans 4 years

radiant idol
#

Yeah fr

young meteor
#

i have seen the end

#

it is beautiful

keen linden
#

i'm trying to use libkrw in an app, and i've added libkrw.tbd to my xcode project alongside everything else.

changed the tbd for rootless to use
install-name: '/var/jb/usr/lib/libkrw.0.dylib'

when i run, app crashes and crash log says

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: DYLD 1 Library missing
Library not loaded: /var/jb/*/libkrw.0.dylib

any help would be greatly appriciated, don't want to be using kfd for overwriting when i have a full jailbreak

faint timber
#

that means you don't have libkrw installed from procursus

keen linden
#

file is there too, checked with filza

faint timber
#

you should be linking against the tbd in the dev package

lean ermine
#

have to install windows for the single reason that pairvpn does not have a linux version

reef trail
wooden yarrow
#

hm what's a good way to hook a dyld swift function globally on macOS

lean ermine
#

i just tried using it on my mac and using an ethernet cable from my macbook to my pc and it worked but i barely get 200 kb/s

#

pain

placid kraken
radiant idol
faint stag
faint stag
#

(yes a tunnel is an interface)

fallow inlet
#

Happy birthday @tight carbon

tight carbon
faint stag
#

Ah hell I'm an idiot
I added an ifeq for a makefile variable that has a default and was wondering why the value never changed

harsh junco
#

Hbd @tight carbon

lean ermine
timid briar
wooden yarrow
#

yo do yall know how to allow lldb to insert and make breakpoints into any process

#

getting error: 9 sending the breakpoint request errors

native orbit
#

how are you attaching to the process?

wooden yarrow
#

it is a normal non-debug program that i cannot launch myself

orchid fulcrum
#

Could be wrong but iirc it has to have get-task-allow entitlement. Does the process have it

#

i.e is it signed with a dev cert

wooden yarrow
#

hm, no

#

it's just a normal program without any debug entitlements nor compilation

orchid fulcrum
#

Compilation ?

wooden yarrow
#

like without the -g flag on gcc nor break to debugger on app start

#

or whatever else

gentle grove
#

I was gonna say you have to give the debugger some entitlement but I think that was gdb not lldb

#

since lldb is built in

wooden yarrow
#

is there any plausable way to do this without get-task-allow? would like to not modify the program if at all possible

orchid fulcrum
gentle grove
#

Yeah

orchid fulcrum
wooden yarrow
faint stag
wooden yarrow
faint stag
#

i mean arent the args just passed when executed

#

or does it fork

wooden yarrow
#

fork

#

I think

faint stag
# wooden yarrow I think

i mean frida uses tfp
though that might require SIP being off
ofc it being an instrumentation tool you can't expect to set hw breakpoints. there's a memory access monitor function i believe

wooden yarrow
#

hm

#

cool

granite frigate
#

@wooden yarrow howd you get greymatter to show up on macos beta

wooden yarrow
#

😭

eager ice
#

most likely via some debugging magic

granite frigate
#

oh my

#

sorry mate

wooden yarrow
#

getting trolled through all platforms

granite frigate
#

didnt know

wooden yarrow
#

mfs even friended on discord and bluesky

granite frigate
#

oop

wooden yarrow
#

lmao

wooden yarrow
eager ice
#

sorry to hear that

granite frigate
#

nah i was asking cus someone showed the siri UI on 18 beta

#

and hes gatekeeping it

wooden yarrow
#

what Siri ui

granite frigate
wooden yarrow
#

lmao

#

(I am not replying to any of them)

granite frigate
#

real

#

ok keep your secrets then

orchid fulcrum
#

"Don't want apple to patch the bug" is crazy

tepid olive
#

using lldb

tepid olive
wooden yarrow
lean ermine
#

i wonder if apple can see who has waitlisted and if he is the only one lol

tight carbon
radiant idol
wise spruce
tepid olive
#

hahaha

#

💀

crisp frost
#

Plx what have u gotten yourself into

acoustic imp
#

poor plx

restive ether
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

slim bramble
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

placid kraken
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

native dune
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

tepid olive
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

tepid olive
young meteor
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

kind herald
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

tight carbon
wise spruce
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

orchid fulcrum
#

Does anybody know if CydiaSubstrate is also widely used on android ? I saw it had support for it from the website but idk if its mainstream like it is on ios

kind herald
#

what

orchid fulcrum
#

What what

faint stag
#

substrate is for code injection basically

#

but obviously the more popular implementationwas xposed

tidal jungle
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

queen ruin
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

main apex
#

@wooden yarrow Helloo! Sorry for bothering, I was wondering if it Is possible that you could share your findings about iPhone Mirroring, Greymatter & Siri (at least a hint) i'll only tell a friend (we are both part of the Jailbreak server) and we wont post about it bc we aren't doing it for clout/attention we just wanted to try Apple's cool new stuff early because it is hard to wait till fall. It's alright if you don't. Thanks anyway! Have a nice day!

cloud yacht
#

I just installed theos on my mac and it's not working ```
bash: /Users/shorty/theos/toolchain/Xcode.xctoolchain/usr/bin/clang: No such file or directory

Making all for tweak Eliza…
bash: /Users/shorty/theos/toolchain/Xcode.xctoolchain/usr/bin/clang: No such file or directory
bash: /Users/shorty/theos/toolchain/Xcode.xctoolchain/usr/bin/clang: No such file or directory
bash: /Users/shorty/theos/toolchain/Xcode.xctoolchain/usr/bin/clang: No such file or directory
bash: /Users/shorty/theos/toolchain/Xcode.xctoolchain/usr/bin/clang: No such file or directory
bash: /Users/shorty/theos/toolchain/Xcode.xctoolchain/usr/bin/clang: No such file or directory
bash: /Users/shorty/theos/toolchain/Xcode.xctoolchain/usr/bin/clang: No such file or directory
bash: /Users/shorty/theos/toolchain/Xcode.xctoolchain/usr/bin/clang: No such file or directory
bash: /Users/shorty/theos/toolchain/Xcode.xctoolchain/usr/bin/clang: No such file or directory
==> Preprocessing Tweak.x…
==> Preprocessing Tweak.x…
==> Compiling Tweak.x (arm64)…
bash: /Users/shorty/theos/toolchain/Xcode.xctoolchain/usr/bin/clang: No such file or directory
make[3]: *** [/Users/shorty/theos/makefiles/instance/rules.mk:400: /Users/shorty/projects/Eliza/.theos/obj/debug/arm64/Tweak.x.604acd60.o] Error 127
rm /Users/shorty/projects/Eliza/.theos/obj/debug/arm64/Tweak.x.m
make[2]: *** [/Users/shorty/theos/makefiles/instance/library.mk:52: /Users/shorty/projects/Eliza/.theos/obj/debug/arm64/Eliza.dylib] Error 2
make[2]: *** Waiting for unfinished jobs....

hollow oar
#

Check this maybe? (I do NOT know what I'm talking about)

cloud yacht
#

The toolchain directory is empty but idk how to populate it

#

It doesn't appear to be touched at all in the instller

#

And the guide doesn't say anything

faint timber
#

is project orion or does the makefile contain PREFIX var?

wooden yarrow
#

my phone would have turned into a actual vibrator

lean ermine
#

lmao

cloud yacht
faint timber
#

thats why

cloud yacht
#

Do I just remove it or does it serve a purpose?

faint timber
#

zero purpose

#

its for custom toolchain obviously

#

you could have read the docs fr

cloud yacht
#

I'm pretty sure nic.pl put it there

faint timber
#

I don't think so

cloud yacht
#

well its my tweak and I never knew what it did and it's in my inital commit

#

idk maybe I stole someone else's makefile and didn't realize it

#

or just forgor

#

anyways it looks like something is screwy in my SDK

faint timber
#

theres no other explanation

cloud yacht
faint timber
#

just download the fresh sdk

cloud yacht
#

This is a fresh install

#

do I need to get an SDK that matches my XCode Version?

faint timber
#

that doesn't remotely make any sense

cloud yacht
#

me or the error?

faint timber
#

both

wooden yarrow
#

this uhh still doesn't allow me to do anything

faint timber
cloud yacht
faint timber
#

thats fine

#

add SHELL+=" +X" to the front of make command and messages=yes to the end of make command

cloud yacht
radiant idol
faint timber
radiant idol
#

The fix in the Theos server for the issue is:

rm -rf $THEOS/toolchain/*
curl -sL https://github.com/kabiroberai/swift-toolchain-linux/releases/download/v2.3.0/swift-5.8-ubuntu20.04.tar.xz | tar -xJvf - -C $THEOS/toolchain/
faint timber
#

this macos tho?

radiant idol
#

yeah that's what's confusing me

faint timber
#

you can't use that toolchain on macos

radiant idol
cloud yacht
#

shoud i join the theos server and ask there?

radiant idol
#

yeah

faint timber
#

thats actually new in iOS 15 btw

cloud yacht
#

What is?

faint timber
#

for night

faint timber
radiant idol
#

What's actually new?

#

The error?

faint timber
#

nsstring methods getting NS_FORMAT_ARGUMENT

radiant idol
#

ah

faint timber
#

lmfao

#

it compiles on my mac

#

wtf

radiant idol
#

that's really weird...

faint timber
#
  1. I never use theos so Im magnatudes behind on updates
  2. I'm using xcode 14.1
  3. Im using 16.2 sdk not 16.5
#

just dropping this here for future reference

#

april 2023 fr

radiant idol
#

I'm on 16da692ea93ecc80ecd7d7e904a62e378a0d58be

#
❯ git rev-list HEAD --count
2041
#

Dec 30, 2023

cloud yacht
#

turns out the SDK was too new for my XCode

frail cedar
faint stag
rapid lion
#
rapid lion
grim sparrow
#

screenshot from the article

rapid lion
#

OH

grim sparrow
#

haha

rapid lion
#

there's a space between com. apple

#

and rip rbenv

slender glade
rapid lion
grim sparrow
#

I doubt it, I just see them not shipping things like this behind a .plist

inland fog
#

they've done it since the beginning, i dont expect it to change anytime soon

native dune
wooden yarrow
#

you can even still modify rootfs with authenticated-root disabling

slender glade
#

being granted arbitrary entitlements probably feels soooo good as a process

native dune
#

???

radiant idol
timid briar
#

must feel so good as a phone to get unlocked with face id

cloud yacht
timid briar
#

oh

acoustic imp
#

@christian left ?

frail cedar
#

someone just gave you the powers of god

cloud yacht
#

Trollstore has a god complex confirmed

orchid fulcrum
#

Wait till he finds about pid 0

long valve
#

hey, anyone has experience with appium development to control phones remotely via Py scripts for automation purposes?

placid kraken
#

ok guys i’ve decided the best step in elle is adding vtables and vlas

#

:trolley:

wooden yarrow
#

do u have virtual functions or sumn

placid kraken
#

no lmao

wooden yarrow
#

wyd

placid kraken
#

there are ways to make vtables in pure C

#

which means i can also implement a way to do it in elle

wooden yarrow
#

I mean yeah but like

#

why

placid kraken
#

idk

wooden yarrow
#

why have that as a lang feature

#

instead of having the coders impl it

#

trol

placid kraken
#

(real)

wooden yarrow
#

elle+

placid kraken
#

i love const int NULL = 0;

const int NULL = 0;
const int BUF_SIZE = 256;

fn input(char *message) -> char * {
    long stdin = fdopen(0, "r");
    char *buf = malloc(BUF_SIZE * #size(char));
    printf(message);

    fgets(buf, BUF_SIZE, stdin);
    buf[strlen(buf) - 1] = '\0';

    char *result = malloc(strlen(buf) + 1);
    strcpy(result, buf);
    return result;
}

fn random(int lower, int upper) {
    return rand() % (upper - lower + 1) + lower;
}

pub fn main() {
    srand(time(NULL));
    int lower = atoi(input("Enter the lower bound: "));
    int upper = atoi(input("Enter the upper bound: "));

    printf!("Rolled %d\n", random(lower, upper));
    return 0;
}
cloud yacht
#

elle--

placid kraken
placid kraken
#

that does remind me that the input function i have is actually flawed

#

its the old version that doesnt free the memory allocated in the buffer

radiant idol
#

malloc’ing and never free’ing vexedtomato vexedtomato vexedtomato

native orbit
#

if you never malloc, you never have to free supershocked

placid kraken
#

because its not an infinite loop

cloud yacht
#

If you have 128gb of memory, you'll never have to free

placid kraken
#

the OS will claim all of the allocated memory when you exit the program anyway

radiant idol
placid kraken
#

im aware

native orbit
#

only time you dont free is when you return said allocated object frfr

placid kraken
#

omg i actually forgot that was a thing

#

me when

#

because i was trying to

#

ok well here you go nightwind i think that is no longer leaking memory

const int NULL = 0;
const int BUF_SIZE = 256;

fn input(char *message) -> char * {
    long stdin = fdopen(0, "r");
    char *buf = malloc(BUF_SIZE * #size(char));
    defer free(buf);

    printf(message);
    fgets(buf, BUF_SIZE, stdin);
    buf[strlen(buf) - 1] = '\0';

    char *result = malloc(strlen(buf) + 1);
    strcpy(result, buf);
    return result;
}

fn random(int lower, int upper) {
    return rand() % (upper - lower + 1) + lower;
}

pub fn main() {
    srand(time(NULL));
    int lower = atoi(input("Enter the lower bound: "));
    int upper = atoi(input("Enter the upper bound: "));

    printf!("Rolled %d\n", random(lower, upper));
    return 0;
}
radiant idol
#

Good

#

Technically you should free the two input calls at the end as well but I’ll let that slide

placid kraken
#

how tf does C have such a robust system for sizeof

cloud yacht
#

One time for a computer science project, I had a thing leaking memory and I didn't know why and it was making our ci fail, which would have reduced our grade so I just deleted the test that lead to that code being run and then the tests were green

placid kraken
#

like you can pass practically anything to it and itll report a valid size

placid kraken
#

@radiant idol @radiant idol do you know if C pointers are fat

#

or if they hold any other metadata other than size

radiant idol
#

i do not know

cloud yacht
#

The crazy part is we got our mark back and was like 70% - doesn't compile, I emailed my professor saying it compiled and then we got 100%

placid kraken
#

because i know slices in rust are just fat pointers

cloud yacht
#

It definitely wasn't a 100% project

placid kraken
#

lmao

#

im hoping to use elle for my NEA

#

maybe itll work maybe it wont

#

considering i already started the project

placid kraken
radiant idol
#

Ew

cloud yacht
#

Tbh you should add implicit type casting

placid kraken
cloud yacht
#

Do it for everything

placid kraken
#

as in it automatically casts ints to doubles and whatever

#

but if you pass the result from input to rand itll segfault or just fail to compile because its expecting int but getting char *

#

even if you make it a long as the type taken into random itll be unintended behavior because itll just treat the char * as a raw number and do arithmetic with it as if it was just a long

#

so theres no sweet solution here because you dont pass around a whole string you pass a pointer to the start of it

cloud yacht
#

Tbh reading different types from stdin natively could be handy

placid kraken
#

i could make like input_to_int quite easily

cloud yacht
#

And then it could also validate

#

Also like input_to_char for a single char

placid kraken
#

ok i did it like this

fn input_to_int(char *message) -> int {
    char *res = input(message);
    defer free(res);

    if (strspn(res, "0123456789") != strlen(res)) {
        long stderr = fdopen(2, "w");
        fprintf!2(stderr, "Invalid input: '%s'. Falling back to 0\n", res);
        return 0;
    }

    // Ensure the free call is done after we get the integer
    int converted = atoi(res);
    return converted;
}
#

i forgot strspn exists

#

i had to look at the c string.h defs because it has so many random utility functions

placid kraken
placid kraken
#

guys i wanna make a way to make interfaces so that i can implement c functions in elle to get information like the variadic index and whatnot

#

but i dont know what keyword to use

#

interface sounds too long

placid kraken
placid kraken
#

which keyword sounds the best

radiant idol
#

external

placid kraken
#

sure

#

but that doesnt really fit when everything else has such short names

#

like pub and fn

radiant idol
#

make them longer then

#

external sounds good in this case imo

placid kraken
#
pub external fn printf(char *formatter, ...);
orchid fulcrum
#

You could do extern. It can be confused with extern in c though

radiant idol
#
external public func printf(const char *formatter, ...);
placid kraken
#

oh btw nightwind

#

you know that idea i had where you can have any variation of

#

function

#

like funct

radiant idol
#

yes

placid kraken
#

and whatever

#

thats apparently a thing in dreamberd

#

😭

radiant idol
#

WHAT

#

lmfao no way thats actually a thing

placid kraken
radiant idol
#

NAH

#

functi is crazy

placid kraken
#

fuct

orchid fulcrum
#

Fuc

#

This is a terrible feature lmao💀

placid kraken
#

i realized

placid kraken
#

i did it lmao

const int NULL = 0;
const int BUF_SIZE = 256;

external fn printf(char *formatter, ...);
external fn fprintf(long fd, char *formatter, ...);

fn input(char *message) -> char * {
    long stdin = fdopen(0, "r");
    char *buf = malloc(BUF_SIZE * #size(char));
    defer free(buf);

    printf(message);
    fgets(buf, BUF_SIZE, stdin);
    buf[strlen(buf) - 1] = '\0';

    char *result = malloc(strlen(buf) + 1);
    strcpy(result, buf);
    return result;
}

fn input_as_int(char *message) -> int {
    char *res = input(message);
    defer free(res);

    if (strspn(res, "0123456789") != strlen(res)) {
        long stderr = fdopen(2, "w");
        fprintf(stderr, "Invalid input: '%s'. Falling back to 0\n", res);
        return 0;
    }

    // Ensure the free call is done after we get the integer
    int converted = atoi(res);
    return converted;
}

fn random(int lower, int upper) {
    return rand() % (upper - lower + 1) + lower;
}

pub fn main() {
    srand(time(NULL));
    int lower = input_as_int("Enter the lower bound: ");
    int upper = input_as_int("Enter the upper bound: ");

    printf!("Rolled %d\n", random(lower, upper));
    return 0;
}
#

that was surprisingly a lot easier than i expected

#

now you dont need to put the weird func!(a, b) syntax @radiant idol

radiant idol
#

confusion

placid kraken
#

ill keep func.(a, b) tho for argument length

placid kraken
# radiant idol confusion

now that i declared the interface for functions like printf i can declare what index the variadic arguments start

#

so the user no longer needs to include it at the call site

radiant idol
#

ah nice

placid kraken
#

the compiler just inserts it automatically

hasty ruin
#

no fucking way

#

pxomr unbanned

orchid fulcrum
#

Best thing about witnessing a language getting developed is you are automatically learning it troll

placid kraken
#

lmfao real

gentle grove
#

HES UNBANNED

manic forum
#

hey

gentle grove
#

eta wen /meme minesweeper

faint lionBOT
#
aaron

aaron’s shoes

gaunt pewter
#

okay i haven't done development since ios 14
how the hell do i port tweaks to rootless

hasty ruin
#

Build with THEOS_PACKAGE_SCHEME=rootless

#

(Need to clean the build directory when switching between rootful/rootless builds)

#

And wrap any paths with the macros provided by theos within libroot.h

#

(I don’t remember the exact names tbh bc I still use the old rootless.h macros)

cloud yacht
hasty ruin
#

For years

gaunt pewter
radiant idol
wise spruce
hasty ruin
radiant idol
#

There

radiant idol
gaunt pewter
#

lovely

hasty ruin
radiant idol
#

ew

#

Also

#

Libroot:

exotic saffron
#

Does anyone know how to always display the "swipe up to unlock" text on the lock screen on devices with X gestures?

slender glade
frail cedar
#

The compilation instructions are "copy the readme into chatGPT, then copy your code into chatGPT and ask it what would be printed out"

#

Some nerd made an actual interpreter for it though that's mostly feature complete

shrewd smelt
#

ty

torn oriole
#

@grave sparrow you dont happen to have procursus strap trol

#

discord ruined the files that are in ALL scripts and i cant get them any more

#

woe

#

i dont wanna compile tihmware for partialzip 😭

#

is the curl package dependant on those discord files 😭

#

bigboss ahh setup

timid furnace
faint timber
timid furnace
#

it uses objc

#

shouldn't be too terrible to port to c++ tho

#

hmm

manic forum
#

How can I track touches and touch movements on the screen without consuming them or breaking system gestures?

#

I tried -[SBSystemGestureManager shouldSystemGestureReceiveTouchWithLocation:] but that is only called for new touches and isn't called for movements

#

Adding a system gesture recognizer as mentioned in #development message also doesn't work because I need to consume the touch if I want to track its movements

#

-[BKTouchContactSet count] in backboardd seems to get called reliably with touches and touch movements but I don't really know how portable this is across iOS versions

#

And I want to avoid hooking backboardd if possible

#

I have been told that this is an xy problem but I am trying to treat touch position like a mouse cursor position for a passthrough window that is higher than every other window (I am porting/remaking a desktop app for iOS, so this is reasonable). I think tracking touches on the screen is a logical way to do this

faint timber
#

UIDragInteractionDelegate
UIGestureRecognizerDelegate
[gestureRecognizer state] == UIGestureRecognizerStateEnded
gestureRecognizer velocityInView:self.view
CGPoint Translation ivar's

#

just a few things to investigate

manic forum
#

Thanks

faint timber
#

I think it applies to moving the touch around prior to consumption?

#

just look into velocity stuff I guess

faint stag
#

could just ask for a curl deb? lol

#

and i have latest curl from procursus, wdym it's broken

faint timber
faint stag
#

anyway, what's the new url for the apple silicon bootstrap

#

so i can update the dumb script i had

faint timber
#

I didn't know it changed

faint stag
#

i remember being told it was outdated

#

i'm still using that one that was uploaded to discord

faint timber
#

look at procursus root fr

faint stag
#

root? like the repo?
or

#

oh

faint timber
#

subdomain for apt

faint stag
#

ye i see now

lean ember
#

Anyone here help with ghidra related bits?

hexed knot
#

hello friends

faint stag
#

it was already fixed tho

#

so

brazen timber
#

^ non systemd users

hexed knot
#

im the same lol

#

im only in 6 servers

#

well 7 now but when i leave this one itll be 6

faint stag
brazen timber
#

fr

faint stag
manic forum
#

Would anyone be interested in testing a tweak?

#

(Why can't I send videos)

weary heath
#

What is it

visual meadow
manic forum
visual meadow
#

Sure why not

manic forum
#

The only jailbroken device I have right now is an iPad on iOS 17 running rootless palera1n

manic forum
visual meadow