Rules on adding dependencies


(Tom Leavy) #1

I was wondering what the official position on introducing dependencies currently is. I would love to contribute an implementation of NSJSONSerialization. I already have written a wrapper that uses yajl to take a CFDictionaryRef or CFArrayRef and encodes them into CFDataRef or CFStringRef JSON values.. Is it acceptable to use yajl and introduce a dependency, or is it a goal of the foundation project to supply its own implementation of a JSON parser?
This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.


(Tony Parker) #2

Hi Tom,

I believe it’s important for us to keep our dependencies to an absolute minimum for the core libraries, since they will be distributed very widely. I would prefer to have our own implementation of the JSON parser in Foundation rather than use one from another project.

The one from Darwin is about 2k lines of Objective-C (actually, mostly C).

- Tony

···

On Dec 4, 2015, at 11:21 AM, Tom Leavy <tom@wickr.com> wrote:

I was wondering what the official position on introducing dependencies currently is. I would love to contribute an implementation of NSJSONSerialization. I already have written a wrapper that uses yajl to take a CFDictionaryRef or CFArrayRef and encodes them into CFDataRef or CFStringRef JSON values.. Is it acceptable to use yajl and introduce a dependency, or is it a goal of the foundation project to supply its own implementation of a JSON parser?
This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev


(Lily Ballard) #3

In the other thread about using a third-party library for JSON, I
offered to contribute a pure-Swift JSON parser that I wrote recently. I
figure I'd mention it here too since it's relevant.

https://lists.swift.org/pipermail/swift-corelibs-dev/2015-December/000049.html

-Kevin Ballard

···

On Fri, Dec 4, 2015, at 11:39 AM, Tony Parker wrote:

Hi Tom,

I believe it’s important for us to keep our dependencies to an absolute
minimum for the core libraries, since they will be distributed very
widely. I would prefer to have our own implementation of the JSON parser
in Foundation rather than use one from another project.

The one from Darwin is about 2k lines of Objective-C (actually, mostly
C).

- Tony

> On Dec 4, 2015, at 11:21 AM, Tom Leavy <tom@wickr.com> wrote:
>
> I was wondering what the official position on introducing dependencies currently is. I would love to contribute an implementation of NSJSONSerialization. I already have written a wrapper that uses yajl to take a CFDictionaryRef or CFArrayRef and encodes them into CFDataRef or CFStringRef JSON values.. Is it acceptable to use yajl and introduce a dependency, or is it a goal of the foundation project to supply its own implementation of a JSON parser?
> This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.
>
> _______________________________________________
> swift-corelibs-dev mailing list
> swift-corelibs-dev@swift.org
> https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev


(Tom Leavy) #4

Hey Tony,

That sounds like a good objective overall, thanks for clarifying. I think you guys should write that someplace in the documentation on github (if it hasn’t been already)

Thomas Leavy | Wickr Inc.
VP Mobile Applications, Architecture | Newark, NJ

···

On Dec 4, 2015, at 2:39 PM, anthony.parker@apple.com wrote:

Hi Tom,

I believe it’s important for us to keep our dependencies to an absolute minimum for the core libraries, since they will be distributed very widely. I would prefer to have our own implementation of the JSON parser in Foundation rather than use one from another project.

The one from Darwin is about 2k lines of Objective-C (actually, mostly C).

- Tony

On Dec 4, 2015, at 11:21 AM, Tom Leavy <tom@wickr.com> wrote:

I was wondering what the official position on introducing dependencies currently is. I would love to contribute an implementation of NSJSONSerialization. I already have written a wrapper that uses yajl to take a CFDictionaryRef or CFArrayRef and encodes them into CFDataRef or CFStringRef JSON values.. Is it acceptable to use yajl and introduce a dependency, or is it a goal of the foundation project to supply its own implementation of a JSON parser?
This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.


(Tony Parker) #5

Good idea, I filed a bug for that here.

https://bugs.swift.org/browse/SR-59

- Tony

···

On Dec 4, 2015, at 12:49 PM, Tom Leavy <tom@wickr.com> wrote:

Hey Tony,

That sounds like a good objective overall, thanks for clarifying. I think you guys should write that someplace in the documentation on github (if it hasn’t been already)

Thomas Leavy | Wickr Inc.
VP Mobile Applications, Architecture | Newark, NJ

