Skip to content

Commit 7c29fe7

Browse files
committed
Fix up usage of openpipe()/shell()
2 parents b015083 + 64a0872 commit 7c29fe7

File tree

189 files changed

+163335
-149237
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

189 files changed

+163335
-149237
lines changed

Configure.pl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@
108108

109109
my $launcher = $prefixes{$default_backend} . '-runner-default';
110110
print $MAKEFILE "all: ", join(' ', map("$_-all", @prefixes), $launcher), "\n";
111-
for my $t (qw/clean test qregex-test install/) {
111+
print $MAKEFILE "install: ", join(' ', map("$_-install", @prefixes), $launcher . '-install'), "\n";
112+
for my $t (qw/clean test qregex-test/) {
112113
print $MAKEFILE "$t: ", join(' ', map "$_-$t", @prefixes), "\n";
113114
}
114115

@@ -220,7 +221,8 @@
220221
"(You can get a MoarVM built automatically with --gen-moar.)";
221222
}
222223
sorry(@errors) if @errors;
223-
$config{'make'} = $^O eq 'MSWin32' ? 'nmake' : 'make';
224+
$config{'make'} = `$moar_path --libpath="src/vm/moar/stage0" "src/vm/moar/stage0/nqp.moarvm" -e "print(nqp::backendconfig()<make>)"`
225+
|| 'make';
224226
$config{moar} = $moar_path;
225227
fill_template_file(
226228
'tools/build/Makefile-Moar.in',

README.pod

Lines changed: 39 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@
33
NQP is Copyright (C) 2009-2015 by The Perl Foundation. See F<LICENSE>
44
for licensing details.
55

6-
This is "Not Quite Perl" -- a lightweight Perl 6-like environment
7-
for virtual machines. The key feature of NQP is that it's
8-
designed to be a very small environment (as compared with, say, perl6
9-
or Rakudo) and is focused on being a high-level way to create
10-
compilers and libraries for virtual machines (such as the Parrot
11-
Virtual Machine [1], the JVM, and MoarVM [2]). Unlike a full-fledged
12-
implementation of Perl 6, NQP strives to have as small a runtime footprint
13-
as it can, while still providing a Perl 6 object model and regular expression
14-
engine for the virtual machine.
6+
This is "Not Quite Perl" -- a lightweight Perl 6-like environment for
7+
virtual machines. The key feature of NQP is that it's designed to be a very
8+
small environment (as compared with, say, perl6 or Rakudo) and is focused on
9+
being a high-level way to create compilers and libraries for virtual
10+
machines (such as the Parrot Virtual Machine [1], the JVM, and MoarVM [2]).
11+
Unlike a full-fledged implementation of Perl 6, NQP strives to have as small
12+
a runtime footprint as it can, while still providing a Perl 6 object model
13+
and regular expression engine for the virtual machine.
1514

1615
[1] http://parrot.org/
1716
[2] https://github.com/MoarVM/MoarVM
@@ -20,56 +19,55 @@ engine for the virtual machine.
2019

2120
=for HTML <a href="https://travis-ci.org/perl6/nqp"><img src="https://travis-ci.org/perl6/nqp.svg?branch=master"></a>
2221

23-
To build NQP from source, you'll just need a C<make> utility
24-
and Perl 5.8 or newer. To automatically obtain and build Parrot
25-
you may also need a git client.
22+
To build NQP from source, you'll just need a C<make> utility and Perl 5.8 or
23+
newer. To automatically obtain and build Parrot you may also need a git
24+
client.
2625

2726
To obtain NQP directly from its repository:
2827

2928
$ git clone git://github.com/perl6/nqp.git
3029

31-
If you don't have git installed, you can get a tarball or zip
32-
of NQP from github by visiting http://github.com/perl6/nqp/tree/master
33-
and clicking "Download". Then unpack the tarball or zip.
30+
If you don't have git installed, you can get a tarball or zip of NQP from
31+
github by visiting http://github.com/perl6/nqp/tree/master and clicking
32+
"Download". Then unpack the tarball or zip.
3433

3534
NQP can run on three different backends: Parrot, MoarVM and the Java Virtual
36-
Machine (JVM). Decide on which backends you want it to run, and configure and
37-
build it as follows:
35+
Machine (JVM). Decide on which backends you want it to run, and configure
36+
and build it as follows:
3837

3938
Once you have a copy of NQP, build it as follows:
4039

4140
$ cd nqp
4241
$ perl Configure.pl --backends=moar,parrot,jvm
4342
$ make
4443

45-
If you don't have parrot installed, you can have Configure.pl generate one for
46-
you by passing the C<--gen-parrot> option to it as well. If you don't have
47-
MoarVM installed, you can have Configure.pl generate one for you by passing
48-
the C<--gen-moar> option to it as well.
44+
If you don't have parrot installed, you can have Configure.pl generate one
45+
for you by passing the C<--gen-parrot> option to it as well. If you don't
46+
have MoarVM installed, you can have Configure.pl generate one for you by
47+
passing the C<--gen-moar> option to it as well.
4948

50-
The C<make> step will create a "nqp" or "nqp.exe" executable in the
51-
current directory. Programs can then be run from the build
52-
directory using a command like:
49+
The C<make> step will create a "nqp" or "nqp.exe" executable in the current
50+
directory. Programs can then be run from the build directory using a
51+
command like:
5352

5453
$ ./nqp hello.nqp
5554

5655
By default, NQP searches for the parrot executable and installs to the
5756
directory C<./install>. You can change that with the C<--prefix> option to
5857
Configure.pl.
5958

60-
Once built, NQP's C<make install> target will install NQP
61-
and its libraries into the Parrot installation that was used to
62-
create it. Until this step is performed, the "nqp" executable
63-
created by C<make> above can only be reliably run from the root of
64-
NQP's build directory. After C<make install> is performed
65-
the executable can be run from any directory (as long as the
59+
Once built, NQP's C<make install> target will install NQP and its libraries
60+
into the Parrot installation that was used to create it. Until this step is
61+
performed, the "nqp" executable created by C<make> above can only be
62+
reliably run from the root of NQP's build directory. After C<make install>
63+
is performed the executable can be run from any directory (as long as the
6664
Parrot installation that was used to create it remains intact).
6765

68-
If the NQP compiler is invoked without an explicit script to
69-
run, it enters a small interactive mode that allows statements
70-
to be executed from the command line. Each line entered is treated
71-
as a separate compilation unit, however (which means that subroutines
72-
are preserved after they are defined, but variables are not).
66+
If the NQP compiler is invoked without an explicit script to run, it enters
67+
a small interactive mode that allows statements to be executed from the
68+
command line. Each line entered is treated as a separate compilation unit,
69+
however (which means that subroutines are preserved after they are defined,
70+
but variables are not).
7371

7472
=head2 Troubleshooting
7573

@@ -91,13 +89,12 @@ used. On Mavericks use 10.9 (like above), on Yosemite use 10.10.
9189

9290
=head2 Differences from nqp-rx
9391

94-
NQP is the successor implementation of "nqp-rx" [2]. Unlike nqp-rx,
95-
which aimed to have almost no runtime component whatsoever, this new
96-
version of NQP accepts that a minimal Perl 6 object metamodel,
97-
multidispatcher, and regular expression engine are needed on top of
98-
the underlying virtual machine. Also, nqp-rx only ran on Parrot,
99-
whereas NQP also runs on the JVM and MoarVM and is designed to be
100-
portable to more.
92+
NQP is the successor implementation of "nqp-rx" [2]. Unlike nqp-rx, which
93+
aimed to have almost no runtime component whatsoever, this new version of
94+
NQP accepts that a minimal Perl 6 object metamodel, multidispatcher, and
95+
regular expression engine are needed on top of the underlying virtual
96+
machine. Also, nqp-rx only ran on Parrot, whereas NQP also runs on the JVM
97+
and MoarVM and is designed to be portable to more.
10198

10299
[2] http://github.com/perl6/nqp-rx
103100

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2015.01
1+
2015.07.2

docs/6model/repr-compose-protocol.markdown

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,27 @@ A hash that may have the following keys:
8787
each element. Again, this is just about layout and lookup, not about type
8888
checking.
8989

90+
* dimensions - the number of dimensions an array of this type supports. A
91+
given REPR may be restricted to only support a single dimensions.
92+
9093
## hash
9194

95+
A hash that may have the following keys:
96+
9297
* valuetype - the type of the hash value. As with arrays, it's up to the REPR
9398
how or if it handles native types. Just about layout.
9499

95100
* keytype - the type of the hash key. REPRs are likely to be restrictive here,
96101
since they need to understand the representation of the provided key well
97102
enough to hash it. This will probably mean strings and whatever REPR ObjAt
98103
in Perl 6 (or some other language's variant) has.
104+
105+
## nativeref
106+
107+
A hash that must have the following two keys:
108+
109+
* type - the native type that is being referenced. Must have a storage spec
110+
that claims to be a native int/num/str.
111+
112+
* refkind - the kind of reference, specified as a string. Must be one of
113+
'attribute', 'positional', or 'lexical'.

0 commit comments

Comments
 (0)