/usr/bin/env is the standard for developer systems where different configurations are managed through environmental variables. However, it's rather fragile for non-developers, as it requires properly conditioned environmental variables.
/usr/bin/$name is the earlier standard for minimal fuss distribution. Given that most J users are going to be in some IDE, I don't see that the /usr/bin/env approach would provide significant benefit to the J community. Especially if we're considering people who would be baffled about what to do with #!/usr/bin/ijconsole Do you think I've overlooked something important here? Thanks, -- Raul On Fri, Mar 10, 2023 at 7:42 PM Elijah Stone <elro...@elronnd.net> wrote: > > Performance is irrelevant here--the difference in either case is miniscule. > > Using /usr/bin/env is standard practice in shebangs for finding binaries on > the path. In some systems, it is conventional to put binaries that did not > come with the system in /usr/local/bin, or in /opt; whereas, the existence of > /usr/bin/env is mandated by posix. We should not presume any more than we > need to about the way a user's system will be organised. > > On Fri, 10 Mar 2023, Raul Miller wrote: > > > Yes, the name ijconsole (iverson j console) was adopted to work around > > java's jconsole being in $PATH on many systems. > > > > This would also be an issue with /usr/bin/env > > > > But I don't see any high priority problems with /usr/bin/ijconsole as > > a standard location. There will be some users who cannot install J > > there, but it should be simple enough for them to build a tool to > > patch incoming J scripts with the install location that they used. > > > > (And, /usr/bin/env is going to be considerably slower than a bit of > > undefined verb parsing and garbage collection within J.) > > > > -- > > Raul > > > > On Fri, Mar 10, 2023 at 6:51 PM Elijah Stone <elro...@elronnd.net> wrote: > >> > >> Fair enough. I think the obvious thing is #!/usr/bin/env jconsole. But I > >> gather 'jconsole' is also the name of a java-related program, which might > >> be > >> why debian uses 'ijconsole' (and I think I have seen 'jc' > >> elsewhere--probably > >> for the same reason). I therefore propose: > >> > >> 1. Rename jconsole to something which doesn't collide with anything > >> heretofore > >> notable > >> > >> 2. Use #!/usr/bin/env that-something > >> > >> On Fri, 10 Mar 2023, Raul Miller wrote: > >> > >> > Perhaps, but I think it would be more useful to have a portable, > >> > agreed on path for systems which support the #! convention. > >> > > >> > That's required for J scripts to be distributable. > >> > > >> > Thanks, > >> > > >> > -- > >> > Raul > >> > > >> > On Fri, Mar 10, 2023 at 12:04 AM Elijah Stone <elro...@elronnd.net> > >> > wrote: > >> >> > >> >> Perhaps it's simply time to tell the interpreter to start ignoring the > >> >> first > >> >> line of a script if it starts with #!... > >> >> > >> >> On Thu, 9 Mar 2023, Raul Miller wrote: > >> >> > >> >> > The recent change in directory naming from j903 to j9.4 introduces an > >> >> > interesting issue for shell scripts on unix-like systems. > >> >> > > >> >> > In J shell scripts, this works: > >> >> > > >> >> > #!/home/username/j903/bin/jconsole > >> >> > > >> >> > However, this fails with a spelling error: > >> >> > > >> >> > #!/home/username/j9.4/bin/jconsole > >> >> > > >> >> > Or, on OSX, the shebang line is different, but the spelling error > >> >> > remains: > >> >> > > >> >> > #!/Applications/j9.4/bin/jconsole > >> >> > > >> >> > That said, there's some other issues here, related to portability. One > >> >> > of which is that (as a general rule) a home directory is personal > >> >> > rather than portable. Another is that there's official java jconsole > >> >> > which does not understand J. > >> >> > > >> >> > But, also, for a long time now, Debian based distributions have been > >> >> > distributing j with /usr/bin/ijconsole as a symbolic link to the > >> >> > current installed location for J. (Here, the 'i' in ijconsole stands > >> >> > for Iverson.) > >> >> > > >> >> > So I think that now would be a good time to adopt that as "documented > >> >> > standard practice" for j shell scripts. > >> >> > > >> >> > FYI, > >> >> > > >> >> > -- > >> >> > Raul > >> >> > ---------------------------------------------------------------------- > >> >> > For information about J forums see http://www.jsoftware.com/forums.htm > >> >> ---------------------------------------------------------------------- > >> >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > ---------------------------------------------------------------------- > >> > For information about J forums see http://www.jsoftware.com/forums.htm > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm