#development

1 messages · Page 200 of 1

knotty tusk
#

good luck and have fun implementing relocation

wooden yarrow
#

.

manic forum
gentle grove
#

I wanna know how that stuff works

knotty tusk
gentle grove
#

security moment

manic forum
#

i want to fake a linux environment on a non-linux system, like wine but not as complicated i hope

#

and run a linux executable

#

i assumed i'd need to do something like that

gentle grove
#

what if you use real ld.so or something

manic forum
#

oh

#

huh

#

that sounds simpler but would syscalls be a problem?

wooden yarrow
#

however much you have in your system

manic forum
#

macos has darling, windows has wine, doesn't linux have anything similar?

wooden yarrow
#

unless jetsam

knotty tusk
#

thankfully most are dynamically linked and dont do that

wooden yarrow
#

i guess on linux it would be more common

#

but on macOS everything has to use libSystem by default so thumbsup

manic forum
wooden yarrow
#

yeah still works

#

crt0

#

why would you even not use libSystem though

native orbit
#

dont wont on arm now

wooden yarrow
#

full static compilation is unnecessary in most cases

gentle grove
wooden yarrow
#

huh, think i did it before on my m1 pro

#

through crt0 manual compilation

gentle grove
#

just loop malloc

manic forum
gentle grove
gentle grove
#

But what if there's programs that use asm

#

maybe they're niche

manic forum
#

i'll think about it when i need to

wooden yarrow
#

those programs can just die

gentle grove
#

stdlib is huge though

#

much huger than syscalls I imagine

#

And basically every language has its own stdlib

#

do the work 2x just to support c and c++

#

what even is zefram

manic forum
gentle grove
#

what does that do

manic forum
#

the idea is stupid and illogical but i want to try

gentle grove
#

Actually my mac is already rooted 🤓

wooden yarrow
manic forum
#

but

#

what if i don't want to reboot

gentle grove
#

zefram is just bootleg cheat engine

wooden yarrow
#

can i disable ssl pinning everywhere

wooden yarrow
manic forum
#

and what if the program doesn't actually need the entire os

manic forum
gentle grove
manic forum
#

but i want to do something low-level

gentle grove
#

I tweak you

#

a tweakee would be someone that gets tweaked

#

A tweaker would be someone that does the tweaking

#

So you would write the tweak

wooden yarrow
manic forum
#

nexuscrack.dylib would be loaded after nexus.dylib

#

so you can tweak nexus.dylib

wooden yarrow
#

.

gentle grove
#

Is there a Firefox version

wooden yarrow
#

apparently you have to disable network.stricttransportsecurity.preloadlist

#

in about:config

gentle grove
wooden yarrow
#

perhaps

placid kraken
#

unless zefram is meant to be like a jailbreak where it bootstraps you with a tweak manager

native orbit
#

u use kext right?

manic forum
hasty ruin
placid kraken
#

wait you were joking?

slim bramble
manic forum
#

at least that's what i need @hasty ruin to think

hasty ruin
#

☹️

gentle grove
#

C3

kind herald
#

.

#

it didn't copy

wooden yarrow
kind herald
#

Hey

wooden yarrow
#

mashallah

placid kraken
#

hey guys

#

vlas in elle

#
use std/io;

def DynamicArray {
    i32 size;
    i32 capacity;
    i32 *elements;
}

