Commit 55280122 authored by Dominique Dumont's avatar Dominique Dumont

Imported Upstream version 2016.05

parent fe3e5c94

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

......@@ -8,6 +8,7 @@ use Text::ParseWords;
use Getopt::Long;
use File::Spec;
use Cwd;
use Perl::OSType 'is_os_type';
use lib 'tools/lib';
use NQP::Configure qw(sorry slurp cmp_rev gen_nqp read_config
fill_template_text fill_template_file
......@@ -52,7 +53,7 @@ MAIN: {
}
unless (defined $options{prefix}) {
my $default = defined($options{sysroot}) ? '/usr' : File::Spec->catdir(getcwd, 'install');
my $default = defined($options{sysroot}) ? '/usr' : File::Spec->catdir(getcwd, 'install');
print "ATTENTION: no --prefix supplied, building and installing to $default\n";
$options{prefix} = $default;
}
......@@ -168,6 +169,23 @@ MAIN: {
print $MAKEFILE "\n# Makefile code generated by Configure.pl:\n";
if (is_os_type('Unix')) {
$config{mkpath} = 'mkdir -p --';
$config{chmod} = 'chmod --';
$config{cp} = 'cp --';
$config{rm_f} = 'rm -f --';
$config{rm_rf} = 'rm -rf --';
$config{test_f} = 'test -f --';
}
else {
$config{mkpath} = '$(PERL5) -MExtUtils::Command -e mkpath';
$config{chmod} = '$(PERL5) -MExtUtils::Command -e chmod';
$config{cp} = '$(PERL5) -MExtUtils::Command -e cp';
$config{rm_f} = '$(PERL5) -MExtUtils::Command -e rm_f';
$config{rm_rf} = '$(PERL5) -MExtUtils::Command -e rm_rf';
$config{test_f} = '$(PERL5) -MExtUtils::Command -e test_f';
}
fill_template_file('tools/build/Makefile-common-macros.in', $MAKEFILE, %config);
my @prefixes = map substr($_, 0, 1), @backends;
......@@ -180,7 +198,7 @@ MAIN: {
print $MAKEFILE "\t\$(RM_F) perl6", $config{'runner_suffix'},"\n\n";
for my $t (qw/test spectest coretest localtest stresstest/) {
print $MAKEFILE "$t: ", join(' ', map "$_-$t", @prefixes), "\n";
print $MAKEFILE "$t: ", join(' ', map "$_-$t\$(HARNESS_TYPE)", @prefixes), "\n";
}
fill_template_file('tools/build/Makefile-common-rules.in', $MAKEFILE, %config);
......@@ -253,8 +271,8 @@ MAIN: {
unless ($win) {
$config{'m_cleanups'} = " \$(M_GDB_RUNNER) \\\n \$(M_VALGRIND_RUNNER)";
$config{'m_all'} = '$(M_GDB_RUNNER) $(M_VALGRIND_RUNNER)';
$config{'m_install'} = ' $(PERL) tools/build/create-moar-runner.pl "$(MOAR)" perl6.moarvm $(DESTDIR)$(PREFIX)/bin/perl6-gdb-m "$(PERL6_LANG_DIR)/runtime" "gdb" "$(M_LIBPATH)" "$(PERL6_LANG_DIR)/lib" "$(PERL6_LANG_DIR)/runtime"' . "\n"
. ' $(PERL) tools/build/create-moar-runner.pl "$(MOAR)" perl6.moarvm $(DESTDIR)$(PREFIX)/bin/perl6-valgrind-m "$(PERL6_LANG_DIR)/runtime" "valgrind" "$(M_LIBPATH)" "$(PERL6_LANG_DIR)/lib" "$(PERL6_LANG_DIR)/runtime"';
$config{'m_install'} = "\t" . '$(PERL5) tools/build/create-moar-runner.pl "$(MOAR)" perl6.moarvm $(DESTDIR)$(PREFIX)/bin/perl6-gdb-m "$(PERL6_LANG_DIR)/runtime" "gdb" "$(M_LIBPATH)" "$(PERL6_LANG_DIR)/lib" "$(PERL6_LANG_DIR)/runtime"' . "\n"
. "\t" . '$(PERL5) tools/build/create-moar-runner.pl "$(MOAR)" perl6.moarvm $(DESTDIR)$(PREFIX)/bin/perl6-valgrind-m "$(PERL6_LANG_DIR)/runtime" "valgrind" "$(M_LIBPATH)" "$(PERL6_LANG_DIR)/lib" "$(PERL6_LANG_DIR)/runtime"';
}
unless (@errors) {
......@@ -291,7 +309,8 @@ MAIN: {
sorry(@errors) if @errors;
my $l = uc substr($default_backend, 0, 1);
print $MAKEFILE qq[\nt/*/*.t t/*.t t/*/*/*.t: all\n\t\$(${l}_HARNESS_WITH_FUDGE) --verbosity=1 \$\@\n];
print $MAKEFILE qq[\nt/*/*.t t/*.t t/*/*/*.t: all\n\t\$(${l}_HARNESS5_WITH_FUDGE) --verbosity=1 \$\@\n];
close $MAKEFILE or die "Cannot write 'Makefile': $!";
......
This diff is collapsed.
......@@ -21,7 +21,7 @@ text file.
## Building and Installing Rakudo
[![Build Status](https://travis-ci.org/rakudo/rakudo.svg?branch=nom)](https://travis-ci.org/rakudo/rakudo) [![Build status](https://ci.appveyor.com/api/projects/status/github/rakudo/rakudo?svg=true)](https://ci.appveyor.com/project/rakudo/rakudo/branch/nom)
[![Build Status](https://travis-ci.org/rakudo/rakudo.svg?branch=nom)](https://travis-ci.org/rakudo/rakudo) [![Build status](https://ci.appveyor.com/api/projects/status/github/rakudo/rakudo?svg=true)](https://ci.appveyor.com/project/moritz/rakudo/branch/nom)
See the INSTALL.txt file for detailed prerequisites and build and
installation instructions.
......@@ -93,15 +93,22 @@ For questions about MoarVM, you can join #moarvm on freenode.
## Reporting bugs
Bug reports should be sent to "rakudobug@perl.org" with the moniker
[BUG]\(including the brackets) at the start of the subject so that it
gets appropriately tagged in [the RT system](https://rt.perl.org/rt3/).
Bug reports should be sent to "rakudobug@perl.org", which will
automatically create a ticket in
[the RT system](https://rt.perl.org/rt3/).
Please include or attach any sample source code that exhibits the bug,
and include either the release name/date or the git commit identifier.
You find that information in the output from `perl6 --version` (or in
the first line of `git log`, if Rakudo fails to build). There's no need
to cc: the perl6-compiler mailing list, as the RT system will handle
this on its own.
this on its own. Please start your subject with one (or more) of the
following text, including the brackets:
* [BUG] - this is an actual bug
* [LTA] - a "Less Than Awesome" diagnostic or warning is being generated
* [JVM] - issue only occurs on the JVM
* [PERF] - any performance related issue
* [UNI] - related to unicode support
If you find a bug in MoarVM or NQP, you can either discuss it on the IRC
and have it reported for you, or you can submit an issue to the issue
......@@ -110,23 +117,11 @@ trackers on github for perl6/nqp or moarvm/moarvm.
## Submitting patches
If you have a patch that fixes a bug or adds a new feature, please
submit it to "rakudobug@perl.org" with the moniker [PATCH]\(including
the brackets) at the start of the subject line. We'll generally accept
patches in any form if we can get them to work, but unified diff from
the `git` command is greatly preferred. In general this means that in
the "rakudo" directory you make your changes, and then type
git commit -m 'Your commit message' changed/filename.pm
git format-patch HEAD^
This will generate a file called "001-your-commit-message.patch", or
more of them if you made multiple commits; please attach these to your
email. Please note that if you made more than one commit, you have to
specify a proper commit range for format-patch,
for example `origin/nom..HEAD`.
(Note to the maintainers: you can apply these patches with the
`git-am -s` command; it preserves meta information like author).
create a pull request using github's pull request infrastructure.
Please separate your commits for different issues into different
branches, and please squash out any intermediate commits, like
adding/removing debug output.
## Line editing and tab completion
......
New in 2016.05
+ Fixes:
+ Fix EVAL during precompilation
+ .substr fixes
+ many precompilation fixes
+ clean up error messages
+ Streamline some core classes
+ Harden Mu.Str against moving GC
+ JVM fixes
+ Simplify $*USER/$*GROUP initialization
+ Additions:
+ Ability to use a customer debugger module
+ $*MAIN-ALLOW-NAMED-ANYWHERE allows MAIN to be friendlier about where it accepts flags
+ Add richer set of comparison operators for Versions
+ Many improvements to precompilation - building OS packages with precomp'd code should now be possible!
+ Introduce .Map coercer
+ Implement alternate ways to call subtest
+ Efficiency:
+ Version comparisons are now 2x faster
+ List.minmax is about 3.5x faster
+ Num.perl is about 2.4x faster
+ Int division/modulus is about 1.5x faster
+ LoL accesses are about 3x faster
+ autothreader is about 2-3x faster
+ Make Any junction methods 14x faster
+ Make Junctions faster
+ Map.kv is about 10% faster
New in 2016.04
+ Fixes:
+ .combinations cleanup
......
# Announce: Rakudo Perl 6 compiler, Release #99 (2016.05)
On behalf of the Rakudo development team, I’m very happy to announce the
May 2016 release of Rakudo Perl 6 #99. Rakudo is an implementation of
Perl 6 on the Moar Virtual Machine[^1].
This release implements the 6.c version of the Perl 6 specifications.
It includes bugfixes and optimizations on top of
the 2015.12 release of Rakudo, but no new features.
Upcoming releases in 2016 will include new functionality that is not
part of the 6.c specification, available with a lexically scoped
pragma. Our goal is to insure that anything that is tested as part of the
6.c specification will continue to work unchanged. There may be incremental
spec releases this year as well.
The tarball for this release is available from <http://rakudo.org/downloads/rakudo/>.
Please note: This announcement is not for the Rakudo Star
distribution[^2] --- it’s announcing a new release of the compiler
only. For the latest Rakudo Star release, see
<http://rakudo.org/downloads/star/>.
The Rakudo Perl compiler follows a monthly release cycle, but please bear
with us post-Christmas. We are working hard to ensure that we don’t break
anything now that we have a released spec, and it make take us a few months
to settle back into a rhythm.
The changes in this release are outlined below:
New in 2016.05:
+ Fixes:
+ Fix EVAL during precompilation
+ .substr fixes
+ many precompilation fixes
+ clean up error messages
+ Streamline some core classes
+ Harden Mu.Str against moving GC
+ JVM fixes
+ Simplify `$*USER`/`$*GROUP` initialization
+ Additions:
+ Ability to use a customer debugger module
+ `$*MAIN-ALLOW-NAMED-ANYWHERE` allows MAIN to be friendlier about where it accepts flags
+ Add richer set of comparison operators for Versions
+ Many improvements to precompilation - building OS packages with precomp'd code should now be possible!
+ Introduce .Map coercer
+ Implement alternate ways to call subtest
+ Efficiency:
+ Version comparisons are now 2x faster
+ List.minmax is about 3.5x faster
+ Num.perl is about 2.4x faster
+ Int division/modulus is about 1.5x faster
+ LoL accesses are about 3x faster
+ autothreader is about 2-3x faster
+ Make Any junction methods 14x faster
+ Make Junctions faster
+ Map.kv is about 10% faster
These are only some of the changes in this release. For a more
detailed list, see “docs/ChangeLog”.
The following people contributed to this release:
Elizabeth Mattijsen, Pawel Murias, Jonathan Worthington, Stefan Seifert, Timo Paulssen, Pepe Schwarz, Bart Wiegmans, Jimmy Zhuo, Will "Coke" Coleda, Leon Timmermans, David Warring, Christian Bartolomäus, Daniel Green, tomboy64, Moritz Lenz, Altai-man, Rob Hoelz, Zoffix Znet, Salvador Ortiz, Tom Browder, Ahmad M. Zawawi, Xliff, Matt Oates, Nick Logan, Jonathan Stowe
If you would like to contribute or find out more information, visit
<http://perl6.org>, <http://rakudo.org/how-to-help>, ask on the
<perl6-compiler@perl.org> mailing list, or ask on IRC #perl6 on freenode.
The next release of Rakudo (#100), is tentatively scheduled for 2016-06-18.
A list of the other planned release dates is available in the
“docs/release_guide.pod” file.
The development team appreciates feedback! If you’re using Rakudo, do
get back to us. Questions, comments, suggestions for improvements, cool
discoveries, incredible hacks, or any other feedback -- get in touch with
us through (the above-mentioned) mailing list or IRC channel. Enjoy!
Please note that recent releases have known issues running on the JVM.
We are working to get the JVM backend working again but do not yet have
an estimated delivery date.
[^1]: See <http://moarvm.org/>
[^2]: What’s the difference between the Rakudo compiler and the Rakudo
Star distribution?
The Rakudo compiler is a compiler for the Perl 6 language.
Not much more.
The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, a module installer, the most recent
incarnation of the “Using Perl 6” book, and other software that can
be used with the Rakudo compiler to enhance its utility.
# TABLE OF CONTENTS
- [Rakudo Opcodes]
- [p6argsfordispatcher](#p6argsfordispatcher)
- [p6argvmarray](#p6argvmarray)
- [p6bindassert](#p6bindassert)
- [p6bindattrinvres](#p6bindattrinvres)
- [p6bindcaptosig](#p6bindcaptosig)
- [p6bindsig](#p6bindsig)
- [p6bool](#p6bool)
- [p6box_i](#p6box_i)
- [p6box_n](#p6box_n)
- [p6box_s](#p6box_s)
- [p6box_u](#p6box_u)
- [p6capturelex](#p6capturelex)
- [p6capturelexwhere](#p6capturelexwhere)
- [p6captureouters](#p6captureouters)
- [p6captureouters2](#p6captureouters2)
- [p6clearpre](#p6clearpre)
- [p6configposbindfailover](#p6configposbindfailover)
- [p6decodelocaltime](#p6decodelocaltime)