Parrotlog - Getting started
The inspiration for this project is primarily due to my reading On Lisp by Paul Graham, which talks about implementing non-deterministic search (or backtracking, if you will) with continuations (chapter
2022). Since I know Parrot supports continuations natively, it was an obvious choice. Some googling also revealed a very interesting PerlMonks post, entitled Perl and Prolog and Continuations... oh my!, which it turns out is the inspiration for Ovid's AI::Logic as well (which I discovered a few days ago).
Now, on to the implementation. Most of the documents I've found tell you to start your Parrot HLL project with a script called mk_language_shell.pl, but I found that it doesn't do quite what it say on the tin. Instead I used tools/dev/create_language.pl. This script creates a basic folder hierarchy similar to the one used by Rakudo. A quick tour of the files and folders:
build/contains everything that has to do with the build process. Most interesting is
PARROT_REVISIONwhich specifies which Parrot is required, and
Makefile.inwhich is where the build process can be extended.
Configure.pldoes what it's called. Call it with
--gen-parrotto build the required Parrot version as well.
src/contain the usual bits
EDIT: I lied. Backtracking is chapter 22 of Graham's book. Chapter 20 is continuations.