On Wed, May 12, 2021 at 10:37 AM Moritz Friedrich <m...@9dev.de> wrote:
> > > Am 12.05.2021 um 10:12 schrieb Nikita Popov <nikita....@gmail.com>: > > > > Hi internals, > > > > If the readline extension is enabled, PHP provides an interactive shell > > under -a. If it is not enabled, it falls back to an "interactive mode" > > (yes, the difference between "interactive shell" and "interactive mode" > is > > important here). The interactive mode is simply an stdin input, which > needs > > to be terminated using Ctrl+D. You can only run one script that way. > > > > I think the current behavior is quite confusing, because it's really not > > obvious that you ended up in this fallback mode (you need to know the > > difference between "shell" and "mode" in the output) and most people > > wouldn't know what to do with it. The latest instance of this is > > https://bugs.php.net/bug.php?id=81033. > > > > I think we would be better off disabling -a completely if readline is not > > available, and exit with a helpful error message. I've opened > > https://github.com/php/php-src/pull/6976 to that effect. Does that sound > > reasonable? > > > > Regards, > > Nikita > > Hi Nikita, > if I may ask, would it also be possible to have deadline as a mandatory > dependency to always have the interactive shell available? Is there a good > reason to compile PHP without? Having a basic prompt available is really > handy at times — especially looking at Node.js with their ahead-completion > and general UX. > The same has been done for other PHP modules in the past, so I wonder if > we could simply have readline as a guarantee. The readline extension has an external dependency on readline / libedit. Making it a required extension would also make this a required dependency. We avoid having dependencies for the minimal build. The only dependency we currently have is libpcre, and we vendor that one. I doubt we'll want to add a new vendored dependency, as they tend to be a major pain. I personally do not use the interactive shell (and I think most people who do use *an* interactive shell prefer psysh), so I don't think this can be reasonably considered a "required" feature. Regards, Nikita