NAME
Inline::Parrot::parrot - a Parrot process
SYNOPSIS
use Inline::Parrot;
my $p = Inline::Parrot::parrot->new(
parrot_file_name => 'parrot',
parrot_interpreter_file_name => 'parrot-interp.pir',
parrot_options => [],
debug => 0,
);
my ($output, $error) = $p->compile_and_run( <<'PARROT' );
.pcc_sub _x0
print "parrot ok\n"
invoke P1
end
.end
PARROT
print "output:\n" . $output . "\n";
print "error:\n" . $error . "\n";
DESCRIPTION
This module provides an object-oriented, low-level interface to a Parrot process.
The API is very unstable.
METHODS
* new
Creates an Inline::Parrot::parrot object.
Default parameters:
parrot_file_name => 'parrot',
parrot_interpreter_file_name => 'parrot-interp.pir',
parrot_options => [],
debug => 0,
The default parrot_file_name
is determined at installation time by Makefile.PL
.
* compile( $string )
Compiles the code, and leave the result in the Parrot process memory.
Returns a status string and an error string:
my ( $status, $error ) = $parrot->compile( $code );
Under Windows, $error is always an empty string.
* compile_and_run( $string )
Compiles the code, and leave the result in the Parrot process memory.
Returns a status string and an error string:
my ( $status, $error ) = $parrot->compile_and_run( $code );
Under Windows, $error is always an empty string.
The first subroutine in the code is called using the sequence:
find_global P0, "_subroutine_name"
invokecc
Subroutines should return using the code:
invoke P1
* open
Starts a Parrot process.
open
is called automatically by new
.
If a process is already open, the command is ignored.
If a process cannot be open, the program dies.
* close
Closes the Parrot process.
If there is no open process, the command is ignored.
* debug
Controls the emission of debugging messages.
debug(1)
starts, debug(0)
stops.
The contents of the messages is not stable.
* get_interpreter_code
Returns the location of the Parrot interpreter. This is a string like ~/lib/Inline/Parrot/parrot-interpreter.pir
.
This is a class method.
SEE ALSO
AUTHOR
Flavio S. Glock, <fglock@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2004 by Flavio S. Glock
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.