gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Forking on Github and feedback


From: 陈北宗
Subject: Forking on Github and feedback
Date: Fri, 4 Dec 2015 21:04:35 +0800

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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]