Ticket #357 (closed defect: duplicate)

Opened 6 years ago

Last modified 6 years ago

SUBTAG-BYTES and weird element-types

Reported by: rme Owned by: gb
Priority: minor Milestone:
Component: Runtime (threads, GC) Version: trunk
Keywords: Cc:

Description

On 32-bit platforms, we see:

? (open #p"/dev/null" :direction :probe :element-type '(unsigned-byte 33))
> Error: Not an ivector subtag: 170
> While executing: SUBTAG-BYTES, in process listener(1).

The 170 is subtag-simple-vector. Maybe SUBTAG-BYTES should just punt somehow if it gets a non-ivector subtag? Maybe return NIL and deal with that in OPTIMAL-BUFFER-SIZE?

(From the test suite.)

Change History

comment:1 Changed 6 years ago by gb

Part of the problem is that (UNSIGNED-BYTE 31) is both weird and bigger than the word size; I think that (UNSIGNED-BYTE 31) is just weird, and would be promoted to either (UNSIGNED-BYTE 32) or (SIGNED-BYTE 32).

In any case, complaining more clearly (somehow, somewhere) that the element type can't be supported in the implementation would probably be clearer than complaining about ivectors and their tags.

comment:2 Changed 6 years ago by gb

And by the first reference to "31" above, I mean "31, in the sense of 33", naturally.

comment:3 Changed 6 years ago by rme

  • Status changed from new to closed
  • Resolution set to duplicate

Same thing as ticket:280.

Note: See TracTickets for help on using tickets.