Nat! bio photo


Senior Mull.

Twitter Github

Aktuelle Einträge

The glorious mulle-objc 0.8 release

Today I am releasing mulle-objc 0.8. With this release the mulle-objc runtime is not just a competitive runtime, it is the all around best Objective-C runtim...

mulle-objc-runtime 0.4 "Trailer"

For the release of mulle-objc 0.4, which is slated for end of April, I made a little trailer for fun: What you see is the MulleFoundation being loaded int...

mulle-objc: tagged pointers, boon or bane ?

Continued from mulle-objc: mulle-objc: fast methods make mulle_objc_object_call even faster. Something that I've always passed over in the previous ar...

The mulle-objc release!

Today is the day the most important parts, the compiler and the runtime are released. Its a bit like going "gold". I have decided to immediately...

mulle-bootstrap 2.0 release

mulle-bootstrap 2.0 has just been released and it contains a lot of new functionality, simplifications and other improvements. It now runs on Linux, FreeBSD,...

MulleFoundation, technically speaking

The class library of mulle-objc is the MulleFoundation. For compatibility its name is shortened in #import statements to just "Foundation". e.g. #i...

mulle-objc-runtime, technically speaking

The basis of everything is the mulle-objc-runtime. The runtime is written in C and actually doesn't need the mulle-clang compiler. Required Toolset m...

mulle-clang, technically speaking

The mulle-clang compiler is a variant of the clang compiler. The clang compiler has built-in support for a variety of Objective-C runtimes, such as MacOSX ...

"hello world" with the MulleFoundation

The mulle_objc Foundation was able to compile it's first "Hello World!" program. A milestone :) It is is actually more involved than it might s...

mulle_objc: ivar layout with @property

Continued from mulle-objc: the trouble with @property As explained in the previous entry: to support @property I made the decision that every property o...

mulle_objc: the trouble with @property

Continued from mulle_objc: present and absent language features. @property in MulleObjC The mulle-objc-runtime is what the compiler considers a "f...

There is a new version (0.14) of #mulle_bootstrap out. Nothing new, just better working and better looking.

Tweets in this weblog

I have written a little python program, to export some of my tweets to this blog. Basically anything with the line ~blog~ will be exported to the weblog from...

Image Tweet for testing

<photo #1 <photo #2

Created a shell script that writes the current #Xcode version into all my projects.

#ssh-agent not remembering the passphrase ? Make sure that you have the public key in a .pub file next to your id. Obscure but true.

Es ist die #Dropbox #Apokalypse! :) And I have less than 2% usage.

Sorry, only german localization for the pic. :D <photo #1>

#encfs 2048 block size, random bytes header: 0

none: 1s
blowfish 128:  4.3s
         256:  4.6s
aes 128:  3.6s
    256:  3.7s

#encfs aes 256, random bytes header: 0

4096 block size: 3.7s
256 block size: 4.0s

All these measurements were done with no filename encryption, taring 7000 files which were 100 MB together. All other settings default.

Pushed out 0.12 of #mulle_bootstrap. mullebootstrapworkinprogr

According to grammar you can't have negative numbers in CSS ?


How you are tracked on this weblog

Ideally you should be visiting this page, and only you, the Mulle kybernetiK servers and all routers inbetween should know about this. This is not true. Pi...

The "Hacker News" button claims to be hosted on Heroku. But instead calls home to Appspot.
Appspot is Google...

Do shariff buttons avoid tracking ?
Shariff uses FontAwesome hosted on BootstrapCDN owned by MarkMonitor.
You decide.

mulle-objc: present and absent language features

Continued from mulle_objc: inheriting methods from protocols of the mulle_objc series. Updated: 7. November 2016 Objective-C is now a hybrid of many...

When you use

-[NSNib instantiateWithOwner:topLevelObjects:]

the order of the topLevel objects is random.

Tried ARC on MulleIB with the best of intentions, but 32 bit incompatibilties are a deal breaker.

Ported cityhash to C (cityhash). The test didn't show any errors.

Pushed out 0.11 of #mulle_bootstrap.

The culprit seems to be a file called \"dgph\",
read_nocancel(0xE, "DGPH1.04\vSep 22 2015\b11:40:11\005\0", 0x1000)

#clang lies, by not defining __STDC_NO_THREADS__ in #c11 nor providing <threads.h>. thread. (Why threads, not stdthreads ?)

Updated mulle-xcode-settings to 1.0.3. mulle-xcode-settings so it works with multi-values and compiles with #Xcode 7. (#xcodebuild)

Added mulle-genstrings to homebrew-software. Version 18.48.3 can translate strings on the fly. #osxdev

So I basically wrote my own mod_pbxproj in ObjC using a lot of old code from mulle_xcode_utility. about

And as I am on a roll, -Wl,--trace doesn't work with #clang (Xcode 6.4). Life could be easier, but rarely is. (linker-option-to-list-libraries-used)

Is it just me, or does WARNING_LDFLAGS= in #Xcode do absolutely nothing ? e.g. WARNING_LDFLAGS="Hey i am broken" builds nicely...

#opensnoop -A adds '\' '0' at the end of each line for, as far as I can tell, no real good reason. Inconvenient.

Pushed a pre-release of #MulleScion v1853 to .
Better coding with pipe precedence. :)

