-
Notifications
You must be signed in to change notification settings - Fork 24
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
rebench doesn't search the path correctly #247
Comments
Sorry, ReBench runs everything in an empty environment... So, this means you'll need to configure the The one important immediate improvement would be to fix the docs to point to the semantics of environment variables: you'll need to manage them yourself. All in an effort to have configurations are reproducible as possible. But perhaps we went a little far with it... See for previous discussions and details: |
I see. Yes, that is unexpected and it did catch me off guard a bit. I can work around it by requiring the user to symlink their interpreter binaries into (e.g.) If you don't want to pass $PATH through, one thing you could do to fix this is: before any experiments are run, resolve absolute paths for all the executors that don't have a I dunno, just an idea. |
How about something like this:
Also note that we try to resolve |
IIRC, you can already acheive that effect with:
I was looking for a way to do it without requiring hardcoding (potentially) machine-specific paths. I'll leave the decision up to you, because I can certainly work around this. |
While this might be more user-friendly, I don't think this is in the spirit of making configurations self-contained. |
Right, so actually what you have now is probably sufficient, just the documentation needs to be updated.
^ The second sentence is misleading |
Yeah, the trivial example doesn't really illustrate why that's useful. For your specific case, why not this?
This way, you don't rely on PATH at all. |
Yes, that's what I meant earlier with "The one important immediate improvement would be to fix the docs " |
One other thing that might be a little misleading is that although rebench doesn't pass down $PATH from the parent environment, it will still search the system's default paths. For example, on my system this does work:
because lua53 is in |
ReBench doesn't do anything magic, I think. So, I'd assume the system is doing this for you. So, I am trying this very basic config here: default_experiment: benchmarks
default_data_file: 'rebench.data'
benchmark_suites:
test-suite:
gauge_adapter: Time
command: " "
benchmarks:
- TestBench
executors:
exec1:
executable: env
experiments:
benchmarks:
description: All benchmarks
suites:
- test-suite
executions:
- exec1 When I run it like this: I get:
So, we see the environment is entirely empty, and the shell is asked to run |
Interesting. On my BSD box I get:
On my debian box I get:
So I guess different systems do different things. |
Hi Stefan,
I have a config file where the executors have no
path
directive, like:The docs say:
So I'd expect the shell to search
$PATH
.Here's a snippet of a CI script I'm writing:
I added the
which
invocations to prove to myself that thelua
andyklua
binaries are in$PATH
.Here's the output (when the shell has
set -x
):The
which
invocations find the interpreter binaries, but rebench doesn't.Is it possible
rebench
isn't searching the path properly?Cheers
The text was updated successfully, but these errors were encountered: