Feature #1477

Support variable-width integer types

Added by J. Moringen about 11 years ago. Updated about 7 years ago.

Status:In ProgressStart date:04/25/2013
Priority:NormalDue date:
Assignee:J. Moringen% Done:

80%

Category:Core Model
Target version:rosetta-0.4

Associated revisions

Revision a89839ef
Added by J. Moringen about 11 years ago

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

Also available in: Atom PDF