Re: [Jprogramming] J shell scripts

2023-03-11 Thread Raul Miller
A symbolic link in /usr/bin/ is not a binary in /usr/bin/ See also: /etc/alternatives/ (though that full abstraction is not needed when the symbolic link is managed manually). -- Raul On Sat, Mar 11, 2023 at 4:21 AM Elijah Stone wrote: > > I don't think mandating that binaries be placed in /us

Re: [Jprogramming] J shell scripts

2023-03-11 Thread bill lam
If we do this then J should exit automatically after executing the last line of the script. This is the normal behavior of shell scripts. On Sat, 11 Mar 2023 at 9:56 PM Henry Rich wrote: > What we have agreed to do is to treat a #! line as a comment ONLY when > #! are the first 2 characters of

Re: [Jprogramming] J shell scripts

2023-03-11 Thread Henry Rich
What we have agreed to do is to treat a #! line as a comment ONLY when #! are the first 2 characters of a file loaded by 0!:n (which is used by the load command). Henry Rich On 3/10/2023 7:29 PM, Raul Miller wrote: Byte order mark is another can of worms, as is wide encoding. But, yes, curre

Re: [Jprogramming] J shell scripts

2023-03-11 Thread Elijah Stone
I don't think mandating that binaries be placed in /usr/bin is a de facto standard; and I have never heard of anybody's doing it. I have, once again, heard of systems which specifically avoid touching /usr/bin. Here is another example: the brew package manager on macos installs everything into

Re: [Jprogramming] J shell scripts

2023-03-11 Thread Elijah Stone
I didn't mean to propose that one of ijconsole and jconsole would be better than the other. I don't really have an opinion here. Once again: if ijconsole is placed in /usr/bin, then #!/usr/bin/env ijconsole will just work. If ijconsole is placed in another directory which is on the path, the

Re: [Jprogramming] J shell scripts

2023-03-11 Thread Raul Miller
In my opinion, a symbolic link at /usr/bin/ijconsole would be no more of an imposition than #!/usr/bin/env jconsole (and in many cases it would be less of an imposition). (0) Sadly, neither approach works for the windows cmd environment (though either approach would work under cygwin or wsl). (1)

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Elijah Stone
I don't think anyone has proposed a tool like virtualenv, so I don't see how that's relevant. And I don't see why we should make impositions on the way anyone chooses to package j. On Fri, 10 Mar 2023, Raul Miller wrote: Yes, PATH is the only environmental variable that influences how /usr/b

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Raul Miller
Yes, PATH is the only environmental variable that influences how /usr/bin/env finds the executable. But I was talking about tools like https://pypi.org/project/virtualenv/ where there's other things going on. That said, you are correct that there are some systems which install optional software t

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Elijah Stone
/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. This statement confuses me greatly. Can you elaborate?

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Raul Miller
/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 distr

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Elijah Stone
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 ex

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Elijah Stone
I don't think #! should be a comment in general. Specifically #! (and #!/) at the beginning of a line is meaningless, but something like x#!y is not completely insensible (even if better written as !x#y); I think it should only apply when it comes at the very beginning of the first line of a sc

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Raul Miller
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 insta

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Raul Miller
Byte order mark is another can of worms, as is wide encoding. But, yes, currently, shebang handling on the J side relies on undefined verb parsing. If we handle shebang lines, a question becomes: how much handling should be done? (For example, does #! become a comment prefix? In many interpreted

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Henry Rich
"Ancillary Pages" is on the main NuVoc page; there is also a pointer to the details for !:, with a banner, in the NuVoc page for !: .  Why don't you add a reference to it in the places you looked? Henry Rich On 3/10/2023 6:42 PM, Don Guinn wrote: I used the link to the "Earlier Reference Sour

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Elijah Stone
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 t

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Don Guinn
I used the link to the "Earlier Reference Sources". Found the link you sent me buried in "Ancillary Pages". Something so useful should be easier to find. On Fri, Mar 10, 2023 at 9:23 AM Henry Rich wrote: > Yes it is: https://code.jsoftware.com/wiki/Vocabulary/Foreigns#m9 > > Henry Rich > > On 3/

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Henry Rich
Yes it is: https://code.jsoftware.com/wiki/Vocabulary/Foreigns#m9 Henry Rich On 3/10/2023 11:06 AM, Don Guinn wrote: What is 9!:55 ? Not shown in the !: conjunction. On Fri, Mar 10, 2023 at 8:46 AM Henry Rich wrote: If we do that, should we revisit the question of ignoring the BOM (Byte Or

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Don Guinn
What is 9!:55 ? Not shown in the !: conjunction. On Fri, Mar 10, 2023 at 8:46 AM Henry Rich wrote: > If we do that, should we revisit the question of ignoring the BOM (Byte > Order Mark) that editors sometimes put at the beginning of scripts? > > Does the shebang take advantage of the fact that

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Henry Rich
If we do that, should we revisit the question of ignoring the BOM (Byte Order Mark) that editors sometimes put at the beginning of scripts? Does the shebang take advantage of the fact that the first line is parsed into a bunch of undefined names taken to be a verb?  Does that mean that if user

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Raul Miller
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 wrote: > > Perhaps it's simply time to tell the interpr

Re: [Jprogramming] J shell scripts

2023-03-10 Thread Raul Miller
Yes, if that is where the user has installed J. I've seen it installed in /Applications/ or $HOME/Applications/ or in /usr/local/jxxx/bin/ etc. Thanks, -- Raul On Thu, Mar 9, 2023 at 11:42 PM bill lam wrote: > > Did you mean put a symlink /usr/bin/ijconsole to j installation under the > user'

Re: [Jprogramming] J shell scripts

2023-03-09 Thread Elijah Stone
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 she

Re: [Jprogramming] J shell scripts

2023-03-09 Thread bill lam
Did you mean put a symlink /usr/bin/ijconsole to j installation under the user's home folder? eg. sudo ln -s $HOME/j9.4/bin/jconsole /usr/bin/ijconsole On Fri, Mar 10, 2023 at 1:29 AM Raul Miller wrote: > The recent change in directory naming from j903 to j9.4 introduces an > interesting iss

[Jprogramming] J shell scripts

2023-03-09 Thread Raul Miller
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 sheba