I do not think that giving a person the option to break out of an
infinite loop should be thought of as "breaking backwards
compatibility". Yes, it's a change. All bug fixes are changes. But
it's a change in an error handler, not a change in some more
functional part of the system.

Note also that my proposed change added the word 'continue?' just
above the query buttons.

Meanwhile, this finalize_jqtide_ *is* an API change. It does not fix
the problem at all, by itself.

Anyways, it seems to me that your thesis, as stated, is an argument
against finalize_jqtide_ and an argument in favor of replacing the
info popup for errors with a query popup for errors.

Of course ... if there is some *other* rationale for the
finalize_jqtide_ that's another issue.

Thanks,

-- 
Raul


On Mon, May 23, 2016 at 10:49 AM, bill lam <[email protected]> wrote:
> Change in behavior is showing query button instead of ok box.
> the next qt update probably be j805 beta so that I guess there
> may not be any further update for j804. But the mechanism for
> customization is trivial, just append the line I quoted to the
> end of the qt.ijs script.  qt addon itself will never define the verb
> "finalize_jqtide_", it just executes if the verb exists after
> loading qt.ijs.  Typically a user defines this verb in startup.ijs to
> customize qt.ijs, eg loading a script of containing alternate
> definition of wdhandler,
>
> finalize_jqtide_=: 3 : 0
> load '/path/to/mywdhandler.ijs'
> EMPTY
> )
>
> Пн, 23 май 2016, Raul Miller написал(а):
>> If by "change in behavior" you mean that it would allow a way to avoid
>> the infinite loop condition, I agree.
>>
>> If by "change in behavior" you mean some other sort of API change, I 
>> disagree.
>>
>> But I guess I will have to wait and see if I can this new
>> "finalize_jqtide_" API mechanism into something that allows a way of
>> avoiding that infinite loop condition. And then I guess I will also
>> need to think about if this can in turn be made into something that
>> can be helpful to other people beside myself.
>>
>> Thanks,
>>
>> --
>> Raul
>>
>>
>> On Mon, May 23, 2016 at 7:16 AM, bill lam <[email protected]> wrote:
>> > I agree your proposal can be useful for developers, but it also
>> > introduce a change in behavior that has been there for many
>> > years.  The next qt will add the following line
>> >
>> > finalize_jqtide_^:(3=(4!:0)@<) 'finalize_jqtide_'
>> >
>> > so that a user can customize or override wdhandler or any other
>> > functions and can survive addon updates.
>> >
>> > Вс, 22 май 2016, Raul Miller написал(а):
>> >> I think that avoiding coping measures on the grounds that at some
>> >> future point in time a proper fix should be done is wrong.
>> >>
>> >> The right time for avoiding those coping measures is when that proper
>> >> fix is available.
>> >>
>> >> If the issue is motivation, you need that anyways - but having a
>> >> system which can be used in the mean time is important for motivation.
>> >>
>> >> Thanks,
>> >>
>> >> --
>> >> Raul
>> >>
>> >>
>> >> On Sun, May 22, 2016 at 1:02 PM, bill lam <[email protected]> wrote:
>> >> > Infinite loop is bug, but replacing ok box with interrupt button
>> >> > is not a proper fix to the gl paint problem.  So far gl paint is
>> >> > the only case that results in an infinite loop, so that I would
>> >> > prefer a proper fix to the gl paint problem itself.
>> >> >
>> >> > I suspect it is a deficiency of Qt graphic backend, since popup
>> >> > box is at the top of z-order, the presence or absence of popup box
>> >> > should not interfere the other windows.
>> >> >
>> >> > Вс, 22 май 2016, Jan-Pieter Jacobs написал(а):
>> >> >> I also happened to run into the infinite popup problem, both when 
>> >> >> trying to
>> >> >> get started writing J GUI's (gave up because of this) and when using 
>> >> >> plot
>> >> >> (accidentally not specifying options in the way they should be).
>> >> >>
>> >> >> I agree that in that last case, it was probably a bug in the plot 
>> >> >> package,
>> >> >> but in my opinion, the user or developper should never irrevokably 
>> >> >> loose
>> >> >> control over the environment under whatever circumstance, also not when
>> >> >> it's due to his own ignorance, or a bug in a package he's using. 
>> >> >> Certainly
>> >> >> not when trying to promote J as the ideal tool for interactive
>> >> >> experimentation.
>> >> >>
>> >> >> If all experimentation should be stored in scripts, how is the workflow
>> >> >> still so different from that of compiling languages?
>> >> >>
>> >> >> So I would be a huge fan of a feature like an interrupt button for
>> >> >> repeating popups, or making jbreak cleanly interrupt this kind of 
>> >> >> endless
>> >> >> loops.
>> >> >>
>> >> >> Just my two cents.
>> >> >>
>> >> >> Jan-Pieter
>> >> >> On May 20, 2016 12:41 PM, "Raul Miller" <[email protected]> wrote:
>> >> >>
>> >> >> > Has this been a big problem, for you? For anyone?
>> >> >> >
>> >> >> > The problem of being a J programmer and losing control of the system
>> >> >> > is an immediate problem, and I think it's a bigger problem.
>> >> >> >
>> >> >> > Also, for those hypothetical end users who might be "confused" by an
>> >> >> > option,  it would be possible to "remove choices on their behalf" if
>> >> >> > that were actually important.  (That might be somewhat arrogant,
>> >> >> > though, since this "removal" does not seem to improve anything for
>> >> >> > them.)
>> >> >> >
>> >> >> > --
>> >> >> > Raul
>> >> >> >
>> >> >> >
>> >> >> > On Fri, May 20, 2016 at 5:48 AM, bill lam <[email protected]> 
>> >> >> > wrote:
>> >> >> > > IMO errors reported in wdhandler reflect there are some
>> >> >> > > programming bugs or unexpected behavior.  If it occurs in
>> >> >> > > production systems then end users who have no J knowledge should
>> >> >> > > whatsapp the screen shot to the developer. Providing more choices
>> >> >> > > will confuse end users further.
>> >> >> > >
>> >> >> > > Пт, 20 май 2016, Raul Miller написал(а):
>> >> >> > >> I am seeing some odd things here. One of which is that the 
>> >> >> > >> previous
>> >> >> > >> documentation for wdquery --
>> >> >> > >> http://www.jsoftware.com/docs/help701/user/script_winlib.htm#wdquery
>> >> >> > >> -- seems to no longer be valid. Another is that I can not find
>> >> >> > >> documentation for wdquery for the current release. (And I am 
>> >> >> > >> seeing
>> >> >> > >> other oddities in behavior, but I am going to stop trying to 
>> >> >> > >> enumerate
>> >> >> > >> those oddities with those two observations.)
>> >> >> > >>
>> >> >> > >> Anyways, perhaps wdhandler should be changed, replacing
>> >> >> > >>
>> >> >> > >>       wdinfo 'wdhandler';'error in: ',wd_fn,wd_err
>> >> >> > >>
>> >> >> > >> with something like
>> >> >> > >>
>> >> >> > >>       if. 0~:wdquery 'wdhandler';'error in:
>> >> >> > ',wd_fn,wd_err,LF,'continue?' do.
>> >> >> > >>         echo 'DISABLED_',wd_fn
>> >> >> > >>         ('DISABLED_',wd_fn)=: (5!:1<wd_fn)5!:0
>> >> >> > >>         erase wd_fn
>> >> >> > >>       end.
>> >> >> > >>
>> >> >> > >> (but, beware email induced line wrap)
>> >> >> > >>
>> >> >> > >> In other words:
>> >> >> > >>
>> >> >> > >> [1] Give the user the opportunity to continue. Depending on 
>> >> >> > >> details of
>> >> >> > >> other parts of the system, this may or may not result in further
>> >> >> > >> problems.
>> >> >> > >>
>> >> >> > >> [2] If the user opts not to continue, set aside the definition of 
>> >> >> > >> the
>> >> >> > >> current event handler (which failed) and disable it. 
>> >> >> > >> (Hypothetically
>> >> >> > >> speaking, we might be able to skip the setting aside part, 
>> >> >> > >> because the
>> >> >> > >> definition should be in a script. However, in some cases it might 
>> >> >> > >> not
>> >> >> > >> be.)
>> >> >> > >>
>> >> >> > >> Thoughts?
>> >> >> > >>
>> >> >> > >> Thanks,
>> >> >> > >>
>> >> >> > >> --
>> >> >> > >> Raul
>> >> >> > >>
>> >> >> > >> On Thu, May 19, 2016 at 11:59 PM, bill lam <[email protected]> 
>> >> >> > >> wrote:
>> >> >> > >> > I checked agin, it is the local noun wd_fn inside wdhandler.
>> >> >> > >> > so perhaps you can try
>> >> >> > >> >  ". wd_fn,'=:empty'
>> >> >> > >> >  or
>> >> >> > >> >  4!:55 <wd_fn
>> >> >> > >> > inside the catch block.
>> >> >> > >> >
>> >> >> > >> > Пт, 20 май 2016, bill lam написал(а):
>> >> >> > >> >> the first few rows of wdq (global set inside wdhander) should
>> >> >> > provide that
>> >> >> > >> >> info. see j user manual or jwiki for wd documentation.
>> >> >> > >> >> On May 20, 2016 6:55 AM, "Raul Miller" <[email protected]>
>> >> >> > wrote:
>> >> >> > >> >>
>> >> >> > >> >> > Is there a systematic way of determining which verb name is 
>> >> >> > >> >> > the
>> >> >> > name
>> >> >> > >> >> > of the currently running event handler?
>> >> >> > >> >> >
>> >> >> > >> >> > Thanks,
>> >> >> > >> >> >
>> >> >> > >> >> > --
>> >> >> > >> >> > Raul
>> >> >> > >> >> >
>> >> >> > >> >> >
>> >> >> > >> >> > On Thu, May 19, 2016 at 7:27 AM, bill lam 
>> >> >> > >> >> > <[email protected]>
>> >> >> > wrote:
>> >> >> > >> >> > > c++ jqt side did not know what had happened on the j 
>> >> >> > >> >> > > engine so
>> >> >> > it will
>> >> >> > >> >> > keep
>> >> >> > >> >> > > on calling J on paint.  You need to make j paint verb a 
>> >> >> > >> >> > > no-op
>> >> >> > after the
>> >> >> > >> >> > > first popup.
>> >> >> > >> >> > >
>> >> >> > >> >> > > For debug suspension, you may want try catchd instead of 
>> >> >> > >> >> > > catch.
>> >> >> > >> >> > suspension
>> >> >> > >> >> > > in the presence of events is rather troublesome. IIRC all 
>> >> >> > >> >> > > events
>> >> >> > except
>> >> >> > >> >> > > paint are discarded during suspension, so that you may 
>> >> >> > >> >> > > still get
>> >> >> > infinite
>> >> >> > >> >> > > in suspension.
>> >> >> > >> >> > >
>> >> >> > >> >> > > what I used to do is set
>> >> >> > >> >> > > wdinfo_z_=: smoutput_z_
>> >> >> > >> >> > > in order to debug gl paint error.
>> >> >> > >> >> > > On May 19, 2016 5:28 PM, "Raul Miller" 
>> >> >> > >> >> > > <[email protected]>
>> >> >> > wrote:
>> >> >> > >> >> > >
>> >> >> > >> >> > >> So... maybe it would make sense to replace
>> >> >> > >> >> > >>
>> >> >> > >> >> > >>       wdinfo 'wdhandler';'error in: ',wd_fn,wd_err
>> >> >> > >> >> > >>
>> >> >> > >> >> > >> in wdhandler with something like
>> >> >> > >> >> > >>
>> >> >> > >> >> > >>       if. -.wdquery 'wdhandler';'error in:
>> >> >> > >> >> > >> ',wd_fn,wd_err,LF,'continue?' do.throw.end.
>> >> >> > >> >> > >>
>> >> >> > >> >> > >> ?
>> >> >> > >> >> > >>
>> >> >> > >> >> > >> Except... I tried that, and throw. was not sufficient to 
>> >> >> > >> >> > >> stop
>> >> >> > the
>> >> >> > >> >> > >> infinite condition with debugging disabled, and that line 
>> >> >> > >> >> > >> of
>> >> >> > code
>> >> >> > >> >> > >> never runs with debugging enabled. So there is something 
>> >> >> > >> >> > >> else
>> >> >> > going
>> >> >> > >> >> > >> on, also...
>> >> >> > >> >> > >>
>> >> >> > >> >> > >> Perhaps the best compromise for development purposes 
>> >> >> > >> >> > >> would be to
>> >> >> > >> >> > >> disable the offending handler (erase the name) if the user
>> >> >> > elects
>> >> >> > >> >> > >> cancelling out of it?
>> >> >> > >> >> > >>
>> >> >> > >> >> > >> Thanks,
>> >> >> > >> >> > >>
>> >> >> > >> >> > >> --
>> >> >> > >> >> > >> Raul
>> >> >> > >> >> > >>
>> >> >> > >> >> > >>
>> >> >> > >> >> > >> On Wed, May 18, 2016 at 6:36 PM, bill lam 
>> >> >> > >> >> > >> <[email protected]>
>> >> >> > wrote:
>> >> >> > >> >> > >> > the popup dialog box is raised by a try catch block in 
>> >> >> > >> >> > >> > the
>> >> >> > verb
>> >> >> > >> >> > >> wdhandler,
>> >> >> > >> >> > >> > since it does not throw an error after the popup, there 
>> >> >> > >> >> > >> > is no
>> >> >> > >> >> > suspension.
>> >> >> > >> >> > >> > the gl area partially hidden by the popup box is 
>> >> >> > >> >> > >> > repainted
>> >> >> > and since
>> >> >> > >> >> > the
>> >> >> > >> >> > >> gl
>> >> >> > >> >> > >> > paint or any other jqt events has no knowledge that 
>> >> >> > >> >> > >> > there has
>> >> >> > been an
>> >> >> > >> >> > >> error
>> >> >> > >> >> > >> > in j wdhander being caught so there is an infinite 
>> >> >> > >> >> > >> > loop.  You
>> >> >> > may add
>> >> >> > >> >> > >> some
>> >> >> > >> >> > >> > codes in the j paint verb to detect that error 
>> >> >> > >> >> > >> > condition.
>> >> >> > >> >> > >> >
>> >> >> > >> >> > >> > this had been reported but fixing it is a low priority.
>> >> >> > >> >> > >> > On May 19, 2016 5:09 AM, "Raul Miller" 
>> >> >> > >> >> > >> > <[email protected]>
>> >> >> > wrote:
>> >> >> > >> >> > >> >
>> >> >> > >> >> > >> >> Currently, if I am using the gl commands for an 
>> >> >> > >> >> > >> >> isigraph
>> >> >> > control, and
>> >> >> > >> >> > >> >> there's an error, I get behavior which I do not 
>> >> >> > >> >> > >> >> understand.
>> >> >> > >> >> > >> >>
>> >> >> > >> >> > >> >> (1) I get a popup telling me that there was an error 
>> >> >> > >> >> > >> >> (and
>> >> >> > giving me
>> >> >> > >> >> > >> >> the details of the error.
>> >> >> > >> >> > >> >>
>> >> >> > >> >> > >> >> (2) I only have an "OK" option on that popup.
>> >> >> > >> >> > >> >>
>> >> >> > >> >> > >> >> (3) When I click "OK", execution resumes as if there 
>> >> >> > >> >> > >> >> were no
>> >> >> > error
>> >> >> > >> >> > >> >> (presumably on the line following the line with the 
>> >> >> > >> >> > >> >> error.
>> >> >> > >> >> > >> >>
>> >> >> > >> >> > >> >> This quickly leads to an infinite loop condition where 
>> >> >> > >> >> > >> >> my
>> >> >> > only option
>> >> >> > >> >> > >> >> is to shut down J.
>> >> >> > >> >> > >> >>
>> >> >> > >> >> > >> >> At the very least, I think I should get an option to 
>> >> >> > >> >> > >> >> have
>> >> >> > the error
>> >> >> > >> >> > >> >> stop execution somehow.
>> >> >> > >> >> > >> >>
>> >> >> > >> >> > >> >> (13!:0]1 avoids this problem, but why was it a good 
>> >> >> > >> >> > >> >> idea to
>> >> >> > make me
>> >> >> > >> >> > >> >> lose control of the J session in the first place?)
>> >> >> > >> >> > >> >>
>> >> >> > >> >> > >> >> (I'm not sure if this goes in jsource, since I think 
>> >> >> > >> >> > >> >> this is
>> >> >> > a jqt
>> >> >> > >> >> > >> >> issue, not a j engine issue. Please let me know, 
>> >> >> > >> >> > >> >> though, if
>> >> >> > there's a
>> >> >> > >> >> > >> >> better forum for this topic.)
>> >> >> > >> >> > >> >>
>> >> >> > >> >> > >> >> Thanks,
>> >> >> > >> >> > >> >>
>> >> >> > >> >> > >> >> --
>> >> >> > >> >> > >> >> 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
>> >> >> > >> >> > >>
>> >> >> > ----------------------------------------------------------------------
>> >> >> > >> >> > >> 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
>> >> >> > >> >
>> >> >> > >> > --
>> >> >> > >> > regards,
>> >> >> > >> > ====================================================
>> >> >> > >> > GPG key 1024D/4434BAB3 2008-08-24
>> >> >> > >> > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>> >> >> > >> > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>> >> >> > >> > ----------------------------------------------------------------------
>> >> >> > >> > For information about J forums see
>> >> >> > http://www.jsoftware.com/forums.htm
>> >> >> > >> ----------------------------------------------------------------------
>> >> >> > >> For information about J forums see 
>> >> >> > >> http://www.jsoftware.com/forums.htm
>> >> >> > >
>> >> >> > > --
>> >> >> > > regards,
>> >> >> > > ====================================================
>> >> >> > > GPG key 1024D/4434BAB3 2008-08-24
>> >> >> > > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>> >> >> > > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>> >> >> > > ----------------------------------------------------------------------
>> >> >> > > 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
>> >> >
>> >> > --
>> >> > regards,
>> >> > ====================================================
>> >> > GPG key 1024D/4434BAB3 2008-08-24
>> >> > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>> >> > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>> >> > ----------------------------------------------------------------------
>> >> > For information about J forums see http://www.jsoftware.com/forums.htm
>> >> ----------------------------------------------------------------------
>> >> For information about J forums see http://www.jsoftware.com/forums.htm
>> >
>> > --
>> > regards,
>> > ====================================================
>> > GPG key 1024D/4434BAB3 2008-08-24
>> > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
>> > gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
>> > ----------------------------------------------------------------------
>> > For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>
> --
> regards,
> ====================================================
> GPG key 1024D/4434BAB3 2008-08-24
> gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
> gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
> ----------------------------------------------------------------------
> 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