
Milan: Small, fast Gnustep desktop and file manager
Today's code release is Milan. A small fast file manager for the pi3 Darwin in Gnustep. The focus here is efficiency. It does the basics with proper unicode support.

Today's code release is Milan. A small fast file manager for the pi3 Darwin in Gnustep. The focus here is efficiency. It does the basics with proper unicode support.
Today's code release from the Darwin rpi3 project is Florence. I've posted screenshots of it before. It's usable on the modern web. There are limitations (no video, webgl etc) but it is the current version of Safari and has hardware acceleration and JIT for Javascript.
Long time GNUStep/Cocoa enthusiast. I don't like the Apple move to SwiftUI, and frankly developing for mac only is becoming less economically feasible. So im moving to the web and decided to build a framework that compiles Objective-C to web assembly. Its similar to Cappuccino but uses actual Objective-C and compiles to wasm, not Javascript.
I used Claude to port over a small Foundation and Runtime and then started implementing AppKit. I was also able to get rudimentary interface builder support (see the video).
Just curious if anyone else has ever wanted something like this.
Today's code release from the Darwin on pi3 project is Rome. This is a modern terminal emulator entirely in Gnustep. It uses libghostty for terminal emulation and is optimized for the pi's hardware. In my perf testing it is 55-66x faster than the Gnustep terminal app. It's designed for Darwin but no reason why it cant work on other targets
| Rome | GNUstep Terminal | |
|---|---|---|
Print 50,000 lines (seq 1 50000) |
1.5 s | 83–97 s |
| CPU used by that | 1.4 s | 78–93 s |
| CPU while idle (30 s at a prompt) | 0.06 s | 0.8–1.1 s |
| Memory (resident) | 29 MB | 111–156 MB |
This is the first code release from the RPi3 Darwin project. The main reason to use this is if you are like me and are running an OS that has only one UI toolkit; GNUstep. This maintains visual consistency with the rest of the UI and eliminates the need for another toolkit. This has only been tested on arm64 rpi3 running Darwin, compiled with Xcode on a mac. Since it is pure user land and Appkit, no reason why it doesn't work on anything else.
The gpu now works. This brings gl and accelerated x11. This has already made an impact on the ui. The Florence browser is actually usable now.
Xdm has served me well but it isn’t visually consistent. Replacing it with a new application called gnustep display manager gsdm.
Finally it is time to retire the very very slow terminal.app . Rome is the new gnustep terminal emulator. At the moment it is using a cpu renderer and libvterm. In my own testing it is around 10x faster. I intend to replace this with ghostty for an accelerated terminal. I will post perf numbers on that in the future.
Even though it was booted using Qemu-NeXT, referenced some other kernel code, and AI did all the heavy lifting... it finally boots up!
I'm not entirely sure if 100% of the functionality has been fully restored, but I verified binary-level identity against the original kernel (unmodified pure 4.2) and successfully confirmed it boots.
I still need to analyze and restore the binaries for the m68k and SPARC kernels to make the restored code even more robust, but for now, I'm just glad to have a solid baseline kernel reference for future research.
After this, I'll probably take a look at the Patch 4 kernel and add whatever is missing if needed.
While working on this, I had Claude check out various rumors about SMP in Mach 4. Personally, I'd love to improve things like the thread model and SMP... but modernizing the threads would require restoring several other libraries alongside OPENSTEP's libc, so... I've decided to put that task off to the distant future.
Massive overhaul to the browser project. Switched to WebKit 2.54 (current safari). This takes advantage of all four of our cores and works fine on the modern web. The gnustep ui looks like safari now . We are using wpe to get WebKit to work here the benefit is we can keep updating the engine as Apple updates it
Added:
Tabs
Bookmarks
History
Download manager
Start page with bookmarks and history
The same JSON list Adblock as safari
The monthly GNUstep audio/(video) call takes place every second Saturday of a month at 15:00 GMT to 18:00 GMT. That is 11:00 AM - 2:00 PM EDT (US) or 17:00 to 20:00 CEST (Berlin time).
It's a Jitsi Meeting - Channel: GNUstepOfficial (Sorry, reddit don't let me post jitsi links here)
We usually just talk (who wants it might share video too) and occasionally share screens. Everybody (GNUstep developers and users) is welcome!
Also see https://mediawiki.gnustep.org/index.php/Monthly\_Meetings please
Can’t have an os in this day and age and not have a browser. This is a very light weight browser based on netsurf. The ui is gnustep. One of my goals here is to have only gnustep be the only ui on this Darwin. It make sense in term of memory usage and also keeps things visually consistent.Rpi3 is very memory and cpu constrained so I am optimizing anything for the xnu kernel and the hardware it’s going to run on