vim, gauche2008年の抱負の一つで挙げていたVimのGauche interfaceですが、ようやく一通りできました。kana's vim at gauche-interface-0.0.0a - GitHubからダウンロードできます。要Gauche 0.8.13 or later。configure時に--enable-gaucheinterpも忘れないように。今のところ、(vim-execute)、(vim-eval)、(vim-apply)といった基本的なものだけがあります。GaucheからVimをコントロールする上での便利なAPIはまだありませんが、それは上記の手続きから導出できるはずです(むしろそのつもりで用意していません)。大体、以下のような感じのことができます: :gauche END (vim-execute "new") (vim-eval "&l:modif
例 (and-let* ((libm (lazy-ffi:open "libm.so.2.0"))) (lazy-ffi:function libm "sin" :return :double :double 1.0)) lazy-ffi:pointer? obj objが<c-pointer>オブジェクトならば#tを返します。 lazy-ffi:pointer-address obj <c-pointer>オブジェクトobjの値を整数で返します。 lazy-ffi:make-null-pointer nullポインタを持つ<c-pointer>オブジェクトを生成します。 lazy-ffi:make-pointer int ポインタの値がintである<c-pointer>オブジェクトを生成します。 lazy-ffi:allocate-foreign-object size sizeの大きさ
Gauche作者、川合さんが Gauche自身について語っているビデオを公開されています。グーグル株式会社で行われた講演だそうです。 内容 なぜ Gauche を作ったのか Gauche実装に付いて、どういう選択を行ったか Gauche の今後 など 感想 なぜ川合さんが Gaucheを作ったのかは、Blog 、書籍、トーク等で断片的に知っていましたが、まとまっているのは初めてです。 Gaucheを最近しった方は是非見てみて下さい。 Gaucheの実装に関しては、言語処理系に興味のある人、作った事のある人には 興味のある内容だと思います。 なかで Tcl の話をされてました。Tclはメインの機能はC言語で書き、それら繋ぐ為のマクロのような言語に割り切った設計になっています。しかがって、なにか問題が起きたときC言語、Tcl という2つの言語を相手にする必要があり大変。1つの言語で上から、下ま
libgauche をリンクすればできるみたい。http://www.practical-scheme.net/wiliki/wiliki.cgi?Gauche%3AYAGHG%3AIntroduction を参考に、外部の scheme コードをロードして結果を表示するプログラムを書いてみた。 main.c で同じディレクトリにある test.scm をロードして、関数 test を評価。結果は と決めうち。 /* main.c */ #include <stdio.h> #include <gauche.h> ScmObj test() { Scm_Load("./test", 0); ScmObj expr = Scm_ReadFromCString("(test)"); return Scm_Eval(expr, SCM_OBJ(Scm_UserModule())); } int
Scheme のソースのコメントからドキュメントを生成する SchemeDoc を Gauche で動くようにしました。(一部いい加減な移植あるのはご容赦ください。) SchemeDoc は Doxygen と同じ種類のツールです。 SchemeDoc の特徴 2種類のドキュメント指示用のコメント形式がある ドキュメント生成のオプションをソースに埋め込める 複数の Scheme ファイルから1つのドキュメントを作れる ドキュメントから Scheme のソースファイルにリンクできる R5RS のドキュメントにリンクできる いろいろな方法で起動できる。(Schemeインタプリタや Emacsから) XML を使ってマニュアルを一から作ることもできるよ 索引を作れる マニュアルの内部形式ファイルを吐くのでそれを使うのもいいかも 独自のコメントタグを作れる インストール 以下 Gauche 特有の
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
■ [biwascheme][event] gauche.gongでLTしました やっぱりSchemeのイベントでデモすると反応が大きくていいなあ,という. スライド 右上の★ボタンを押すとREPLが開いたりするよ.(このためにevalとwrite-to-stringとhtml-escapeを実装するなどした) このプレゼンツール自体もBiwaSchemeで書かれています.(ソース) BiwaSchemeのダウンロードはこちらからどうぞ. ■ [event][scheme] 第2回gauche.nightログ おまけつき 注意 誤字は仕様です 全く見直ししていないため,内容には0個以上の誤りが含まれています.取り扱い注意 「fullでないcontinuation」ってどういうものなのか誰か教えてください 「プログラミングGauche」ができるまで (ログ取れず) 自己紹介 「リリカルLis
[Gauche-devel-jp] Re: how to get stack trace string? Shiro Kawai shiro****@lava***** 2004年 1月 2日 (金) 21:13:18 JST 前の記事 [Gauche-devel-jp] how to get stack trace string? 次の記事 [Gauche-devel-jp] Re: Thread 内での open-input-file について 記事の並び順: [ 日付 ] [ スレッド ] [ 件名 ] [ 著者 ] From: "K.Sasada" <ko1****@namik*****> Subject: [Gauche-devel-jp] how to get stack trace string? Date: Fri, 02 Jan 2004 20:55:09 +0900 >
Gauche でコードを書いているときにコードが意図どおりに動かないことがあります。そのような場合にデバッグする方法を4つ紹介します。 前提 まず Gauche はリリースされている最新版を使った方が良いでしょう。Linuxのディストリビューションによってはパッケージが古い場合あります。 またScheme は関数型言語なので、デバッグの単位は関数(手続き)ごとに行うことが多いです。一つ一つの手続きが意図どおり動いているのか?を調べながら進めるのが基本になります。 方法1 print デバッグ Gauche には今のところデバッガがありませんから基本的には print デバッグがメインとなります。単純な print デバッグから見ていきましょう。 以下のような sum という手続きで print デバッグしてみましょう。 (define (sum n) (if (= n 1) 1 (+ n
ライブラリの作成では、外部へ提供するインタフェースの補助を目的とした変数や手続きを定義することが良くあります。それらの変数や手続きはライブラリの中でのみ使用することが目的で、外部で使われることは想定していません。 また、Gaucheでは名前の束縛を再定義しても警告やエラーを出すような補助は行ってくれません。 そのため、注意深く名前を決めないとうまくライブラリが動作しないという問題が起きてしまいます。 Gaucheではそのような問題を、モジュールという名前空間を管理する仕組みを使って解決できます。 ここでは、モジュールの定義や利用方法について説明します。 例えば、sample.scmというファイルに以下のようなライブラリがあるとします。このライブラリはaddxというインタフェースを提供し、addxは引数にxを足す手続きです。 ;;; sample.scm (define x 100) (de
(2005/07/03 15:35:57 PDT): 現在、別パッケージで提供されているDBI/DBDだが、特定のデータベースに 依存しない部分をGauche本体に取り込む。0.8.6に入る予定。 http://www.kahua.org/cgi-bin/kahua.cgi/kahua-web/show/dev/DBI 今のdbiのAPIは、当時のGaucheの機能が不十分だったこと(特に例外機構)や、 とりあえず使えることを優先して開発されたため、あまりすっきりしていない。 この機会にAPIを整理することにした。 実際にprepared statementのサポートを真面目に考え始めたら、 現状のdbiのアーキテクチャにかなり大幅な変更が必要になることがわかり、 結局中身はほとんど完全に入れ替わっている。 ただ、今までのdbiに依存しているアプリもあるし、ドライバの方もすぐには 新しいd
ネイルで使う材料で、DIY時の木割れやネジ跡を派手にしたらかわいい OSB合板でちょっとしたボックスをつくりました。 ビス止め下手すぎて木を割ったり穴あけすぎたりした場所に、好きな派手色の樹脂を詰めてパテ代わりにしてみました。 ちょっと某HAYっぽみ出て可愛かったので、自分用にメモです。 手順 塗装 派手色グミジェルで失敗部分…
Gauche の拡張ライブラリで、自分でクラスを定義する方法、というよりメモとしてのテンプレート。正しい手順か不明だけど、とりあえず動く。 安直だけど、"clos" という名前の拡張ライブラリを書くとして、Scheme で書くと次のような定義になるようにする。 (define-class <person> () ((name :init-value "Anonymous") (age :init-value 20)))拡張ライブラリのヘッダファイル clos.h の宣言。 typedef struct ScmPersonRec { SCM_HEADER; ScmObj name; int age; } ScmPerson; SCM_CLASS_DECL(Scm_PersonClass); #define SCM_CLASS_PERSON (&Scm_PersonClass) #define
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く