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.


Reply via email to