Hi all, I'm new here and I've been working on some...
# aros
j
Hi all, I'm new here and I've been working on something that I wanted to share with you. Have a look...
b
hosted on mac? using cocoa?
j
Yes, full native. With many extra features:
1. AROS's first native AArch64 bring-up — vectors, MMU, context switch, exception model on 64-bit ARM. Greenfield, reusable on every ARM64 target, not just Apple. Phase-1 done 2. AmigaOS running as a native macOS arm64 process — hosted, EL0-only, sidestepping undocumented Apple-Silicon hardware entirely. 3. Wanderer desktop boots crash-free — 60/60 runs, zero crashes, after fixing 3 real regressions (weak-SysBase, clang-22 va_start, missing userland) + a foreign-thread SIGALRM guard. And... • Cocoa/Metal display. A live Apple-native Metal window running the AmigaDOS shell; keyboard drives it. Replaced render-to-PNG. • Host BSD sockets Real TCP/IP — forwards bsdsocket.library to the Mac's native sockets. Localhost round-trip, WaitSelect, an internet fetch from 1.1.1.1, and DNS — all proven on booted AROS. • CoreAudio audio Real sound via a CoreAudio-backed AHI sub-driver — audible smoke test proven. • Clipboard bridge Two-way copy/paste between macOS NSPasteboard and AROS clipboard.device, byte-exact. • Host volume A real Mac folder mounted as an AROS volume (MacRW:), drag-from-Finder. • processor.resource (hostcpu). AROS reports the real Apple Silicon CPU via sysctl — "Apple M5", 4P+6E, NEON — since MIDR_EL1 is unreadable at EL0. • Print-to-PDF engine AmigaOS output → real text+raster PDFs via CGPDFContext/CoreText (no PS→PDF detour). • 68k → AArch64 JIT Runs real classic Amiga binaries at native speed. Dhrystone runs byte-perfect at ~117 VAX-MIPS — roughly 3× a 50 MHz '060. • Rust on AROS. no_std (core+alloc) Rust, cross-built on the Mac, runs on aarch64 AROS — custom global allocator over AllocVec. • Control harness (aros-ctl) The "puppet master" — boots AROS windowed and drives it from the CLI (type/click/screenshot/tail) with no Screen-Recording prompt. In daily use; seeds the embeddable-library API.
It's not yet completely stable but I'm working on it. I was trying to port ffmpeg and std but I see @Kalamatee has been making progress on the later.
So it's working but I'm using Claude Code a lot... How do you guys stand about code written using AI?
k
As long as it is properly reviewed and tested we dont have too much of an issue with it.
b
My personal opinion on using AI tools is that as long as the person committing the code understands it and can vouch for it, I'm fine with it (we have a lot of these discussions at work). That said, keep in mind that LLMs are trained on code from many sources, including the Linux kernel and other GPL-licensed projects. So make sure you're committing GPL-licensed code, as it is not compatible with the AROS license.
j
That's great to hear. I have many test cases and for example my JIT68k runner is "byte-perfect" because every translated 68k block is checked against an independent 68k interpreter, all registers and memory bytes must match exactly, and real Dhrystone 2.1 run through it produces its canonical self-check values (Int_Glob=5, Bool_Glob=1, …) bit-for-bit.
You mean not committing GPL-licensed code. Yes that's understood.
b
yes 🙃
😅 1
j
Alright, very nice, so give me another week to stabilize and then I can start sharing things with you to test if you are interested and you have a mac with Apple Silicon.
Or just let me know what you prefer and how you see things... for now I've been commiting my changes in upstream locally. And have my own repo for the rest...
b
can you explain the mix of amiga os and aros? I do not fully understand what you mean
s
No Schedule and Rocking!
j
Sorry if I'm not using the correct terms for things, yet, and I should definitively not use the term AmigaOS loosely like that. AROS is running natively on the mac but I can't run native 68k programs, so I thought, let's add JIT68k to run classic 68k applications on top of AROS. Right now the JIT runs as a tool on the Mac, host-side, which is usefull already but the plan is to move it inside AROS so LoadSeg runs 68k binaries natively, with their calls bridged to the real AArch64 AROS libraries. Of course I know that this has a limited usage and will only work with apps that don't access the hardware directly so games and demos won't work.
Let me know if you want more details about anything specific. Don't hesitate.
o
So you have a 68k aros running too or how do you manage aarch64 code calling os functions?
j
It's native AArch64 AROS, not 68k. Nothing is emulated for OS calls. The 68k JIT is a separate, optional piece, only for running old Amiga binaries that I might embed later if possible. It is not involved here. And this means, like for any other architecture, that you have to compile the programs for that platform.