Skip to content

Which Types Should We Support? #105

@codereport

Description

@codereport

In jytpe.h there are a list of supported types:

#define B01   ((I)1L<<B01X)           /* B  boolean                      */
#define LIT   ((I)1L<<LITX)           /* C  literal (character)          */
#define INT   ((I)1L<<INTX)           /* I  integer                      */
#define FL    ((I)1L<<FLX)            /* D  double (IEEE floating point) */
#define CMPX  ((I)1L<<CMPXX)          /* Z  complex                      */
#define BOX   ((I)1L<<BOXX)           /* A  boxed                        */
#define XNUM  ((I)1L<<XNUMX)          /* X  extended precision integer   */
#define RAT   ((I)1L<<RATX)           /* Q  rational number              */
#define BIT   ((I)1L<<BITX)           /* BT bit boolean                  */
#define SB01  ((I)1L<<SB01X)          /* P  sparse boolean               */
#define SLIT  ((I)1L<<SLITX)          /* P  sparse literal (character)   */
#define SINT  ((I)1L<<SINTX)          /* P  sparse integer               */
#define SFL   ((I)1L<<SFLX)           /* P  sparse floating point        */
#define SCMPX ((I)1L<<SCMPXX)         /* P  sparse complex               */
#define SBOX  ((I)1L<<SBOXX)          /* P  sparse boxed                 */
#define SBT   ((I)1L<<SBTX)           /* SB symbol                       */
#define C2T   ((I)1L<<C2TX)           /* C2 unicode (2-byte characters)  */
#define C4T   ((I)1L<<C4TX)           /* C4 unicode (4-byte characters)  */
#define XD    ((I)1L<<XDX)            // DX extended floating point   used to represent intolerant compare in jtiosc
#define XZ    ((I)1L<<XZX)            /* ZX extended complex             */

My feeling is that we should remove some of these types. I think the first 6 should be kept. But then (the question is) should we remove any of the following:

  • Rational number
  • Bit boolean
  • Sparse *
  • Unicode
  • Extended *

I will do some investigation into this, we should be intentional about how we remove these and associated code blocks.

Metadata

Metadata

Assignees

Labels

code removalRemoving code / reducing complexity

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions