Feature #1477
Support variable-width integer types
Status: | In Progress | Start date: | 04/25/2013 | ||
---|---|---|---|---|---|
Priority: | Normal | Due date: | |||
Assignee: | J. Moringen | % Done: | 80% | ||
Category: | Core Model | ||||
Target version: | rosetta-0.4 |
Associated revisions
Support variable-width integer types in src/model/data/type-fundamental.lisp
refs #1477
Builtin serialization mechanisms do not handle variable width
integers.
- src/model/data/type-fundamental.lisp (type-integer*): removed
superclass `fixed-width-mixin'
(validate-value type-integer* integer): removed with-based check
(type-fixed-width-integer): new class; integer type with fixed width
(validate-value type-fixed-width-integer integer): check integer,
sign and width
(define-fundamental-integer-type): changed superclass type-integer*
-> type-fixed-width-integer; allow types without width
(define-fundamental-integer-type t): new type; signed integer
without width
(define-fundamental-integer-type nil): similar for unsigned - src/model/data/package.lisp (package rosetta.model.data): added
exported symbols type-uint, type-int, uint and int - src/frontend/model-builder.lisp (find-node module eql fundamental):
handle integer types without width - src/backend/emitter-lisp.lisp
(emit fundamental-type-mixin target-class language-lisp): handle
integers with and without width - src/backend/emitter-serializer.lisp (define-variable-width-method):
handle potential variable width of length type
History
#1 Updated by J. Moringen about 11 years ago
- % Done changed from 0 to 80
#2 Updated by J. Moringen about 7 years ago
- Target version changed from rosetta-0.2 to rosetta-0.3
#3 Updated by J. Moringen about 7 years ago
- Target version changed from rosetta-0.3 to rosetta-0.4