It would be possible to change how type is handled without breaking user code:

use 2 ^. typebit to represent type index. For the current cases that
want to check for set membership (e.g. is this a numeric type?), use a
lookup table. Then use 2^typeindex for the foreigns which need the
typebit. (Note that this can become floating point on 32 bit machines,
with relatively minimal problems.)

This would require changing a lot of code, so it is not something to
undertake lightly. And, this would also break code which knows about
the current C interface, so that's more work, and probably a major
version change. But it is doable.

-- 
Raul


On Fri, Jul 29, 2016 at 3:06 PM, Henry Rich <henryhr...@gmail.com> wrote:
> It wouldn't be necessary to change VRESX to 29; we would put in bit-by-bit
> tests as needed.  I wanted to eliminate as much bit-testing as possible for
> the usual cases.
>
> I don't think reordering the type bits is possible, since user code depends
> on the assignment.
>
> Henry Rich
>
>
> On 7/29/2016 3:00 PM, Thomas Costigliola wrote:
>>
>> Are the changes to the bit patterns at the top of va.h supposed to
>> eliminate an extra lookup later?
>>
>> #define VBB             B01         /* convert arguments to B
>> */
>> #define VII             INT         /* convert arguments to I
>> */
>> #define VDD             FL          /* convert arguments to D
>> */
>> #define VZZ             CMPX        /* convert arguments to Z
>> */
>> #define Vxx             XNUM        /* convert arguments to XNUM
>> */
>> #define VQQ             RAT         /* convert arguments to RAT
>> */
>> #define VARGMSK         (VBB|VII|VDD|VZZ|Vxx|VQQ)  // mask for argument
>> requested type
>> #define VRESX           8           // bit position for result flags
>>
>> But what happens if the extended floating point type (XD) gets
>> implemented? That would push VRESX to 29 and leave no room for VXCVTTYPEX on
>> 32 bit machines. I do have custom types beyond bit 29 and I would like to
>> conform to the official source, what is the recommendation? Reorder the type
>> bit patterns?
>>
>> ----------------------------------------------------------------------
>> 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

Reply via email to