On Dec 4, 2015, at 2:39 PM, anthony.parker@apple.com wrote:

Hi Tom,

I believe it’s important for us to keep our dependencies to an absolute minimum for the core libraries, since they will be distributed very widely. I would prefer to have our own implementation of the JSON parser in Foundation rather than use one from another project.

The one from Darwin is about 2k lines of Objective-C (actually, mostly C).

- Tony

On Dec 4, 2015, at 11:21 AM, Tom Leavy <tom@wickr.com> wrote:

I was wondering what the official position on introducing dependencies currently is. I would love to contribute an implementation of NSJSONSerialization. I already have written a wrapper that uses yajl to take a CFDictionaryRef or CFArrayRef and encodes them into CFDataRef or CFStringRef JSON values.. Is it acceptable to use yajl and introduce a dependency, or is it a goal of the foundation project to supply its own implementation of a JSON parser?
This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.


(Tom Leavy) #6

Thanks!

Is there a list of current dependencies someplace? I understand you use a specific version of ICU as part of CoreFoundation.

Thomas Leavy | Wickr Inc.
VP Mobile Applications, Architecture | Newark, NJ

···

On Dec 4, 2015, at 3:52 PM, anthony.parker@apple.com<mailto:anthony.parker@apple.com> wrote:

Good idea, I filed a bug for that here.

https://bugs.swift.org/browse/SR-59

- Tony

On Dec 4, 2015, at 12:49 PM, Tom Leavy <tom@wickr.com<mailto:tom@wickr.com>> wrote:

Hey Tony,

That sounds like a good objective overall, thanks for clarifying. I think you guys should write that someplace in the documentation on github (if it hasn’t been already)

Thomas Leavy | Wickr Inc.
VP Mobile Applications, Architecture | Newark, NJ

On Dec 4, 2015, at 2:39 PM, anthony.parker@apple.com<mailto:anthony.parker@apple.com> wrote:

Hi Tom,

I believe it’s important for us to keep our dependencies to an absolute minimum for the core libraries, since they will be distributed very widely. I would prefer to have our own implementation of the JSON parser in Foundation rather than use one from another project.

The one from Darwin is about 2k lines of Objective-C (actually, mostly C).

- Tony

On Dec 4, 2015, at 11:21 AM, Tom Leavy <tom@wickr.com<mailto:tom@wickr.com>> wrote:

I was wondering what the official position on introducing dependencies currently is. I would love to contribute an implementation of NSJSONSerialization. I already have written a wrapper that uses yajl to take a CFDictionaryRef or CFArrayRef and encodes them into CFDataRef or CFStringRef JSON values.. Is it acceptable to use yajl and introduce a dependency, or is it a goal of the foundation project to supply its own implementation of a JSON parser?
This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org<mailto:swift-corelibs-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.

This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.


(Tony Parker) #7

Thanks!

Is there a list of current dependencies someplace? I understand you use a specific version of ICU as part of CoreFoundation.

The best source of this info is going to be the build.py file and Xcode project.

You are correct that on Apple platforms we use a specific version of ICU (which is itself open source, on opensource.apple.com). For now, on Linux, we try to use the installed one. There are certainly some areas where we require the functionality provided by the Apple ICU but we have just omitted those from the build on Linux for the time being (look for __HAS_APPLE_ICU__ in CF). Eventually we’ll have to figure out a unified story for this.

- Tony

···

On Dec 4, 2015, at 1:01 PM, Tom Leavy <tom@wickr.com> wrote:

Thomas Leavy | Wickr Inc.
VP Mobile Applications, Architecture | Newark, NJ

On Dec 4, 2015, at 3:52 PM, anthony.parker@apple.com <mailto:anthony.parker@apple.com> wrote:

Good idea, I filed a bug for that here.

https://bugs.swift.org/browse/SR-59

- Tony

On Dec 4, 2015, at 12:49 PM, Tom Leavy <tom@wickr.com <mailto:tom@wickr.com>> wrote:

Hey Tony,

That sounds like a good objective overall, thanks for clarifying. I think you guys should write that someplace in the documentation on github (if it hasn’t been already)

Thomas Leavy | Wickr Inc.
VP Mobile Applications, Architecture | Newark, NJ

