Shiika/パッケージマネージャ0
パッケージマネージャに最低限必要な機能とは。
まだ考えないこと
バージョン解決(指定されたバージョンを必ず取得する)
設定ファイル
code:json5
// packages.json5
{
dependencies: [
{name: "Zlib", git: {path: "../zlib"}}
],
}
locked-packages.jsonはない(上記がlockedそのものなので)
これらの取得
$SHIIKA_ROOT以下に置く
code:txt
$SHIIKA_ROOT/
packages/
Stdlib-0a87df/
Zlib
そのあと、どうやってビルドするか
.skと.rsがある (.cとかはとりあえず考えないことにする)
.rs
cargoは入っているものとする
cargo buildすると、target/debug/*.aができる
.sk
shiika compileで.bcにする
query system
適宜ディスクにキャッシュする
成果物(実行ファイル)を得るのに必要なもの
本体の.bc
本体の.a (やりたいかはともかく一貫性として)
依存ライブラリそれぞれについて:
.a
cargo build
.bc
shiika compile --lib
要検討
フォルダ構成
code:txt
ext/
Cargo.toml
src/foo.rs
src/
main.sk
packages.json5