fn initArray(DynamicArray *arr, i32 initialCapacity) {
    (*arr).elements = (i32 *)malloc(initialCapacity * #size(i32));
    (*arr).size = 0;
    (*arr).capacity = initialCapacity;
}

fn resizeArray(DynamicArray *arr, i32 newCapacity) {
    (*arr).elements = (i32 *)realloc((*arr).elements, newCapacity * #size(i32));
    (*arr).capacity = newCapacity;
}

fn addElement(DynamicArray *arr, i32 element) {
    if ((*arr).size == (*arr).capacity) {
        resizeArray(arr, (*arr).capacity * 2);
    }

    (*arr).elements[(*arr).size] = element;
    (*arr).size += 1;
}

fn freeArray(DynamicArray *arr) {
    free((*arr).elements);
    (*arr).elements = NULL;
    (*arr).size = 0;
    (*arr).capacity = 0;
}

fn main() {
    DynamicArray arr = DynamicArray {};
    initArray(&arr, 2); // Initialize with a capacity of 2

    addElement(&arr, 1);
    addElement(&arr, 2);
    addElement(&arr, 3);
    addElement(&arr, 4);

    for i32 i = 0; i < arr.size; i++ {
        printf("arr[%d] = %d\n", i, arr.elements[i]);
    }

    freeArray(&arr);
}
#

this is honestly so much fun

placid kraken
#

ok after doing this maybe the -> is a good idea after all

#

idk how much more (*arr).a i can bear

wooden yarrow
placid kraken
#

yea but like

#

the concept >>>>>>>

#

the fact effort is required <<<<<<<<

wooden yarrow
#

ok but effort only required once

#

!

placid kraken
#

true

#

ok lets see i guess

#

i dont think it has to be a compile time syntactic sugar i think i can do it at parsing time

wooden yarrow
#

isn't parsing time still part of "compile time"

placid kraken
#

yeah but its a different process than the actual "compile" time

#

its like ast-generation time

#

so i can sort of cheat and turn a->b into (*a).b in the ast instead of making a seperate expression that takes in a and b and derefs a before accessing b

gentle grove
#

thats horrible

gentle grove
placid kraken
#

idk

#

english sucks

wooden yarrow
#

i will perform a double free on you

cloud yacht
#

I did use my school email for that

manic forum
# cloud yacht

Once you have updated your profile information log out and log back into GitHub before re-applying.

#

what is github doing

hasty ruin
olive peak
#

thanks i forgot about that, even though its in the name..

reef trail
placid kraken
#

ok so as it turns out @wooden yarrow

#

yes, parsing a->b into (*a).b is really really really fucking hard

wooden yarrow
#

.

#

compile time time

placid kraken
#

because its not just a->b it can be a->b.c or a.b->c, a.b.c.d.e.f, a->b.c->e.f.g->h, etc etc

#

so

#

i used your other idea

#

if a is a pointer to some struct, it automatically derefs the pointer into the struct

#

but only for field accesses

#

so you can do

printf("%d\n", a.barptr.nya);
``` and it prints the right thing even though `a` is a `Foo *` and `barptr` is a `Bar *`
#

and the great thing is, you can still manually deref like

printf("%d\n", (*(*a).barptr).nya);
``` and it still works
#

its very magic

#

but doing a->b was

#

to say the least

#

hell

#

partly because the way the rhs is parsed is done terribly

while self.current_token().kind == TokenKind::Dot {
    self.advance(); // Ignore the TokenKind::Dot

    self.expect_token(TokenKind::Identifier);
    let location = self.current_token().location.clone();
    let inner = Box::new(AstNode::token_to_literal(self.current_token()));
    self.advance();

    if let AstNode::FieldStatement {
        left,
        right: inner_right,
        location,
        ..
    } = *right
    {
        right = Box::new(AstNode::FieldStatement {
            left,
            right: Box::new(AstNode::FieldStatement {
                left: inner_right,
                right: inner,
                value: None,
                location: location.clone(),
            }),
            value: None,
            location,
        })
    } else {
        right = Box::new(AstNode::FieldStatement {
            left: right,
            right: inner,
            value: None, // Only the root may have a value
            location,
        });
    }
}
#

knowing which part to wrap in a deref is basically impossible

#

so

placid kraken
#

ok well its not perfect but it works

use std/io;

def DynamicArray {
    i32 size;
    i32 capacity;
    i32 *elements;
}

fn initArray(DynamicArray *arr, i32 initialCapacity) {
    arr.elements = (i32 *)malloc(initialCapacity * #size(i32));
    arr.size = 0;
    arr.capacity = initialCapacity;
}

fn resizeArray(DynamicArray *arr, i32 newCapacity) {
    arr.elements = (i32 *)realloc(arr.elements, newCapacity * #size(i32));
    arr.capacity = newCapacity;
}

fn addElement(DynamicArray *arr, i32 element) {
    if (arr.size == arr.capacity) {
        resizeArray(arr, arr.capacity * 2);
    }

    arr.elements[arr.size] = element;
    arr.size += 1;
}

fn freeArray(DynamicArray *arr) {
    free(arr.elements);
    arr.elements = NULL;
    arr.size = 0;
    arr.capacity = 0;
}

fn main() {
    DynamicArray arr = DynamicArray {};
    initArray(&arr, 2);

    addElement(&arr, 39);
    addElement(&arr, 16);
    addElement(&arr, 0);
    addElement(&arr, 172);

    for i32 i = 0; i < arr.size; i++ {
        printf("arr[%d] = %d\n", i, arr.elements[i]);
    }

    freeArray(&arr);
}
#

at least it doesnt look deranged

sonic totem
wooden yarrow
sonic totem
#

?

radiant idol
#

False...

sonic totem
#

I have majority of the channels in HD removed from channel list

#

This server i have just development and announcements and development is muted anyway

kind herald
young meteor
native dune
kind herald
lusty jacinth
kind herald
#

True...

proud geyser
#

can you run windows arm on m3?

torn oriole
#

Not bare metal

slim bramble
olive peak
#

To build ellekit as a static lib, do i just need to change the mach-o type in xcode? I did it but after building the build folder only contains a debug dylib

#

nvm i didnt select the right target troll

#

is it possible to compile it statically though

proud geyser
#

Fatal error: Context is missing for Optional(SwiftData.PersistentIdentifier(id: SwiftData.PersistentIdentifier.ID(url: x-coredata://FE5ECE9B-529F-4BD1-9B4C-63CBEDB927E1/Account/p40), implementation: SwiftData.PersistentIdentifierImplementation)) anyone know what causes this issue lol

#

only occurs when i try to delete account

manic forum
orchid fulcrum
slim bramble
olive peak
#

I dont even really need all of ellekit just the hooking

manic forum
slim bramble
slim bramble
manic forum
slim bramble
#

the best out of them all

manic forum
#

am i the wrong hue of orange or what

slim bramble
orchid fulcrum
manic forum
#

oh

slim bramble
#

There's an application form somewhere

#

Here

manic forum
#

there was a dev backroom form where one of the questions was "are you french"

orchid fulcrum
#

Do they accept easily at least

manic forum
slim bramble
#

But I mean if you're not french and you're known in the discord you're prob going to get accepted

orchid fulcrum
#

Did you remove my message lmao

slim bramble
wooden yarrow
#

.

slim bramble
#

idk

wooden yarrow
#

will do

manic forum
#

I still can't tell if this is a meme or not but I filled it out

slim bramble
#

@hasty ruin check the form

manic forum
#

wait icraze handles the form?

slim bramble
#

sadly

wooden yarrow
#

lmao

manic forum
#

did i mention that i love nexus, i bought it 6 times i use it every day

#

never ever thought of pirating it or reverse engineering it i'm good like that

slim bramble
sonic totem
proud geyser
slim bramble
orchid fulcrum
#

You inject CydiaSubstrate.framework into ipas Frameworks directory

slim bramble
#

yeah

proud geyser
#

any thoughts ?

orchid fulcrum
#

Where can i learn more about the difference between these 4 ? For example when injecting a framework to @executable / it doesn't work but @executable /Frameworks works (which makes sense i guess). But a normal tweak dylib also works in @executable /Frameworks. I also have no idea what Runpath/@Rpath does

slim bramble
proud geyser
#

@slim bramble any thoughts regarding my issue..?

orchid fulcrum
proud geyser
#

Potentially an ios beta issue maybe

olive peak
#

atleast not without symbols

orchid fulcrum
olive peak
orchid fulcrum
#

I see, i thought you were doing a simple tweak so maybe dynamicaly loading substrate would be easier. Never used ellekit so i can't help sorry

slim bramble
placid kraken
olive peak
slim bramble
#

Or wait a second I'm gonna cook something rq

#

@olive peak check your dms

orchid fulcrum
slim bramble
solar lagoon
wooden yarrow
#

TIL

solar lagoon
wooden yarrow
#

hm

solar lagoon
#

too janky

wooden yarrow
#

do other hooking libs do it with jit too?

#

(dont know if there is)

solar lagoon
#

of course

#

they all do

#

ellekit is the only one that’s jitless

#

except fishhook ofc

slim bramble
solar lagoon
native orbit
#

aint there a limit for jitless hooks? like can only have 8 or something

native orbit
#

apple/xnu set limit or something

wooden yarrow
#

wtf

solar lagoon
#

arm64 has a limit on hw breakpoints

orchid fulcrum
#

How are hw breakpoints even used to hook shits like black magic 🤯

solar lagoon
#

it handles the breakpoint and moves execution to the target function

placid kraken
#

can someone explain how vlas that hold void* work (nevermind apparently i read the thing wrong)

#

how can you allocate with the size of each element type if you dont know the element type

#

or like vectors which have something like

typedef struct {
    int size;
    int capacity;
    char elements[];
} V_Header;
#

and do like a -1 index to get the size

#

i get the concept but its still really confusing

gentle grove
#

allocate the pointer or what

#

Did you figure it out

placid kraken
#

yea i was talking about how, for example, you may have something like

fn initArray(DynamicArray *arr, i32 initialCapacity) {
    arr.elements = (i32 *)malloc(initialCapacity * #size(i32));
    arr.size = 0;
    arr.capacity = initialCapacity;
}
``` where elements is an i32 array
#

i sort of forgot you can just pass the element size

#

into the function

#

like ```c
fn initArray(DynamicArray *arr, i32 initialCapacity, i32 size) {
arr.elements = malloc(initialCapacity * size);
arr.size = 0;
arr.capacity = initialCapacity;
}

and now DynamicArray can just hold a void* instead of an i32*
placid kraken
#

apparently its called "flexible array members"

vivid dew
#

what do you mean

placid kraken
#
typedef struct
{
    uint32_t size;
    uint32_t capacity;
    char data[];
} VHeader_;

static inline VHeader_* vec_new_(size_t element_size, size_t capacity)
{
    assert(capacity < UINT32_MAX);
    assert(element_size < UINT32_MAX / 100);
    VHeader_ *header = CALLOC(element_size * capacity + sizeof(VHeader_));
    header->capacity = (uint32_t)capacity;
    return header;
}


static inline void vec_resize(void *vec, uint32_t new_size)
{
    if (!vec) return;
    VHeader_ *header = vec;
    header[-1].size = new_size;
}

static inline void vec_pop(void *vec)
{
    assert(vec);
    assert(vec_size(vec) > 0);
    VHeader_ *header = vec;
    header[-1].size--;
}

static inline void vec_erase_ptr_at(void *vec, unsigned i)
{
    assert(vec);
    unsigned size = vec_size(vec);
    assert(size > i);
    void **vecptr = (void**)vec;
    for (int j = i + 1; j < size; j++)
    {
        vecptr[j - 1] = vecptr[j];
    }
    VHeader_ *header = vec;
    header[-1].size--;
}

static inline void* expand_(void *vec, size_t element_size)
{
    VHeader_ *header;
    if (!vec)
    {
        header = vec_new_(element_size, 8);
    }
    else
    {
        header = ((VHeader_ *)vec) - 1;
    }
    if (header->size == header->capacity)
    {
        VHeader_ *new_array = vec_new_(element_size, header->capacity << 1U);
#if IS_GCC
        // I've yet to figure out why GCC insists that this is trying to copy
        // 8 bytes over a size zero array.
        // We use volatile to deoptimize on GCC
        volatile size_t copy_size = element_size * header->capacity + sizeof(VHeader_);
#else
        size_t copy_size = element_size * header->capacity + sizeof(VHeader_);
#endif
        memcpy(new_array, header, copy_size);
        header = new_array;
        new_array->capacity = header->capacity << 1U;
    }
    header->size++;
    return &(header[1]);
}
``` this kind of stuff
#

header[-1].size

wooden yarrow
wooden yarrow
placid kraken
#

yet it does

wooden yarrow
#

this isn't python .

#

that should just go one sizeof(header) back

#

possibly resulting in UB

#

so wtf

placid kraken
#

its a feature in C

gentle grove
placid kraken
#

if you make a struct like

typedef struct {
    int a;
    char whatever[]; // Notice how theres no size
} VHeader_

you can access [0] to access into the array or -1 to access the metadata before the array

gentle grove
#

im sure the -1 part is UB

placid kraken
#

or something

gentle grove
#

but it works bevause the struct layout

wooden yarrow
#

because i doubt it

wooden yarrow
#

but works out because struct

#

.

vivid dew
#

i'm pretty sure negative indexes are defined

placid kraken
#

the -1 behavior is probably UB yeah

#

but flexible array members are a feature in C

wooden yarrow
wooden yarrow
#

also called VLAs

gentle grove
#

negative index is definitely UB if it goes out of bounds of the array

placid kraken
#

reading a value from stdin and creating a buffer of that size on the stack is considered a VLA

wooden yarrow
placid kraken
#

idk

wooden yarrow
#

i am agreeing with you .

placid kraken
#

there are more definitions to a vla than flexible array members 🥲

wooden yarrow
#

oh

vivid dew
#

but that code just casts the vec (pointer to char data[]) to a struct VHeader_ * (aka an array of VHeader_) and indexes -1, giving the actual header (remember the original pointer is to the data, which is located at +sizeof(struct VHeader_))

wooden yarrow
#

yeah so works bcs struct layout

#

i think

placid kraken
#

true

#

imo this is so cool tho

INLINE uint32_t vec_size(const void *vec)
{
    if (!vec) return 0;
    const VHeader_ *header = vec;
    return header[-1].size;
}
gentle grove
#

whats the difference between this flexible array member and just an pointer to the array

#

That's what I'm used to

vivid dew
#

the array is physically contiguous in memory with the header

gentle grove
#

Hmm

#

It's weird

#

You still have to keep track of the length with your own size property right?

visual meadow
#

ok guys how would i fix this

#
ASI found [CoreFoundation] (sensitive) '*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UISwitch cannot be used on tvOS.'``` can i swizzle this? what do i do
#

if not what would i switch this to on tvos

    <key>cell</key>
    <string>PSSwitchCell</string>
    <key>PostNotification</key>
    <string>com.opa334.choicyprefs/ReloadPrefs</string>
    <key>default</key>
    <true/>
    <key>key</key>
    <string>launchWithoutTweaksOptionEnabled</string>
    <key>label</key>
    <string>LAUNCH_WITHOUT_TWEAKS_OPTION</string>
frank fossil
# visual meadow ``` ASI found [CoreFoundation] (sensitive) '*** Terminating app due to uncaught ...
@implementation UISwitch(hook)
+ (id)hook_visualElementForTraitCollection:(UITraitCollection *)collection {
    if (collection.userInterfaceIdiom == UIUserInterfaceIdiomTV) {
        UITraitCollection *override = [UITraitCollection traitCollectionWithUserInterfaceIdiom:UIUserInterfaceIdiomPad];
        UITraitCollection *new = [UITraitCollection traitCollectionWithTraitsFromCollections:@[collection, override]];
        return [self hook_visualElementForTraitCollection:new];
    }
    return [self hook_visualElementForTraitCollection:collection];
}
@end
placid kraken
#

ugh what is wrong with C

solar lagoon
#

C > elle

placid kraken
#

correct but pointless

solar lagoon
#

C isn’t pointless

#

It has pointers

gentle grove
#

True

#

C is great

#

It lets you do whatever

#

I would say whatever you want but sometimes what you want is not what you accidentally tell it to do

reef trail
#

is it bad that i’ve never properly learnt c

#

i could write something in it

#

but it probably wouldn’t be in the “c way”

gentle grove
#

Do some development with some open source c projects and you can see

#

It's not hard to learn how to do things the c way

reef trail
tepid olive
#

i don't know what's harder writing C or configuring a compiler toolchain

gentle grove
#

writing c is probably easier

tepid olive
#

i forget how many times i've rebuilt llvm at this point

gentle grove
#

compiler tool chains ar e much more complex than the c language troll

tepid olive
#

i have fully moved to llvm/clang/compiler-rt in libgcc emulation mode/libc++

#

....except for /usr/lib32

#

i can't believe i just took a ghetto ass shortcut

gentle grove
#

32 bit in 2024 BOOOO

gentle grove
tepid olive
tepid olive
gentle grove
#

duck wine and steam

#

I dislike them too

fading shell
#

anyone looking for a german?

gentle grove
#

No

tepid olive
#

I don’t build for 32 but I just have multilib support

reef trail
#

Nein

harsh junco
#

One day valve will fully migrate to 64bit

slim bramble
#

one day

harsh junco
#

Eventually

fading shell
reef trail
slim bramble
reef trail
#

french

#

more like

reef trail
fading shell
#

Bertrand, we talked about this

wooden yarrow
#

might as well do a 360 and learn a sinospheric language like Japanese

#

.

reef trail
#

i’m either going to learn spanish or german next

fading shell
#

He doesn’t even have the time for German lol

#

That’s a whole different alphabet

wooden yarrow
#

.

fading shell
reef trail
#

feel like i’d get more use from it

fading shell
slim bramble
slim bramble
reef trail
wooden yarrow
#

💀

slim bramble
fading shell
slim bramble
reef trail
slim bramble
reef trail
#

it’s the language of riots

#

tho that’s more english atm icl

fading shell
reef trail
#

and croissants

#

i like those

fading shell
#

Also, who has a space before their exclamation points

slim bramble
#

French

#

🔥

fading shell
#

That sucks

#

Looks awful

slim bramble
#

Nah better

reef trail
fading shell
#

No

fading shell
reef trail
#

he even does it for commas

slim bramble
#

THAT4S GROSS

reef trail
fading shell
#

Couldn’t be French

fading shell
slim bramble
reef trail
sonic totem
fading shell
sonic totem
#

Average development discussion about development between developers

wooden yarrow
#

it's over I fear

reef trail
#

why are you calling my dad queer

#

and even worse french

wooden yarrow
wooden yarrow
#

who knows

reef trail
reef trail
#

forgot about being cancelled

reef trail
slim bramble
#

ducking autocorrect

#

(the same happens to me)

fading shell
reef trail
#

with a beach

#

close to me

#

and free

gaunt helm
#

(queer could also mean bi, for example)

grizzled scroll
#

How can i reach livecontainer app devs

manic forum
grizzled scroll
manic forum
#

I don't know if they have a Discord

grizzled scroll
#

Ok thx

granite frigate
placid kraken
#

@slender glade

manic forum
hasty ruin
#

Incorrect, the application is being reviewed hm

manic forum
#

"reviewed" ?

#

are you trying to find my geometry dash account or smth

hasty ruin
#

people are voting

manic forum
#

oh

wooden yarrow
slender glade
wooden yarrow
#

yeah ok this is u

frail cedar
#

idk what you were thinking when saying that

wooden yarrow
#

no one in particular but now there's a person attached

frail cedar
#

good

solar lagoon
#

@misty cradle when is the good version of my soul coming

wooden yarrow
#

development of cars

#

F1

pearl sail
#

Capping your budgets and forcing you to have limited testing time for go over the budget last year by a 100 million

misty cradle
#

idk if on dsp yet

solar lagoon
misty cradle
#

No

#

Irko is still busy mixing

gentle grove
crisp frost
#

My windows devices are never logged in but my apple devices are

tepid olive
kind herald
#

however which company won't sell your soul to a pineapple under the sea

#

apple .

#

probably

slim bramble
crisp frost
kind herald
#

me when sign in for work or school -> sign in options -> domain join instead

gentle grove
kind herald
#

it's quick and easy

kind herald
#

I literally refuse to use a microsoft account so I will do anything to get past the online account screen

kind herald
wooden yarrow
# gentle grove

yeah but microsoft is like annoying and sometimes logs me out automatically

#

.

crisp frost
# kind herald <:shock:1122920820939964517>

Issue is that my windows laptop when I install pro it will go omg this laptop belongs to a school ( it used to but I bought it from the school and the r ict there didn’t remove it ) and can’t set it up

slim bramble
#

I literally despise onedrive

kind herald
#

uninstall it

#

:D

slim bramble
kind herald
#

why

slim bramble
#

I murder it

kind herald
#

Oh ok

#

Fair

slim bramble
#

It’s the only real answer

#

It annoyed me to the point I had to murder it

kind herald
#

I would say the same about the "Digital Rights Management" code of another program, however, I was advised not to say anything.

kind herald
#

Yes!

slim bramble
#

Obviously

placid kraken
#

many issues

#
  1. it should be [NSMutableArray array]
#

yeah

#

and

#

calling the array method means the array is autoreleased

#

idk

#

if you want it not autoreleased you can just alloc init

#

instead

#

lmao

#

the simplest solution is to just ```objc
NSMutableArray *array = [[NSMutableArray alloc] init];
[array release];

#

that returns a retained object

solar lagoon
#

i don’t understand how you guys use objective c

kind herald
#

compter

robust radish
#

its releasing an object you don’t own. you could retain it, or create it using alloc+init

why do you need to do that?

reef trail
#

“c is the native programming language of a computer” what

#

ig but so does pascal

#

well it wasn’t c

kind herald
#

intel pentium

reef trail
#

pascal was pretty real

robust radish
#

that’s a wild take

#

Fortran, cobol

reef trail
solar lagoon
#

Swift has classes and arc

#

And it written in C which is the native programming language

reef trail
solar lagoon
#

just try harder

reef trail
#

but some cases i’d never use it

solar lagoon
#

i don’t see how it’s restrictive

#

orion is though

reef trail
#

what

solar lagoon
#

you have to call ellekit functions directly for it to be enjoyable

robust radish
#

swift should be faster than objc in most cases

reef trail
#

wdym? you can cast in swift

solar lagoon
#

that’s easy

solar lagoon
#

super useful underrated function

solar lagoon
#

using orion sucks

robust radish
#

I’m not convinced, every time I’ve benchmarked them Swift was clearly faster. Dynamic dispatching is slow

solar lagoon
#

capt is just a little slow

robust radish
#

I still prefer objc though

torn oriole
#

Swift when

solar lagoon
#

most people don’t need that that’s a ton of overhead

reef trail
#

in a normal situation doing that is bad practice, it’s only in tweak dev where it’s normal to do that

solar lagoon
#

why would you store method names

gentle grove
#

c++

reef trail
#

i hate python, for a language which is meant to be beginner friendly there’s way too many syntactic sugars

robust radish
#

they’re not necessary to write code though. Python is great

solar lagoon
#

at least swift includes types in its symbol names

gentle grove
#

unsafe

gentle grove
reef trail
gentle grove
robust radish
solar lagoon
gentle grove
#

capt is on his schizo arc

reef trail
#

i feel like i’m going to be abused if i say this but, rust

gentle grove
robust radish
#

with signal handlers nothing is unsafe

torn oriole
# robust radish @try

Single handedly causes a
the swift compiler was unable to type check this expression in time spin when building

gentle grove
#

mangling, not obfuscation

#

i forgot the word

solar lagoon
#

mangling is needed

#

its an optimization

gentle grove
#

optimization?

solar lagoon
#

reduces size

gentle grove
#

how

reef trail
solar lagoon
#

instead of having spaces you have cryptic symbols

#

its like compression for symbols

robust radish
#

maybe the symbol names should just be simpler

gentle grove
#

does swift allow spaces for function names???

torn oriole
#

🗣️

robust radish
#

you can have spaces in an objc class but you have to build it at runtime

gentle grove
#

objc is kinda wacky

solar lagoon
#

its not necessary

gentle grove
#

can you name a function that?

solar lagoon
#

Int can just be 14 in the mangling language

kind herald
torn oriole
#

No.

solar lagoon
gentle grove
#

this cant be real

torn oriole
#

Finally a capt opinion I can agree with

solar lagoon
#

since you need to include types in the symbol name

gentle grove
#

there has to be a misunderstanding here

solar lagoon
#

otherwise you can’t have 2 symbols with the same name

gentle grove
#

not particularly

torn oriole
solar lagoon
#

you just don’t get it

gentle grove
#

as much as i like python, java is definitely faster

solar lagoon
#

🙇‍♀️

reef trail
robust radish
#

python3.12 is very fast, after bytecode is cached

gentle grove
#

id say rust is a lot better because it's not as ret as objc

reef trail
gentle grove
#

also rust is safe

#

🚀

reef trail
gentle grove
#

what do you mean by ish

pearl sail
#

Dynamic linking troll

gentle grove
#

if you use unsafe things then yeah its not gonna be safe

gentle grove
reef trail
gentle grove
gentle grove
#

well technically that doesnt have to do with rust, just with libraries troll

gentle grove
#

every ecosystem is unsafe then

#

you can find lots of python programs using native libraries

#

or java ones

solar lagoon
#

if python is good where’s python 4

pearl sail
#

True bestie

kind herald
#

python 3.99 release date 2054

gentle grove
#

i ate it

reef trail
pearl sail
#

If rust is good where’s iron?

gentle grove
#

it is safe if you dont explicitly use unsafe

#

it works fine

kind herald
#

if swift is so good where is sluggish

gentle grove
#

theres better design patterns available though

robust radish
reef trail
#

biggest turn off for rust is lifetime annotations, once you put them somewhere you’re whole project is polluted

gentle grove
#

wdym

kind herald
gentle grove
#

if you have a type that you use everywhere you mean?

robust radish
#

what’d you do

reef trail
reef trail
robust radish
#

a deb is not a binary

ashen canyon
gentle grove
reef trail
ashen canyon
#

yes

#

lol

reef trail
#

oops

ashen canyon
#

that's what it says

torn oriole
reef trail
#

i didn’t read it

kind herald
torn oriole
#

blast, my plan foiled

gentle grove
#

thats ok ill upload it for you

ashen canyon
reef trail
#

it’s 3 am

torn oriole
#

i MITMd bros network and everything

reef trail
#

i’ve not slept

kind herald
#

if you won’t then someone else will

torn oriole
#

i will give someone five dollars to break into capts house and steal zefram

kind herald
#

my nintendo ds lite

gentle grove
reef trail
#

excuse me for being uneducated but wtf is zefram

gentle grove
#

fisher price cheat engine

torn oriole
#

typing captinc is typing

gentle grove
#

:typing: captinc is typing

kind herald
#

zefram for nintendo ds lite

tepid olive
reef trail
#

people actually use that smelly os?

torn oriole
#

when zefram for RTKit @grave sparrow

ashen canyon
torn oriole
#

theyre embedding swift now trolley

reef trail
#

sounds like you wasted your money on a mac and you’re justifying

torn oriole
#

wait, zefram release supershocked

robust radish
tepid olive
#

cringe

reef trail
robust radish
#

yeah its open source

kind herald
#

I will now upload my 16Player Crack to this website.

gentle grove
#

can we get zefram to tune my engine

#

that doesnt help

robust radish
#

No I stopped replying, the telegram middleman thing was sketchy. I finished the tool though. If someone who knows how to use an escrow service wants it it’s theirs

gentle grove
#

what is an escrow service

#

i can learn

#

wait so are you saying if someone wants to pay for it they can have it, but in fancy words

kind herald
#

Mods abuse

#

Mods

torn oriole
#

99% of the requests are from tiktok/insta content farms looking for tweaks to feed shit to the camera

kind herald
#

why though

robust radish
#

You put money in the escrow, I give you the tweak, then I get money from the escrow. You can’t back out of payment because you already paid

gentle grove
#

so yes

robust radish
#

But if I didn’t deliver on expectations there’s a claim to get your money back from escrow

ashen canyon
#

i will act as the mitm

#

dw

gentle grove
#

ill act as a mitm on your router

kind herald
#

I will be the middle man 🙏 Send money to aaron p613 on cash app.

reef trail
#

or you just trust @robust radish and give him the money first

tepid olive
#

what do tweak bounties pay by?

#

crypto?

reef trail
#

mostly paypal or crypto

ashen canyon
kind herald
#

zefram rgh3

tepid olive
#

i put it on breachforums myself

kind herald
#

37 cent offer

#

apple cash

night rover
#

i bid 38 cents

pearl sail
#

Gay

torn oriole
#

me when the software works as advertised

gentle grove
#

google is awesome now wtf

torn oriole
#

what about a dollar, and the french getting banned

reef trail
robust radish
#

for a macOS injection tool??

reef trail
robust radish
#

It better work with SIP and restricted processes

torn oriole
#

the joke is he isnt selling it trolley

gentle grove
tepid olive
gentle grove
#

so google is awesome in my book now

tepid olive
#

and is free and open source

pearl sail
robust radish
#

dozens exist

gentle grove
pearl sail
#

No yesterday

tepid olive
gentle grove
#

what

reef trail
gentle grove
#

what happened to them

tepid olive
#

all big tech needs to be broken up

gentle grove
#

i didnt know anything was going on with google

tepid olive
#

from google to ibm

torn oriole
gentle grove
kind herald
#

bootanim.xex for iphone

pearl sail
#

They got told they are monopoly by US judge

reef trail
robust radish
gentle grove
torn oriole
tepid olive
robust radish
#

macOS is great

reef trail
#

i don’t have mac hardware tho so i haven’t tried it myself

gentle grove
#

WAIT

#

HOLD ON

#

HOLD THE PHONE

pearl sail
torn oriole
#

Speaker driver is disabled because it kept destroying peoples speakers

tepid olive
#

baby steps, hopefully in the future my country will get our own equivalent of the GDPR

kind herald
#

asahi doesn't have thunderbolt support for m2 pro

#

:(

gentle grove
#

is this what i think it is

pearl sail
#

Yeah

torn oriole
#

if you suggest someone to buy you a lambo again

#

i swear

tepid olive
robust radish
#

I’ll take a 30% loss if someone else assumes the risk and deals with talking to the sketchy buyers

kind herald
gentle grove
#

i fucking hate using macos

#

oh my gold

#

god

reef trail
gentle grove
#

i have a macbook

#

so im kinda forced

robust radish
#

it’s Linux but prettier

tepid olive
reef trail
pearl sail
#

Newer corvette

gentle grove
#

you keep asking this to different people until someone says what you want

tepid olive
#

my nerd brain cannot comprehend

reef trail
gentle grove
#

vibrator

reef trail
gentle grove
#

why are the screws not reusable

tepid olive
#

it's bsd with a "microkernel" which is bullshit in 2024 it's monolithic lol

reef trail
torn oriole
pearl sail
#

McLaren is a mix bag honestly @grave sparrow but their availability for parts probably lack

torn oriole
#

the OS isnt boring on a technical level trol

reef trail
#

i’m going to sleep, good speaking with you other time zone ppl

pearl sail
#

At least a corvette has higher availability since everyone has one

reef trail
tepid olive
gentle grove
#

supershocked rolex says literally exactly what i said

robust radish
#

corvettes are the cheapest to service

kind herald
#

me when that darwin kicks in

tepid olive
#

tbh im that much of a nerd

gentle grove
#

who'd'a thought

torn oriole
#

what

pearl sail
#

Also probably better after market stuff you want is better for the corvette as well @grave sparrow

gentle grove
#

Air Gun / Blowing Ball

kind herald
#

blowing what

torn oriole
#

ball

#

fuck

faint lionBOT
#
Ball

my ball

Author

frcoal

Version

0.0.6

Price

Free

Repo
Bundle ID

cfd.frcoal.ball

gentle grove
#

Do NOT damage nearly components.

#

what the hell does that mean

pearl sail
#

Yeah and you can go crazy with it further as well

placid kraken
#

the semantics

#

the way it feels like if rust was a supercar C was a horse carriage

#

even though its the same concepts

pearl sail
gentle grove
robust radish
#

I like the stereotype of all rust fanatics having an anime pfp. seems to hold true

torn oriole
#

rust mfs be normal challenge trolley

placid kraken
# placid kraken the semantics

maybe the function chaining is bad tho

fn get_line(&self, at: usize) -> Option<String> {
    self.input // Vec<char>
        .iter() // Iter<char>
        .collect::<String>() // String
        .lines() // Lines
        .enumerate() // Enumerate<Lines>
        .find(|l| l.0 == at) // Option<(usize, &str)>
        .map(|i| i.1.to_string()) // Option<String>
}
placid kraken
placid kraken
placid kraken
#

contrary to popular belief it is possible to code outside

#

😱

#

i was writing code at a park earlier

kind herald
#

that sounds

#

Awesome

gentle grove
#

functional programming is cool

placid kraken
#

i like the ".map" method on options

#

you can modify the underlying value of the Option if it exists

gentle grove
#

theres lots of cool combinators on Option and Result

placid kraken
#

yeah

pearl sail
placid kraken
#

i need to break my habit of

if some_option.is_some() {
    let res = some_option.unwrap();
    // do whatever
}
``` and use
```rs
if let Some(res) = some_option {
    // do whatever
}
#

because right now i have this love and hate relationship with is_some() and is_none()

#

it makes it a lot easier to think about my code design

#

but it is so ugly

gentle grove
#

i mean theyre the same thing so you just have to equate them in your brain

placid kraken
#

yeah they are but my brain doesnt recognise that i can do that

#

due to this really bad habit

pearl sail
#

Top looks wrong bottom is off because of the capital letter

placid kraken
#

top is the code i write the most often unfortunately

pearl sail
#

Weird syntax

#

But all langs are weird

placid kraken
#

true

gentle grove
#

i feel like it would look weirder if it was lowercase tbh

#
enum option<t> {
    some(t),
    none,
}
placid kraken
#

this code has got to be the most cursed thing ive ever written in my life

pearl sail
placid kraken
gentle grove
pearl sail
#

I am

placid kraken
#

this gives me go vibes

gentle grove
#

i hate go

placid kraken
#

ive never really used go so

#

i cant comment

gentle grove
#

i just hate it for not being all the way up to my standards

#

its a very good language

pearl sail
#

It is fine

#

Good speed

placid kraken
#

rust when i .clone everywhere:

gentle grove
#

thats how youre supposed to do stuff tbh

placid kraken
gentle grove
#

i mean if theres an raii way to transfer stuff then do that but otherwise clone is fine

pearl sail
#

I haven’t touch much rust so I can’t comment much expect parroted opinions

placid kraken
gentle grove
#

make it all Copy troll

placid kraken
#

i never understood how copy works (i never looked it up)

#

if i derive Copy

#

on the node enum

gentle grove
#

its implicit clone

placid kraken
#

can i just put it there without .clone() and it clones automatically

#

yeah

#

i thought so

gentle grove
#

it makes it always transfer by value

#

wtf is the word, not transfer

#

capture by value?

placid kraken
#

yeah

gentle grove
#

no thats for closures i think

placid kraken
#

i know what you mena

gentle grove
#

idk

#

anyways yeah

pearl sail
#

Any cool hardware projects

placid kraken
#

my main issue with .clone is like

#

ok picture this

gentle grove
#

its over

placid kraken
#

you have an enum like

enum Foo {
    A(String)
    B(i32)
    C(char)
}
#

you have a method create_a(input: String) which returns a Foo::A(input)

pearl sail
placid kraken
#

now you need to use that Foo:A in various places but the variant will not be modified

gentle grove
#

i tried to go to wikipedia

pearl sail
#

Your dns failed troll

placid kraken
#

if you try to pass it directly, it will fail because the value is moved

#

but if you pass by reference you have to keep track of a bunch of lifetimes potentially and that is hell

#

so you can clone

#

but then you end up having .clone() in 10 places

#

im pretty sure String doesnt derive from Copy either

#

so clone is your only option

gentle grove
placid kraken
#

yeah

gentle grove
#

dns was fine

placid kraken
#

so your only real option is Clone

pearl sail
gentle grove
#

why would there be clone in 10 places

#

does deriving Clone not work

placid kraken
# gentle grove wdym, what is moved
let addr_temp = self
    .new_variable(ty.clone(), &format!("{}.addr", name), Some(func), false)
    .unwrap();

func.borrow_mut().assign_instruction(
    addr_temp.clone(),
    Type::Pointer(Box::new(final_ty.clone())),
    Instruction::Alloc8(Value::Const(
        Type::Word,
        final_ty.size(module) as i128,
    )),
);

func.borrow_mut().add_instruction(Instruction::Store(
    final_ty.clone(),
    addr_temp.clone(),
    final_val,
));

func.borrow_mut().assign_instruction(
    temp.clone(),
    ty.clone().into_base(),
    Instruction::Load(ty.clone(), addr_temp),
);
``` addr_temp is a Value::Temporary(String)
```rs
#[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
pub enum Value {
    Temporary(String),
    Global(String),

    /// Const(prefix, literal)
    Const(Type, i128),
    Literal(String),
}
#

the Value is moved into assign_instruction

#

when you pass it

#

so you have to clone

#

to use it afterwards*

gentle grove
#

and you cant pass it by reference into assign_indstruction?

placid kraken
#

i can but it creates lifetime complications

#

its easier if i dont

gentle grove
#

how

#

ill brb

placid kraken
#

in this case i dont think it matters

#

but you end up, in your code for assign_function, just calling .to_owned() anyway

#

but before i was trying to make a struct_pool that is a &Rc<RefCell<Vec<String>>> and my parser would take in that value at initialization

#

which means the parser needed a lifetime

#

so that meant i could no longer pass self into the broken up functions anymore to have access to advance() and expect_tokens()

#

because it works like that

#

in that case it was easier to take in just a Vec<String>, mutate it, and return a new Vec<String> and override it in the parent function where the parser::new() was called

#

but still thats just one example of a massive headache i had from lifetimes

#

i was getting into some horrible &'a RefCell<&'a mut Parser<'a>> type signatures and honestly that was so hell i never want to work with that ever again

#

just to get "lifetime does not live long enough"

#

not fun

gentle grove
placid kraken
#

im not sure

gentle grove
#

what languages are you referring to?

#

probably because you almost exclusively listed functional programming languages which are designed differently

cloud yacht
#

They are just built different

faint timber
#

3utools spotted

warm bough
#

i was testing sum

#

oh

#

im a purple name

tepid olive
#

why is that shit even censored

#

i hate the moderation

#

if we’re referring to that as being negative at least let me say it

gentle grove
#

why can i not just see the print output of a doctest for debugging purposes

sonic totem
#

3utools is malware so you don’t want people talking about it

tepid olive
orchid fulcrum
#

Makefile

ARCHS = arm64
THEOS_PACKAGE_SCHEME = rootless
GO_EASY_ON_ME = 1

include $(THEOS)/makefiles/common.mk

TWEAK_NAME = Experiments

Experiments_LDFLAGS = -lAudioSession 

Experiments_FILES = Tweak.x ringerAudioHook.x
Experiments_CFLAGS = -fobjc-arc 
Experiments_FRAMEWORKS = Foundation AVFAudio UIKit AudioToolbox
Experiments_PRIVATE_FRAMEWORKS = AudioSession
include $(THEOS_MAKE_PATH)/tweak.mk```


headers
```#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <AVFAudio/AVFAudio.h>
#import <AudioToolbox/AudioToolbox.h>```


errors

```Tweak.x:107:18: error: no known class method for selector 'primarySession'
[[AVAudioSession primarySession] setCategory: audioSessionCategory error:nil];
                 ^~~~~~~~~~~~~~```
#

can somebody tell me what i am doing wrong ?

cinder frigate
# orchid fulcrum can somebody tell me what i am doing wrong ?

I think you are referencing another version of the framework.
here that method exists, but in the 16.5 sdk that you are using, assuimng it's the theos one, that method doesn't exist at all.
You can verify this with grep --include=\*.h -rn 'path/to/sdk' -e "primarySession", have a look here for reference

GitHub

iOS Header . Contribute to xybp888/iOS-Header development by creating an account on GitHub.

#

Does anyone have an idea why my app refuses to show the keyboard (the physical one doesn't work either)? It doesn't even appear in the FLEX screen

orchid fulcrum
ashen canyon
orchid fulcrum
#

Yeah thats what i ended up doing. Before i was trying to link to the private framework that has the method but couldn't do it. Thanks

placid kraken
#

my solution to the donut was to just redo it with the real math (using vectors)

#

it doesnt normalize the vectors because sqrt is a very slow operation

#

it uses the length squared

wooden yarrow
placid kraken
#

well yeah but they cheated in the donut.c

#

by just bundling it all together

placid kraken
#

am i insane

hasty ruin
#

just a nerd

#

👍

kind herald
kind herald
#

False

placid kraken
tepid olive
#

the list is dwindling :3 ❤️

#

(libc++ ftw)

placid kraken
#

libc++???

#

thats actually a thing??