From mboxrd@z Thu Jan 1 00:00:00 1970 Mime-Version: 1.0 Message-Id: In-Reply-To: <3e1162e60909111428p79e1b49el9418a2066775c4c6@mail.gmail.com> References: <5d375e920909030815n74e481f4yad9814f478db5a78@mail.gmail.com> <25CF9336-C071-44A5-AB04-6BB042BC5755@kix.in> <5d375e920909070240x6b4dabe3x6c47ad11b303525f@mail.gmail.com> <3e1162e60909080831g728ced86wcd143865e37da2f9@mail.gmail.com> <20090908164003.3D1DD5B3B@mail.bitblocks.com> <1252701410.16936.16768.camel@work.SFBay.Sun.COM> <3e1162e60909111428p79e1b49el9418a2066775c4c6@mail.gmail.com> Date: Mon, 14 Sep 2009 12:07:35 -0400 To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> From: "Lawrence E. Bakst" Content-Type: text/plain; charset="us-ascii" Subject: Re: [9fans] "Blocks" in C Topicbox-Message-UUID: 6e93fd5e-ead5-11e9-9d60-3106f5b1d025 Apple has an "interesting" process for releasing open source code. One of the guys that works on it wrote something up on it once, but I am sorry I don't have a pointer right now. I would not assume that the it's the same "bits" that are used inside Apple. Certainly at the very least, many comments are removed from the source code. Nor would I assume that building the source code will give you the same binary. It might be interesting to see if you can recreate the same binary that Snow Leopard uses. You might get the same binaries for something as simple as "cat", but I know for sure that this was not the case for some of the disk utilities, the last time I checked. For at least a few "sensitive" code bases I suspect that Apple probably maintains two versions, one for internal use and the other for open source release. I am not making any value judgements here, just trying to state what the facts as I know them. Having said all that, I suspect that Blocks, Clang, LLVM, and Autozone (Apple's GC) are all very close to what Apple uses in Snow Leopard and internally. As a contrived example of the kind of code that could removed, suppose Apple's GC used a private, internal only API, to mark certain pages in the address space for paging behavior. That is the kind of code that would be removed before the open source was released, in order to prevent revealing the private API. Again this is a contrived example. Best, leb At 2:28 PM -0700 9/11/09, David Leimbach wrote: >On Fri, Sep 11, 2009 at 1:36 PM, Roman V Shaposhnik <rvs@sun.com> wrote: > >On Fri, 2009-09-11 at 15:15 -0300, Iruata Souza wrote: >> On Tue, Sep 8, 2009 at 1:40 PM, Bakul Shah <bakul+plan9@bitblocks.com> wrote: > > > > int x; >> > >> > void trash_x() { x = -42; } >> > >> > ... ^{ trash_x(); } ... >> > >> > My view: if you can't solve a problem cleanly and in a >> > general way with a feature, it does not belong in a language >> > (but may belong in a library). >> > >> >> for those who still care >> http://libdispatch.macosforge.org/ > >I still do care very much (and in fact, I've been meaning >to provide some of the answers on this mailing list, but >apparently one can't upgrade to Snow Leopard over the >net so I have to physically drive to the Mac store :-(). > >Anyway, for a non Mac person, can somebody please clarify >whether macosforge.org has the very same bits that go into >the Mac OS itself, or do I still have to get the real thing? > > >This is the exported open source stuff from Apple. So, yes it's the same. > >Of course they could have "forks" inside apple you don't get to see, but it's the same source base. > >Dave > > >Thanks, >Roman. -- leb@iridescent.org