[Jprogramming] Bring out yer bugs

Henry Rich henryhrich at gmail.com
Tue May 31 16:03:51 UTC 2016


Unquestionably, sentences producing non-noun are OK as long as they 
don't end a T-block or a verb.

What I was proposing in (b) was that

v =: 3 : 0
...
5 + undefname
)

would be caught before exiting the verb, so that in debug you would 
point to the bad sentence rather than the calling verb.

In contrast,


v =: 3 : 0
...
5 + undefname
if. 0 do. end.
)

would not be caught.

Henry Rich


On 5/31/2016 11:38 AM, bill lam wrote:
> As the current behavior permit non-noun as the execution result
> of a sentence in an explicit verb definition, so I prefer leave
> as is (for B block).
>
> It the verb returns a non-noun, it will raise a syntax error
> in current J behavior although "non-noun result" error message
> would be easier to be understood by new comers.
>
> In contrast, the context of T block expected a noun, I prefer it
> to be caught at the crime scene.
>
> Just for clarification, non-noun result in the middle of T block
> is fine.
>
> t1=: 3 : 0
> if.
> 1
> +
> 2
> do. 3 else. 4 end.
> )
>
> Вт, 31 май 2016, Henry Rich написал(а):
>> There are two different problems to consider.
>>
>> 1. A non-noun result at the end of a T block should be detected as an error
>> on the do., and should trap or go to catch. like any other error.  Both of
>> your examples come under this heading.  I will fix this.
>>
>> 2. A non-noun result at the end of a B block is different, because there
>> more sentences may be executed:
>>
>> if. 1 do.
>>   +
>> end.
>> if. 0: SomeComplicatedVerb y do.
>>   5
>> end.
>> return.
>>
>> The + is going to cause an error, but not until after the later T block,
>> including SomeComplicatedVerb, has been executed.
>>
>> I can think of solutions:
>> a. leave as is
>> b. if the non-noun sentence is the last sentence executed before leaving the
>> verb, trap on it; otherwise continue as now
>> c. always go back and trap on the non-noun sentence when it is discovered
>> that it is generating the erroneous return value, even though other later
>> sentences may have executed and completely changed the program state
>>
>> What solution is best?
>>
>> Henry
>>
>> On 5/28/2016 10:23 AM, bill lam wrote:
>>> Sorry I had not included an example, it is about debug
>>> suspension stack.
>>>
>>> t1=: 3 : 0
>>> 1
>>> t2''
>>> 4
>>> )
>>>
>>> t2=: 3 : 0
>>> 1
>>> 2
>>> 3
>>> if. 0-: notexist_base_ do. end.
>>> 4
>>> 5
>>> 6
>>> )
>>>
>>>      dbr 1
>>>      t1''
>>> |control error: t2
>>> |t2[3]
>>>
>>> NB. this seemed ok, but
>>>
>>>         dbstack''
>>> +----+--+--+--+----+------+----+
>>> |name|en|ln|nc|args|locals|susp|
>>> +----+--+--+--+----+------+----+
>>> |t1  |23|1 |3 |++  |+-++  |*   |
>>> |    |  |  |  |||  ||y||  |    |
>>> |    |  |  |  |++  |+-++  |    |
>>> +----+--+--+--+----+------+----+
>>>         dbctx''
>>> @@ t1[1] *v @@ /home/bill/a1.ijs
>>> 3 : 0
>>>    [0] 1
>>>> [1] t2''
>>>    [2] 4
>>>
>>> NB. the top of stack (13!:13) is not t2.
>>>
>>> Сб, 28 май 2016, Henry Rich написал(а):
>>>> I can reproduce the problem, which seems to be that a T block that has a
>>>> non-noun result doesn't go to the catch.
>>>>
>>>> I don't understand your second part:
>>>>
>>>> Also control error will can only be reported after exiting the
>>>> explicit verb, not the lines of control block.
>>>>
>>>> Can you give an example of that?
>>>>
>>>> I will work on this right after we get all the current branches merged together.
>>>>
>>>> Henry Rich
>>>>
>>>>
>>>> On 5/27/2016 9:32 PM, bill lam wrote:
>>>>> The handling of control error I had report many years ago,
>>>>>
>>>>> http://www.jsoftware.com/pipermail/beta/2006-August/001776.html
>>>>>
>>>>> Also control error will can only be reported after exiting the
>>>>> explicit verb, not the lines of control block.
>>>>>
>>>>> But Roger said it was the intended behavior.  Can you take a look?
>>>>>
>>>>> Вт, 17 май 2016, Henry Rich написал(а):
>>>>>> The J Engine is being worked on again.  The people working on it are not
>>>>>> experts on it yet, but we have fixed quite a few of the long-standing bugs
>>>>>> and have plans for improvements.
>>>>>>
>>>>>> There have long been Wiki pages for reporting bugs, pointed to by
>>>>>>
>>>>>> http://code.jsoftware.com/wiki/System/Interpreter/Bugs
>>>>>>
>>>>>> especially
>>>>>>
>>>>>> http://code.jsoftware.com/wiki/System/Interpreter/Bugs/Crashes
>>>>>> and
>>>>>> http://code.jsoftware.com/wiki/System/Interpreter/Bugs/Errors
>>>>>>
>>>>>> Quite a few of these have been fixed.  If you have other bugs that are not
>>>>>> listed on those pages, please add an entry for them!  The recent report of
>>>>>> trouble with
>>>>>>
>>>>>> +.~1 2 1j_. 3
>>>>>>
>>>>>> would be a model candidate.
>>>>>>
>>>>>> Add an entry for your problem, and it'll get fixed.
>>>>>>
>>>>>> Henry Rich
>>>>>>
>>>>>> ----------------------------------------------------------------------
>>>>>> 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



More information about the Programming mailing list