Hi Bob,
Thanks for offering to investigate with j901.
eval y --evaluates string: (y) to return a guaranteed real scalar
floating-point number.
It accepts an optional scalar Boolean x-arg, default 0.
If x-:1 then it returns the imaginary part of (".y)
It accept "Excel-type" numerals and converts them to J numerals, e.g.
'3/4' --> '3%4'
'-5.1E-9' --> '_5.1e_9'
It's designed to accept whatever the (non-J-savvy) TABULA user throws at
it, without crashing or failing to deliver something appropriate. It's
tooled-up with diagnostics.
I've rephrased the suspect definition of: eval and released math/uu version
2.1.24 on JAL.
Please upgrade math/uu with pacman, run TABULA and verify:
VERSION_uu_
2.1.24
eval_uu_
3 : 0"1
0 eval y
:
EVAL__=:''
if. 0=#y do. BADFLOAT [EVAL__=: 'empty'
elseif. _1=4!:0<y do. BADFLOAT [EVAL__=: 'unassigned id'
elseif. 0=4!:0<y do. x evalRC y
elseif. do.
x evalRC '/%-_Ee'charsub ,>y
end.
)
Even if this fixes eval, the construct: (default&$: : (4 : 0)"1) is used
elsewhere,
viz to define (in locale 'uu'): format, formatOUT, cnvi, deslash, dotted,
slash1, ucode, ucods, udat,
make_units, s4x, spout, viewtables, uu.
I've not altered these, so some of these may be missing too.
If all of these are present, and intact, but eval is still undefined, then
maybe it isn't a bug in j901, but something it does differently that
exposes a bug of my own.
Ian Clark
On Sat, 8 Jun 2019 at 07:19, 'robert therriault' via Chat <
[email protected]> wrote:
> Hi Ian,
>
> I looked at the script and I wondered about those blank lines. I also
> tried messing around with various declarations of eval, but each attempt
> failed at different points. I am on my iPad for the next 24 hours so I am
> not in a position to figure it out. If you could let me know the role eval
> plays in the script, it would be helpful, as it shows up in a number of
> different places. If I had a guess, I would say that the issue may have
> something to do with the way that the verb is declared. Standard approach
> to me would be to have 0&$: on the second line and follow with a single
> line of : to separate monad and dyad, but I don’t see why your approach
> would not work and definitely it does for j807.
>
> All I have for now, maybe more if I play a bit with it on Sunday.
>
> Cheers, bob
>
> Sent from my iPad
>
> > On Jun 7, 2019, at 6:49 PM, Ian Clark <[email protected]> wrote:
> >
> > Bob -- I don't know what's going on here. And not being able to run j90,
> I
> > can't find out.
> >
> > Am I hitting a bug in j901 interpretation?
> > j901 (but not j807) just seems to be ignoring the definition of eval,
> which
> > is (sic!):
> >
> > eval=: 0&$: : (4 : 0)"1
> >
> >
> >
> >
> >
> > EVAL__=:''
> > if. 0=#y do. BADFLOAT [EVAL__=: 'empty'
> > elseif. _1=4!:0<y do. BADFLOAT [EVAL__=: 'unassigned id'
> > elseif. 0=4!:0<y do. x evalRC y
> > elseif. do.
> > x evalRC '/%-_Ee'charsub ,>y
> > end.
> > )
> >
> > The empty lines may be confusing the interpreter. They are caused by
> > decommenting during the build process. You might try editing
> > ~addons/math/uu/uu.ijs to remove the blank lines, and see if that makes a
> > difference.
> >
> > I'm also suspicious of how j901 might be interpreting the header line:
> > eval=: 0&$: : (4 : 0)"1
> > The verb definition is rather on the complicated side. You might try
> > additional parentheses:
> > eval=: (0&$: : (4 : 0))"1
> > or replacing the "def" line with a simpler way of defining a monad/dyad
> > with defaulted (x).
> >
> > It just puzzles me that j901 can skate through the definition of eval
> when
> > loading uu.ijs without either creating the verb or raising an error
> > condition.
> >
> > Another possibility (though I don't see how) is that eval_uu_ is indeed
> > getting defined, but too late to save
> > uvalu=:eval openv
> > from crashing with a value error.
> >
> > The above line is executed by start_uu_ as part of the verb: make_units.
> > But it's not actually start_uu_ that gets executed, but something like
> > start__uun, because locale 'uu' is a class that math/cal instantiates.
> > Might that be concealing the definition of eval_uu_?
> >
> > Without an AVX computer, I'm just floundering around in the dark.
> > (@Henry -- do you read the Chat forum? Or should I cross-post this to the
> > general forum?)
> > If I don't get an answer to this, I shall have to edit RELEASE=:… in
> > math/uu/manifest.ijs to state it is not supported by J releases later
> than
> > j807.
> >
> > Ian
> >
> > On Fri, 7 Jun 2019 at 21:19, 'robert therriault' via Chat <
> > [email protected]> wrote:
> >
> >> Same situation for j901, although from the error report it looks like
> you
> >> added a line. J807 seems to load without error.
> >>
> >> Cheers, bob
> >>
> >> load 'math/tabula'
> >> |value error: eval
> >> | uvalu=:eval openv
> >> |[-1867] /users/bobtherriault/j901/addons/math/uu/uu.ijs
> >> test ''
> >> +++ BUILTIN TEST OF UU [CAL, TABULA]
> >> --- VERSION of UU -- 2.1.23
> >> --- VERSION of CAL -- 2.1.21
> >> --- VERSION of TABULA -- 2.1.12
> >> --- TP*_z_ paths:
> >> ┌────┬────────────────────────────────────────────┐
> >> │TPAR│/users/bobtherriault/tabula-user/ttarchive │
> >> ├────┼────────────────────────────────────────────┤
> >> │TPAT│/users/bobtherriault/j901/addons/math/tabula│
> >> ├────┼────────────────────────────────────────────┤
> >> │TPCA│/users/bobtherriault/j901/addons/math/cal │
> >> ├────┼────────────────────────────────────────────┤
> >> │TPCL│/users/bobtherriault │
> >> ├────┼────────────────────────────────────────────┤
> >> │TPMC│/users/bobtherriault/j901/addons/math/cal │
> >> ├────┼────────────────────────────────────────────┤
> >> │TPMT│/users/bobtherriault/j901/addons/math/tabula│
> >> ├────┼────────────────────────────────────────────┤
> >> │TPMU│/users/bobtherriault/j901/addons/math/uu │
> >> ├────┼────────────────────────────────────────────┤
> >> │TPNG│/users/bobtherriault/j901/addons/math/tabula│
> >> ├────┼────────────────────────────────────────────┤
> >> │TPSA│/users/bobtherriault/j901/addons/math/cal │
> >> ├────┼────────────────────────────────────────────┤
> >> │TPTA│/users/bobtherriault/j901/addons/math/tabula│
> >> ├────┼────────────────────────────────────────────┤
> >> │TPTT│/users/bobtherriault/tabula-user │
> >> ├────┼────────────────────────────────────────────┤
> >> │TPUC│/users/bobtherriault/j901/addons/math/uu │
> >> ├────┼────────────────────────────────────────────┤
> >> │TPUF│/users/bobtherriault/j901/addons/math/uu │
> >> ├────┼────────────────────────────────────────────┤
> >> │TPUM│/users/bobtherriault/j901/addons/math/uu │
> >> ├────┼────────────────────────────────────────────┤
> >> │TPUT│/users/bobtherriault/j901/addons/math/tabula│
> >> ├────┼────────────────────────────────────────────┤
> >> │TPUU│/users/bobtherriault/j901/addons/math/uu │
> >> └────┴────────────────────────────────────────────┘
> >>
> >>> On Jun 7, 2019, at 1:11 PM, Ian Clark <[email protected]> wrote:
> >>>
> >>> Please use pacman to upgrade math/uu to 2.1.23
> >>
> >> ----------------------------------------------------------------------
> >> 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