Ypsilon API

YpsilonがPS3で動くようになりました

野田 開さんのご厚意によりPS3をSSH経由で提供して頂きました m(_ _)m32bit/64bit対応でFFIもサポート済みですよ。 :)libspe2を使ったテストプログラムを作ってみました。svn trunkのイプシロンをPS3に入れると動きます^^b #!/usr/bin/env ypsilon #!r6rs …

SDL_ttfのバインディングを追加しました

example/sdl-ttf-demo.scmの表示です :)

MySQLのバインディングを追加しました

やっぱりハッシュテーブルだけだとキツイです・・・で、餅は餅屋ということでMySQL 5.1 C APIのバインディングを追加しました。 $ ypsilon Ypsilon 0.9.6-trunk/r443 Copyright (c) 2009 Y.Fujita, LittleWing Company Limited. > (import (ypsilon mysql)) …

SDL on Mac OSX

id:kazuya_aさんにSDLをMac OSXで使う方法を教えて頂きました :D ypsilon+SDL+Mac OSX! SDLMain.mをスタティックリンクしなくても良いというのは素晴らしいですね!

FFIに可変引数(variadic arguments)のサポートを追加しました

こんな風に使えます :D > (import (ypsilon ffi)) > (define libc (load-shared-object "libc.so.6")) > (define printf (c-function libc "libc" int printf (char* ...))) > (printf "test %d %f %s %e\n" 100 100.0 "こんにちは" 0.0001) test 100 100.00…

Gtk, Gdk, Pango, GtkGLExtのバインディングを追加しました

Glib, GObjectの一部も作っています。全部で4000個くらい関数があって、Gtkだけでも1万行を越えています@@。あんまりなので、現在はWidgetごとに細かくライブラリファイルを分けた状態にしています。もちろんCのヘッダーファイルから定義をぶっこ抜くスク…

SDLとCairoをライブラリに追加しました

SDLとCairoのバインディングをライブラリに追加しました。WindowsもOKですよ:D

SRFI-48を追加しました

SRFI-48を追加したのですが、そのテストの過程でR5RSで不思議に思っていた'#'をPetite Chez Schemeが出力するのを目撃しました :)

R6RSのライブラリ一覧表

R6RSのBase LibraryとStandard Libraryの一覧表を作成しました。各キーワードからr6rs.orgのhtmlページに飛べるようになっています。飛び先の一覧は逆引きSchemeチームから頂きました。感謝感謝です :)http://www.littlewing.co.jp/ypsilon/doc-draft/r6rs.h…

ドキュメント: (ypsilon socket)

ソケット関係のドラフトを追加しました。 http://www.littlewing.co.jp/ypsilon/doc-draft/ドキュメントは仕様の再検討とテストも行いながら書くので時間がかかりますね。でも、これは貴重なリファクタリングの機会にもなりますので少しづつ進めるつもりです…

FFIでFastCGIを使ってみた

Socket関連のドキュメントを書くにあたりhttpを試していました。lighttpdと簡単なCGIを書いてテストしていたのですが、CGIではイプシロンの起動の遅さが気になりました。そこでFastCGIというのを試してみることにしました。

ドキュメント

バグの方も落ち着いてきたので、APIを整理しながらドキュメントを書き始めることにしました。最初に手をつけたのは一番面倒そうなFFIとCの構造体の部分で、下記のURLにドラフトをアップロードしています。 http://www.littlewing.co.jp/ypsilon/doc-draft/

SRFI-1更新

(srfi :1)をアップデートしました。リビジョン356から(rnrs)とコンフリクトする以下の手続きもexportされます。 assoc fold-right for-each map member remove (rnrs)と一緒にimportする場合には。例えば以下のようにして衝突を回避してください。 > (import…

Filesystem関連の手続きを追加

リビジョン356で以下の手続きを追加しました。WindowsもOKです。 file-size-in-bytes file-regular? file-directory? file-symbolic-link? file-readable? file-writable? file-executable? file-stat-ctime file-stat-mtime create-symbolic-link (*1) crea…

define-macro

リビジョン342でコアからdefine-macroの実装を外しました。新しいdefine-macroは次のように定義しています。 (define-syntax define-macro (lambda (x) (syntax-case x () ((_ (name . args) . body) #'(define-macro name (lambda args . body))) ((_ name …

FFIにCの構造体サポートを追加しました

例えばFFIでlinuxのgetrusageを呼び出すライブラリはこんな感じになります。

PythonライクなGeneratorをSchemeで作ってみた

並列プログラミングについて考えるため、'thread', 'coroutine', 'fiber', 'generator' などを調べていました。その途中でPythonのGeneratorについて書いてある http://linuxgazette.net/100/pramode.html に行き当たり、「なるほどこれは便利なものだな!」…

Google V8 JavaScript EngineでFFIをテスト

FFIのテストのためにGoogle V8 JavaScript Engineを使って見ました。

GTKでFFIをテスト

FFIのテストのためにGTKを使ってみました。世の中こんな便利になっていたとは :p テストプログラムはLinux用で32bit(0.9.6-update2)と64bit(trunk)の両方で動作を確認しています。リストをREPLにコピペすれば動きますよ :)

Draft: ライブラリ (tidbits remote-repl)

(tidbits remote-repl)はリリース版にはまだ含まれていません。使用するにはsvn repositoryのtrunkをビルドしてください。Remote REPLのサーバーとクライアントはinetソケットにて接続されます。サーバーにはブロックするタイプとしないタイプが用意されてい…

Draft: ライブラリ (socket)

(socket)はリリース版にはまだ含まれていません。使用するにはsvn repositoryのtrunkをビルドしてください。 library: (socket) ソケットへのインターフェイスを提供します。