butterfly dream

FX自動取引のための時系列分析・信号処理・戦略ブログ

科学技術計算用プログラミング言語:Sci-Lispの自作(15日目):素晴らしいお手本「ClojureRS」とGitHub workflow

chaploud-blog.hatenablog.com

Sci-Lisp自作の15日目です。

ClojureRS

Sci-LispClojureライクなシンタックスを持つので、字句解析・構文解析・評価などどうしようかなと考えていた時、素晴らしいリポジトリを見つけました。

github.com

ずばり、「ClojureRS」です。ClojureをRust上で実装しようという試みのようですね。最終更新日は2023年4月となっています。ライセンスはApache2.0であるため、このコードを参考にしつつSci-Lisp実装をして言ってよさそうです。しばらくは、ClojureRSのコードリーディングに充てることになりそうです。

GitHub workflow

変更をGitHubにpushした際に自動テスト・ビルドが走り、ステータスが見れるといいなと思っていました。cargoで作成したプロジェクトであれば、.github/workflows/rust.yml に以下のように記述するだけで、フォーマット、テスト、ビルドのチェックをしてくれます。

name: Rust

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

env:
  CARGO_TERM_COLOR: always

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Format
      run: cargo fmt -- --check
    - name: Build
      run: cargo build --verbose
    - name: Run tests
      run: cargo test --verbose

また、トップの README.md に以下のようなリンクを埋め込めば、よく見るステータスバッジが表示されます。

<p align="center">
<a href="https://github.com/chaploud/sci-lisp/actions/workflows/rust.yml"><img src="https://github.com/chaploud/sci-lisp/actions/workflows/rust.yml/badge.svg?branch=main" alt="rust status"/></a>
</p>

詳しくは、ワークフロー状態バッジの追加 - GitHub Docs を参考にしてください。