Sorry, only just noticed this thread…

It's not just one stray word, as I first thought. It's the tip of a very
soggy iceberg. It affects not just math/tabula but any code which uses the
zulu verbs.

The addon: format/zulu is paranoid and overcomplicated for what it does. To
avoid a dependency on it (for just this kind of reason), the decision was
taken to let '~addons/math/cal/tabz.ijs' define the zulu verbs in _z_ for
use by the whole suite: cal, uu and tabula.

Subsequently certain zulu verbs got aliases, viz:

   cocurrent 'z'
   a2b =: any2b
   a2o =: any2o
   a2x =: any2x
   a2f =: any2f

…and someone maintaining the code (…maybe me) has used the new aliases in
tabula, viz. in verbs: assignments_tab_ and setunits_tab_. (These are the
only verbs affected.)

The bug is masked for anyone like me loading format/zulu as standard. Thus
IMO specifying format/zulu as a math/tabula dependency is wrong because it
simply buries the problem, to come back and haunt us. Especially new users.

The above code is a fix. But where to put it?

~addons/math/cal/tabz.ijs has:

NB. Generic interconversions of form: any2*
any2b=: 3 : '". :: BB ''2b y'',~zutype y'
any2o=: 3 : '". :: LL ''2o y'',~zutype y'
any2x=: 3 : '". :: MM ''2x y'',~zutype y'
any2f=: 3 : '". :: LL ''2f y'',~zutype y'

BUT............

~addons/format/zulu/zuany.ijs has:

NB. Generic interconversions of form: a2*
a2b=: 3 : '". :: BB ''2b y'',~zutype y'
a2o=: 3 : '". :: LL ''2o y'',~zutype y'
a2x=: 3 : '". :: MM ''2x y'',~zutype y'
a2f=: 3 : '". :: LL ''2f y'',~zutype y'

I recommend both JAL scripts are altered to read identically, viz:

NB. Generic interconversions of form: any2* (alias: a2*)
any2b=: a2b=: 3 : '". :: BB ''2b y'',~zutype y'
any2o=: a2o=: 3 : '". :: LL ''2o y'',~zutype y'
any2x=: a2x=: 3 : '". :: MM ''2x y'',~zutype y'
any2f=: a2f=: 3 : '". :: LL ''2f y'',~zutype y'

It would be good to expunge a2b, a2o, a2x, a2f from
'~addons/math/cal/tabula.ijs' in favour of any2b, any2o, any2x, any2f --
the original intention. But anyone maintaining math/tabula (and all JAL
code which uses zulu verbs) risks repeating the gaffe.

The remedy is to accept either alias. Everywhere. And in a form easily
understood by a maintenance coder unfamiliar with the code.

By coincidence I've just been looking at the CAL engine (math/cal) with a
view to making some additions to its instruction set. I'll put this on my
to-do list, if nobody fixes it first.


On Sat, Mar 11, 2017 at 2:27 AM, bill lam <[email protected]> wrote:

> Agreed. Dependencies should be require when loading
> addon scripts.  I am not familiar with tabula and will
> let others to fix it.
>
> Пт, 10 мар 2017, Tom Arneson написал(а):
> > Thanks, Bill. A user of an addon should not have to track down
> definitions. Maybe the creator of tabula should fix it, or else it should
> be dropped from addons.
> >
> > -----Original Message-----
> > From: Programming [mailto:[email protected]] On
> Behalf Of bill lam
> > Sent: Friday, March 10, 2017 20:02
> > To: [email protected]
> > Subject: Re: [Jprogramming] math/tabula missing definition of a2f
> >
> > I grep a2f= and found it here
> >
> > > format/zulu/zuany.ijs:a2f=:     3 : '". :: LL ''2f y'',~zutype y'
> >
> > Пт, 10 мар 2017, Tom Arneson написал(а):
> > > I tried to run tabula today, and got this error message:
> > >
> > >
> > >
> > > load'math/tabula'
> > >
> > > |value error: a2f
> > >
> > > | z=. a2f tabengine nb'UCOM';L0
> > >
> > >
> > >
> > > JVERSION
> > >
> > > Engine: j805/j64/windows
> > >
> > > Release: commercial/2016-12-11T08:02:16
> > >
> > > Library: 8.05.14
> > >
> > > Qt IDE: 1.5.3s/5.6.2
> > >
> > > Platform: Win 64
> > >
> > > Installer: J805 install
> > >
> > > InstallPath: c:/program files/j64-805
> > >
> > > Contact: www.jsoftware.com
> > >
> > >
> > >
> > > I searched for a2f in ~addons/math/tabula/tabula.ijs and only found
> > > the call which produced the error message above
> > >
> > > ----------------------------------------------------------------------
> > > 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