Gauche
- Project Webpage
- SourceForge
- Mailing List
- 日本語 Mailing List
http://lists.sourceforge.jp/mailman/listinfo/gauche-devel-jp
使用にあたっての役立ち情報
- Gauche:FAQ
- Gauche:Bugs バグに関するメモ
- Gauche:WishList 要望
- Gauche:LibraryWishList こんなライブラリが標準に欲しいな
- Gauche:Packages 外部パッケージ(仮)
- Gauche:Platform プラットフォーム依存な Tips, ./configure のオプションなど
- Gauche:APIUpdate 0.9以降に有効になるAPIの変更
- Gauche:Translation リリースノートやリファレンスをここで翻訳
- Gauche Devlog (英語)
- Gauche:BuildAndInstallSnapshot 開発版Gaucheを追っかける
Gaucheでプログラミング
Gauche:イディオム, Gauche:メモリリーク, Gauche:EditingWithEmacs, GaucheMemo:CGIを使うための準備, Gauche:StandAloneProgram, Gauche:プロファイラAPIの使用例, Gauche:matchの応用, Gauche:マニュアルにアクセス, Gauche:スクリプトファイルの分割, Gauche:immutableなデータの注意点, Gauche:Lemエディタ
スクリプトの例
Gauche:茶筌, Gauche:LogScanner, Gauche:ディレクトリを再帰的に処理, Gauche:WebImageViewer, Gauche:翻訳支援スクリプト, Gauche:gdumpfs, Gauche:htmlリファレンスの参照, Gauche:scm2exe, Gauche:scm2cmd, Gauche:ManualIndex, Gauche:Mailmanの制御, Gauche:Proxyサーバ, Gauche:メール, Gauche:HTTPD, Gauche:SpamFilter, Gauche:SXMLでRDF, Gauche:SXMLとSXPath, Gauche:CGI:スケジュール予定表, Gauche:CGI:スケジュール予定表:Shiro版, Gauche:CGI:MiniWiKi, Gauche:数式の中置記法, Gauche:RemoteSlide, Gauche:scm2texi, Gauche:SpellingCorrection, Gauche:AOBench, Gauche:MetropolisProceduralModeling, Gauche:LandOfLisp, Gauche:object-applyの例, Gauche:Windowsコンソール関連, Gauche:リストの作成例, Gauche:c-wrapper関連, Gauche:MML->PCM変換, Gauche:スクリプト作成支援, Gauche:Gauche-glサンプル, Gauche:Gauche-al関連, Gauche:R7RS関連, Gauche:ファイルの読み書き, Gauche:2次元配列のプログラムの移植, Gauche:call/ccの使用例, Gauche:クラスとレコード型, Gauche:ベクタと万能アクセサ, Gauche:変更手続きへの変換, Gauche:パズル探索, Gauche:バックプロパゲーション, Gauche:行列演算モジュール, Gauche:rangeの作成, Gauche:部分継続と動的環境の実験, Gauche:スロットアクセスの記述の短縮, Gauche:日時の加算, Gauche:コード生成のサンプル, Gauche:コード置換のサンプル
ライブラリ
Gauche:カレンダー計算, Gauche:ObjectPrevalence, Gauche:RedBlackTree, Gauche:Trie, Gauche:SRE, Gauche:WadlersPrettierPrinterLibrary, Gauche:text.prettyprint, Gauche:R7RS-large, Gauche:HashTable
スクリプトのポーティング
Gauche:scmxlate, Gauche:tex2page, Gauche:lalr, Gauche:matchcomp
拡張ライブラリ
Gauche:MeCab, Gauche:Gauche-gtk-0.4.1 on Gauche-0.9
開発に関する情報
機能に関するメモ
Gauche:srfi, Gauche:regexp, Gauche:logger, Gauche:evalと環境, Gauche:ExtensionBuildHelper, Gauche:DBI/DBD, Gauche:FeatureIdentifier, Gauche:サブプロセスでインタプリタ, Gauche:$, Gauche:testについて, Gauche:Replの改善, Gauche:include, Gauche:ImplicitFuture, Gauche:generator, Gauche:スクリプトとload-path, Gauche:パッケージ管理, Gauche:辞書のプリミティブ, Gauche:Windowsコンソール対応, Gauche:LazyParameter, Gauche:find系APIの整理
実装に関するメモ(数値)
Gauche:数値の入出力, Gauche:拡張浮動小数点演算の謎, Gauche:浮動小数点数をどこまで読むか, Gauche:Bignum演算, Gauche:NumericTower, Gauche:NaNの扱い, Gauche:Bignum->Double, Gauche:二重丸めの落とし穴
実装に関するメモ(マルチスレッド)
Gauche:MTとシグナル, Gauche:MTとrequire, Gauche:MTと文字列, Gauche:control.jobメモ
実装に関するメモ(入出力)
Gauche:BufferedIO, Gauche:バイナリI/O, Gauche:ソケットとcharconv, Gauche:循環リストの読み書き, Gauche:空白文字, Gauche:I/Oタイムアウト, Gauche:Textual/Binary Ports, Gauche:Connections
実装に関するメモ(文字と文字列)
Gauche:charconv, Gauche:内部エンコーディング, Gauche:rfc.mime:rfc2047, Gauche:文字カテゴリとケースマッピング, Gauche:CP932とJISX0213の差異, Gauche:文字クラスのカバー範囲
実装に関するメモ(OOP)
Gauche:GenericFunctionとModule, Gauche:ClassRedefinition, Gauche:コレクションの探索
実装に関するメモ(最適化)
Gauche:VMの最適化, Gauche:VMの最適化:JIT, Gauche:VMの最適化:Flonumの扱い, Gauche:グローバル変数参照の最適化, Gauche:CompactingPair, Gauche:Inlining, Gauche:util.matchのinline-let, Gauche:アドホックなletフレーム除去, Gauche:継続フレームの縮小, Gauche:Applyの消去
実装に関するメモ(コンパイラ、VM)
Gauche:MultiPhaseMacro, Gauche:MacroProblem, Gauche:シグナルキューのオーバフロー, Gauche:EscapeHandlerAndFrameRelocation, Gauche:VM命令セットの変更とビルド, Gauche:explicit renamingとマクロ展開時計算, Gauche:applicable objectとコンパイラマクロ, Gauche:継続とプロンプト?
実装に関するメモ(メモリ, GC)
Gauche:GC, Gauche:Gtkとメモリ管理, Gauche:シンボルのgc, Gauche:OOM, Gauche:ハッシュテーブルとgc
実装に関するメモ(その他)
Gauche:ImmutableObject, Gauche:automake+libtoolize, Gauche:クロージャの中身, Gauche:組み込み関数の再定義, Gauche:autoload:define-methodとの干渉, Gauche:glob, Gauche:LargeFileSupport, Gauche:YAGHG, Gauche:UndefinedVariableHandler, Gauche:letrec*, Gauche:ImportModifier, Gauche:ABICompatibility, Gauche:append-reverse, Gauche:dolist系ループで複数変数, Gauche:boxに関する覚書, Gauche:スタックトレース, Gauche:複数バージョンの共存, Gauche:インストールディレクトリの取得 Gauche:FFIと型表現
拡張に関するアイディア
Gauche:SessionFramework, Gauche:streamとgenerator, Gauche:イテレータの反転の汎用化
その他の議論
- やっぱり、言語の仕様はR5RSにおちるように開発してもらえるとうれしいっす。 のちのち、hobbit?なんかでcompileしたい欲求がふつふつと沸いてきそうで。 hobbit?のfunction変換tableとgcを書き換えると、gaucheのlibraryが使えるとか、 そんな魔法なようなことを望んでいます。 --toki?
- とりあえずR5RSで書いたものはその通り動く、というのは前提にしています (シンボルの大文字小文字の区別はありますが)。その上で、 楽をしたければ拡張構文を使うと。大抵の拡張はマクロを書けば 他のSchemeでも動くはずですが、例えば #/regexp/ みたいなのは駄目ですね。 これは、互換性を失っても余りある利便性があると考えて採用したものです。-- Shiro
- (Shiro): comp.lang.lisp で見かけた投稿 multithread lisp。うーむ…
- 0.6で入った、(info 'fn) なんですが、fn うろ覚えの自分にはちょいつらいです。ワイルドカードでも使えたらなあと、info.scm を見てました。(make-hash-table 'string-contains) なんてのが使えると嬉しいかなと思ってます。--sakae (2002/08/02 05:08:20 PDT)
- (Shiro) 当面、apropos と併用、というのではだめですか。
もちろんinfoの中でaproposを呼ぶようにするのがいいんですが、
複数の候補からユーザに選択させるインタフェースとかが必要になるので
もう少し練ろうと思っています。なんか良いアイディアがあったら教えて下さい。
(2002/08/02 11:30:34 PDT)
- USER I/F はいつも悩みの種ですね :-). aproposの結果をhtml化してw3mか何かから使って貰うってのは、大げさすぎで美しくないし... 画面制御のライブラリーでも使う のが、現実的なんでしょうかね? --sakae (2002/08/03 22:42:44 PDT)
- (Shiro) 当面、apropos と併用、というのではだめですか。
もちろんinfoの中でaproposを呼ぶようにするのがいいんですが、
複数の候補からユーザに選択させるインタフェースとかが必要になるので
もう少し練ろうと思っています。なんか良いアイディアがあったら教えて下さい。
(2002/08/02 11:30:34 PDT)
- 内部コードUCS-2(or UCS-4)対応
UTF-8だと不便な事が、、、もうそのままUNICODEでCODECでも付加した方がいい気もします。でもJavaみないになるのもあれだな、、
- うーむ悩ましい。mbがいいかwcがいいか、できれば比較してみたいんですが、 かなり大幅に内部を書き換えなければならなさそうなので… Shiro
- 難しいというか変更が大きい事は認識して記述してますが、、理想はPythonに近い形式だったりするのですが、あれはあれで問題あるのだったり、、からあげうまうま
- 「こういう使い方だとUTF-8は不便!」というケースを教えて頂ければ、 考えのとっかかりになるかもしれません。 Pythonて内部はwcharでしたっけ。Py_UNICODEは16bit幅って書いてあるな…という ことはUTF-16? Shiro
- UTFはUnicodeをnビットのストリームに流す際の符号化方法を決定したもの。Unicode文字の受け渡しに便利なフォーマットにすぎません。実際の文字列処理には不向き。実際にUTF-8のままで文字列の処理を頻繁におこなうと理解いただけるかと。なんで16bitはばやとUTF-16やねん。UCS2です。からあげうまうま
- UCS2だとExtension Bとかが入らないんじゃないでしょうか。 サロゲートを入れるとUTF-16になってしまう、と理解しているのですが。 あと、「可変長文字で良いじゃん」というのがGaucheの設計当初からあったのですが、 具体的に「このアルゴリズムはどうしても文字列を整数インデックスでランダムアクセス しなくちゃならん」という具体例がありましたら教えて下さい。 例えばKnuth-Morris-Plattのサーチは検索文字列の方をインデックスでアクセス する必要がありますよね (ただ、この場合、検索文字列は一般に被検索文字列に 対して短いのと、どうしても速度が問題になるなら検索文字列の方をベクタに 変換すればいいかなと)。Shiro
- Gaucheを使いはじめました。Perlを捨てれそうです。ライブラリがナイスです。--kiyoka
- 特に正規表現がナイスなんですが、逆に良すぎて Gaucheのスクリプトを他に 持っていけないんじゃないかと... Bigloo?で cygwin less な Windowsバイナリ作りたいのに... --kiyoka
- うーむ、Gauche->Biglooトランスレータとか作りますか。正規表現のシンタックスはライブラリコールにして、マルチバイト部分はバイト列のマッチへと展開…とか。 Dorai ShriramさんあたりがScheme->schemeトランスレータみたいのを作ってたような 気がします Shiro
- マルチバイトまで対応できてしまったとしたら、けっこううれしいかもしれません。残念ながら、Shiroさんのコメントを読んでも技術的な点で理解できていませんが、簡単な方法があれば良いかなと思います。Ruby には Exerb なんていうものがありますが、こんな風なことができたらいいですね。--kiyoka
- 単にバイナリにするだけならさほど難しくはないと思います。cygwin非依存にするのは骨ですね。あとGaucheがインストールされてなくてもバイナリ単独で動くようにするには各種dllをstatic linkしなくちゃならないとか、そのへん手間がかかりそうですが。Shiro
- data.randomのseedの型を知りたくてREPL立ち上げた直後に(random-data-seed)実行したら42が返ってきて思わずにやけてしまった。まあドキュメントよく読んだら(random-data-seed) ⇒ integerって書いてあったんですけどね…
- Shiro(2018/02/08 01:57:31 UTC):あっ確かに今のドキュメントだと
integer
というシンボルが返ってくるようにも読めますね。
- Shiro(2018/02/08 01:57:31 UTC):あっ確かに今のドキュメントだと