#development
1 messages · Page 248 of 1
idc about those, I more mean things like buttons just not working in settings
mostly ui bugs
(in mostly swiftui apps but again, not my point)
Ahh swiftui moments
I think SwiftUI will be a viable option when you can open an app and not immediately tell that its written with SwiftUI
because it just has so many tells, like slightly stuttering lists or buttons not being perfectly aligned
Upgrade to C++23 so you can get the new slop but I forgot what specifically
Yeah I would always use the latest C++ version when I’m starting a project
Clean slate so no code to fix
It’s not in the public beta?
Typically public is the last dev beta with critical fixes
This beta is so much slower and looks so much worse and is so much buggier
update: dont know if anyone cares (im mostly just writing this so i can reference it in the future) but the 3rd one is the best, and super easy to vendorize due to the codebase structure and that it is MIT licensed. there hasnt been any development in over a year but i would consider OCMethodTrace to be a complete project more or less, on iOS at least. it doesn't really need maintenance
my only complaint is that it is heavily tied to iOS. OCMethodTrace.m, which is the meat of the code, has #import <UIKit/UIKit.h> at the top and you cannot simply comment that out since it hard codes support for UIEdgeInsets, UIOffset, CGRect, etc. however, that file is only 1KLOC so i imagine it will be pretty straightforward to remove the hard dependency on UIKit (probably would take a day or so) and eventually port to other platforms like GNUstep / Linux (which would probably take a week).
in a pre-ChatGPT era i would have complained about the docs/comments being in chinese but that can be one-shot in the fucking head with a prompt like "translate the comments in this code to english" or "translate this markdown to english"
its made by the chinese its chinese spy propaganda /j
Until
i am chinese so its ok
And you still couldn’t understand Chinese docs?
DeepSeek gave me some weird shit about harmless responses when I gave it this to translate
Just found this site on Twitter, thought it was really neat https://whatsnewinwwdc.com
A comprehensive timeline of iOS, iPadOS, watchOS, tvOS and visionOS features released by Apple year by year. Find new APIs, frameworks, search documentation, and stay updated with Apple's ecosystem.
Awesome!
That's actually going to be incredibly useful for my backports
All the way back to 2015 as well!
lmao i knew it
yeah no wonder it glitches so much when i scroll
also if you scroll too far up you get flashbanged
you can tell its ai by the gradients
It's the colors man
what's the best mach-o decompiler?
@native dune Does this seem similar to something else ?
IDA probably
thats what im trying rn
surprisingly it's quite excellent
UIVisualEffectView__whatsWrongWithThisEffect```
LOL
Nocturne
*cracked ida)
Who’s interested in getting amfid/launchd task port on iOS 17.0?
What would that do
jelbrek
Jelbrek always good
With "jelbrek" you mean semi-jb like Nathanlr or serotonin?
Might be a bit more than semi jb if platformizing via amfid is still feasible
Would that be 17.0 only or 16.0/1 16.6/16.6.1 would be supported too?
When you have some time I'd like to know what that "a bit more" is. A link to a web page would be appreciated too of course
Chance that it might be possible to inject system wide, but in a limited form since there is no PPL bypass to enable JIT (or that all binaries needs to be resigned to enable JIT)
-# JIT in this context is meant for tweaks putting in-memory hooks that would otherwise trip codesigning
@frank fossil Sorry I meant 16.6/16.6.1
should work
Then, if it will be better than actual semi-jb, I'd be interested
Would it be possible in some way to use trollstores JIT to enable JIT?
no, binary must have get-task-allow entitlement
if resigning is still needed whats the benefit over js replacing with LC_LOAD_DYLIB
Wait until this guy finds out about dlopen()
im kind of impressed the interpreter like rescans the venv for packages
I think it just scans at import time but I could be wrong
idk how python works but js and lua just lookup when you import and then cache the import. No need to lookup everything if your not going to import eveyrthing
i'm sure some code out there checks for import exception then proceeds to auto download from pip if not satisfied
it's not very intensive
iirc it's just direct children of everything in sys.path
that's not that many locations to check
What does that mean?
anyone know how to resolve this
My target is macOS 15 so I'm incredibly dumbfounded as to why this is occuring
Usually this means that in one of your Package.swift files you haven’t specified the minimum version so it reverts to the default
Ugh so it means forking time
I gave up on it anyways now I'm banging my head against a wall about how to manage these freaking data structures
I found a method for TrollStore app to elevate to root without root helper. Enjoy.
Dunno if this survives 17.6 thing
Turns out just switching from structs to classes literally saved me
what issue were you facing
still kinda struggling to move my client past dms to servers
and i was trying to make member objects
you can't inherit from a struct so i had to make a protocol which is messy since i didn't really want that plus it meant i had to add a user sub object to compare since members aren't users they're user protocols etc
whereas if i use classes, i can have a base class of a user, then a member class that is a user but has extra stuff, a client user class that is also a user but has extra stuff
might end up going back to structs though
I imagine this has already been discussed, but I don't know how to search for it, so I'm asking.
Since we spawn a custom launchd, are there technical limitations that prevent semi-jb like serotonin or Nathanlr from using a technique similar to the one used by dopamine to put all executables in the trust cache, to instead signing them on the fly? Perhaps by checking that they are not already signed.
For "the dopamine technique" I mean the one explained in this video (link with timestamp included)
Apple has heavily cracked down on Kernel post exploitation with features such as
- Kernel Patch Protection (KPP/KTRR)
- Pointer Authentication (PAC)
- Page Protection Layer (PPL)
Bypasses for some of these features are now required to gain the desired level of control over the operating system.
This talk aims to provide an up-to-date high leve...
Trustcache is in PPL memory, Dopamine has a PPL bypass and Serotonin does not
Ok, dopamine puts the CDHash in the trust cache on the fly, why can't serotonin sign with ldid (giving all the possible entitlements) on the fly, does this require a PPL bypass too?
Because the CD hash being put in the trustcache is what makes the code signing system believe the binary is trusted
If it wasn’t in the trustcache the system would just reject it, because it would have no way of knowing if it was trusted or not
So the CT check has already been done (and failed)?
Ok, so why did you say that it would have no way of knowing if it was trusted or not?
Well, do you understand what the trustcache is?
It’s essentially meant to be a list of CD hashes for Apple binaries on the system
That the kernel knows it can implicitly trust to run
Dopamine uses its PPL bypass to add CD hashes to this list, that’s why it can bypass codesigning
If the binary wasn’t in trustcache, the kernel would get its CD hash and not find it in the trusted list, so would reject it
Ok, dopamine bypasses code signing, and gets arbitrary code execution, my point was that on serotonin, (where you can't bypass code signing, and I'm aware of that) you have to manually sign every binary you build, or download, and this is painful.
So I was wondering if this signing process could be automated in the same way dopamine automate the "trust cashing"
Sorry if my first question wasn't clear
Ah, then no
Well, Serotonin does bypass codesigning, but with a CoreTrust bypass
There used to be a way to attach a signature purely in memory and not be re-signing the file
But now that required at least a kPAC bypass
And now we need MTE proof exploits 
the PAC PPL TXM SPTM MTE bypass
And re-sign (actually just sign, since I hope to have some way to determine if a bin is already signed, and in general I would assume that an already signed bin, has already all the entitlement that it needs) the file is somehow out of discussion? (Is it too slow?)
Atp it’s just the Apple bypass 💀
i mean that's really the core of what a jailbreak is
Just impersonate an enough democratic government and buy it from a cyber security company 
How get Apple off my system
What do you mean?
Dopamine won’t sign anything
It just adds CD hash to trustcache if the binary is signed
You said
Well, Serotonin does bypass codesigning, but with a CoreTrust bypass
There used to be a way to attach a signature purely in memory and not be re-signing the file
So my question was, is re-signing the file bad / impossible (for serotonin)? (taking into account the caveats I had put in parentheses)
- TPRO bypass
Serotonin applies the CoreTrust bypass to every file, which is kind of ‘dirty’ because it modifies the original files
The point is that it doesn't (at least not the latest release). If I build a bin with clang and I try to run it, it gets killed
Yes, I knwo, the whole point of my first question, is if this sign process could be automated patching launchd
(you also have to run fastPathSign since it's roothide it is what applies ct_bypass)
In theory yes but in practice probably not
Like, you’d have to sign with no entitlements
And you’d have to depend on ldid being installed on the device
It should be the user’s responsibility
To run fastPathSign? it's what applies ct_bypass. You have to run it (on serotonin, never tried Nathanlr)
ldid is a basebin, it will always be installed on the device
You should also sign with all the entitlements, otherwise the bin could miss some and get killed
(Yes sorry, I confused symredirect with fastPathSign, but you have to call fastPathSign)
only in roothide
and I'm pretty sure that breaches it's license
The concept of “all the entitlements” doesn’t exist
There isn’t a predefined list
And you shouldn’t give all entitlements to all binaries because then all binaries get permissions they shouldn’t have
And yeah as opa said, ldid should not be preinstalled 😛
The jailbreak should handle that itself
If not then it’s bad design
Doesn't this happens with Dopamine or binaries in the trust cache are still checked for entitlements?
Dopamine doesn’t sign anything
It just adds CD hashes to trustcache
Signing and entitlements is the user’s responsibility
But in regards to signing with all entitlements by default, I more meant that giving every binary as many entitlements as possible is very very insecure
Idk what you mean, I love giving my random calculator app I found camera and microphone access
Yes, I know
We love saurikware
Well, I think it is... ('cause you have to)
Yea that’s bad design then
It should just re-sign with the bypass before spawning
Sorry but, Trollstore uses Procursus ldid to sign IPAs, doesn't it automatically install it too?
Edit: (It wasn't meant to be an accusation, just a doubt.)
The license just prohibits distribution
https://github.com/ProcursusTeam/ldid/blob/master/COPYING in case you want enrichment in shit license™
But it is FOSS or you can email the patch to bingner who may or may not email saurik
Procursus ldid is the only version that matters anymore

Let me fork it to make a version out of rust that two people may use but I will update via vibe code every 2 years
I thought if you don't modify source you're safe?
anything you bundle it with has to be the same license
its a virus
if you are just providing a dl link ur probably fine
as long as you also include a cop y of the license
is there same as trollstore app, but can work on ip16pm?
stop crossposting everything you ask please
aight
asks a question in #jailbreak
gets an answer from 3 people
makes genius bar thread
asks in #development
okay
I mean my reasoning is that if a non GPL browser is allowed to download the file and a non GPL terminal is allowed to run it, then so is TrollStore
does Saurik even do jailbreak related things anymore
Meth!
METH!
Why is CAFilter still a private API even when it’s remained unchanged for so long and is still quite useful?
Is there any specific reasoning behind it?
Real
Lmaoo I forgot about meth development
Anybody knows anything about X-Apple-ActionSignature and how it works?
I mean, how it is being generated. We need info about it, because there is an issue with logging in Apple ID account in iTunes Store/App Store on iOS 5.1.1 since spring 2025. After researchers, it was discovered that iOS 5 and below iTunes Store clients were using GET method to log in, and starting from iOS 6, it started using POST method to log in. And in spring 2025 Apple killed GET api, so it is not possible to log in iTunes Store/App Store unless you convert GET request to POST using proxy, but the thing is that it requires X-Apple-ActionSitnature, that iOS 5 and below clients were not generating. So now as we can see the only way to fix it is too convert GET request to POST and try to “teach” iOS 5 generate that signature, or something like that.
That is why I am asking
I don't know personally but just searching for that header key on GitHub gave a lot of results
@torn oriole another one for the filters
https://github.com/StephenDev0/StikDebug?tab=readme-ov-file
Hi, I was analyzing this tool thinking I could enable JIT even on apps downloaded from the store, but unfortunately it seems that it only works with apps that are being debugged or sideloaded. My idea was to be able to analyze an app without having to re-sign it, because re-signing the app often causes the loss of the original entitlements (keychain, iCloud, etc.) and often requires a binary patch to avoid crashes. Do you have any advice?
there’s ellekit jitless but it’s only limited to 8 breaks i think
oh 6*
But doesn't it need to be jailbroken to work?
No
However, it only works for an app that has this code inside it.
What device
Iphone 11 iOS 26
JIT only works on specific apps on iOS 26
What do you mean? Has iOS 26 introduced further restrictions?
To simplify, JIT was killed by apple in iOS 26
Here is JITLess ellekit
Ok but only for jeilbroken device
<@&355174844205367317>
Machine
Isn’t there another method
<@&355174844205367317>
That was quick
third ones the charm
crazy
any way of recieving touch events outside the bounds of a view, clip to bounds wont work
hitTest maybe
My immediate reaction would be no, the event would go to whatever view you actually pressed
What’s your use case here, just from that description it sounds unintuitive
are you okay with having the view completely hidden instead
Profile picture hangs off message bubble i don’t want the bubble to expand
Only the part hanging in gets touch events
Just give the view a container view that’s invisible
And that container view can listen for events
anyone know how I can set custom paths for Shortcuts?
currently it uses /var/jb/usr/bin/ but i want to add another path
nvm figured it out. put paths in /private/var/root/.bashrc
Gm

shocker, annoying repo outage
found something called tightbeam_stub inside my iphones filesystem
its a unix executable
anyone know what it does?
https://arxiv.org/abs/2510.09272 read the paper
The XNU kernel is the basis of Apple's operating systems. Although labeled as a hybrid kernel, it is found to generally operate in a monolithic manner by defining a single privileged trust zone in which all system functionality resides. This has security implications, as a kernel compromise has immediate and significant effects on the entire sys...
specifically 7.10
thanks
was just confused about it cuz I couldnt find anything about it
hi guys, is there any alternative MSHookFunction for sideloaded app's tweak? (livecontainer)
You can’t on sideloaded apps
i just wanna call a function in app's framework :/ is it impossible on sideloaded? i can get address with dlsym
Calling a function doesn’t need a hook
If you can get the address then you can just call it
Hooking is for overriding what a function does
yea i know but i dont want to more change on my code 😄 im trying to pointer to cast a func now.
may you provide some code as to what you're doing? that may help
Or what your goal is. If the framework you’re calling is open source or publicly documented you may just be able to call it normally
long long (*orig_getData)(const char *str);
thats the function i wanna call. i hooked and logged some data when jailbroken but im not jailbroken now. just wanna call sometimes. its enough for now
when i get symbol with
void *dataFunc = dlsym(RTLD_DEFAULT, "getData");
its returns an address (pointer)
just i will cast it and work i think 😄
long long (*orig_getData)(const char *str);
// ...
void *dataFunc = dlsym(RTLD_DEFAULT, "getData");
orig_getData = (typeof(orig_getData))dataFunc;
I think this should do it
i cant see crash logs but crashing. i will try your code o/
make sure the pointer is valid though
Crashing would usually mean the pointer is nil or one of your function signature is incorrect
yea, maybe i need to debug it
As a first step I’d just print the value of dataFunc
See if it’s 0x0 or it actually found it
no, i did it. return an address with 0xdeadbeef etc
i just upgrade my ios for whatsapp :/ i love jb community but bad times.
its work! thank you ❤️
nice!
does ios crash out if you lipo together 2 different binaries
as in one built by xcode 13 and one built by xcode 14
I’m pretty sure someone figured out the way to do it so it does work
Developers my buddy @native dune has a question
Nah its working
@native dune what’s your question
Nothing i was wondering how to inject into a platform binary but i ended up disabling amfi
/dev/apple_mfi
— 8:15 PM
Developers my buddy @#maxinedemoted has a question
#maxinedemoted
— 8:16 PM
Nah its working
amler #promotemaxine
— 8:25 PM
@#maxinedemoted what’s your question
#maxinedemoted
— 8:26 PM
Nothing i was wondering how to inject into a platform binary but i ended up disabling amfi
Youre wasting your time on that btw
Absolutely
Precious time that you could be spending on The Method instead
I just wanna see it work
Anyone know why this happens? I can't ssh in on 17.0
nathan@Nathans-MBP ~ % ssh root@192.168.1.133
Warning: Permanently added '192.168.1.133' (ED25519) to the list of known hosts.
root@192.168.1.133's password:
shell request failed on channel 0
nathan@Nathans-MBP ~ %```
Same stuff works on 16
I’m going to be real I don’t think many people would have an idea as to why since this is a relatively new thing
is sshd alive?
nvm it must be if the client is being rejected
does anyone know any reasons why SpringBoard crash reports wouldn’t be generated after crashing into safe mode? someone is facing a safe mode issue when using my tweak but they have no crash reports neither in Settings nor in Cr4shed and this has always been an issue for them apparently anytime they have a crash problem
I was thinking maybe they disabled crash reporting in icleaner or have too many logs but idk if there are other reasons
They got hacked by a nation state and the spyware disabled crash logs 🗣️
Yea I’ve had issues like this it’s really annoying. Try having them clear logs, and restart user space. Then if that doesn’t fix it, just do a trusty old disable things then re enable group/one by one and see if it crashes
ok thanks!
Also doing a full reboot and rejailbreaking helps sometimes
Nothing helpful here and nothing in StandardOutPath/StandardErrorPath
sshd is exiting with signal 2
Did palera1n have any specific issues / patches?
run sshd manually with verbose flags
Issue is when I run it like that it gets further
Like it doesn't even generate the keys when its ran by launchd
But when i run keygen wrapper manually it generates the keys
edit the launchdaemon plist to add verbose flags, edit the sshd config to add verbose flags, try to get as much logging as possible
I set LogLevel to verbose and even then nothing
Tf
is roothides forkfix broken on 17
So you have issues running ssh because sshd running abnormaly, right?
it wouldn’t surprise me if it was
(either that or another set of entitlements are required)
bash seems to crash with this when i run it in newterm
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x1f7c4075c __kill + 8
1 bash 0x104d9ba08 0x104d58000 + 277000
2 bash 0x104d9bc74 termsig_handler + 444
3 bash 0x104d9b56c termsig_sighandler + 144
4 libsystem_platform.dylib 0x21a1a1888 _sigtramp + 56
5 libreadline.8.2.dylib 0x104f2a4fc _rl_init_locale + 228
6 libreadline.8.2.dylib 0x104f11d18 _rl_init_eightbit + 24
7 libreadline.8.2.dylib 0x104f13f34 rl_initialize + 244
8 bash 0x104da52d0 initialize_readline + 920
9 bash 0x104dd40f0 0x104d58000 + 508144
10 bash 0x104dd971c 0x104d58000 + 530204
11 bash 0x104dd6f28 0x104d58000 + 519976
12 bash 0x104d98a08 yyparse + 544
13 bash 0x104d98744 parse_command + 372
14 bash 0x104d981d0 read_command + 268
15 bash 0x104d9841c reader_loop + 504
16 bash 0x104dbebf4 main + 5180
17 dyld 0x1d3877d44 start + 2104
but this happens in both 16 and 17
Try running bash with environment LC_ALL=C.UTF-8
or just C
check DM pls
~~i typed this and deleted it 🤦♂️ ~~
is jsonencoder/decoder faster than jsonserialisation
I think bash is crashing
roothide is broken? Who could have every possibly seen this coming
They use the same core
If you need performance use https://github.com/michaeleisel/ZippyJSON
It’s incredible
requires new ios
already looked at it
why would it specifically be iOS 11+ though
before that it was iOS 10+
Which is rather odd
Usually it goes 8+ 9+ then 12+ or 13+
actually idk if you could cause it uses simd
iirc that was the minimum version that spm let you target
simd is swift

