From mboxrd@z Thu Jan 1 00:00:00 1970 From: errno To: 9fans@9fans.net Date: Sat, 30 Apr 2011 01:16:47 -0700 User-Agent: KMail/1.13.6 (Linux/2.6.38-ARCH; KDE/4.6.2; i686; ; ) References: <201104292105.39780.errno@cox.net> <33F21281-6959-49EB-91E6-2906EC606483@9srv.net> In-Reply-To: <33F21281-6959-49EB-91E6-2906EC606483@9srv.net> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201104300116.47971.errno@cox.net> Subject: Re: [9fans] Compiling 9atom kernel WAS: Re: spaces in filenames Topicbox-Message-UUID: d98833c2-ead6-11e9-9d60-3106f5b1d025 On Friday, April 29, 2011 11:26:03 PM Anthony Sorace wrote: > On Apr 30, 2011, at 12:05 AM, errno wrote: > > But APE has c++ (old version of gcc though). > > APE has no c++. there is a very old version of gcc floating around on > sources that can, with some effort, sometimes be made to compile things. > Ah, ok - thanks for the correction. And thanks for the friendly response in general, appreciated. So, shaking this out just a bit further: (anyone reading, please just ignore this if you find it too long, and/or too annoying, and/or too naive - or whatever - I'd rather hear crickets chirping than hecklers carping - thanks) Starting Goal: a modern, standards compliant web engine library for Plan 9 Options: * write from scratch * port existing codebase Option Considerations: * writing from scratch is simply too momentous a task: "because it's a huge amount of work. there's a whole pile of standards and pseudo-standards to deal with, the set is ever-growing, the components are ever-growing, and there isn't really a good definition of 'correct'. it's all just a hideous mess." + thus, porting from an existing codebase is likely the more realistic option Porting Options: * gecko * webkit Porting Option Considerations: * of the port options, gecko and webkit are the most well-developed, active, complete candidates. + the choice between gecko or webkit might be arguable, but webkit may be a more desirable choice as it has a more modular design with better separation of concerns and a cleaner api, thus webkit will be targeted. New Goal: in accordance to the above enumerated considerations, the goal is to port webkit to plan 9, for the purpose of facilitating a modern, standards compliant web framework library for Plan 9 WebKit Considerations: * webkit is built primarily with c++ * webkit has a moderate number of build dependencies and app dependencies * plan 9 currently lacks a reliably functional, modern, native c++ compiler, so the goal cannot be accomplished without some means of c++ support in plan 9 C++ Compiler Options: * gcc * llvm/clang C++ Compiler Considerations: * somewhat similar to the gecko vs. webkit decision, the choice between gcc or clang may also be arguable New Prerequisite Goal: port a c++ compiler and std libs to plan 9 Ok, so really - in order to have any real chance of seeing a satisfactory, native/near-native web experience on plan 9, an existing codebase must be ported - and that codebase is written in c++, so: For the purpose of satisfying stated goal, a c++ compiler must first be ported to plan 9. Regardless, it is predicted that porting a c++ compiler to plan 9, _then_ porting webkit to plan 9, is _still_ less work than writing a brand new, complete, standards-compliant web browser engine from scratch. The question then becomes: which c++ compiler should be targeted, gcc or llvm/clang? On an entirely subjective/relative scale of 1 to 5, how difficult is it to port gcc or clang to plan 9? Is this effectively impossible without a dedicated and focused team of developers? Is anyone already doing this? Due to the requirements, it appears that incorporating the web as a 1st-class-platform in plan 9 is effectively unapproachable: Porting a c++ toolchain isn't likely going to happen, and the skillsets and resources necessary to build a solution from scratch presents far too high a bar too manage. Anyhow, thanks for letting me walk myself through the scenario. It's hard to spend any time working with and reading about plan 9 without thinking in terms of how much better a great many things would be if said things had a native plan 9 implementation. The Web on Plan 9 seems like Web++ to me. But, I'm also coming from the simple-minded perspective of a basic admin and consumer-grade enduser - someone who likes the idea of setting up a distributed plan 9 network in my house for guests, friends and family. A plan 9 terminal would be useless to such people at the current time though - which kinda deflates my balloon a bit, ah well... so it goes.