@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