diff options
author | Moritz Lenz <moritz@faui2k3.org> | 2015-03-20 11:05:55 +0100 |
---|---|---|
committer | Moritz Lenz <moritz@faui2k3.org> | 2015-03-20 11:05:55 +0100 |
commit | 79d97523251307d60c6b88832c617dc50e7ed228 (patch) | |
tree | 79e9bea3e850945db9fd8c5cdc99812f5e0bcce8 /tools | |
parent | a08a24a0e7a23099655b570200e82a44d4f1a49d (diff) | |
parent | 3be6a386b5745cf1aa7554b1ff550be2b1032aa6 (diff) |
Merge branch 'birdless'
Diffstat (limited to 'tools')
-rw-r--r-- | tools/build/Makefile.in | 30 | ||||
-rw-r--r-- | tools/lib/NQP/Configure.pm | 166 | ||||
-rw-r--r-- | tools/star/Makefile | 16 | ||||
-rw-r--r-- | tools/star/release-guide.pod | 11 |
4 files changed, 13 insertions, 210 deletions
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 79644a2..d462ce5 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<tools/star/Makefile> 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<tools/build/NQP_REVISION> file, the MoarVM version that is in the F<tools/build/MOAR_REVISION> file that is included in the NQP -release, and the Parrot version in the F<tools/build/PARROT_REVISION> 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 @@ -206,8 +205,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 |