Questions we ought to be able to answer

Kevin Polulak kpolulak at gmail.com
Sun Jul 17 23:22:09 UTC 2011


On Sat, Jul 16, 2011 at 10:28 PM, James E Keenan <jkeen at verizon.net> wrote:

>
> 8. What are the purposes of the top-level directories in the Parrot
> distribution? Would they each benefit from short READMEs explaining that?
>

I'm still not completely sure about the purpose of all the top-level
directories but here's what I've been able to gather:

   - *blib* - Short for "binary library". Contains the libparrot static and
   dynamic libraries. Also includes a pretty printer Python script for GDB
   (which I think doesn't belong here anyway).
   - *compilers* - Contains the source files for several compilers:
   data_json, imcc, opsc, pct, pge, and tge.
      - *data_json* - Generates a JSON representation of a PMC.
      - *imcc* - "Intermediate Code Compiler". The compiler used for
      converting PIR source code into Parrot bytecode.
      - *opsc* - The opcode compiler. Converts opcode definition files into
      C source code.
      - *pct* - The compiler used by the "Parrot Compiler Tools".
      - *pge* - "Parrot Grammar Engine". An implementation of Perl 6 regex's
      designed for PCT.
      - *tge* - "Tree Grammar Engine". A tool for transforming trees known
      as Parrot Abstract Syntax Tree (PAST).
   - *config* - Source files (mostly Perl 5 modules) used by Configure.pl
   during the configuration process.
   - *docs* - General documentation in POD format. Useful for Parrot
   developers, users, and compiler developers. Also contains the "Parrot
   Developer's Guide: PIR" and Parrot Design Documents (PDDS) that describe
   some of the internals of the virtual machine.
   - *editor* - Plugins and scripts for several popular editors including
   vim, emacs, and kate. Examples include syntax highlighting, automatic
   indenting, and tags generation.
   - *examples* - Example source files (mostly PIR) demonstrating common
   tasks such as NCI, SDL, PASM, and a PIR tutorial. Also includes the source
   files for the demo languages "abc" and "Squaak".
   - *ext* - Short for "extensions". Includes nqp-rx, winxed, and the
   embedding interface for Perl 5.
   - *frontend* - Contains the Parrot frontend and other frontend programs
   including a bytecode disassembler, merger, dumper, and a debugger (HBDB
   coming soon).
   - *include* - C header files used by the core VM and IMCC.
   - *lib* - Short for "library". Contains several Perl 5 modules such as
   the test suite, a "POD to HTML" converter, and Headerzier for generating C
   function declarations.
   - *ports* - Contains OS specific files for building packages for Cygwin,
   Debian, Fedora, Mac OS X, Mandriva, openSUSE, and Ubuntu (I'm not 100% sure
   about this directory).
   - *runtime* - Contains the source files (mostly PIR and PASM) that make
   up the Parrot runtime library. Also includes dynamic extensions.
   - *src* - Contains the C source files that make up the internals of the
   virtual machine.
   - *t* - Parrot test suite. Most of them are PIR files but tests that must
   be run before the VM is built are written in Perl 5. Utilizes the Test
   Anything Protocol (TAP).
   - *tools* - Utilities (all in Perl 5) used mostly by the developers but
   also users of PCT. Examples include Makefile generation, release automation,
   sending Smolder reports, and creating files for new languages.

Yes, I do think we could benefit from including a small README file in each
top-level directory. More documentation is always a good thing. I opened up
an RFC in TT #2155 <http://trac.parrot.org/parrot/ticket/2155> for this.

-- 
- Kevin Polulak (soh_cah_toa)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.parrot.org/pipermail/parrot-dev/attachments/20110717/6aaa8a7a/attachment.html>


More information about the parrot-dev mailing list