While at a meeting today I had a period of time where I couldn't easily sync with the Parrot repository to work on it, so I hacked together a small script to automatically populate a new languages/ subdirectory with a "standard" compiler tools setup. The script is attached.
With this script, one can do: $ perl tools/dev/mk_language_shell.pl Xyz The script will automatically create a languages/xyz/ directory with the following files (all customized to the language being created): xyz.pir config/makefiles/root.in src/parser/grammar.pg src/parser/actions.pm src/builtins/say.pir t/harness t/00-sanity.t The script also runs the reconfigure step on the directory to produce a Makefile from config/makefiles/root.in . So, after running the above to create a compiler shell for 'Xyz', one can immediately do: $ cd languages/xyz $ make test ../../parrot /home/pmichaud/parrot/trunk/runtime/parrot/library/PGE/Perl6Grammar.pbc \ --output=src/gen_grammar.pir \ src/parser/grammar.pg ../../parrot /home/pmichaud/parrot/trunk/compilers/nqp/nqp.pbc --output=src/gen_actions.pir \ --target=pir src/parser/actions.pm /usr/bin/perl -MExtUtils::Command -e cat src/builtins/say.pir >src/gen_builtins.pir ../../parrot -o xyz.pbc xyz.pir /usr/bin/perl t/harness t/00-sanity......ok All tests successful. Files=1, Tests=2, 0 wallclock secs ( 0.01 usr 0.01 sys + 0.06 cusr 0.01 csys = 0.09 CPU) Result: PASS $ After that the language implementor can start customizing the grammar, actions, etc. for whatever language is being built. Comments welcomed. Let me know if/when we want this script added to tools/dev/ . Pm