#!/usr/bin/env raku sub MAIN($release, Bool :$update-changelog = True, Bool :$update-version = True, Bool :$check-git-status = True) { if $check-git-status { unless run() and run() { say "git status is not clean"; exit 1; } } my $changelog-file = "docs/ChangeLog".IO; my $changelog = $changelog-file.open(:r); my @changelog-lines = $changelog.lines; my $old-version = 'VERSION'.IO.slurp.chomp; if $update-changelog { my @lines = get-commits($old-version, :subject); $changelog = $changelog-file.open(:w); $changelog.put: "New in $release\n"; $changelog.put: "+ $_" for @lines; $changelog.put: ''; $changelog.put: @changelog-lines.join: "\n"; } else { for get-commits($old-version) -> $commit { my @files = run(<>, :out).out.lines; for @files -> $file { next if $file eq 'VERSION'|'docs/ChangeLog'; say "Commit {run(<>, :out).out.slurp.chomp} not logged" unless any(@changelog-lines) ~~ /$commit/; } } } if $update-version { "VERSION".IO.spurt: $release; run ; run ; run 'make', 'release', "VERSION=$release"; } my $builddir = $*TMPDIR.child("moarvm-release-test-{(^2**128).pick.base(36)}"); say "Building in $builddir"; $builddir.IO.mkdir; "$builddir/install".IO.mkdir; run <>; run <>; %*ENV = $*KERNEL.cpu-cores; indir $builddir, { run ; indir "nqp".IO, { run <>; run ; run ; }; run ; indir "rakudo".IO, { run <>; run ; run ; run ; } }; my $debug-nfg-patch = q:to/PATCH/; diff --git a/src/strings/ops.h b/src/strings/ops.h index 5cdb3d355..fd20f1d50 100644 --- a/src/strings/ops.h +++ b/src/strings/ops.h @@ -142 +142 @@ char * MVM_string_encoding_cname(MVMThreadContext *tc, MVMint64 encoding); -#define MVM_DEBUG_NFG 0 +#define MVM_DEBUG_NFG 1 @@ -145 +145 @@ char * MVM_string_encoding_cname(MVMThreadContext *tc, MVMint64 encoding); -#define MVM_DEBUG_NFG_STRICT 0 +#define MVM_DEBUG_NFG_STRICT 1 PATCH run(, :in).in.spurt: $debug-nfg-patch, :close; run <>; indir "$builddir/rakudo".IO, { run ; run ; } run(, :in).in.spurt: $debug-nfg-patch, :close; run <>; } sub get-commits($old-version, :$subject) { run( 'git', 'log', '--reverse', '--no-merges', $subject ?? '--pretty=format:[%h] %s' !! '--pretty=format:%h', "$old-version..HEAD", :out, ).out.lines }