Repository navigation
Replies: 4 comments 4 replies
One concern I have with AI is what the AI was trained from. For simple contributions, I don't really have an issue with AI contributions (as along as people are upfront about it). However... For any AI assisted contributions that makes involved modifications to Apple's APIs, I would have to reject it. For example, if I see an AI assisted contribution that implemented Storyboard support for AppKit, I would reject it for legal reasons.
You're free to do whatever you want in your fork.
I rather not add a build dependency for Rust (unless Apple themselves starting using Rust in their system libraries).
If their project is at a better state than darling-corecrypto, it would makes more sense to just fork their project and integrate it into Darling's build system. |
|
We have an internal disagreement about AI-assisted contributions. My stance is that legality is OK. No LLM has been trained on Apple's source code because LLMs have been trained on material available online, therefore there's no risk of Apple source code being reproduced into Darling. My main ask is that the contributor is aware of what his PRs do and why. "AI spit this out" is not acceptable. |
|
Dear Friends, We plan to use the final code IN PRODUCTION as part of our desktop in the cloud service, then i will personally check all code sended one by one. The goal here is to contribute with the community back... Regards, Andre |
|
Thanks, this is very helpful. Understood on Rust: I'll stay in C. NeoDarwin's corecrypto is not in a better state (it has no ccec, GCM or ccder), so I won't propose switching. On AI: every PR will be one I can explain line by line, and I'll answer review questions myself. Two questions so I don't waste your time:
Andre |
Uh oh!
There was an error while loading. Please reload this page.
Hi Darling maintainers,
I'm Andre (@fitandre). I'm starting a long-running effort to make Darling run unmodified x86_64 macOS apps on x86_64
Linux and on Windows 11 through WSL2, and I want it to happen upstream, in Darling, not in a hard fork. Before
sending more PRs, I'd like to agree on a way of working that is easy for you to review.
What I'd like to propose
note on why it can't be tested, and exact reproduction steps (distro, compiler, commands).
human owner (me) who has reviewed it and answers for it, and says plainly that it was AI-assisted. If you'd rather
not receive AI-assisted PRs at all, or only some kinds, please tell me and I'll respect that.
metal2vulkan's Metal-on-Vulkan runtime) would start as a short design
note in Discussions, so you can say "yes", "not like this" or "not in Darling" before any code is written.
that works for you.
What I can offer without money
COMPONENTS=stock) and rundarling shellon Ubuntu 24.04, Fedora 44 and Arch on everychange, and can attach logs to PRs and issues.
-DCOMPONENTS=clialone fails to linksecd(ld: library not found for -lCoreData#1603, fix proposed inBuild the CoreData stub for a cli-only build (-DCOMPONENTS=cli) #1789), and the newest Arch clang emits Objective-C constant literals (
NSConstantArray,NSConstantDictionary)that Darling's Foundation doesn't provide yet.
on it. About 222 of its ~460 functions still print
DARLING CRYPTO STUB. Hashes, AES and HMAC work. Most of RSA(key generation, private-key operations, key decoding), most of
ccec(NIST curves), parts of GCM,ChaCha20-Poly1305, CMAC, CCM, DH and
cczare stubs. I also compared it with NeoDarwin's clean-room corecrypto(MPL-2.0, https://github.com/NeoDarwinOS/corecrypto). It implements only about 10 of those stubbed functions, and it
has no
ccec, GCM orccder. So darling-corecrypto remains the better base, though NeoDarwin's NIST CTR-DRBG andkernel PRNG code could be reused, with MPL notices kept. Counts come from a text scan of the sources, so they are
approximate.
Questions
-fno-objc-constant-literals,-Wno-error=incompatible-pointer-types) in CMake, or fixes in the affected code?and ChaCha20-Poly1305. Would you accept implementations written in Rust? That would be a small static library
exporting the same C ABI, built on the RustCrypto crates (MIT/Apache-2.0) and added one family per PR. Or should
they stay in C?
Thanks for Darling, and for your time.
Andre
All reactions