Updated mulle-agvtool (Read hairypatchmulle_agvtool) to learn what this is about. #mulle-#agvtool

Localizing library code, the right way ?

Lets say I have a method that needs to emit a localized string: - (NSString *) errorMessage { return( NSLocalizedString( @"system failure", @&q...

Windows 10 Update :: Total disaster for me

Whoever is responsible for the Windows 10 update tools, needs to get a different job. The whole experience is like updating Linux in the early nineties. It&...

My #MacDown fork, that I use for editing #jekyll posts on #MacOSX. It's just a hack and it's called MulleJekyllDown MulleJekyllDown

mulle-aba: How it works, part 3

Continued from mulle-aba: How it works, part 2 lock-free data structure "world" Remember that the CAS instruction and the various atomic increm...

Committed v1852 of #MulleScion to MulleScion
Fixes examples & dox and has a pleasant API change (see: 1J6OlWe)

mulle-aba: How it works, part 2

Continued from mulle-aba: How it works, part 1 Please read up on atomic operations, if you are unfamiliar with them. Basic principles of retain counting ...

mulle-aba: How it works, part 1

mulle-aba is my solution to the ABA problem, released as an alpha version. mulle-aba works when all threads accessing the shared resource cooperate. For ...

In this little series of #stuffnooneneeds, I added the FlatFileAdaptor from Apple. FlatFileAdaptor

And did #eoreporter too (). Since you need MulleEOF for this and you don't have it, it's again: #stuffnooneneeds

Made a quick untested port of #eogenerator to #mulleeof and put it up on . #stuffnooneneeds

mulle-aba: release

mulle-aba "release" Tomorrow I am off for a vacation, but I wanted to get this out before. Here is the git repository mulle-aba. If it doesn'...

Corefiles in OS X with bash need both launchctl and ulimit

launchctl limit core unlimited unlimited
ulimit -c unlimited
ls /cores

mulle_objc: inheriting methods from protocols

Continued from mulle-objc: object layout, retain counting, finalize A protocol in mulle-objc "lives" only in the compiler. Whereas in the lega...

mulle-objc: some research about selectors

Continued from mulle-objc: inlined messaging This is a bit of research I've done concerning selectors and their use in Objective-C. Selector usage st...

mulle-objc: inlined messaging

Continued from mulle-objc: removing superflous ifs Last time I showed how superflous code could be removed from the method calling code due to inlining. ...

mulle-objc: removing superflous ifs

Continued from mulle-objc: a meta calling convention Now that the three parameter message sending function has been introduced, lets try to milk some ben...

mulle-objc: a meta calling convention

Continued from mulle-objc: a new Objective-C So the mulle-objc runtime is written in pure C. How is that supposed to work ? Currently a method is just ...

mulle-objc: a new Objective-C

mulle_objc is an Objective-C compiler based on clang, a runtime supporting that compiler and a Foundation. It quite different to what is out there already. ...

NSArchiver and pointers ? Not anymore.

Another one of these not-so-precious WTF moments... I am probably just too late to catch up, but pointer values in archives are not possible anymore. And the...

va_list is not va_list

This is somewhat mysterious bug I ran into. I call it a bug, though what it does is possibly sensible. Anyway, just from looking at it you will never figure ...

Whenever I thought, I knew everything about C, something new comes along:

x = ({ if( a > 2) a = 4; a; });

Ref:Underhanded C-Contest. #c

Moan: Xcode hates me and wants me to fail

The strange case of the doubly #imported file: CompileC /Volumes/Source/srcC/hdt_release/Daemons/build/Intermediates/ArchiveIntermediates/Daemons/Intermediat...

Parallelize make builds of #SublimeText Projects created by cmake:

sed "/\"cmd\":/s/make\"\, /make\", \"-j\", \"nproc\", /"


Building a Killer Box for Linux development

It's about time to test the waters, and see if I can ween myself off the Mac and OS X. It's been a good ride, but I don't like the direction that...

Some Xcode build settings in a Graph

I manually extracted a selection of the build settings dependencies from XcodeBuildSettingRef into a Graphviz dot file. And here is the resulting image.


I naively thought, that when I compile to a 10.6 target, features that are new starting from 10.7 would not appear ? Wrong. $ cat foo.m #import <Foundatio...

Made netsurf-libcss a bit easier to build with cmake: netsurf-libcss
#osxdev #libcss

Umbrella Frameworks for OS X

I made a small test Xcode workspace that shows how to create an Umbrella framework that can be used as an embedded framework in an App or as a shared framewo...

char, did I ever know you ?

What the C Standard defines Here's some quotes from the C standard (WG14/N1256 Committee Draft — September 7, 2007 ISO/IEC 9899:TC3) An object declared ...

-Wno-#pragma-messages turns off counting those pragmas as warnings. Unfortunately it also turns off the output. @@...

Ye olde XOR swap trick j ^= i ^= j ^= i; now yields a warning @@....


UTF-8 codes

Ä 0xc3 0x84 ä 0xc3 0xa4
Ü 0xc3 0x9c ü 0xc3 0xbc
Ö 0xc3 0x96 ö 0xc3 0xb6
ß 0xc3 0x9f

€ 0xe2 0x82 0xac

Replace german strings in Xcode with NSLocalizedString. regexp: (@"[^"\][öäüÖÄ€Üß][^"\]") replace: NSLocalizedString( $1, $1). 80%...