Skip to content

言語: 整数型バリエーション (i32/i64/u32/u64/usize) #103

Description

@ryuichi1208

目的

現在 int 一種類しかない整数型に、ビット幅と符号を明示した型を導入し、stdlib / C FFI / 添字計算で必要な精度・範囲を表現できるようにする。

現状

  • rwc/lexer.pyKW_INT 一つだけが整数キーワード
  • len(b) の戻り値、添字、ファイル size などが全て int (= 内部的に i64) に潰れている
  • C FFI (言語: extern "c" による C 関数呼び出し #23) を入れると size_t / int32_t / uint64_t 相当が必要

提案する型

  • 符号付き: i8, i16, i32, i64
  • 符号なし: u8, u16, u32, u64
  • ポインタ幅: usize (= u64 on 64-bit), isize
  • 既存の inti64 のエイリアス として後方互換

検討事項

受け入れ条件

  • lexer / parser / sema / irgen で新規キーワードを通す
  • LLVM IR レベルで適切なビット幅を選択
  • examples に i32 / u64 / usize の動作例を追加
  • 既存 int コードが回帰しない(i64 alias)

関連

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:lang言語仕様・構文・型システムenhancementNew feature or requestpriority:high実用化に必須

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions