Nothing to add to this discussion, but please *please* realise how
destructive these type of posts are.  They significantly increase the noise
and make us all look like muppets.

I respect most of the "usual suspects" in these threads, but please - let's
keep this on topic.

Alternatively maybe this mailing list should start moderating posts, which
would be a real shame.

On 21 August 2011 08:14, Alan D. Salewski <salew...@att.net> wrote:

> On Thu, Aug 18, 2011 at 06:40:50PM -0400, Ken Wesson spake thus:
> > On Thu, Aug 18, 2011 at 4:56 PM, D L <lio...@gmail.com> wrote:
> > > On Thu, Aug 18, 2011 at 7:34 PM, Ken Wesson <kwess...@gmail.com>
> wrote:
> > >>
> > >> On Wed, Aug 17, 2011 at 4:25 PM, Dimitre Liotev <lio...@gmail.com>
> wrote:
> > >> >      you can not set and query such a variable in a Bash script.
> > >>
> > >> Code has already been posted to this thread that does exactly that.
> > >
> > > Let me rephrase this for you: you can not set and query such a
> > > variable in the standard,
> > > conventional, predictable Bash way. This is what matters. No point in
> > > devising ways to
> > > torture users by forcing them to use ugly hacks for something as basic
> > > and simple as
> > > setting a variable.
> >
> > But the standard way of "setting a variable" in bash would presumably
> > not, in a Windows port of bash, affect the environment as seen by
> > native programs anyway,
>
> That presumption is at least partially incorrect. Native apps (cmd.exe,
> for instance) launched from a cygwin bash command prompt can "see"
> environment variables exported by the parent bash process.
>
>    /cygdrive/c$ type -a cmd.exe
>    cmd.exe is /cygdrive/c/Windows/system32/cmd.exe
>    /cygdrive/c$ unset CRAP
>    /cygdrive/c$ CRAP=junk cmd.exe
>    Microsoft Windows [Version 6.1.7601]
>    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
>
>    C:\>set CRAP
>    set CRAP
>    CRAP=junk
>
>    C:\>exit
>    exit
>    /cygdrive/c$
>
>
>
> > since clearly bash has a different idea of
> > what an environment variable is,
>
> Nope; they're just key/value pairs available to the process.
>
>
> > how it can be named,
>
> Yep, if it is to be manipulated directly (queried, set, or exported in
> the current process).
>
>
> > and so on than
> > Windows does, and so seems to necessarily have a different environment
> > than Windows's.
>
> Each bash process, in fact, will have it's own environment, which will
> have been provided by its parent process. Any Unix look-a-like thing
> running on Windows will need to present a view of a process-specific
> environment to the *nix-style tools in a way they are prepared to handle
> (PATH values will be translated, and similar), and the environment
> constructed for native Windows programs launched by those *nix-style
> tools should ideally see the values in a way they would expect (at least
> for important, well-known vars, such as PATH). And this is how things do
> work with cygwin, from the vantage point of the apps.
>
>
> > Then,
>
> (building on sand...)
>
>
> > no matter what it's named, if a Windows application uses a
> > Windows environment variable it will be more awkward to manipulate
> > from a Windows port of bash than an emulated native unix environment
> > variable, and likewise more awkward than a true native unix
> > environment variable manipulated on a unix machine and used by a
> > native unix application.
>
> Not necessarily true. I noted earlier that Unix and Linux are both
> permissive in the names allowed for environment variables; nevertheless,
> in *nix there's a tradition of following established conventions unless
> there is a good reason not to. Naming environment variables such that
> they can be manipulated as POSIX shell identifiers is just one example
> of following a useful convention:
>
>    /cygdrive/c$ PATH=/cygdrive/c/tmp /cygdrive/c/Windows/system32/cmd.exe
>    Microsoft Windows [Version 6.1.7601]
>    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
>
>    C:\>set PATH
>    PATH=C:\tmp
>    PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
>
>    C:\>exit
>    exit
>    /cygdrive/c$
>
> No good reasons have yet been posited on this thread to use an
> environment variable named to be incompatible with that established
> convention, regardless of what is permissible by the host OS.
>
>
> > But this is all entirely beside the point:
>
> Hey, we agree on something!
> :-)
>
>
> > 1. The OP just wanted to *set* the variable and call Clojure-CLR. That
> > problem is solved.
>
> That's not an accurate representation of what the OP wanted, as
> clarification by him on this thread beyond the original post makes
> clear. Perhaps it was understandable why you might have thought that
> based on the original post, but not at this point in the thread. If that
> were satisfactory to the OP and other folks who have chimed in since,
> then we could have dropped this whole thing a while ago.
>
>
> > A claim was mooted that it was unsolvable without
> > renaming the variable, and that claim was decisively proved wrong.
>
> That's not true, either; if you think that it is, please go back and
> re-read the thread. Claims were made that the environment variable would
> not be accessed and manipulated in the current bash process, and that
> claim was decisively proved true[0].
>
> That is an argument in favor of renaming the variable, but it is not the
> same as saying that that limited problem (of explicitly setting a value
> for 'clojure.load.path' for a subprocess) is unsolvable without renaming
> the variable.
>
> The possibility of using 'env' for setting up an environment for
> Clojure-CLR subprocesses has never been in dispute on this thread.
> Folks have been chiming in to point out that it is not a good idea to
> require users to create a subprocess, query the environment of that
> subprocess for the value of an environment variable that can be neither
> seen nor referenced in the current bash process, and then augment the
> value found to set up the environment for a separate subprocess. That is
> what you were arguing for when defending the 'env'-based approach.
>
>
> > 2. Subsequently, a claim was mooted that though it was admittedly
> > possible to *set* the variable it would not be *possible* to read it,
> > and thus to set it to a function of its prior value -- and THAT claim
> > was decisively proved wrong.
>
> False again; please re-read the thread. It was proved decisively that
> one cannot set the variable in the current process, nor reference the
> variable from the current process. If you believe that the 'env'
> examples demonstrate otherwise, then you are insufficiently informed
> about the service that 'env' provides when invoked without any command
> line options.
>
>
> > 3. So now you admit that it IS possible,
>
> (By "you", I'm presuming you mean something like "you guys", and are
> therefore treating all arguments contradicting your own as a whole; or
> you really believe that nonsense below about a Sybil attack. For the
> moment, I choose to believe the former.)
>
> Nope; wrong again. Only the following two things have been demonstrated
> to be possible in regard to setting 'clojure.load.path' in the
> environment of the Clojure-CLR subprocess:
>
>    1. Explicitly setting the value using 'env' with a value not
>       directly derived from the value of the environment variable of
>       the same name in the current bash process. Again, nobody has
>       disputed that this would work; indeed, this was the workaround
>       suggested early on by Stephen Compall that solved mrwizard82d1's
>       /immediate/ problem.
>
>    2. Explicitly setting the value using 'env' with a value derived
>       from the value of the envionment variable of the same name in a
>       subprocess 'env' process, to be provided (perhaps augmented) in
>       a separate subprocess of the bash shell. This is where the
>       dispute lies: you argued that this is sufficient to solve the
>       problem; nobody on this thread has yet agreed.
>
>
> > but instead of leaving it at
> > that, you just change your objection -- AGAIN --
>
> That, too, is not true.
>
> The differences between the way you and I approached the OP's question
> were crystalized early on -- with you concerned only with the limited
> problem, and myself concerned with that plus the wider usability issues
> suggested by the OP; contributions since then by myself and others have
> provided clarifications to help you see what you refused to see.  If you
> think new objections were introduced later in the thread, it is only
> because you chose not to recognize them at that early stage.
>
> To the extent to which you put forth multiple specific ideas with which
> to object, you ought not be surprised that you received multiple
> objections.
>
>
> > this time to say that
> > it's *too inconvenient*.
>
> *yawn*
>
> Please re-read my "acceptance" vs. "tolerance" post (my second in this
> thread). No objections have been introduced since that clarification
> between your approach and everyone who has objected to your approach.
>
>
> > 4. On top of all of this goalpost-moving
>
> That simply has not happened.
>
>
> > by what seems to be either a
> > Sybil attack or a tag-team of opponents ganging up on me,
>
> It's gotta be one or the other; both are more likely than the
> possibility that more than a single person on the Internet would
> honestly disagree with something you said.
>
> Please.
>
>
>
> > there's the
> > minor little matter of the fundamentally questionable assumption they
> > (you)
>
> Ha!
>
>
> > are making, which is that developers of native Windows
> > applications should be adhering to Unix naming conventions
> > for the > convenience of that tiny fraction of Windows users that use a
> port of
> > bash to Windows as their command shell instead of using native tools
> > such as cmd and Explorer!
>
> In the absense of widely used conventions in the host environment, it is
> not a bad practice to adhere to well established conventions established
> elsewhere, if only in recognition that those conventions came about
> because they were useful in some way, and provided benefits to the
> community that established them. If there's a competing convention on
> Windows (or any other OS), I'm not aware of it, and it certainly hasn't
> been mentioned here.
>
> In the absence of a competing convention and an entrenched user base,
> arguing to /not/ change 'clojure.load.path' to something that can be
> manipulated as a valid POSIX shell identifier (without compensating
> rationale) is arguing for a point of arbitrary incompatibility.
>
>
> > Taken to its logical extreme, such a
> > position is probably untenable, as it's likely that if you intersected
> > the subsets of names and other practices that would be allowed and
> > convenient for all operating systems you'd wind up with the empty set
> > and become paralyzed into inaction. :)
>
> Nah, you'd end up with something that looks like Java, with some systems
> programming bits thrown in.
>
>
> > "You can't please all of the
> > people all of the time", and apparently the same goes for operating
> > systems. It's generally regarded as acceptable for Windows-native
> > applications to adhere to Windows conventions, unix-native ones to
> > unix conventions, and so forth;
>
> I don't disagree with that, generally. But the fact of the matter is
> that *nix has more established conventions, and in those places where
> such conventions are absent in Windows (or any other platform) it would
> be instructive to understand the conventions of the *nix folks and the
> underlying rationales. Even if the *nix conventions are not used, they
> should be departed from for reasons better than laziness or arbitrary
> incompatibility.
>
>
>
> > and here we have a Windows-native
> > application
>
> CLR is not the same as Windows-native...
>
>
> > with an environment variable name that lies within the
> > realm Windows allows to manipulate conveniently, but happens to be
> > awkward to deal with in unix.
>
> ...and even if it were, multiple folks have expressed an interest in
> using it in cygwin or similar. "Happens to be" in this case is
> equivalent with "inadvertently, but correctable", as David has indicated
> that the name can be changed.
>
>
> > I'd say that that's too bad for the unix
> > user affected by it,
>
> Why?
>
> For the foreseeable future, there will be portability issues between
> different programs on different OS's, and on different runtimes on a
> single OS. If the incompatibility is not arbitrary, then so be it; but
> what does anybody gain by arbitrary incompatibility?
>
>
> > but not a foul by the Windows community,
>
> Nobody suggested that; there has simply been no rationale provided why
> the existing name of 'clojure.load.path' is better than a name that is a
> valid POSIX shell identifier.
>
>
> > and it's
> > not even the biggest unix/Windows impedance mismatch out there
>
> No, but it was arbitrary. And demonstrably problematic. And easily
> fixable.
>
>
> > -- how
> > about cr/lf vs. lf? Space-ridden case-insensitive file names that need
> > to be quoted to move to unix, and cause collisions sometimes moving
> > the other way?
>
> No need to get into all of that...
>
>
> > Name collisions are certainly a larger inconvenience
> > than having to -- my God! -- use sed a little bit. :)
>
> Like many *nix folks, I happen to be a sed junky. Every third command I
> type, it seems, involves sed (at least once). But the full scope of the
> environment variable manipulation cannot be addressed by sed, and we
> should not (without good reason) be looking for a non-standard way to do
> perform standard tasks. sed is not the answer here.
>
> -Al
>
>
> [0] A caveat was made by me for exceptions of unspecified instances of a
>    "special purpose tool" (such as a bash loadable module (the type of
>    thing loaded by 'enable -f foo.so') to provide a command (or
>    whatever) for such a thing), but not elaborated on because I
>    consider such approaches stupid when it is so simple to just follow
>    the existing convention and not require the use of such a tool.
>
>
> --
> -----------------------------------------------------------------
> a l a n   d.   s a l e w s k i                   salew...@att.net
> 1024D/FA2C3588 EDFA 195F EDF1 0933 1002  6396 7C92 5CB3 FA2C 3588
> -----------------------------------------------------------------
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to