feat(cider): a real NSLayoutConstraint, and the version number that still cannot move (#161, #150) master
TWO CLASSES WITH ONE NAME IS A COIN TOSS. The implementation went into AppKit first, which is where NSLayoutConstraint belongs on macOS, and the selector stayed unrecognized: this Foundation has carried a stub of that name since the nib decoder needed something to decode into, along with three subclasses of it, and the runtime resolved to the stub, whose methodSignatureForSelector answers v@: for everything. So the object lives in Foundation, where the name already was, and AppKit imports that header. It is the constraint and its accounting, and NO SOLVER: the properties, the factory, activate and deactivate, and setActive:, which puts the constraint on a view and takes it off again, asked by selector because NSView is AppKit's and this is Foundation. Every view in these nibs still carries an autoresizing mask and translatesAutoresizingMaskIntoConstraints defaults to YES, so the layout is exactly what it was. An application that lays out BY constraint gets a window whose subviews sit where the mask puts them, which is wrong but visible, rather than an unrecognized selector, which stops it dead. ALSO: +[NSScreen screensHaveSeparateSpaces], answering NO. MoneyMoney asks it inside -[NSWindow setFrameAutosaveName:], early enough that an unrecognized selector there leaves the window half built, and the application CATCHES the exception, so nothing crashes and nothing draws either. MEASURED AT NSAppKitVersionNumber 2022: zero unrecognized selectors, zero uncaught exceptions, and the truncated menu titles gain the two characters the 35 point metric buys them: 1504 Send batc… New tran… New inst… Use as tr… 2022 Send batch t… New transf… New instan… Use as tran… AND IT STILL DOES NOT LAND, because of the capture rather than the log. At 2022 MoneyMoney draws NO MENU BAR AT ALL and an EMPTY TOOLBAR: it takes the Big Sur chrome path, silently, and this AppKit does not implement it. Two characters of menu title against the menu bar is not a trade worth making, so the constant is back at 1504 with that reason written where it lives, and verified after the revert: menu bar, toolbar, File menu open with its items, 57 titles, zero unrecognized. Looked at both ways. So task #150 is no longer blocked on Auto Layout. It is blocked on Big Sur chrome, which is a different piece of work.