The following is the script that I tested.

require'gl2'

L0=: 50           NB. initial length
A0=: 1r8p1        NB. initial angle: pi divided by 8
dL=: 0.9          NB. shrink factor for length
dA=: 0.75         NB. shrink factor for angle
N=: 14            NB. number of branches

L=: L0*dL^1+i.N  NB. lengths of line segments

NB. relative angles of successive line segments
A=: A0*(dA^i.N) +/\@:*("1) _1 ^ #:i.2 ^ N

NB. end points for each line segment
P=: 0 0+/\@,"2 +.*.inv (L0,0),"2 L,"0"1 A

NB. P_C_paint=: gllines_jgl2_ bind (10 <.@+ ,/"2 P-"1<./,/P)
P_C_paint1=: gllines_jgl2_@<.@(10 + ,/"2 P-"1<./,/P)
NB. P_C_paint=: gllines_jgl2_@:<.@(10 + ,/"2 P-"1<./,/P)

wd 0 : 0
pc P closeok;
setp wh 250 300;
cc C isigraph;
set C sizepolicy expanding;
pas 0 0;
pshow;
)

> On 26 Jan 2022, at 1:37 PM, bill lam <[email protected]> wrote:
> 
> It can check and catch domain error when executing outside of the paint event.
> 
> But it crashed if P_C_paint is run inside the paint event.
> 
>> On 26 Jan 2022, at 1:16 PM, Henry Rich <[email protected]> wrote:
>> 
>> On my system gllines is
>> 
>> chkgl2@:('"C:/j903/bin/jqt.dll" gllines >+ i *i i' cd (; #))"1
>> 
>> for which passing an atom to an argument of type *i would be a domain error.
>> 
>> Henry Rich
>> 
>> 
>> On 1/26/2022 12:07 AM, bill lam wrote:
>>> The issue is that
>>> gllines_jgl2_ 01
>>> SHOULD raise a domain because incorrect number of parameters. The dll call
>>> never executed and shouldn't crash.
>>> 
>>> On Wed, 26 Jan 2022 at 1:04 PM Henry Rich <[email protected]> wrote:
>>> 
>>>> gllines_jgl2_@<. 1 2 3.3
>>>> 
>>>> will execute as
>>>> 
>>>> gllines_jgl2_ 01
>>>> gllines_jgl2_ 2
>>>> gllines_jgl2_ 3
>>>> 
>>>> which is an error.
>>>> 
>>>> gllines_jgl2_@:<. 1 2 3.3
>>>> 
>>>> will execute as
>>>> 
>>>> gllines_jgl2_ 1 2 3
>>>> 
>>>> which is what was intended.
>>>> 
>>>> Henry Rich
>>>> 
>>>> 
>>>> 
>>>> On 1/26/2022 12:00 AM, bill lam wrote:
>>>>> gllines should already checked it received 2 parameters other 15!:0 would
>>>>> raise a domain error fir incorrect number of parameters.
>>>>> see the prototype of gllines in previous email.
>>>>> 
>>>>> On Wed, 26 Jan 2022 at 12:57 PM Henry Rich <[email protected]> wrote:
>>>>> 
>>>>>> gllines was being given one atom at a time, and it couldn't draw any
>>>> lines.
>>>>>> Henry Rich
>>>>>> 
>>>>>> On 1/25/2022 11:55 PM, bill lam wrote:
>>>>>>> Replace @ with @: worked.
>>>>>>> 
>>>>>>> Any theory why it crashed with @ ?
>>>>>>> 
>>>>>>>> On 26 Jan 2022, at 12:19 PM, Henry Rich <[email protected]> wrote:
>>>>>>>> 
>>>>>>>> P_C_paint=: gllines_jgl2_@<.@(10 + ,/"2 P-"1<./,/P)
>>>>>>>> 
>>>>>>>> seems wrong: I suggest
>>>>>>>> 
>>>>>>>> P_C_paint=: gllines_jgl2_@:<.@(10 + ,/"2 P-"1<./,/P)
>>>>>>>> 
>>>>>>>> Henry Rich
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On 1/25/2022 9:50 PM, bill lam wrote:
>>>>>>>>> prototype of gllines is
>>>>>>>>> gllines=: chkgl2 @: (('"',libjqt,'" gllines >',(IFWIN#'+'),' i *i i')
>>>>>> cd (;#)) "1
>>>>>>>>> so that it expected integer array but a floating point data type was
>>>>>> fed. JE should either signal a data type error or automatically do the
>>>>>> converting, but that is another issue/bug.
>>>>>>>>> I changed the line to
>>>>>>>>> P_C_paint=: gllines_jgl2_ bind (10 <.@+ ,/"2 P-"1<./,/P)
>>>>>>>>> then it work ok.
>>>>>>>>> 
>>>>>>>>> However, your line still crashed.
>>>>>>>>> P_C_paint=: gllines_jgl2_@<.@(10 + ,/"2 P-"1<./,/P)
>>>>>>>>> 
>>>>>>>>> I suspected it couldn't coerce data to integer but I have no idea
>>>>>> what's wrong.
>>>>>>>>> 
>>>>>>>>>> On 20 Jan 2022, at 11:15 PM, Raul Miller <[email protected]>
>>>>>> wrote:
>>>>>>>>>> http://www.rosettacode.org/wiki/Fractal_tree#J
>>>>>>>>>> 
>>>>>>>>>> The J implementation of the rosettacode fractal tree task now
>>>> crashes
>>>>>>>>>> (OSX Mojave 10.14.6)
>>>>>>>>>> 
>>>>>>>>>>    JVERSION
>>>>>>>>>> Engine: j903/j64/darwin
>>>>>>>>>> Release-a: commercial/2021-12-16T15:16:37
>>>>>>>>>> Library: 9.03.08
>>>>>>>>>> Qt IDE: 1.9.5/5.15.2(5.15.2)
>>>>>>>>>> Platform: Darwin 64
>>>>>>>>>> Installer: J903 install
>>>>>>>>>> InstallPath: /users/rauldmiller/applications/j903
>>>>>>>>>> Contact: www.jsoftware.com
>>>>>>>>>> 
>>>>>>>>>> The xywh wd command and the rightmove and bottommove parameters are
>>>> no
>>>>>>>>>> longer valid. Simply removing them from the wd command list is
>>>>>>>>>> sufficient to cause the crash.
>>>>>>>>>> 
>>>>>>>>>> Alternatively, an updated wd command list also causes the crash:
>>>>>>>>>> 
>>>>>>>>>> pc P closeok;
>>>>>>>>>> setp wh 250 300;
>>>>>>>>>> cc C isigraph;
>>>>>>>>>> set C sizepolicy expanding;
>>>>>>>>>> pas 0 0;
>>>>>>>>>> pshow;
>>>>>>>>>> 
>>>>>>>>>> The crash happens in the paint event handler (the qt window comes up
>>>>>>>>>> fine with P_C_paint=: ]).
>>>>>>>>>> 
>>>>>>>>>> Simplifying the represented data with N=:2 still produces the crash
>>>>>>>>>> 
>>>>>>>>>> P_C_paint=: gllines_jgl2_@<.@(10 + ,/"2 P-"1<./,/P)
>>>>>>>>>> 
>>>>>>>>>> still produces the crash.
>>>>>>>>>> 
>>>>>>>>>> A stack backtrace looks like this:
>>>>>>>>>> 
>>>>>>>>>> 0   CoreFoundation                      0x00007fff4f8dfa7d
>>>>>>>>>> __exceptionPreprocess + 256
>>>>>>>>>> 1   libobjc.A.dylib                     0x00007fff7a10ea17
>>>>>>>>>> objc_exception_throw + 48
>>>>>>>>>> 2   CoreFoundation                      0x00007fff4f8df8af
>>>>>>>>>> +[NSException raise:format:] + 201
>>>>>>>>>> 3   AppKit                              0x00007fff4d6fc411
>>>>>> _NSRunModal + 156
>>>>>>>>>> 4   AppKit                              0x00007fff4d2e5bb8
>>>>>>>>>> -[NSApplication runModalSession:] + 241
>>>>>>>>>> 5   libqcocoa.dylib                     0x0000000114623ed6
>>>>>>>>>> 
>>>> _ZN21QCocoaEventDispatcher13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE
>>>>>>>>>> + 614
>>>>>>>>>> 6   QtCore                              0x000000010fd6facf
>>>>>>>>>> _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE + 431
>>>>>>>>>> 7   QtWidgets                           0x0000000111ddae9e
>>>>>>>>>> _ZN7QDialog4execEv + 526
>>>>>>>>>> 8   QtWidgets                           0x0000000111e18a72
>>>>>>>>>> 
>>>> _ZL17showNewMessageBoxP7QWidgetN11QMessageBox4IconERK7QStringS5_6QFlagsINS1_14StandardButtonEES7_
>>>>>>>>>> + 354
>>>>>>>>>> 9   libjqt.dylib                        0x000000011150247a
>>>>>>>>>> 
>>>> _Z2mbNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES5_
>>>>>>>>>> + 12026
>>>>>>>>>> 10  libjqt.dylib                        0x0000000111544c35 _ZL3wd1v
>>>> +
>>>>>> 10821
>>>>>>>>>> 11  libjqt.dylib                        0x000000011154219b wd + 91
>>>>>>>>>> 12  libj.dylib                          0x00000001166452b8 stdcalli
>>>> +
>>>>>> 280
>>>>>>>>>> 13  libj.dylib                          0x0000000116636f85 jtcdexec1
>>>>>> + 4965
>>>>>>>>>> 14  libj.dylib                          0x0000000116634ddc jtcd +
>>>> 1164
>>>>>>>>>> On a tangentially related note, the links to doc.qt.io embedded in
>>>>>>>>>> 
>>>> https://code.jsoftware.com/wiki/Guides/Window_Driver/ChildClasses#Styles_and_set_commands_common_to_all_controls
>>>>>>>>>> are now invalid.
>>>>>>>>>> 
>>>>>>>>>> FYI,
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Raul
>>>>>>>>>> 
>>>> ----------------------------------------------------------------------
>>>>>>>>>> For information about J forums see
>>>>>> http://www.jsoftware.com/forums.htm
>>>> ----------------------------------------------------------------------
>>>>>>>>> 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
>>>> 
>>>> --
>>>> 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
>> 
>> 
>> -- 
>> 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

Reply via email to