はじめに

NagiScript のインストールから最初のプログラム実行までを解説します。

現行仕様について(v0.2.0)

import・モジュール分割・std:io 等の標準モジュールは未実装です。本ページは現行コンパイラーで動作する内容のみを扱います。将来の仕様案(ロードマップ)は各ページの注記を参照してください。

NagiScript とは

NagiScript は、以下の特性を持つ Systems Programming 言語です:

特性 説明
型安全性 実行時エラーを排除する静的型付け
C ABI 互換 既存の C ライブラリをそのまま利用可能
高性能 LLVM IR への直接マッピング
安全性 自動メモリ管理(Rc)と Unsafe 制御
軽量 最小限のランタイム(libc のみ)

インストール

npm(推奨)

bash
npm install -g @nagiscript/cli

cargo

bash
cargo install ngs_driver

検証

bash
nagiscript --version
# nagiscript 0.2.0

最初のプロジェクト

ステップ 1: プロジェクト作成

bash
nagiscript init my_project

これで以下が生成されます:

my_project/
├── main.ngs      ← メインファイル
└── project.toml  ← プロジェクト設定

ステップ 2: コードを確認

出力には組み込みの println(値) を使います。import / std:io / io.println は現行では未実装です。戻り値のない関数は fn name() と書き、-> void は付けません。

現行仕様(v0.2.0)

動作する型は bool / string / i8〜i64 / u8〜u64 / usize / isize / f32 / f64 などです(str という型名はありません)。

main.ngs
fn main() {
    println("Hello from my_project!")
}

ステップ 3: 実行

bash
nagiscript run main.ngs
# Hello from my_project!

その他のコマンド

bash
# チェック(コンパイルのみ、実行しない)
nagiscript check main.ngs

# LLVM IR を出力
nagiscript ir main.ngs

# バイナリをビルド
nagiscript build main.ngs -o my_app

# WebAssembly ビルド
nagiscript wasm main.ngs -o out

# TypeScript 型定義ファイルを生成
nagiscript dts main.ngs -o main.d.ts

プロジェクト設定(project.toml)

project.toml
[project]
name = "my_project"
version = "0.1.0"

[build]
entry = "main.ngs"
target = "native"  # "native" or "wasm"
output = "build/"

トラブルシューティング

インストール失敗

bash
# Cargo のバージョンを確認
cargo --version  # 1.75 以上が必要

# npm の権限問題
sudo npm install -g @nagiscript/cli

ビルドエラー

bash
# LLVM がインストールされているか確認
llc --version

# エラーメッセージを詳細に表示
nagiscript check main.ngs 2>&1