Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reorganize shootout benchmarks into a single directory #260

Merged
merged 10 commits into from
Jul 7, 2023

Commits on Jun 30, 2023

  1. Move all shootout benchmarks into a single directory

    Now that bytecodealliance#251 and bytecodealliance#256 make it possible for more than one benchmark to
    live in a single directory, this change moves all of the shootout
    artifacts into a single directory. This simply performs the file
    movement; subsequent commits will make necessary tweaks.
    abrown committed Jun 30, 2023
    Configuration menu
    Copy the full SHA
    955eade View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1885f51 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2023

  1. Enable native benchmarking in new shootout directory

    This change refactors how the shootout native benchmarks are built. The
    `Dockerfile.native` file is retained and is expected to be _the_ way to
    build the native shared libraries for this kind of benchmarking. A
    `build-native.sh` script is included in the directory to (a) be used by
    `Dockerfile.native` and (b) for building the native benchmarks in
    environments where running Docker may not be possible.
    
    Now that all of the benchmarks are built in one directory, the native
    libraries cannot all be named `benchmark.so`. Because of this and the
    hard-coded path expected by the native engine (see bytecodealliance#259), this change
    also modifies the associated `*-native.sh` scripts to set up a temporary
    directory that looks like the `benchmark.so` environment that was there
    previously. This additional logic could be removed once bytecodealliance#259 is fixed.
    abrown committed Jul 5, 2023
    Configuration menu
    Copy the full SHA
    069e089 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2023

  1. Remove the original shootout-* directories

    These are all migrated over to be a part of the single `shootout`
    directory.
    abrown committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    39ac022 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4fa4458 View commit details
    Browse the repository at this point in the history
  3. Update ackermann to use new *.input paths

    The new file structure for `shootout` now expects these paths to look
    like `shootout-ackermann.*.input`.
    abrown committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    7aa543c View commit details
    Browse the repository at this point in the history
  4. Fix heapsort allocation

    When we allocate the array to sort, we should do so with items of size
    `double` (64 bits) instead of `double*` (32 bits in WebAssembly). I am
    very confused as to why this benchmark worked previously, but when I
    recompiled it prior to this change, it would invariably fail due to
    accessing addresses beyond the memory bounds.
    abrown committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    8b9855b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    84a3621 View commit details
    Browse the repository at this point in the history
  6. Tweak native scripts

    This change fixes some issues highlighted by CI:
    - it adds more verbose output to see which commands are executed
    - it improves the documentation to clarify how to use certain flags
    - it fixes slight mistakes in the scripts missed by previous refactoring
    - and, __most especially__, it alters the order of the parameters passed
      to compile the native libraries.
    
    This last change is indicative of the fragility of the native
    benchmarks: apparently moving `-lengine` to the end was necessary for
    the linker to understand which library provides `bench_start` and
    `bench_end`.
    abrown committed Jul 6, 2023
    Configuration menu
    Copy the full SHA
    dd76047 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2023

  1. Update documentation

    Now that `Dockerfile.native` relies on a script, `build-native.sh`,
    instead of the Cargo build system, the documentation for building native
    libraries has to change.
    abrown committed Jul 7, 2023
    Configuration menu
    Copy the full SHA
    9b6f718 View commit details
    Browse the repository at this point in the history