Oh right, let's just dump all the progress we've already got and start completely from scratch. Forgive me if I'm not a big fan of this idea. And now on to your specific points-- you asked for bluntness and you *got it*. But before you read my agitated responses (after all I thought this was a discussion about SIngularity source-- not about remerging the projects), I'm gonna outline a bit about how *I* think we should work this out.
First things first, someone has to give on licensing and I can say for myself at least that I'm not gonna work on a non-copyleft project. You say that the copyleft is not needed because 90% of the time companies contribute back their code regardless of legal necessity but I am not worried about the 90%-- I'm worried about the 10%, and I'm worried about the 100% of the contributors who will get ripped off in those cases. Secondly I'm not going to participate in a project where only a select group of people are able to build, use, and/or contribute to it. This applies directly to the situation Cosmos has where the latest VS and .NET Framework are required and Linux developers are totally out of luck (and it has nothing to do with Mono and everything to do with build environments/scripts, Windows-only tools, Windows-only virtual machine formats, etc etc). Now provided we came to agree on some sort of copyleft license, we would need to merge our codebases, taking the best of breed components. This can't just be up and decided because none of us know all the benefits of each codebase. The only thing that is doable here is a conference of sorts to contrast and compare our differeing solutions for things like the compiler, low level kernel intrinsics, the Runtime implementation, Type metadata traversal implementaiton, GC, corlib, etc. all up the stack. In the case of Ensemble, Scott would need to be willing to make compromises on his design but from what I've got he is more interested in implementing his design so I don't exactly see how Ensemble is even a part of this picture. On to your words... On Wed, Mar 5, 2008 at 3:40 AM, Jonathan Dickinson <[EMAIL PROTECTED]> wrote: > I am going to be as blunt as possible here. I am sorry if I step on toes, > but some harsh things need to be said. Please contend/add comments - this is > my POV after working on all three projects. Be as blunt as possible. Ahhhm, if your email was harsh then mine might break your heart. > Cosmos > Cosmos has it's strengths, firstly it does not adhere to the classical > <Foo>OS or Sharp<Foo> naming paradigms (sorry SharpOS). The compiler is a > work-of-art is very understandable: but does not use IR (Chad, no matter > what you say, IR is needed). It uses the permissive BSD license. Naming is absolutely superficial and the ONLY reason SharpOS is called SharpOS is because we are not interesting in wasting time on some stupid marketing crap. We'll give the OS a proper name when it's ready. Therefore, I think the fact that you consider Cosmos a cool name is not important. And you asked for bluntness-- the only compiler engine out of the three projects which is even *close* to a work of art is SharpOS.AOT. There, I said it. I'm sure Ensemble's will be beautiful because Scott has a top to bottom plan for it-- but it doesn't exist yet. We'll see when it's arrived. > However, as stated, it does not use IR. Furthermore, it blocks out Linux > users. Time for all to grow up and accept that we live in a heterogeneous > environment. Linux/Windows disputes will fall away when we are compiling in > the CIL OS: so let's get rid of them now. Your right here. Shame on Cosmos for locking out a group of contributors because of their platform of choice. > Cosmos stands as a beacon, it shows that a solid runtime makes things easier > in the long run (they have ATA and Ext2 for crying out loud!). Jon, wake up the coffee's brewing. ATA and Ext2 have absolutely nothing to do with a runtime!! Besides, we've got Ext2 code too, but there have been two things stopping it: our broken floppy controller and a filesystem interface (both now being worked on by tgiphil) > SharpOS Mhm. > SharpOS is the original and has had a lot of progress. However, it had a bad > start (which it has made up for now). A solid runtime is needed before > anyone implements PCI etc. We all know it is easy to get distracted, but > focus is needed. A "bad start"? Are you referring to the usage of the low level C# functionality? The functionality which needs to be just as thoroughly tested as the upper level object orientation features? The fact is, doing it the way we did it means that our low level facilities are just that much more tested than il2cpu could even imagine. We've got airtight low level support, and we have proven beyond any doubt that our compiler can take low level code. And now we're doing the same with the upper level features, taking it at the same speed we did with the low level features. This is NOT something which should be (or needs to be) rushed, unless your ready to just hack together a string of hacks so that you can pretend like your OS will continue standing after you've changed a single semantic you didn't plan for. > GPL if we must, but fewer people have problems with BSD. It is naive and insulting to make some kind of comparison between the popularity of the BSD and GPL licenses. Things like that are just not true. As I see it, there seems to be quite an equal distaste for the other's licensing. Besides, our small sample is certainly not a good estimate of the realistic popularity of the two licenses. As for the commercial crap, it's just so goddamn strange that commercial entities would endorse BSD which skips the link from completely closed to completely open. Then again, Trolltech is a good example for the case where a company releases it's OWN code under an open source license: they chose GPL--- so that Trolltech Qt won't become the patent-pending Wondersoft(R) Cutekit(TM) released under a EULA in a couple of years. > Cecil is a wonderful thing. But this is not it's place: it does a lot of > automatic inference that really slows things down (Cosmos saw a roughly 2x > speed increase after switching to a custom IL Reader). You might be right but I'm EXTREMELY curious to hear some numbers from the il2cpu camp on how fast their compiler is, because right now the SharpOS kernel compiles in less than 7 seconds on my box, using a tiny fraction of RAM--- I'm on a 1.7ghz celeron box with 512MB ram and a slow hard drive. So there. Please. Grace me with the numbers. Is getting rid of Cecil really the only way you guys could speed it up because it must be BLAZING fast. It only took one guy on our team something like 2 days of profiling work to make our AOT orders of magnitude faster, to the point now where it's already done before I realize it's running. > SharpOS has a lot of code that was made before a solid runtime was > supported: which needs to be re-written for the new features. Hardly rewritten but refactored. For instance I wrote the system clock code originally using the low level facilities. When the object support was far enough along I ported it to use objects. It took me all of 2 hours to get it ported. Ha. Why isn't more of SharpOS like that now? We have a kernel rehash coming up once the new features are more stable but for now we've got LOTS of stuff to implement. If you've been tracking our progress (oh come on you know you want to)... we've got everything short of GC and a full corlib, the latest addition being generics. > Serious thought needs to be given about just linking in the Mono BCL/FCL. Your right on this but only partially. I think that large portions of the Mono CORLIB (please, stop calling it a BCL or FCL and just call it what it is) can be merged in alongside our Korlib code, but I think that it will need to be in a much less foggy way (right now we are looking at importing a set of types and it's dependencies, whereas we should really be going only for the set of explicit types, and reimplement what is not included). But using Mono's corlib still has a *lot* of merit and has proven to be an excellent way to rigorously expose the bugs in our high level facilities. > Ensemble > Not much to say here, but the project is in its infancy. Built from the > ground-up to support JIT etc. Ensemble's problem is it's rigid focus on an untested design. This comes from Scott's desire to see his design put together but NEITHER of you know if the design is going to work or not. Scott, Chriss and I had a very long discussion where Scott described some of the differences and we proceeded to nail off long lists of where he's probably going to have to compromise between his design and creating a feasible system. > New Entity > Let's collaborate on: > > 1. A name Names don't matter. Never did. Look at Linux. At first glance you might say "Hey, that's very original why would you say that?" Well no. It's not. Linux is Linus's UNIX which makes the name about as creative as SharpOS if you think about it. > 2. A license (let's not just use the shotgun rule with GPL or BSD, maybe > a new license even) "Shotgun" rule? We have hashed out many times compromises on licensing but there are always some stakeholders who won't go for it. > 3. A SCM solution (SVN seems to work very well, but other better ones are > popping up - e.g. Mercurial) Hrmmm. The last project that I was involved in that used a more deviant SCM was called Xouvert. It was a fork of XFree86 which came before Xorg. It did not have the X titans (like Xorg did) which it needed but there was still a lot of interest. The leaders chose Arch for SVM which is about as far from CVS as you can possibly get. The result? Few participants, general disinterest in learning yet another SCM. Why is Subversion so goddamn popular? Because it's like CVS make no mistake. It's basically just a (far) saner version of CVS and because of that developers don't have to change their entire paradigm. I think that's a good thing. We aren't here to experiment with different ways of merging changesets we are here to write an operating system. Subversion suites our needs perfectly. > Name > > * SCE (SharpOS Cosmos Ensemble)? In the true spirit of conglomerations. > * Unity? That is what it is. Ehm, SCE == Sony Computer Entertainment? But like I said, naming is the VERY LEAST of our concerns, yet it tops your list here. > License > > * GPLv3 with Classpath Linking Exceptions > * New BSD These can't possibly be considered suggestions? We've hashed through them innumerous times and never found a way to convince either side. > * Something new > o Statement of no liability > o Original copyright message to be included in all > derivatives/compilations > o Any in-band improvements must be made against the original > trunk > + So that we don't loose out to ISVs > + So that ISVs can still use our code (but we reap the > benefits). We are not lawyers and I am hoping that I won't have to hire one for SharpOS at all in the near future (except for maybe getting that non-profit Foundation set up oooo) > SCM > * SVN > * Mercurial SVN. It's the way to be, honestly. Mercurial, Arch, Git, all these things are beautiful ways of moving bits around but they are just too different. We'd end up losing participation just because of the build system, I've seen it many times. In closing, yeah peace would be a good thing for all of us and yeah we are duplicating effort, and yeah starting from scratch is by far the worst way to do it. From my perspective, SharpOS has not been hurt by the existence of the other two projects... we've only continued to grow. But from what I can see, it is most definitely affecting the livelihood of the other two projects, neither of which seem to be exactly "thriving". I hate to bring it down to this fact but it's there. We're doing *just fine*, so why should we have to compromise on our beliefs for so little benefit? -- fury long name: William Lahti handle :: fury freenode :: xfury blog :: http://xfurious.blogspot.com/ ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ SharpOS-Developers mailing list SharpOS-Developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sharpos-developers