I think your suggestions sound pretty good to me. Personally, i'd lean towards possibility 2, since 1 is doable if you plan for 2, but not necessarily vice-versa.
Otherwise I think your proposal sounds good. But then again i'm nobody ;) --Josh At 23:24 on 02/03/2002 GMT, [EMAIL PROTECTED] wrote: > Parroteers, > > I've been thinking about the directory structure of Parrot. > Currently, the top-level dir is a bit of mess, with zillions of > files of various flavours. It is my contention that apart from > a few expected files such as README, MANIFEST, Configure.pl etc, > everything else should be in subdirs. > > I have some provisional suggestions for this below. > > First however, I want to clarify the packaging of parrot vs perl6, because > this will affect the depth of directory hieriarchy needed. > > I can see 3 main possibilites: > > 1. Perl 6 and Parrot come as essentially two separate packages, with their > own config scripts etc. > > this suggests two separate tarballs > > 2. They share config, but are separate otherwise > > this suggests a single tarball with just config/, perl6/, parrot/ subdirs > > 3. They are completely intermixed, sharing some src files, pre-processing > scripts, etc etc. > > again, a single tarball, but with lots of top-level subdirs > > For the moment, I've assumed (1); some of the suggested directory > names below may need parrot/ prepending to them if (2) or (3) is the > case. > > Anyway, here's how I suggest files should be moved around to make > a more rational directory hierarchy. This will involve quite a bit > of hacking of paths in makefiles, scripts etc; but if we're going > to do it at all, then the sooner the better. > > Comments? > > ------------------------------------------------- > > original file renamed to > ------------- ---------- > > > # parrot/ holds general src code for parrot > > *.[ch] parrot/*.[ch] > > # config/ holds files associated with the configuration process > > Config_pm.in config/Config_pm.in > Makefile.in config/Makefile.in > Types_pm.in config/Types_pm.in > config_h.in config/config_h.in > test_c.in config/test_c.in > test_gnuc.c config/test_gnuc.c > testparrotfuncptr.c config/testparrotfuncptr.c > test_parrot_sizes.c config/test_parrot_sizes.c > > # all per-platform files (README, hints, header.[ch], > # are collected together in the single directory OS// > > README.OS_X OS/macos_x/README > > hints/cygwin.pl OS/cygwin/hints.pl > hints/darwin.pl OS/darwin/hints.pl > hints/mswin32.pl OS/mswin32/hints.pl > hints/os2.pl OS/os2/hints.pl > hints/vms.pl OS/vms/hints.pl > > platforms/win32.h OS/win32/platform.h > platforms/win32.c OS/win32/platform.c > platforms/generic.h OS/generic/platform.h > platforms/generic.c OS/generic/platform.c > > # bin/ holds executables for 'end-user' use > > assemble.pl bin/assemble.pl > disassemble.pl bin/disassemble.pl > optimizer.pl bin/optimizer.pl > > # ops/ holds *.ops files > > core.ops ops/core.ops > io.ops ops/io.ops > obscure.ops ops/obscure.ops > rx.ops ops/rx.ops > > # better here ? > > vtable.tbl classes/vtable.tbl > > # scripts/ holds scripts used during the build process, eg > # to pre-process .c files etc > > jit2h.pl scripts/jit2h.pl > make.pl scripts/make.pl > make_vtable_ops.pl scripts/make_vtable_ops.pl > manicheck.pl scripts/manicheck.pl > ops2c.pl scripts/ops2c.pl > ops2pm.pl scripts/ops2pm.pl > pmc_pm.pl scripts/pmc_pm.pl > vtable_h.pl scripts/vtable_h.pl > > # for consistency these two should be moved too: > > classes/genclass.pl scripts/genclass.pl > classes/pmc2c.pl scripts/pmc2c.pl > > # tmp/ > > this should be an intially empty directory; build scripts that ned > to create transient files should try to put them here where possible > > # pdd/ > > all the PDDs really should come under control of CVS.