From 3be6a386b5745cf1aa7554b1ff550be2b1032aa6 Mon Sep 17 00:00:00 2001 From: Moritz Lenz Date: Fri, 20 Feb 2015 09:30:30 +0100 Subject: Prepare parrot suspension --- Configure.pl | 65 +++-------------- README | 56 ++++----------- docs/cheatsheet.txt | 2 +- tools/build/Makefile.in | 30 +------- tools/lib/NQP/Configure.pm | 166 ++----------------------------------------- tools/star/Makefile | 16 +---- tools/star/release-guide.pod | 11 ++- 7 files changed, 35 insertions(+), 311 deletions(-) diff --git a/Configure.pl b/Configure.pl index a6f9f54..dd93730 100644 --- a/Configure.pl +++ b/Configure.pl @@ -34,8 +34,6 @@ MAIN: { GetOptions(\%options, 'help!', 'prefix=s', 'backends=s', 'no-clean!', 'gen-nqp:s', 'gen-moar:s', - 'gen-parrot:s', 'parrot-option=s@', - 'parrot-make-option=s@', 'make-install!', 'makefile-timing!', 'force!', ) or do { @@ -68,7 +66,7 @@ MAIN: { $options{prefix} = File::Spec->rel2abs($options{prefix}); my $prefix = $options{'prefix'}; - my %known_backends = (parrot => 1, jvm => 1, moar => 1); + my %known_backends = (jvm => 1, moar => 1); my %letter_to_backend; my $default_backend; for (keys %known_backends) { @@ -76,10 +74,13 @@ MAIN: { } my %backends; if (defined $options{backends}) { - $options{backends} = 'moar,jvm,parrot' + $options{backends} = 'moar,jvm' if lc($options{backends}) eq 'all'; for my $b (split /,\s*/, $options{backends}) { $b = lc $b; + if ($b eq 'parrot') { + die "Parrot support has been suspended from Rakudo Star. Please use version 2015.02 if you need Parrot support, or otherwise the MoarVM backend.\n"; + } unless ($known_backends{$b}) { die "Unknown backend '$b'; Supported backends are: " . join(", ", sort keys %known_backends) . @@ -106,18 +107,12 @@ MAIN: { $backends{moar} = 1; $default_backend ||= 'moar'; } - if (exists $options{'gen-parrot'}) { - $backends{parrot} = 1; - $default_backend ||= 'parrot'; - } unless (%backends) { die "No suitable nqp executables found! Please specify some --backends, or a --prefix that contains nqp-{p,j,m} executables\n\n" . "Example to build for all backends (which will take a while):\n" - . "\tperl Configure.pl --backends=moar,parrot,jvm --gen-moar --gen-parrot\n\n" + . "\tperl Configure.pl --backends=moar,jvm --gen-moar\n\n" . "Example to build for MoarVM only:\n" . "\tperl Configure.pl --gen-moar\n\n" - . "Example to build for Parrot only:\n" - . "\tperl Configure.pl --gen-parrot\n\n" . "Example to build for JVM only:\n" . "\tperl Configure.pl --backends=jvm --gen-nqp\n\n"; } @@ -171,37 +166,6 @@ MAIN: { my @errors; my %errors; - if ($backends{parrot}) { - my %nqp_config; - if ($impls{parrot}{config}) { - %nqp_config = %{ $impls{parrot}{config} }; - } - else { - push @errors, "Cannot obtain configuration from NQP on parrot"; - } - - my $nqp_have = $nqp_config{'nqp::version'} || ''; - if ($nqp_have && cmp_rev($nqp_have, $nqp_want) < 0) { - push @errors, "NQP revision $nqp_want required (currently $nqp_have)."; - } - - if (!@errors) { - push @errors, verify_install([ @NQP::Configure::required_parrot_files, - @NQP::Configure::required_nqp_files ], - %config, %nqp_config); - push @errors, - "(Perhaps you need to 'make install', 'make install-dev',", - "or install the 'devel' package for NQP or Parrot?)" - if @errors; - } - - $errors{parrot}{'no gen-nqp'} = @errors && !defined $options{'gen-nqp'}; - - unless (@errors) { - %config = (%nqp_config, %config); - print "Using $impls{parrot}{bin} (version $nqp_config{'nqp::version'}).\n"; - } - } if ($backends{jvm}) { $config{j_nqp} = $impls{jvm}{bin}; $config{j_nqp} =~ s{/}{\\}g if $^O eq 'MSWin32'; @@ -244,16 +208,12 @@ MAIN: { } } - if ($errors{parrot}{'no gen-nqp'} || $errors{jvm}{'no gen-nqp'} || $errors{moar}{'no gen-nqp'}) { + if ($errors{jvm}{'no gen-nqp'} || $errors{moar}{'no gen-nqp'}) { my @options_to_pass; - push @options_to_pass, "--gen-parrot" if $backends{parrot}; push @options_to_pass, "--gen-moar" if $backends{moar}; push @options_to_pass, "--gen-nqp" unless @options_to_pass; my $options_to_pass = join ' ', @options_to_pass; - my $want_executables = $backends{parrot} && $backends{moar} - ? ', Parrot and MoarVM' - : $backends{parrot} - ? ' and Parrot' + my $want_executables = : $backends{moar} ? ' and MoarVM' : ''; @@ -303,19 +263,12 @@ Configure.pl - $lang Configure General Options: --help Show this text --prefix=dir Install files in dir; also look for executables there - --backends=parrot,jvm,moar + --backends=jvm,moar Which backend(s) to use --gen-moar[=branch] Download and build a copy of MoarVM --gen-nqp[=branch] Download and build a copy of NQP - --gen-parrot[=branch] - Download and build a copy of Parrot - --parrot-option='--option' - Options to pass to Parrot's Configure.pl - --parrot-make-option='--option' - Options to pass to Parrot's make, for example: - --parrot-make-option='--jobs=4' --makefile-timing Enable timing of individual makefile commands Configure.pl also reads options from 'config.default' in the current directory. diff --git a/README b/README index 7b8b13c..37138bb 100644 --- a/README +++ b/README @@ -8,14 +8,14 @@ License Information ------------------- Rakudo Star is distributed under the terms of the Artistic License 2.0. This distribution contains software collected from other sources; see the -individual source subdirectories (in parrot/, rakudo/, MoarVM/ and modules/) +individual source subdirectories (in rakudo/, MoarVM/ and modules/) for copyright and licensing information of those components. Overview -------- -The Rakudo Perl 6 compiler can target MoarVM, the JVM, and the Parrot -Virtual Machine. Rakudo Star fully supports MoarVM and Parrot; not all -modules work on the JVM at present. You can choose to build and install +The Rakudo Perl 6 compiler can target MoarVM and the JVM. Rakudo Star +fully supports MoarVM; not all modules work on the JVM at present. +You can choose to build and install Rakudo for one or more of these virtual machines at configure time. @@ -40,45 +40,21 @@ above is suggested. JDK8, if available, is better still. The build can complete within a gigabyte of memory. -Build Prerequisites for Rakudo on Parrot ----------------------------------------- -To build Rakudo Star on Parrot you need at least a 'make' utility, a C -compiler, and Perl 5.10.0 or newer. You probably also want a machine with -a fair amount of memory available: 1GB is known to be too small for -building Rakudo on Parrot, while 2GB is generally known to be sufficient. - -In order to fully support Unicode, you'll also want to have the ICU -library installed (http://site.icu-project.org/). Rakudo can run -without ICU, but some Unicode-related features will not work properly. - -On Debian GNU/Linux or Ubuntu Linux, the necessary components -for building Rakudo can be installed via the command - - aptitude install build-essential libicu-dev openjdk-7-jdk - -Readline support also requires the "libreadline-dev" library. - -On RedHat/Fedora/CentOS, the components can be installed with - - yum groupinstall development-tools - yum install libicu-devel readline-devel - Configuring Rakudo Star ----------------------- The easiest way to build Rakudo Star for a particular backend is: $ perl Configure.pl --backend=moar --gen-moar # MoarVM - $ perl Configure.pl --backend=parrot --gen-parrot # Parrot $ perl Configure.pl --backend=jvm --gen-nqp # JVM You can also build for all backends: - $ perl Configure.pl --backend=parrot,jvm,moar --gen-parrot --gen-moar + $ perl Configure.pl --backend=jvm,moar --gen-moar -Note that --gen-parrot automatically builds a Parrot for you, and ---gen-moar does likewise. Both imply --gen-nqp, which builds NQP, a -subset of Perl 6 that is used to implemented Rakudo. +Note that --gen-moar automatically builds a MOarVM for you, and implies +--gen-nqp, which builds NQP, a subset of Perl 6 that is used to implement +Rakudo. Configure this way, one or more Perl 6 executable and selected Perl 6 modules will be installed into the install/ subdirectory, which @@ -94,12 +70,6 @@ After configuration, build Rakudo Star with: $ make $ make install -On some 64-bit systems Parrot installation reports the lack of, -or an incomplete ICU installation. It may be required to add -a symlink to help Parrot find the ICU library: - - # ln -s /usr/include/x86_64-linux-gnu/unicode /usr/include/unicode - Once Rakudo Star is installed, you can run Perl 6 programs by doing: $ ./perl6 hello.pl @@ -143,7 +113,7 @@ resources for Perl 6 development, and is generally the starting point for information about Perl 6. There are several mailing lists, IRC channels, and wikis available -with help for Perl 6 and Rakudo on Parrot. Figuring out the right +with help for Perl 6 and Rakudo. Figuring out the right one to use is often the biggest battle. Here are some rough guidelines: @@ -154,12 +124,10 @@ for the people who want to use Perl 6 to write programs, as opposed to those who are implementing or developing the Perl 6 language itself. -Questions about the Rakudo compiler for Parrot and the Parrot compiler -tools can go to perl6-compiler@perl.org. Discussion about Parrot itself -generally takes place on parrot-dev@lists.parrot.org. +Questions about the Rakudo compiler can go to perl6-compiler@perl.org. -The Rakudo and Parrot development teams tend to hang out on IRC a fair -bit, on irc.freenode.net/#perl6 and irc.parrot.org/#parrot, respectively. +The Rakudo and MoarVM development teams tend to hang out on IRC a fair +bit, on irc.freenode.net/#perl6 and irc.freenode.net/#moarvm, respectively. Rakudo's official web site is http://rakudo.org/ , where you can find useful information for developers and users alike. diff --git a/docs/cheatsheet.txt b/docs/cheatsheet.txt index 8b8d104..baf51a8 100644 --- a/docs/cheatsheet.txt +++ b/docs/cheatsheet.txt @@ -46,7 +46,7 @@ or xor Stringy: eq !eq(ne) ~ lt gt leg le ge ObjectID: === !=== METAOPERATORS LINKS IRC [op] reduce listop to A op B op C... perl6.org #perl6 irc.freenode.net -op= A = A op B rakudo.org #parrot irc.perl.org +op= A = A op B rakudo.org #moarvm irc.freenode.net !op !(A op B) »op« hyper/vectorize REGEX METACHARS REGEX MODIFIERS Zop zip with op ^ $ string begin/end :i ignore case diff --git a/tools/build/Makefile.in b/tools/build/Makefile.in index 2dd3013..2919d5e 100644 --- a/tools/build/Makefile.in +++ b/tools/build/Makefile.in @@ -1,6 +1,5 @@ # Copyright (C) 2006-2014, The Perl Foundation. -PARROT_DIR = parrot MOAR_DIR = moarvm NQP_DIR = nqp RAKUDO_DIR = rakudo @@ -9,11 +8,6 @@ STAR_VERSION = 2015.02 # install location PREFIX_DIR = @prefix@ -# values from parrot_config -PARROT_BIN_DIR = @bindir@ -PARROT_VERSION = @versiondir@ -PARROT_LIB_DIR = @libdir@$(PARROT_VERSION) - # JVM install location JVM_BIN_DIR = $(PREFIX_DIR)/bin @@ -28,10 +22,6 @@ RM_F = $(PERL) -MExtUtils::Command -e rm_f MKPATH = $(PERL) -MExtUtils::Command -e mkpath CHMOD = $(PERL) -MExtUtils::Command -e chmod -PERL6_P_EXE = perl6-p$(EXE) -PERL6_P_LANG_DIR = $(PARROT_LIB_DIR)/languages/perl6 -PERL6_P_INSTALL = $(PARROT_BIN_DIR)/$(PERL6_P_EXE) - PERL6_J_EXE = perl6-j$(BAT) PERL6_J_LANG_DIR = $(PREFIX_DIR)/languages/perl6 PERL6_J_INSTALL = $(JVM_BIN_DIR)/$(PERL6_J_EXE) @@ -62,17 +52,9 @@ rakudo-install: rakudo cd $(RAKUDO_DIR) && $(MAKE) install $(CP) $(DESTDIR)@default_backend_exe@ $(PERL6_EXE) $(CHMOD) 755 $(PERL6_EXE) - @win32_libparrot_copy@ modules-install: @backend_modules_install@ -modules-install-p: - @echo "== Installing modules for Parrot" - $(PERL) tools/build/module-install.pl $(DESTDIR)$(PERL6_P_INSTALL) $(DESTDIR)$(PERL6_P_LANG_DIR)/lib pir pir $(MODULES) - @echo "== Installing binaries for Parrot" - $(PERL) tools/build/bin-install.pl $(PERL6_P_INSTALL) $(DESTDIR)$(PARROT_BIN_DIR) p modules/ufo/bin/ufo modules/panda/bin/panda modules/doc/bin/p6doc - $(PERL) tools/build/bin-install.pl $(PERL6_P_INSTALL) $(DESTDIR)$(PARROT_BIN_DIR) p modules/ufo/bin/ufo modules/panda/bin/panda modules/doc/bin/p6doc-index - modules-install-j: @echo "== Installing modules for JVM" $(PERL) tools/build/module-install.pl $(DESTDIR)$(PERL6_J_INSTALL) $(DESTDIR)$(PERL6_J_LANG_DIR)/lib jar jar $(MODULES) @@ -90,11 +72,6 @@ modules-install-m: modules-test: @backend_modules_test@ verbose-modules-test: @backend_modules_test@ -modules-test-p: - $(PERL) tools/build/modules-test.pl $(CURDIR) $(DESTDIR)$(PERL6_P_INSTALL) $(MODULES) -verbose-modules-test-p: - $(PERL) tools/build/modules-test.pl --verbose $(CURDIR) $(DESTDIR)$(PERL6_P_INSTALL) $(MODULES) - modules-test-j: $(PERL) tools/build/modules-test.pl $(CURDIR) $(DESTDIR)$(PERL6_J_INSTALL) $(MODULES) verbose-modules-test-j: @@ -121,7 +98,6 @@ clean: $(RM_F) $(CLEANUPS) cd $(RAKUDO_DIR) && $(MAKE) clean cd $(NQP_DIR) && $(MAKE) clean - cd $(PARROT_DIR) && $(MAKE) clean distclean: realclean @@ -129,15 +105,11 @@ realclean: clean $(RM_F) Makefile cd $(RAKUDO_DIR) && $(MAKE) realclean cd $(NQP_DIR) && $(MAKE) realclean - cd $(PARROT_DIR) && $(MAKE) realclean configclean: $(RM_F) $(CLEANUPS) cd $(NQP_DIR) && $(MAKE) clean -configclean-p: - cd $(PARROT_DIR) && $(MAKE) clean - configclean-j: configclean-m: @@ -173,7 +145,7 @@ perlcritic: perlcritic -1 --profile tools/util/perlcritic.conf $(CRITIC_FILES) msi: - -$(CP) c:/strawberry/c/bin/libgcc_s_sjlj-1.dll $(PARROT_BIN_DIR) + -$(CP) c:/strawberry/c/bin/libgcc_s_sjlj-1.dll cmd /c heat dir $(PREFIX_DIR) -gg -sfrag -cg RakudoStar -dr INSTALLROOT -srd -out star-files.wxs cmd /c candle star-files.wxs cmd /c candle -dSTARVERSION=$(STAR_VERSION) tools/build/star-product.wxs diff --git a/tools/lib/NQP/Configure.pm b/tools/lib/NQP/Configure.pm index a860cd4..664f63f 100644 --- a/tools/lib/NQP/Configure.pm +++ b/tools/lib/NQP/Configure.pm @@ -7,34 +7,23 @@ use File::Copy qw(copy); use base qw(Exporter); our @EXPORT_OK = qw(sorry slurp system_or_die cmp_rev - read_parrot_config read_config + read_config fill_template_file fill_template_text git_checkout verify_install gen_moar - gen_nqp gen_parrot); + gen_nqp ); our $exe = $^O eq 'MSWin32' ? '.exe' : ''; our $bat = $^O eq 'MSWin32' ? '.bat' : ''; -our @required_parrot_files = qw( - @bindir@/parrot@exe@ - @bindir@/pbc_to_exe@exe@ - @bindir@/@ops2c@@exe@ - @libdir@@versiondir@/tools/build/pmc2c.pl - @srcdir@@versiondir@/pmc - @includedir@@versiondir@/pmc -); - our @required_nqp_files = qw( @bindir@/nqp-p@exe@ ); our $nqp_git = 'http://github.com/perl6/nqp.git'; -our $par_git = 'http://github.com/parrot/parrot.git'; our $moar_git= 'https://github.com/MoarVM/MoarVM.git'; our $nqp_push = 'git@github.com:perl6/nqp.git'; -our $par_push = 'git@github.com:parrot/parrot.git'; our $moar_push= 'git@github.com:MoarVM/MoarVM.git'; sub sorry { @@ -100,57 +89,6 @@ sub read_config { } -sub read_parrot_config { - my @parrot_config_src = @_; - my %config = (); - open my $CONFIG_PIR, '>', 'parrot-config.pir' - or die "Unable to write parrot-config.pir\n"; - print $CONFIG_PIR <<'END'; - .include 'iglobals.pasm' - .sub "main" :main - .local pmc interp, config_hash, config_iter - interp = getinterp - config_hash = interp[.IGLOBALS_CONFIG_HASH] - config_iter = iter config_hash - config_loop: - unless config_iter goto config_done - $P0 = shift config_iter - print "parrot::" - $S0 = $P0.'key'() - print $S0 - print "=" - $S0 = $P0.'value'() - print $S0 - print "\n" - goto config_loop - config_done: - .return () - .end -END - close($CONFIG_PIR); - - for my $file (@parrot_config_src) { - no warnings; - if ($file =~ /.pir$/ && open my $PARROT_CONFIG, '<', $file) { - while (<$PARROT_CONFIG>) { - if (/P0\["(.*?)"\], "(.*?)"/) { $config{"parrot::$1"} = $2 } - } - close($PARROT_CONFIG) or die $!; - } - elsif (open my $PARROT, '-|', "\"$file\" parrot-config.pir") { - while (<$PARROT>) { - if (/^([\w:]+)=(.*)/) { $config{$1} = $2 } - } - close($PARROT); - } - last if %config; - } - unlink('parrot-config.pir'); - $config{'parrot::ops2c'} ||= 'ops2c'; - return %config; -} - - sub fill_template_file { my $infile = shift; my $outfile = shift; @@ -190,8 +128,8 @@ sub fill_template_text { $str; }; - $text =~ s/@@([:\w]+)@@/$escape->($config{$1} || $config{"parrot::$1"} || '')/ge; - $text =~ s/@([:\w]+)@/$config{$1} || $config{"parrot::$1"} || ''/ge; + $text =~ s/@@([:\w]+)@@/$escape->($config{$1} || '')/ge; + $text =~ s/@([:\w]+)@/$config{$1} || ''/ge; if ($text =~ /nqp::makefile/) { if ($^O eq 'MSWin32') { $text =~ s{/}{\\}g; @@ -278,7 +216,6 @@ sub gen_nqp { my $backends = $options{'backends'}; my $gen_nqp = $options{'gen-nqp'}; my $gen_moar = $options{'gen-moar'}; - my $gen_parrot = $options{'gen-parrot'}; my $prefix = $options{'prefix'} || cwd().'/install'; my $startdir = cwd(); @@ -287,27 +224,6 @@ sub gen_nqp { my (%impls, %need); - if ($backends =~ /parrot/) { - my %c = read_parrot_config("$prefix/bin/parrot"); - - if (%c) { - my $bin = fill_template_text('@bindir@/nqp-p@ext@', %c); - $impls{parrot}{bin} = $bin; - %c = read_config($bin); - $impls{parrot}{config} = \%c; - my $nqp_have = $c{'nqp::version'}; - my $nqp_ok = $nqp_have && cmp_rev($nqp_have, $nqp_want) >= 0; - if ($nqp_ok) { - $impls{parrot}{ok} = 1; - } - else { - $need{parrot} = 1; - } - } - else { - $need{parrot} = 1; - } - } for my $b (qw/jvm moar/) { if ($backends =~ /$b/) { my $postfix = substr $b, 0, 1; @@ -328,25 +244,17 @@ sub gen_nqp { return %impls unless %need; - if (defined $gen_nqp || defined $gen_parrot || defined $gen_moar) { + if (defined $gen_nqp || defined $gen_moar) { git_checkout($nqp_git, 'nqp', $nqp_want, $nqp_push); } - if ($need{parrot} && defined $gen_parrot) { - my ($par_want) = split(' ', slurp($PARROT_REVISION)); - my $parrot = gen_parrot($par_want, %options, prefix => $prefix); - my %c = read_parrot_config($parrot); - $impls{parrot}{bin} = fill_template_text('@bindir@/nqp-p@ext@', %c); - $impls{parrot}{config} = \%c; - } - if ($need{moar} && defined $gen_moar) { my ($moar_want) = split(' ', slurp($MOAR_REVISION)); my $moar = gen_moar($moar_want, %options, prefix => $prefix); $impls{moar}{bin} = "$prefix/bin/nqp-m$bat"; } - return %impls unless defined($gen_nqp) || defined($gen_parrot) || defined($gen_moar); + return %impls unless defined($gen_nqp) || defined($gen_moar); my $backends_to_build = join ',', sort keys %need; my @cmd = ($^X, 'Configure.pl', "--prefix=$prefix", @@ -367,68 +275,6 @@ sub gen_nqp { return %impls; } - -sub gen_parrot { - my $par_want = shift; - my %options = @_; - - my $prefix = $options{'prefix'} || cwd()."/install"; - my $gen_parrot = $options{'gen-parrot'}; - my @opts = @{ $options{'parrot-option'} || [] }; - push @opts, "--optimize"; - my $startdir = cwd(); - - my $par_exe = "$options{'prefix'}/bin/parrot$exe"; - my %config = read_parrot_config($par_exe); - - my $par_have = $config{'parrot::git_describe'} || ''; - my $par_ok = $par_have && cmp_rev($par_have, $par_want) >= 0; - if ($gen_parrot) { - my $par_repo = git_checkout($par_git, 'parrot', $gen_parrot, $par_push); - $par_ok = $par_have eq $par_repo; - } - elsif (!$par_ok) { - git_checkout($par_git, 'parrot', $par_want, $par_push); - } - - if ($par_ok) { - print "$par_exe is Parrot $par_have.\n"; - return $par_exe; - } - chdir("$startdir/parrot") or die $!; - if (-f 'Makefile') { - %config = read_parrot_config('config_lib.pir'); - my $make = $config{'parrot::make'}; - if ($make) { - print "\nPerforming '$make realclean' ...\n"; - system_or_die($make, 'realclean'); - } - } - - $prefix =~ s{\\}{/}g; - - print "\nConfiguring Parrot ...\n"; - my @cmd = ($^X, "Configure.pl", @opts, "--prefix=$prefix"); - print "@cmd\n"; - system_or_die(@cmd); - - print "\nBuilding Parrot ...\n"; - %config = read_parrot_config('config_lib.pir'); - my $make = $config{'parrot::make'} or - die "Unable to determine value for 'make' from parrot config\n"; - system_or_die($make, 'install-dev'); - chdir($startdir); - - # That is a hack to get the import-lib in place. Parrot seems unpatchable because - # its static build shares the same libname as the import-lib. - if (-e "$startdir/parrot/libparrot.lib" && !-e "$startdir/install/bin/libparrot.lib") { - copy("$startdir/parrot/libparrot.lib", "$startdir/install/bin/libparrot.lib"); - } - - print "Parrot installed.\n"; - return fill_template_text('@bindir@/parrot@exe@', %config); -} - sub gen_moar { my $moar_want = shift; my %options = @_; diff --git a/tools/star/Makefile b/tools/star/Makefile index 209251a..29eb982 100644 --- a/tools/star/Makefile +++ b/tools/star/Makefile @@ -1,6 +1,5 @@ RAKUDO_VER = 2015.02 NQP_VER = 2015.02 -PARROT_VER = 6.10.0 MOAR_VER = 2015.02 STAR_REL = rakudo-star-$(VERSION) @@ -14,9 +13,6 @@ RAKUDO_SRC = $(SRC_DIR)/$(RAKUDO_TGZ) NQP_TGZ = nqp-$(NQP_VER).tar.gz NQP_URL = http://rakudo.org/downloads/nqp/$(NQP_TGZ) NQP_SRC = $(SRC_DIR)/$(NQP_TGZ) -PARROT_TGZ = parrot-$(PARROT_VER).tar.gz -PARROT_URL = http://ftp.parrot.org/releases/all/$(PARROT_VER)/$(PARROT_TGZ) -PARROT_SRC = $(SRC_DIR)/$(PARROT_TGZ) MOAR_TGZ = MoarVM-$(MOAR_VER).tar.gz MOAR_URL = http://www.moarvm.org/releases/$(MOAR_TGZ) MOAR_SRC = $(SRC_DIR)/$(MOAR_TGZ) @@ -25,7 +21,7 @@ PERL = perl PREFIX = $(PERL) $(CURDIR)/tools/star/prefix.pl WGET = wget --no-check-certificate -all: rakudo nqp parrot moar manifest +all: rakudo nqp moar manifest always: @@ -36,20 +32,13 @@ $(RAKUDO_SRC): mkdir -p $(SRC_DIR) $(WGET) $(RAKUDO_URL) -O $(RAKUDO_SRC) -nqp: parrot moar $(NQP_SRC) +nqp: moar $(NQP_SRC) tar --xform 's!nqp-[^/]*!nqp!' -xvzf $(NQP_SRC) $(NQP_SRC): mkdir -p $(SRC_DIR) $(WGET) $(NQP_URL) -O $(NQP_SRC) -parrot: $(PARROT_SRC) - tar --xform 's!parrot-[^/]*!parrot!' -xvzf $(PARROT_SRC) - -$(PARROT_SRC): - mkdir -p $(SRC_DIR) - $(WGET) $(PARROT_URL) -O $(PARROT_SRC) - moar: $(MOAR_SRC) tar --xform 's!MoarVM-[^/]*!MoarVM!' -xvzf $(MOAR_SRC) @@ -68,7 +57,6 @@ manifest: modules/DBIish/lib $(PREFIX) rakudo/ rakudo/MANIFEST >>MANIFEST $(PREFIX) nqp/ nqp/MANIFEST >>MANIFEST $(PREFIX) MoarVM/ MoarVM/MANIFEST >>MANIFEST - cut -d' ' -f1 parrot/MANIFEST | $(PREFIX) parrot/ >>MANIFEST git submodule foreach --quiet 'git ls-files | $(PREFIX) $$path/' >>MANIFEST grep -v -f tools/star/MANIFEST.exclude MANIFEST >MANIFEST.1 $(PERL) -n -e 'chomp; -f && print "$$_\n"' MANIFEST.1 >MANIFEST diff --git a/tools/star/release-guide.pod b/tools/star/release-guide.pod index 20f8153..da3026e 100644 --- a/tools/star/release-guide.pod +++ b/tools/star/release-guide.pod @@ -8,7 +8,7 @@ varies from one release to the next. Also, while the Rakudo compiler issues monthly releases; Star releases are free to choose a longer release cycle. Star releases are also free to choose older releases of the compiler, NQP, and/or -Parrot. The goal is to balance end-user stability needs with +MoarVM. The goal is to balance end-user stability needs with progress being made on the compiler, modules, and other runtime components. Currently Star is on a monthly release cycle; we expect to slow down to quarterly releases again sometime in the @@ -57,13 +57,12 @@ reports a clean repository. Change to the star repository directory, and edit the first four lines of F to indicate the desired releases of -Rakudo, NQP, MoarVM, and Parrot to use. +Rakudo, NQP and MoarVM to use. Usually that means the last Rakudo release, the NQP version that is in the released Rakudo's F file, the MoarVM version that is in the F file that is included in the NQP -release, and the Parrot version in the F file -that is include in the NQP release. +release. $ cd star $ vi tools/star/Makefile @@ -154,7 +153,7 @@ Unpack the tarball somewhere else, and do a test build/install: $ cd work $ tar xvfz ../rakudo-star-2012.08.tar.gz $ cd rakudo-star-2012.08 - $ perl Configure.pl --gen-parrot + $ perl Configure.pl --gen-moar $ make install $ make rakudo-test $ make rakudo-spectest @@ -198,8 +197,6 @@ Publicize the release in the appropriate places. These include: =item * perl6-compiler@perl.org -=item * parrot-users@lists.parrot.org - =item * http://en.wikipedia.org/wiki/Rakudo_Perl_6 =item * http://en.wikipedia.org/wiki/Perl_6 -- cgit v1.1