What no
my brother in Christ simd refers to a technology, that’s a wrapper of the c library
I’m pretty sure you could get simdjson to compile for iOS 6
it’s a c library
used by fucking everything but apples jsondecoder (except in newer iOS)
oh
jsondecoder was baked in objc for the longest time and was a lot slower than any c or c++ alternative
Because objc is objectively slow as balls in comparison to c++ or c
ZippyJSON is just a Swift wrapper of simdjson, which is designed to be a universal C based json library
ill try
its really really big though
they re implement json serialisation
667kb file
if that uses a bunch of ios 11+ stuff it might be cooked
Yeah because apples is slow as balls
mm
I don’t think it would, I’m more inclined to believe it’s because that’s the minimum you could target with spm5
compiling this will be slow as balls..
i'm sitting here targeting 7.0
all my packages do
you just get a warning
who cares about that
Not everyone likes that
¯_(ツ)_/¯
i mean if you're doing it on purpose then you don't really care to begin with
1.2mb of text to compile is really rough
sorry 1.8
Good thing you’re not doing it by hand
And you have a thing called a computer which can compute incredibly quickly
a 2013 mac pro
1.8MB of source is really not a lot for most projects
the compiler doesn’t particularly care how many files it’s in
it seems to
hangs on huge files
even with the built-in xcode compiler
wait shite its targeting 5.7
why is it targeting 5.7
grr
It optimises on a per module basis so if you’re using it as an spm package it will treat it as a separate module and it will take longer
Compiling is a great excuse to go and do something else with your life
I’ll hit go, know it’s gonna take 5-10 minutes and go and buy a monster from the store 💀
hmmmm
Oh I might know why
y
lmao it builds
thing is i dont actually use jsondecoder rn
i use jsonserialisation
time to see if merely having the library causes a crash
I used to be all in on serialisation but I ended up going back to decoder
It’s just generally a lot nicer to work with in the long run
And can be more performant
(In certain situations)
Its a lot more cumbersome and it’s slower however I’m hoping this library will fix the later
It takes twice as long to get into the app when using decoder
(Unless you’re on iOS 17+)
This should help that a lot
The funny thing is JSONDecoder is backed by JSONSerialisation, the difference is JSONDecoder will only decode the keys you’re asking for whereas JSONSerialisation will just get everything all at once
It can’t just be as good as serialisation though it has to be much better to justify it
it’s not using objc what more do you need
Since conforming to codable is a royal pain in the ass
LOL
I didn't know that
Codable inits for big objects is like rewriting the entire class
Yeah it’s kinda goofy
I looked at the open source foundation
Pretty funny
On Apple platforms? Most of it
On Linux however most of it is entirely Swift
And works mostly the same
Kinda funny
You can check by looking at swifts source straight up
The Stdlib is just an overlay of objc outside core types
Hence why it works on iOS 6…
swift is a joke
prolly
Yeah
For objc interoperability on Apple platforms Swift uses the objc foundation types under the hood
But then on Linux it used the Swift version which has the same api and runs considerably faster
But they’ve done hella optimisation to make the Swift objc foundation work really well
If you don’t need the objc interoperability it mostly won’t use it
It will only invoke it when you try and pass it into an objc method
You know swift is a joke when only 5% Foundation's imports are actually swift
Yeah swift is held back by objc interoperability on Apple platforms
the rest is well, objc's Foundation or CF
Why rewrite the wheel though
Swift the language exists standalone with foundation
It works
Only on apples platforms does it use objc
it's slower
And that’s for this reason
🤷♂️
Then again… they already have??
They already did it for Linux
And it’s completely standalone
But they would need to rewrite literally thousands of objc binaries
its so much easier for them to maintain the existing objc tech and write the new tech in swift
Scratch that basically all of UIKit does
The entirety of UIKit is objc
Except one class that is Swift only
exceptions
(For SwiftUI compat)
Yeah
UIViewRepresentable?
@magic hazel you know what would be a much much much funnier project
Making an objc api for SwiftUI
LOL
one of the internal classes it uses
Why is objc based
Funny ❌ impossible/awful/terrible/against design ✅
What’s your reasoning
I like objc but I like Swift more
what’s your logic for thinking objc is better
I don't like the "neo-languages"
Personal preference
Fair
Yeah no fair enough
But you can’t call Swift shit just because you don’t have a personal preference for it
You just don’t like it, doesn’t mean it’s a joke or shit language
The language maybe isn't bad, but it's implementation is
the toolchain is garbage too
🤷♂️
There’s problems but objc had the same problems
At least binaries aren't 150MB
New language features not being backportable
This is a skill issue
Pure Swift binaries that do the same thing as an objc thing are objectively smaller
^^^
We can’t judge a language by shit devs who bundle half the world with their apps
binaries are static, the more libraries you import, the bigger the final binary will be
objc has the same problems
This is optional
Google is ass tho
🤨
Google out here cooking up straight shit
it’s on by default but optional, Swift has been ABI stable since iOS 12.2 making dynamic libs possible
who would run swift on embedded systems
Surprisingly a decent amount of people
see I think that’s insane
These people are sick
I mean if it works it works
C is perfect for embedded systems idk why people need to keep reinventing the wheel for it
I agree
UnsafeMutablePointer usage pov
You must use swift
Nah C definitely wins on embedded systems
Once you know how to use it it’s fine
Swift is designed to be a safe language, pointers open you up to incredibly unsafe behaviour, what’s the big deal
The code usually looks kinda bad using this
C code looks bad, low level code looks bad
Wrong
this is a skill issue
You get .pointee .makeCallable() and all those apis, that wouldn't be needed if you were using C. "neo-languages" aren't made for unsafe.
There isn’t really ever a need for this
C code doesn't look bad at all
People over complicate it a lot of the time for no reason
I mean looks are subjective but imo it looks incredibly ugly
9/10 if you need to use data pointers just use [UInt8] which the compiler casts to a pointer for you at compile time
There is if you work with low level things
If I used swift, I would need that for all my projects
var eg = [UInt8](repeating: 1, count: 10)
memset(0, eg, 10)
you can use an unsafe pointer but there is 0 need to
and there’s 0 performance benefit to
The code can still be read (and understood) by anyone...
Idek where to start w this one
How would you cast an address to it tho ?
There are 80 million different styles of C code you can write in or just make up your own on the spot
What’s ur use case
????
9/10 the address to it is done for you
There’s no proper guidelines as to what a C program should look like
Whatever you might wanna use an uint8_t array for ?
[UInt8] is completely interoperable with that
that’s my point
the compiler just does it for you
There is conventions, just like in most programming language
Barely any and they’re not strict
this is objectively not true
Clang and gcc both have strong guidelines
Lookup clang tidy
clang tidy my beloved
Why is it that every time I look at a different C repo that the codebase is structured completely differently, each file has been laid out completely differently, hell down to the way variables are handled can be vastly vastly different in the worst cases
Meanwhile C++ doesn’t have nearly the same problem
Because people don’t follow the convention?
Yes
The convention exists but people don’t follow it
Because the language doesn’t enforce it
No language enforces it???
You could write the worst possible swift on the planet and it would still work
rust:
rust got overtook by asm this year it’s not real
name your variables in camel case and rustc will shoot you
That’s actually something I like about rust
Is it actually ?
Wdym
It has a built in formatter and a couple lints in the compiler by default too
In terms of usage
I don’t like rusts syntax or stdlib at all however I find myself agreeing with its philosophy a lot sometimes
Oct 2025 over Oct 2024
as far as I'm aware rust is the closest to having a uniform style
Rust is by far my favorite syntax
mentally deranged statement
Rust syntax is just pure awful to look at
^
@magic hazel have you ever ran swiftlint?
No
LOL
so how can you know you’re following the Swift guidelines
It is very uniform and logical and autistic
I ready the wiki and follow others code bases
bad idea
How the fuck can you be on this argument that every code base looks different because nobody follows the guidelines when you don’t yourself
yeah 😭
I’d bet a grand you have linting errors
Default swiftlint rules
I’ll bet a grand I do too probably due to laziness but eventually I try and cleanup
I am actively aware of it though
And I don’t like it
Then stfu about code bases not following guidelines😭 😭 😭 😭
rootfs the type of maniac to use K&R function declarations
I’d like it if Swift got angry at me
C does have a fairly wide range of accepted styles
FWIW I disagree with a lot of swift lints rules
but a lot of people do
There’s a reason you see temporary disable comments everywhere
Is swift lint something that runs during write time or compile time
I only do if a function has like 20000000 parameters
I don’t know how to answer that…
All linters and formatters ate run at what I call bored time: I only run them if I am bored
Xcode is compiling frequently in the background to index, swiftlint rules can show up then
Write time
“Write time” is shorthand for realtime compile time
Hm it’s for Swift 6 it seems
Can those be errors without doing all warnings as errors
yes
@gentle grove what is the name of that style
int main(int argc, char *argv[]) {
// Code
return 0;
}```
Correct 
Wild
Yeah, true
Mormal
Normal
GNU Style is mentally ill
mentally I'll
like why the fuck would you indent the curly brackets
I mean I get it
No because Swift style guidelines tell you not too
I know I know
Are you telling me your codebase doesn’t follow guidelines
But when I’m testing ! Is so much faster than full optional unwrapping
I end up replacing ofc
all the things in gnu style basically make sense but when you combine them all together, it turns into shit
Unreadable
Or… you’re in a network application!
Where payloads can in fact be nil
So you’re wrong
And that’s fine
PearDB (cc. @torn oriole) taught me to never force unwrap
What do you mean by this
Yes it’s quite bad practice
Everytime it fails it means it were wrong
I adore how this conversation has shifted from C sucks because people don’t follow the style guidelines to I don’t follow the style guidelines either but it’s ok because I know I don’t
C doesn’t suck C styling sucks
Which is literally what every dev ever says
C
"THE" style guidelines
no
GNU Style guidelines aren’t real
Clang is the only one that matters
Fr
Idk what clang looks like
Correct C
Is it like the normal thing rootfs sent
Normal
Yes
that sounds good to me
Because it is good
I assume jwi meant more like the layout and structure though
The literal syntax is fairly similar among everything
If you’re in c++ though it prefers
auto myfunc() -> uint8_t {}
over
uint8_t myfunc() {}
So we went from styling to layout and structure
which I find funky
What’s gonna be the next thing, place your bets
It’s a bit of both
I thought it was supposed to be layout and structure from.the start
I don’t use c++ 🔥
Not always solely
Unfortunately Margaret thatcher introduced the class system in the UK so I’m forced to use C++
There are often naming conventions for files and file structure
😔 C OOP just too good
So I just do that
"coop" rootfs is a dei nerd
HAHAHAHAHAHA
C++ mfs trying not to use templates for a day challenge (impossible)
I’ve never used templates in c++
But I also don’t use c++ that much
I use c mostly but with c++ libs
c++ users attempting to understand whether their object is uninitialized or not
Because it shouldn’t exist in the first place
I’ve never used templates in any language
But what about my monomorphism
You’ve never used protocol in Swift????
Oh I thought you meant file templates
oh
I was confused for a second
I thought protocol was just swift equivalent of interfaces
Sry it’s like 12pm
No c++ templates are the equivalent of protocols
Oh
Swift doesn’t have interfaces
Why is using protocols bad 😭😭
Protocol is fhe closest to an interface
What's the difference
It blows in C++
Ah ic
Ngl I don’t like protocols and structs very much
Idk why
Classes make my life easier
Mutability and inheritance is nice
C++ templates are the way to implement what most languages call "generics", among other things
It is implemented by literal preprocessor text substitution
Interfaces typically refer to only one specific class, protocols can be inherited by multiple
Yikes alr
wat
That’s what objc treats it as
Wdym interfaces only refer to one specific class
Like
It’s interesting how objc types are mostly all classes and then swift types are all structs
It’s where you say what methods and variables an object would have
so in objc you would say @glossy jasper MyObject: NSObject
Somewhere in a header file
Lmao
I never liked that
Idk reading the swift page for protocol sounds exactly like an interface
)
{
is >> than ) {
Oh except that you can also declare fields
It might be. I always see them slightly different because objc has both interfaces and protocols and they’re different
but then again objc is a special being
Maybe objc is weird
This wouldn't be what a c++ template itself does, but kinda a building block to making templates (or generics) useful
Because you need to be able to generalize wanting to have an object with "some behavior" and that's all you know about it
huh wait so are extern templates not possible?
Wdym
because then the function wouldnt know what type the generic would be
Usually all templates are in a header so if you call a templated function, it can generate one with the concrete type
oh
but so like say a static library right
what if you expose a public template
or better yet a dynamic library
Like how
just by compiling as a library and exporting the function that uses the template
You can think of a generic as describing a family of functions "foo_something" where something is some arbitrary type (with some constraint like needing to implement certain methods, which are used in the function body)
no yes i know what a generic is
but like
how does cpp handle them when it cant decide on the concrete type upon compilation
i.e. can cpp even make a generic interface based just off ig something like traits
Like as in a trait object in rust?
Idk if I quite visualize what you're saying
Neither a c++ template nor a rust generic have any form in the compiled output, like in a shared library
So if you want to handle arbitrary types then in rust you can easily just take a Box<dyn Trait> trait object, rendering a version of the "foo" designed for that box dyn trait
In c++ it doesn't really work right because usually you don't even use a trait or interface at all, you just literally call methods. If the method names don't exist, it fails to compile. If the methods are the wrong ones but happen to have the same name, your program behaves wrong or even is undefined
But I think the abstract base class, the c++ version of the interface, then would also work as your "trait object"
Something like that
The abstract base class would have all virtual methods so you'd just replace all the pointers in your implementor object
I think its something like that
rot in hell
C++ templates does it by duck typing while real languages like Java, Rust, etc are doing it through actual type theory solving
fr
@native dune is it working
yes
It might help to re-remember how an "abstract class" (just a class where all methods are virtual/dynamic dispatch) is laid out, its just a bunch of function pointers
So I think the actual answer is, on the low level, the library provider would create an abstract class and publish the version of the method that uses that abstract class as the concrete type
Ever since I stopped doing java, I forgot all that stuff about inheritance 😭
Instead of creating an interface/trait and having the language create the trait object for you (with special syntax), you create that trait object yourself (the abstract class with virtual methods)
This exists in C too, a struct with function pointers as the members
You can do polymorphism in C which would probably impress some people on Twitter or something
That's what most C++ libraries do in order to create a C compatibility layer
I believe it's the same as what C++ does to talk to other C++, just with different abi
How many PRs have you made to compilers ?
Whatever they might be
None unfortunately
huh, ok yeah that answers my question then
thanks!
Aren’t c++ templates compile time too
Yes, and so are generics, I believe always
So a template or generic doesn't exist in the compiled output, only variants of it for concrete types
Yeah obviously
Is she working
I mean you can use templates for anything. Here I'm just focusing on the specific case of using it to implement a generic
yes
My only flex in software development is that I have an unofficial PR merged in a widely used package manager 

Why is it when I resign an encrypted app store app with ldid, then ct_bypass, the app opens fine on 16, but not 17? It opens fine on 17 if I just ct_bypass it. The odd thing, however is if I attach lldb to the process and then call anything and then detach it the app opens fine
something like po getgid()
what does the crash report say ?
Doesn't generate a crash report weird enough
does it open when you attach, don't call anything and then detach ?
no
@grim sparrow
The simdjson library is designed for 64-bit processors and it seems that you are not compiling for a known 64-bit platform. All
fast kernels will be disabled and performance may be poor. Please use a 64-bit target such as x64, 64-bit ARM or 64-bit PPC.```
Damn I forget ur compiling for 32bit
I don’t know
I would test it
/ benchmark
I would still think a c++ impl would do better than objc
objc isn't that heavy surely
Objc is heavy as balls
Fire
Swift 1 was heavily reliant on Objective-C though
The performance gains only improved
True
Swift has gotten much faster
I can speak to that since I've tried basically every minor version atp
in what area ? maybe on runtime stuff, method calls. other than that its just c no ?
pretty sure c is faster than swift
C code can run in Objective-C but you'd have to be comparing Objective-C code to Swift code
ik, i am saying i thought other than runtime stuff objc is just c, at least in terms of execution speed
This
Anything not Objective-C is not comparable
Because then it's just C
And yeah, no shit, C is faster
so you are comparing method calls ?
If that's what Objective-C brings to the table in your testing then that's what you're comparing
Anything that Objective-C offers over C is testable
this is mostly what benchmarks consist of for a language
thats unfair ngl, objc uses dynamic dispatch while swift doesn't
I fail to see how it's unfair when one language makes one choice and another makes another and one choice leads to better performance and the other choice doesn't
It’s comparing language A vs language B
^
And in this case we’re comparing the implementation of a system in Language A and Language B
And I’m saying that json decoding is faster in C++ than it would be in ObjC
It's like saying "Python has all this stuff that makes it great but it also makes it slow so it's not a fair comparison"
Ur just missing context
I honestly didn't know Objective-C was that heavy
I would have thought it would at least be close to as fast as C considering the glaze it gets
What does Objective-C actually have going for it then
Objc method calls themselves are slow as balls but you mostly use C and C++ in those methods
so it can balance out
But like, if you're writing an iOS app, you're using Objective-C calls
yeah mostly
you are doing it again tho 😤 , its just as fast as c/++ if you don't put your code in a method
But then you're not using Objective-C are you..
Apple did kinda fix the dynamic dispatch problem with objc direct though
You're relying on C to give you performance
but this was in like iOS 15?
method calls isn't the only objc feature, there are blocks
and only works if your app targets iOS 15+
Which, in my opinion, is a pretty lame option
If your language performs so poorly you need C to save you
starting to feel like ragebait 😭
What’s the difference between a C closure and objc block
Mega yikes
simd my beloved
I only recently learnt the armv7 spec had neon
No 32 bit 
armv7 had neon but it was optional, I don’t think Apple did it?
wdym by c closure ? { //code } this, nesting functions, or some cursed function pointer stuff
I need to figure out how to properly use simd in armv8 just to support bigger ints on my assembly fibonacci calculator
(none)
you don’t really need plain c, you can use c++
int a = 4; // global scope = nesting depth 0
int b = 2;
{
int c = 2; // nesting depth 1
void foo() {
int a = 1; // nesting depth 2
printf("%d %d\n", a, b);
}
foo();
}
this is what I thought
Then you're using Objective-C++
doubt
Which isn't really the same because it's not like Objective-C where it's completely inline
Iirc
You have to segment your code
first of all blocks are objc objects
Which holds a pointer to the function...
lmao it's so funny how much of a language is just hiding pointers
you know a language is good when someone needs to buy that domain
I don't know which psychopath designed blocks but they are mentally deranged
Ngl I prefer C's syntax which feels wild to say
So do I
Objective-C syntax is goofy asf
It really is
by this logic everything including c++ classes is c cuz all they are is structs and function pointers
It's not quite far enough removed to forget you're using a C wrapper but it's far enough that it feels like you're in an uncanny valley
That's only true for vtables
the rest is direct function call
ICL something deeply offends me about how you call methods in Objective-C and I don't know why
Is There actually a functional difference other than methods should take blocks and functions should take closures
whoever designed smalltalk, probably https://wiki.c2.com/?SmalltalkBlocksAndClosures
just use objc_msgSend
if you hate it that much
lol
That's even worse
See that’s insane
blocks are subject to retain/release, as they are objects
That is true
Didn’t someone do this
"Make anything in C" -> Possible
-> Fun 
i mean it's easily doable
Yeah
yeah its a calculator tweak made by luki
You could prolly make a preprocessor which turns m file into full c code
Wait are we talking C using iOS's libraries or C using your own homemade graphics library, foundation replacement, etc
objc_msgSend casts
Basically just using Objective-C without directly writing Objective-C code, like you do when you use Objective-C classes in Swift
Can you even emit C code out of an objective c file
Objective-C's overlay is in C, and it sits on C, why wouldn't you be able to?
There’s probably some archived tool on GitHub
fr
There is also the ability to just have a think about it
you can't easily, there are more to it than turning method calls into objc_msgSend. declaring and defining classes etc has to use that objc4 repo code, which is c++ not c
logos already does the whole class part
just need that extra brackets parser
I remember when I first wanted to start programming I had this idea in my mind that C++ was this great abstraction over C and was a high level language, oh how wrong I was
well logos is making it so that classes are added at runtime, not sure if thats what happens when you @glossy jasper a class and compile it
Classes are just memory objects
there are apis to do everything
But wouldn’t you need objc to import the runtime api
Not objc
C++
(It’s late)
objc/runtime.h is just c afaik, not ++
I wonder if Swift will ever drop Objective-C interop
Heavily doubt
Shame
god forbid
While it's useful it holds the language back
I've been using objc runtime api in c
Why would Apple rewrite every framework in Swift
It’s a monumental waste of time
Objc direct fixes most of the performance problems
clang handles objective c, thus if you needed the runtime api, objc compilation would just be handled by clang++ which isn't the case
I mean the issue is right now they don't have to but in the future Objective-C is only going to get older and less frequently updated and as time goes on it'll be harder and harder to move
That’s not true
They update it every year
Objc is still frequently getting optimisations
It’s all just performance updates
Which is basically just life support lmao
but it’s all it needs
What would you change
the goal was just to bring OOP to C
The rest is just C.
When you’re targeting modern iOS and using the modern toolchain it’s really not that bad for performance
it’s not as good as Swift but it’s not that bad
as long as you don't use Foundation or UIKit 
it’s just really not worth the hassle to rewrite literally thousands of binaries and then force probably tens of thousands of devs to rewrite
from an 2019 nshipster post
Make syntax shorter, inline block literals perchance, better weak capture rules like [weak self], type safety perchance, better importing for modules, so no more header files
Would also be a waste of disk space
Better concurrency
But these are all benefits for future programs
^
If your program already exists who cares
They’re not problems that couldn’t be solved before
there’s no point rewriting it for the sake of rewriting it
Also weak self is not a swift thing
What do you mean by inline block syntax?
weak captures are an arc thing
yes
It exists in Objective-C but it's not as good iirc
Importing modules is just linking and importing a header...
clearly you’ve never really used objc
[array map:^(id obj) => obj.name];```
and you even have @import
@import is legendary
That I didn't know about
I never use it but it exists
I pretty much always use it now