On Dec 4, 2015, at 2:39 PM, anthony.parker@apple.com <mailto:anthony.parker@apple.com> wrote:

Hi Tom,

I believe it’s important for us to keep our dependencies to an absolute minimum for the core libraries, since they will be distributed very widely. I would prefer to have our own implementation of the JSON parser in Foundation rather than use one from another project.

The one from Darwin is about 2k lines of Objective-C (actually, mostly C).

- Tony

On Dec 4, 2015, at 11:21 AM, Tom Leavy <tom@wickr.com <mailto:tom@wickr.com>> wrote:

I was wondering what the official position on introducing dependencies currently is. I would love to contribute an implementation of NSJSONSerialization. I already have written a wrapper that uses yajl to take a CFDictionaryRef or CFArrayRef and encodes them into CFDataRef or CFStringRef JSON values.. Is it acceptable to use yajl and introduce a dependency, or is it a goal of the foundation project to supply its own implementation of a JSON parser?
This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org <mailto:swift-corelibs-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.

This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.


(Philippe Hausler) #8

There are a few dependencies that is not yet integrated (but will be hopefully shortly) that may not immediately be in that list; libxml2 and libdispatch. Respectively most notably used for NSXML and NSOperation

···

On Dec 4, 2015, at 1:09 PM, Tony Parker <anthony.parker@apple.com> wrote:

On Dec 4, 2015, at 1:01 PM, Tom Leavy <tom@wickr.com <mailto:tom@wickr.com>> wrote:

Thanks!

Is there a list of current dependencies someplace? I understand you use a specific version of ICU as part of CoreFoundation.

The best source of this info is going to be the build.py file and Xcode project.

You are correct that on Apple platforms we use a specific version of ICU (which is itself open source, on opensource.apple.com <http://opensource.apple.com/>). For now, on Linux, we try to use the installed one. There are certainly some areas where we require the functionality provided by the Apple ICU but we have just omitted those from the build on Linux for the time being (look for __HAS_APPLE_ICU__ in CF). Eventually we’ll have to figure out a unified story for this.

- Tony

Thomas Leavy | Wickr Inc.
VP Mobile Applications, Architecture | Newark, NJ

On Dec 4, 2015, at 3:52 PM, anthony.parker@apple.com <mailto:anthony.parker@apple.com> wrote:

Good idea, I filed a bug for that here.

https://bugs.swift.org/browse/SR-59

- Tony

On Dec 4, 2015, at 12:49 PM, Tom Leavy <tom@wickr.com <mailto:tom@wickr.com>> wrote:

Hey Tony,

That sounds like a good objective overall, thanks for clarifying. I think you guys should write that someplace in the documentation on github (if it hasn’t been already)

Thomas Leavy | Wickr Inc.
VP Mobile Applications, Architecture | Newark, NJ

On Dec 4, 2015, at 2:39 PM, anthony.parker@apple.com <mailto:anthony.parker@apple.com> wrote:

Hi Tom,

I believe it’s important for us to keep our dependencies to an absolute minimum for the core libraries, since they will be distributed very widely. I would prefer to have our own implementation of the JSON parser in Foundation rather than use one from another project.

The one from Darwin is about 2k lines of Objective-C (actually, mostly C).

- Tony

On Dec 4, 2015, at 11:21 AM, Tom Leavy <tom@wickr.com <mailto:tom@wickr.com>> wrote:

I was wondering what the official position on introducing dependencies currently is. I would love to contribute an implementation of NSJSONSerialization. I already have written a wrapper that uses yajl to take a CFDictionaryRef or CFArrayRef and encodes them into CFDataRef or CFStringRef JSON values.. Is it acceptable to use yajl and introduce a dependency, or is it a goal of the foundation project to supply its own implementation of a JSON parser?
This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org <mailto:swift-corelibs-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.

This e-mail message is intended only for the named recipient(s) above and is covered by the Electronic Communications Privacy Act 18 U.S.C. Section 2510-2521. This e-mail is confidential and may contain information that is privileged or exempt from disclosure under applicable law. If you have received this message in error please immediately notify the sender by return e-mail and delete this e-mail message from your computer, mobile devices and any cloud storage backup systems as well as destroy any printed copy you might have made.

_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org <mailto:swift-corelibs-dev@swift.org>
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev