common-lisp

difftasticをCommon Lispで使ってみる

Difftastic, a structural diff をCommon Lispで使ってみた。 cargoでインストールする。 cargo install --locked difftastic (略) Installing /home/gos-k/.cargo/bin/difft Installed package `difftastic v0.53.1` (executable `difft`) 以下の2ファイル…

roswell2をインストールする

Lisp Advent Calendar 2023 - Adventar の6日目の記事です。 以前からCommon Lispの処理系マネージャ(?)である roswell は存在していたが、新に roswell2 が出てきたので使ってみる。 roswellとroswell2の大きな違いは、roswellが複数OSへの移植性を考慮して…

Common Lispで関数呼出を辿る

通常プログラムを書いていると、関数を書いて、その関数を呼び出す関数を書いて、というような木構造とか階層構造とか複雑になっていく。 これを辿る方法について。 実行環境はlemのslime上で、ccl 1.12.1が前半でsbcl 2.2.9が後半。 slimeの挙動 slimeには …

UbuntuにおけるVSCodeのCommon Lisp設定その2

今度はVSCodeの前回とは別のCommon Lisp拡張である Alive - Visual Studio Marketplace を使ってみる。 前回のは現状インストール数6kくらいなのに対してこれはインストール数600くらいで少ないが、Using VSCode with Alive を見るかぎり機能的にはこちらの…

UbuntuにおけるVSCodeのCommon Lisp設定

VSCode上でCommon Lispを書くための設定について。 Common Lisp - Visual Studio Marketplace 確認したバージョン roswellでCommon Lisp環境を整えるのが前提。 Visual Studio Code : 1.59 roswell : 21.06.14.110(c0bc597) SBCL : 2.1.3 linedit : 4cfaf45d…

サブクラスを取得する

Common Lispであるクラスのサブクラス全てを欲しかった。 というかmito:dao-table-classのサブクラス全てのが欲しかったが、具体的に分からなかったのでメモ。 前提条件として、Common Lisp Object Systemと呼ばれるクラスシステムが標準であるが、このCLOS…

PostgreSQL上でのベンチマークをとる

前回で実行計画も見れるようになったので実際にベンチマークをとっていく。 PostgreSQL上でのベンチマークをとる準備その2 - gos-k’s blog 前提としてこれは私がDBを知らないから試しているのであって、まともに勉強している人にとって新しい情報は何も出て…

PostgreSQL上でのベンチマークをとる準備その2

PostgreSQLのベンチマークをとる準備 - gos-k’s blog 前回に続いてまだまだ準備する。 explainの追加 現状のsxqlにexplainはないので追加した。 GitHub - gos-k/sxql: An SQL generator for Common Lisp. これをローカルにインストールする。 ros install go…

PostgreSQL上でのベンチマークをとる準備

DB全般をあまり知らないので、仕事上使っているPostgreSQL上で簡単なベンチマークをとる。 実行環境 ASUS ROG Zephyrus GX502 Ubuntu 20.04 PostgreSQL 12.5 SBCL 2.0.11 Quicklisp 2020-12-20 参考文献 GitHub - fukamachi/cl-dbi: Database independent in…

Claspをビルドする2020-05

Common Lisp処理系のClaspは、依存ライブラリやリビジョンが色々変わって中々出来ない事が多いので、現時点でビルド可能な組み合わせについて。 ホスト計算機はUbuntu 18.04.4 x86_64 で確認を行っている。 Ubuntuのパッケージ方針がよく分からないが、18.04…

ユニットテストでダミーの関数に差し替える

Common Lispでユニットテストを行う場合に、ユニットテストから呼び出した関数の内部で呼ばれる関数を本来の動作とは違う別の関数に差し替えたい場合がある。 関数を一時的に置き換える方法についてのメモ。 関数 例えば次の例では関数 charlie をテストしよ…

Common Lispで最速のfizzbuzzを実装した話

Kazuho氏のblogにこういうのがあったのでCommon Lispでやってみた。 blog.kazuhooku.com Common Lispで実装する。 (defmacro fizzbuzz (n) (format nil "~{~a ~}" (loop for i from 1 below n collect (cond ((= 0 (mod i 15)) "fizzbuzz") ((= 0 (mod i 5))…

Raspberry PiのBluetoothをCommon Lispから使えなかった

rp3bのbluetoothをcommon lispから使いたい。 bluezのラッパーから使うだけだけどc2ffiを実行できるのか? とりあえずhu.dwim.bluezをロード ros use sbcl-bin ros run (ql:quickload :hu.dwim.bluez) ; caught ERROR: ; READ error during COMPILE-FILE: unm…

Raspberry PiでCommon Lispの起動が遅い

Raspberry Pi 3 Model B買ってCommon Lisp入れた - gos-k’s blog でちょっと触っていて起動が遅い気がするのでバージョン確認出来たものについてとりあえず時間計測する。 ros use sbcl-bin time ros run -e "(quit)" real 0m26.860s user 0m24.720s sys 0m0…

Raspberry Pi 3 Model B買ってCommon Lisp入れた

Raspberry Pi 3 Model B - Raspberry Pi を購入したのでCommon Lispを動かしてみたメモ。 NOOBSのSDカード作成 PC上で Download NOOBS for Raspberry Pi から NOOBS LITE v1.9をダウンロードし、 NOOBS For Raspberry Pi – Rants & Raves – The Blog! を参考…

MGLを触るためにとりあえず動作確認

Common Lispの機械学習ライブラリが一部で流行りなので、ちょっと触ってみた。 Common Lispで行列演算(2): MGL-MATを使う - 翡翠はコンピュータに卵を生むか Lispmeetup #39 MGLの紹介: Common Lispによるディープラーニング cl-cudaのquicklispへの登録が…

local-time:todayとlocal-time:now

The local-time Manual SQLを扱っていると日付を指定する事が往々にある。 Common Lispからそういうコードのユニットテストを行う場合local-timeライブラリを使っている。 が、このライブラリにある関数todayと関数nowは両方ともtimestampオブジェクトを返す…