[swift-users] Running benchmarks?

Michael Gottesman mgottesman at apple.com
Sat Mar 5 00:50:04 CST 2016

> On Mar 3, 2016, at 2:32 PM, Lars Kotthoff via swift-users <swift-users at swift.org> wrote:
> Hi list,
> I'm trying to run the benchmarks included in the swift repository and I can't
> get it to work. I'm following the instructions at https://github.com/apple/swift/tree/master/benchmark
> build-script doesn't seem to have a --benchmark flag (unless it's different from
> the one used to build swift?).

build-script should build the benchmarks by default without needing to pass in any --benchmark flag (see the Readme).

> When I try to build them manually and run cmake
> as described, I'm getting
> CMake Error at cmake/modules/AddSwiftBenchmarkSuite.cmake:18 (message):
>  Unable to find Swift driver
> Call Stack (most recent call first):
>  CMakeLists.txt:118 (runcmd)
> After setting SWIFT_EXEC (and CLANG_EXEC, which it doesn't find automatically
> either -- this requires changing CMakeLists.txt):

This is an inadequacy in the cmake benchmark script.

> cmake -DSWIFT_EXEC=../../../build/Ninja-DebugAssert/swift-linux-x86_64/bin/swiftc -DCLANG_EXEC=../../../build/Ninja-DebugAssert/llvm-linux-x86_64/bin/clang

I imagine this is related to the benchmarks not being supported currently on linux. Patches/bug reports for both of these are welcome.

> I'm getting:
> CMake Error at CMakeLists.txt:137 (set):
>  Syntax error in cmake code at
>    /mnt/swift/swift/benchmark/CMakeLists.txt:138
>  when parsing string
>    A semicolon separated list of benchmark configurations. \
>  Available configurations: <Optlevel>_SINGLEFILE, <Optlevel>_MULTITHREADED
>  syntax error, unexpected cal_SYMBOL, expecting $end (131)
> At this point I don't know what else to try.
> How do I compile and run the benchmarks?
> Cheers,
> Lars
> _______________________________________________
> swift-users mailing list
> swift-users at swift.org
> https://lists.swift.org/mailman/listinfo/swift-users

More information about the swift-users mailing list