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