Thanks again,
Mike

   
Sent from my iPad

> On 10 Sep 2019, at 08:58, Henry Rich <[email protected]> wrote:
> 
> I have fixed the original error for the next beta, and it looks like this is 
> the same one.  13!:13'' should give a list of local variables (but it 
> didn't).  When that list is empty, the debug code thinks it's dealing with a 
> tacit definition; thus the one-line display.  Now you come along with a stop 
> at some line >0, and it's not expecting that.
> 
> The test is incorrect, because it is possible to have an explicit definition 
> with no local names defined, but that's a prpblem for another day.
> 
> Henry Rich
> 
>> On 9/10/2019 3:54 AM, 'Mike Day' via Beta wrote:
>> OK - so I found a get-round for tracing through a function (as reported 
>> below),
>> but I'm sorry to say here's another glitch.
>> 
>> If a named, defined function throws an error,  trying to capture the 
>> behaviour
>> with debug invoked by ctrl-K doesn't work, for me, at least:
>> 
>> I define a toy function,  "test," with a deliberate bug, in the do. 
>> statement and run it:
>> 
>> test =: 3 : 0
>> n  =. y
>> q  =. 1
>> for_i. i.% n do.
>>    q =. q + 1
>> end.
>> q
>> )
>> 
>>    test 3   NB. expected result with debug off
>> |domain error: test
>> |       i.%n
>> 
>> Now I invoke debug with ctrl-K and run test 3 to inspect the error (!):
>>    test 3  NB. after using ctrl-K to switch debug on
>> |index error: jdb_lexwin1
>> |   mrg=.'>'    CURRENTLINE}NUMLINES#' '
>> |jdb_lexwin1[6]
>> 
>> Nothing new is displayed in the debug display. Not terribly useful.
>> 
>> All this in JQt, Windows, J9.01 beta j,  as reported previously (in
>> correspondence further below)
>> 
>> This experiment works fine in J8.07;  I'm afraid I can't easily roll back to 
>> previous
>> J9.01 betas.
>> 
>> Thanks again,
>> 
>> Mike
>> 
>>> On 09/09/2019 18:06, 'Mike Day' via Beta wrote:
>>> Thanks, Henry
>>> 
>>> Actually,  I've just noticed something,  that we can use as a get-around.
>>> I often use my own timer function,  which just reports the elapsed 
>>> clock-time.
>>> 
>>> Using ctrl-K with the function "test" and either choosing stop all lines or 
>>> stop
>>> selected lines, and running test indirectly as a quoted function and 
>>> argument, eg
>>>    timer'test 3'
>>> DOES display the function line by line as it should, and as it used to do 
>>> in a previous
>>> incarnation of J.
>>> 
>>> I would have reported this for ts 'test 3' , where
>>>    ts =: 6!:2 , 7!:2@]
>>> but the display then shows a single multiline as I reported previously.
>>> 
>>> However, the following is sufficient to achieve the required display:
>>>    monad : 'test y' 3
>>> so I don't need to list my "timer" !
>>> 
>>> I expect this comes as no particular surprise in view of your thoughts
>>> expressed below,
>>> 
>>> Cheers,
>>> 
>>> Mike
>>> 
>>>> On 08/09/2019 17:40, Henry Rich wrote:
>>>> Looks like the stack frame created by 13!:13'' doesn't include the local 
>>>> symbols, which makes the debugger think it's not an explicit definition.  
>>>> I'll look into it.
>>>> 
>>>> Henry Rich
>>>> 
>>>>> On 9/8/2019 11:45 AM, 'Mike Day' via Beta wrote:
>>>>> A monadic function threw an error, so I used ctrl-K to invoke the 
>>>>> debugger,
>>>>> and set stop all lines, expecting to be able to step through it to see 
>>>>> what
>>>>> was happening.
>>>>> 
>>>>> Unfortunately,  the lines were not displayed separately in the trace.
>>>>> It's difficult to explain succinctly so here goes with a toy function 
>>>>> which
>>>>> DOES work ok:
>>>>> 
>>>>>       JVERSION
>>>>> Engine: j901/j64avx/windows
>>>>> Beta-j: commercial/2019-09-06T12:39:55
>>>>> Library: 9.01.08
>>>>> Qt IDE: 1.8.2/5.12.2
>>>>> Platform: Win 64
>>>>> Installer: J901 install
>>>>> InstallPath: c:/d/j901
>>>>> Contact: www.jsoftware.com
>>>>> 
>>>>>    test
>>>>> 3 : 0
>>>>> n  =. y
>>>>> q  =. 1
>>>>> for_i. i.n do.
>>>>>    q =. q + 1
>>>>> end.
>>>>> q
>>>>> )
>>>>> 
>>>>>    test 3   NB. use it without the debugger...
>>>>> 4
>>>>> 
>>>>> So far so good.  I'll now do ctrl-K and set a stop on all lines, and
>>>>> then run test 3 again:
>>>>> 
>>>>>    test 3
>>>>> ...
>>>>> now Debug shows this in the top window:
>>>>>> |>[0] 3 : 0[]n =. yq =. 1[]for_i. i.n do.[] q =. q + 1[]end.[]q[])
>>>>> 
>>>>> please note the "[]" characters are my version of an APL-ish squish
>>>>> 
>>>>> I would expect to see something like:
>>>>> >|[0] n  =. y
>>>>> |[1] q  =. 1
>>>>> |[2] for_i. i.n do.
>>>>> |[3]    q =. q + 1
>>>>> |[4] end.
>>>>> |[5] q
>>>>> 
>>>>> The middle window is similar:
>>>>> stop
>>>>> test[0]  3 : 0[]n =. yq =. 1[]for_i. i.n do.[] q =. q + 
>>>>> 1[]end.[]q[])
>>>>> 
>>>>> I've seen this sort of unrewarding display previously,  but for adverbs 
>>>>> and
>>>>> conjunctions,  or memoised functions,  not for "simple" monads or dyads.
>>>>> 
>>>>> This might not be a particular feature of Beta version j - I'm not sure
>>>>> I've used debug in version i,  but probably have in version h.
>>>>> 
>>>>> Thanks
>>>>> 
>>>>> Mike
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> ---
>>>>> This email has been checked for viruses by Avast antivirus software.
>>>>> https://www.avast.com/antivirus
>>>>> 
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>> 
>>>> 
>>>> ---
>>>> This email has been checked for viruses by AVG.
>>>> https://www.avg.com
>>>> 
>>>> ----------------------------------------------------------------------
>>>> 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

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to