Something that breaks 0!:1xx is any attempt in the script to find its own 
folder/filename.  The very common/real world use for that is to load/access 
other files that are relative to the current folder.

So while it seems "easy" to pre-parse a file for 0!:1xx, it fails where 4!:4 is 
used.


A very welcome solution would be for 0!:1xx to have a dyadic version where the 
x parameter is the return value of 4!:4 called within the y block.
or perhaps a 4!:6 '' verb that gets current dirrectory from a single statement. 
(which would have the x value of 0!:1xx as return)


________________________________
From: Ian Clark <[email protected]>
To: [email protected] 
Sent: Wednesday, May 9, 2018 9:58 AM
Subject: Re: [Jprogramming] Convention to stop loading a script



I have a more-or-less robust fix, to honor this test script (without syntax
error):

——————————————————
NB. testing halt-load -- see: proj'scriptd'

smoutput '++ loading test script.'

@@@@@@@@@@@@@@@@@@

smoutput '>> should not reach here!'
——————————————————

Namely:

script_z_ =: [: 3 : '0!:100 (3#''@'') taketo 1!:1 y [ 4!:55<''y'''
jpath_z_&.:>
scriptd_z_=: [: 3 : '0!:101 (3#''@'') taketo 1!:1 y [ 4!:55<''y'''
jpath_z_&.:>

which now reside in my startup.ijs.

The question is: 'Should it be done this way?' [ 'Should it be done at all?'

Should we have the feature switchable, so that the "halt" line passes
through without error?

Ian Clark


On Wed, May 9, 2018 at 2:46 PM, Ian Clark <[email protected]> wrote:

> Cross-posted to programming forum at request of Chris Burke.
> Ian Clark
>
> ---------- Forwarded message ----------
> From: Ian Clark <[email protected]>
> Date: Wed, May 9, 2018 at 10:35 AM
> Subject: Convention to stop loading a script
> To: [email protected]
>
>
> Can I propose we agree to alter the stdlib verb: (load) to provide a way
> to stop loading a given script?
>
>    @@NB. stop loading at this line
>
> …certainly does that, but generates an unwelcome "syntax error". This can
> interfere with calling processes.
>
> I propose @@@… (three or more) as the conventional end-of-script marker. A
> line of @@@… offers a clear marker to draw attention to what's happening.
>
> There are a number of reasons why you might want to do this:
>
> ++ to partly-load a script for testing
>
> ++ to omit test code for operational use
>
> ++ to keep notes at the bottom of a script (as I do)
>    0 :0 NB. a block of notes
> or
>    Note 'a block of notes'
> …has the disadvantage of turning off syntax coloring, also resuming
> interpreting code as soon as it hits an isolated right parenthesis.
>
> Ian Clark
>
>
----------------------------------------------------------------------
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