@Don - that's the scheme I've been using. Basically: create a global noun
and look at its 4!:4. For a couple of years I used it in all the code that
needed it. Then it let me down a year ago, and unfortunately I never
tracked down why. But the upshot was so grave that I tore the facility out
of all my code and looked for alternative ways of registering the path
about to be loaded, where this was under my control.

It all became very hit-and-miss, and recently I've come to the conclusion
that if anyone reading this list had a tested and guaranteed solution to
this problem, or there was a magic Foreign I didn't know about, I needed to
know it.

People like me who use whichscript a lot (it uses 4!:4 and resides in
~addons/misc/miscutils/utils.ijs) know that all too often it can return
'Not from script'. Generally when you really want to know: where did *that*
blessed (noun/verb) come from??! Well, the question I want to answer in
this thread is: what script does such-and-such a locale imagine has created
it? (Or last pooped-on it.)

Why do I want to know?
(1) for forensic reasons (i.e. bug-hunting in conditions of
code-regression). I keep a lot of versions of suites of scripts I'm
developing, and I can't be sure I've always purged *all* the old versions.
Particularly from unfinished jobs gathering dust.
(2) to enable a script to execute: "load the version of script XYZ which is
meant to reside in the folder I find myself in". (Surely addon-writers and
heavy GutHub cloners have this requirement?

I shall carry on looking for more and more reliable techniques… but surely
the J interpreter, in its heart-of-hearts, knows the path to the file it is
currently loading, so why is this such a big deal?

Ian

On Wed, 10 Apr 2019 at 00:38, Ian Clark <earthspo...@gmail.com> wrote:

> @Eric - tried that too.
>
> The "load" verb contains the line:   Loaded_j_=: ~. Loaded_j_,fl
>
> so although I know the path I need is in Loaded_j_ somewhere, I can't tell
> which one it is.
>
> I've also tried modifying load, assigning the local: (fl)  to a
> guaranteed-unique _z_ or _j_ pronoun before it gets lost. That doesn't
> always work either, except with non-nested loads. I admit I don't know why
> (it looks as if it can't fail!) and I've been too busy to go looking.
>
> Unless someone knows a *guaranteed* way, I'm going to book it at
> https://code.jsoftware.com/wiki/System/Interpreter/Requests
>
>
> On Tue, 9 Apr 2019 at 14:22, Eric Iverson <eric.b.iver...@gmail.com>
> wrote:
>
>> Ian,
>> I don't think 4!:3 meets your needs (duplicates). The load verb maintains
>> Loaded_j_ and this might meet your needs.
>>
>> On Tue, Apr 9, 2019 at 8:49 AM bill lam <bbill....@gmail.com> wrote:
>>
>> > Does this work?
>> >
>> > MYSCRIPT=: >{:4!:3''
>> >
>> > On Tue, Apr 9, 2019, 8:29 PM Ian Clark <earthspo...@gmail.com> wrote:
>> >
>> > > How can I *reliably* fetch the path of the script being loaded,
>> whilst it
>> > > is being loaded?
>> > >
>> > > Everything I've tried either fails or fingers the wrong script on
>> > > occasions. Especially if my script is the subject of "load" or
>> "require"
>> > by
>> > > another script.
>> > >
>> > > I want to be able to write at the top of my script, say
>> > >
>> > > cocurrent 'myloc'
>> > > MYSCRIPT=: theScriptCurrentlyBeingLoaded''
>> > > ----------------------------------------------------------------------
>> > > 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

Reply via email to