On Mon, Nov 28, 2005 at 04:45:33PM -0800, jerry gay wrote:
> i propose reorganizing the tree to improve clarity and cohesion.

Reorganization would be good at this point, but should be undertaken
cautiously so as to minimize unpleasantness.

* I can't find a rationale for putting both 'imcc' and 'compilers' at
  the top level.  (Though I see a note that you intended imcc to be
  under compilers; if so, I think that's good.)

* Should pasm be considered a compiler for source organization
  purposes?  I suppose in theory it should: There's more than one
  assembler syntax for most CPUs.  And AFAICT, the actual pasm
  implementation is intermixed with the PIR implementation, so if imcc
  goes into compilers, it'll take pasm with it.

* The directory name 'src' is a bit fuzzy to me, if 'imcc' and
  'compilers' aren't part of it.  Perhaps 'vm' for the core
  machine...?  That would include infrastructure PMCs.

Lots more interesting ideas, I hope.

(Jerry's diagrams follow.)

> here is an annotated picture of the current tree (extra info
> <snip>ped as shown.)
> 
> . trunk
> +---ast
> +---blib
> |   +---lib
> +---build_tools                   # move to tools/build/
> +---charset                       # move to src/charset/
> +---classes                       # move to src/classes/
> +---compilers
> |   +---pge
> |   |   +---PGE
> |   +---tge
> |       +---TGE
> +---config
>     <snip config/ subdirs>
> +---debian
> +---docs
>     <snip docs/ subdirs>
> +---dynclasses                    # move to src/dynclasses/
> +---dynoplibs                     # move to src/dynoplibs/
> +---editor                        # move to tools/editor/, get rid of
> Makefile, convert it to perl
> +---encodings                     # move to src/encodings/
> +---examples
>     <snip examples/ subdirs>
> +---imcc
> |   +---docs
> |   +---examples
> |   +---t                         # move to t/compilers/imcc/
>         <snip imcc/t/ subdirs>
> +---include
> |   +---parrot
> |       +---oplib
> +---io                            # move to src/io/
> +---jit                           # move to src/jit/
>     <snip jit/ subdirs>
> +---languages
>     <snip languages/ subdirs>
> +---LICENSES
> +---ops                           # move to src/ops/
> +---pf                            # move to src/packfile/
> +---runtime
>     <snip runtime/ subdirs>
> +---src
> +---t
> |   +---compilers
> |   |   +---pge
> |   |   |   +---p5regexp
> |   |   |   +---p6rules
> |   |   +---tge
> |   +---doc
> |   +---dynclass
> |   +---examples
> |   +---library
> |   +---native_pbc
> |   +---op
> |   +---perl
> |   +---pmc
> |   +---run
> |   +---src
> |   +---stress
> |   +---tools
> +---tools
> |   +---dev
> |   +---docs
> +---types                         # move to src/types/
> +---util                          # move to tools/util/
> 
> 
> below is the modified tree, which groups related directories,
> and reduces the number of top-level directories from 28 to 15.
> 
> 
> . trunk
> +---ast
> +---blib
> |   +---lib
> +---compilers
> |   +---pge
> |   |   +---PGE
> |   +---tge
> |       +---TGE
> +---config
> |   <snip config/ subdirs>
> +---debian
> +---docs
>     <snip docs/ subdirs>
> +---examples
> |   <snip examples/ subdirs>
> +---imcc
> |   +---docs
> |   +---examples
> +---include
> |   +---parrot
> |       +---oplib
> +---languages
> |   <snip languages/ subdirs>
> +---LICENSES
> +---runtime
> |   <snip runtime/ subdirs>
> +---src
> |   +---charset                   # moved from charset/
> |   +---classes                   # moved from classes/
> |   +---dynclasses                # moved from dynclasses/
> |   +---dynoplibs                 # moved from dynoplibs/
> |   +---encodings                 # moved from encodings/
> |   +---io                        # moved from io/
> |   +---jit                       # moved from jit/
> |   |   <snip jit/ subdirs>
> |   +---ops                       # moved from ops/
> |   +---pf                        # moved from pf/
> |   +---types                     # moved from types/
> +---t
> |   +---compilers
> |   |   +---imcc                  # moved from imcc/t/
> |   |   |   <snip t/compilers/imcc/ subdirs>
> |   |   +---pge
> |   |   |   +---p5regexp
> |   |   |   +---p6rules
> |   |   +---tge
> |   +---doc
> |   +---dynclass
> |   +---examples
> |   +---library
> |   +---native_pbc
> |   +---op
> |   +---perl
> |   +---pmc
> |   +---run
> |   +---src
> |   +---stress
> |   +---tools
> +---tools
> |   +---build_tools               # moved from build/
> |   +---dev
> |   +---docs
> |   +---editor                    # moved from editor/, no Makefile,
> converted to perl
> |   +---util                      # moved from util/
> 
> 
> this work can and should be done one piece at a time to prevent
> widespread panic. if this proposal is accepted, i will create
> todo tasks for each unit of work. then, they can be assigned one
> at a time, until the task is complete. of course, a realclean /
> configure / make test cycle should be done after each change to
> ensure it has gone smoothly.
> 
> thoughts?
> ~jerry
> 

-- 
Chip Salzenberg <[EMAIL PROTECTED]>

Reply via email to