diff --git a/scripts/build.pl b/scripts/build.pl index 7130de0..78340dc 100755 --- a/scripts/build.pl +++ b/scripts/build.pl @@ -10,15 +10,14 @@ use lib $FindBin::Bin; use Util; use TUI; +use POSIX qw(strftime); use feature 'say'; -my $date = Util::date_now; - my $local_root = '/home/christoph/Notes/TU/MastersThesis/FailNix'; my $local_builds_dir = "$local_root/builds"; my $local_experiments_dir = "$local_root/targets/wasm-module"; my $justbin = "$local_root/just-bin/just"; -my $justfile = "$local_root/scripts/nixos.just"; +my $justfile = "$local_root/scripts/build.just"; my @targets = ( "fail", "linux", "linux-baremetal" ); my @modes = ( "c", "aot", "interp" ); @@ -27,6 +26,7 @@ sub just { say "Running: just @_..."; system("$justbin -d $local_root -f $justfile @_") and die "Build failed"; + sleep(1); } # Find and select experiments @@ -46,13 +46,13 @@ my @selected_modes = die "No mode selected" unless @selected_modes; # Select WAMR mmap variant -my @wamr_variants = ( "no .wamr_mmap", ".wamr_mmap" ); +my @wamr_variants = ( "Locate mmap_space in .text.wamr_mmap", "Let the compiler decide where mmap_space is located" ); my @selected_variants = TUI::select_from_list( "Select WAMR mmap Variant", 1, @wamr_variants ); die "No variant selected" unless @selected_variants; # Select XIP variant -my @xip_variants = ( "no --xip", "--xip" ); +my @xip_variants = ( "Compile AOT with --xip", "Compile AOT without --xip" ); my @selected_xip_variants = TUI::select_from_list( "Select WAMRC XIP Variant", 1, @xip_variants ); die "No XIP variant selected" unless @selected_xip_variants; @@ -62,8 +62,9 @@ my $info = join " ", TUI::select_from_list( "Select '0.info' Contents for ", 1, "baseline", "--catch-outer", "--catch-text", - # ".wamr_mmap", - ".wamr_aot", + "wamr_aot", + # "wamr_mmap", + # "--xip", )); # Build everything @@ -75,21 +76,24 @@ foreach my $experiment (@selected_experiments) { foreach my $variant (@selected_variants) { foreach my $xip_variant (@selected_xip_variants) { # These variables control which libiwasm and wamrc flags are used - local $ENV{WAMR_USE_MMAP} = ( $variant eq ".wamr_mmap" ) ? "true" : "false"; - local $ENV{WAMR_USE_XIP} = ( $xip_variant eq "--xip" ) ? "true" : "false"; + local $ENV{WAMR_USE_MMAP} = ( $variant eq "Locate mmap_space in .text.wamr_mmap" ) ? "true" : "false"; + local $ENV{WAMR_USE_XIP} = ( $xip_variant eq "Compile AOT with --xip" ) ? "true" : "false"; + my $date = strftime("%m-%d_%H-%M-%S", localtime); just( "build", $experiment, $target, $mode ); - my $mmap = $variant eq ".wamr_mmap" ? ".wamr_mmap" : ""; - my $xip = $xip_variant eq "--xip" ? "--xip" : ""; + my $mmap = $variant eq "Locate mmap_space in .text.wamr_mmap" ? "mmap" : ""; + my $xip = $xip_variant eq "Compile AOT with --xip" ? "xip" : ""; system( "echo '$mode $mmap $info $xip' > $local_root/build-$experiment/0.info" ); + my $mmap_name = $mmap eq "mmap" ? "_mmap" : ""; + my $xip_name = $xip eq "xip" ? "_xip" : ""; system( join " ", ( "mv", "$local_root/build-$experiment", - "$local_builds_dir/${date}_$experiment-$target-$mode", + "$local_builds_dir/${date}_${experiment}_${target}_${mode}${mmap_name}${xip_name}", ) ); }