|
From: | Ivan Vučica |
Subject: | Re: Forking on Github and feedback |
Date: | Fri, 04 Dec 2015 14:24:52 +0000 |
Dear List:
I just forked libobjc2, base and corebase so I can restart the refactor project again, now using OS X 10.11 as the refactoring standard. I would like to know how should I contribute back?
Project plan:
1) Building with clang 3.6+ mandatory, even for C-only projects. This is to allow...
2) … gnustep-make as well as use of autotools or cmake deprecated, replaced with __have_include() macro provided by clang. Also parallelisation that used to plague gnustep-make should work better now. For other projects, Xcode project files would be used instead.
3) GC in libobjc2 removed and ARC mandated, just like OS X 10.11 and iOS 5.
4) The base build order will be libobjc2 - libdispatch - gnustep-base-headers - gnustep-corebase - gnustep-base. The tangled look is from the fact that a few Base classes are moved to CoreBase for the sake of TFB.
5) libobjc2 will install blocks-related headers at correct locations as if installed from libBlocksRuntime, as well as creating a symlink for libBlocksRuntime, essentially replacing it entirely.
6) libobjc-opts removed - LLVM 3.4 and beyond not supported anyway, and LLVM 3.6+ mandated here.
7) NSZone, CFAllocator and part of NSObject moved to libobjc2 (allow TFB to be implemented in CoreBase)
8) Added TFB pairs for the sake of simplicity (should not break contract if used properly): NSZone vs CFAllocator, NSRunLoop vs CFRunLoop, NSCountedSet vs CFBag, NSIndexSet vs CFBitVector, and a few more.
9) I will figure out a way to put CFNetwork in, maybe as a separate library, and reimplement a few Base classes on top of that.
10) CommonCrypto API is used as an abstract layer above OpenSSL and GnuTLS, replacing the crypto bundle. It is built separately as libcommoncrypto-openssl and libcommoncrypto-gnutls dynamic libraries but only one can be linked at a time. Both libraries will be under a 3-clause BSD license, acting as a legal buffer between either OpenSSL license mix or LGPL from the crypto library, and LGPL or GPL of the framework proper.
11) dispatch-io will be used heavily across CF and Foundation - libdispatch now a hard dependency.
12) I will try to find some mach port analogue from within POSIX API. DO and XPC will depend on it.
13) A set of macros for creating new CF classes will be provided (for the sake of Opal)
Distant goals:
14) DVTFoundation and xcodebuild cloned.
15) Opal, written on top of Wayland and EGL, replaces gnustep-back.
16) GUI would be taking advantage of ARC and Opal.
17) StepCode, a Xcode clone, based on libclang.
Max.
_______________________________________________
Gnustep-dev mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/gnustep-dev
[Prev in Thread] | Current Thread | [Next in Thread] |