Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scheme用nREPLの開発(エラー出力の改善)

Niyarin
February 06, 2022

 Scheme用nREPLの開発(エラー出力の改善)

Niyarin

February 06, 2022
Tweet

More Decks by Niyarin

Other Decks in Programming

Transcript

  1. Scheme用nREPL: Orange-paren ・依存ライブラリ SRFI 18 (Multithreading) SRFI 106 (Basic socket

    interface) ・Ring、Clojure nREPL風なミドルウェア (メッセージを処理するやつ) ・Vim用のクライアント 2/6 niyarin/orange-paren ・ 標準出力系手続きの処理 ・ 多値の出力 ・エラーの出力 ・define-libraryを意識したeval ・機能増やす (マクロ展開結果とかみたい ) やったこと これから
  2. 実装方針 6/6 (import (scheme base) (scheme write) …. ) (import

    (except (scheme base) define) (only (orange-paren hack-expression) define) (scheme write) …. ) importを投げると改造したマクロが名前空間に挿入される (define log ‘()) (define-syntax define (syntax-rules () ((_ (proc-name …… (define (proc-name . args) (with-exception-handler (lambda (object) (set-log! log proc-name args)) ※ 実際には末尾呼び出し最適化を殺さないように外側の一回だけ例外キャッチする