# Is there some reason --no-yield implies --version in \`racket\`?

**URL:** https://racket.discourse.group/t/is-there-some-reason-no-yield-implies-version-in-racket/4048
**Category:** Internals
**Tags:** question
**Created:** [December 15, 2025, 10:17pm UTC](https://racket.discourse.group/t/is-there-some-reason-no-yield-implies-version-in-racket/4048 "2025-12-15T22:17:06Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![wilbowma](https://avatars.discourse-cdn.com/v4/letter/w/bc79bd/32.png) [@wilbowma](https://racket.discourse.group/u/wilbowma)
#### Post date: [December 15, 2025, 10:17pm UTC](https://racket.discourse.group/t/is-there-some-reason-no-yield-implies-version-in-racket/4048/1 "2025-12-15T22:17:06Z")

</div>

I was messing around with Racket options and noticed that `--no-yield` always implies `--version`: [racket/racket/src/cs/main.sps at d14920c4b4c62fe695ff00ea5a6e6a47df1d6cb3 · racket/racket · GitHub](https://github.com/racket/racket/blob/d14920c4b4c62fe695ff00ea5a6e6a47df1d6cb3/racket/src/cs/main.sps#L456)

I'm not sure why that would be and it looks like a bug to me, but I'm not sure.

---

<div class="post-metadata">

### Author: ![mflatt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/mflatt/32/6_2.png) [@mflatt](https://racket.discourse.group/u/mflatt)
#### Post date: [December 15, 2025, 11:17pm UTC](https://racket.discourse.group/t/is-there-some-reason-no-yield-implies-version-in-racket/4048/2 "2025-12-15T23:17:27Z")

</div>

It seems fairly deliberate in the implementation, but I agree that it seems strange.

My best guess at the history:

- In v3xx and earlier, `-v` meant "no REPL", while a separate `-m` flag muted the banner that has the version number. So, running a program tended to involve both `-v` and `-m`. Of course, the fact was "no REPL" meant only a version number was shown was behind the choice of `-v`.

- `-V` (= `--no-yield`) was added at some point to be a stronger kind of `-v` that not only skipped the REPL, but also skipped waiting on the eventspace. The banner-printing part of `-v` was preserved.

- In the command-line overhaul for v4.0, the default disposition of the banner flipped, so either `-v` or `-i` was needed to show the banner. Meanwhile, the adjustment explicitly kept the banner-showing behavior of `-V` as a straightforward local transformation within the implementation, but maybe with not much through behind it. The fact that it's not documented supports the "not much thought" theory.

- This state persisted because `--no-yield` isn't so useful.

I'm inclined to leave it alone except for documenting that `-V` implies `-v`. We could change its behavior, but maybe some script somewhere uses `-V` where `-v` was meant, and (not coincidentally) it currently has the same effect.
