# New Ticket Created by  gfw blackcat 
# Please include the string:  [perl #131758]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=131758 >


Start a running script with old rakudo(2017.06), then update rakudo
version(2017.07).

The script raised an exception when exit.


* *Command*:

$ ./setup-new-coding cpp MEM 54 "Provide placement new with properly
aligned pointers to sufficient storage capacity"

** Before update output*:

Success create directory
MEM54-CPP-Provide-placement-new-with-properly-aligned-pointers-to-sufficient-storage-capacity.
Create main.cpp.

** After update output, then quit from emacs*:

Unhandled exception: const_n32 NYI
at SeekFromEnd:9154 (/usr/share/perl6/runtime/CORE.setting.moarvm:)
from acosh:9154 (/usr/share/perl6/runtime/CORE.setting.moarvm:)
from localhost:9154
(/usr/share/perl6/runtime/CORE.setting.moarvm:THREAD-ENTRY)


*setup-new-coding source*:

#!/usr/bin/env perl6

sub touch(IO::Path:D $path) {
with $path.open(:w) {
.close;
return True;
}
False;
}

sub prompt(Str $str) {
say $str;
}

sub run-emacs(IO::Path:D $path) {
my $proc = Proc::Async.new('emacs', '-nw', $path.path);

await $proc.start;
}

proto MAIN(Str , Str , Str , Str ) { * }

multi MAIN(
'cpp',
$rule,
$id,
$descripte
) {
my $dir = "{$rule}{$id}-CPP-" ~ $descripte.subst(/\s+/, "-", :g);

if $dir.IO.mkdir() -> $dp {
prompt "Success create directory {$dir.path}.";
if $dp.add("main.cpp").&touch {
prompt "Create main.cpp.";
run-emacs $dp;
}
} else {
fail "Create directory failed: $!";
}
}

multi MAIN(
'c',
$rule,
$id,
$descripte
) {
my $dir = "{$rule}{$id}-C-" ~ $descripte.subst(/\s+/, "-", :g);

if $dir.IO.mkdir() -> $dp {
prompt "Success create directory {$dir.path}.";
if $dp.add("main.c").&touch {
prompt "Create main.c.";
run-emacs $dp;
}
} else {
fail "Create directory failed: $!";
}
}

Reply via email to