川合史朗さんが作っているScheme処理系Gaucheの実装について、特にメモリ管理やクロージャ、継続の実装などに焦点を当てて話をしました。最近のCPUでは単純にJITしても速くならない理由などについても話をしています。出演者: 川合史朗 (@anohana)、Rui Ueyama (@rui314) https://turingcomplete.fm/19 ハッシュタグは#tcfmです。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。 イントロ (0:00) Schemeのストレージモデルではすべてが無限エクステント (1:06) 関数呼び出しのモデルとアクティベーションレコードのアロケーション (4:34) SPARCのレジスタウィンドウ (9:20) Alphaの速
A list of Gauche packages. Eventually I'd like to have some more organized webpages, but for the time being, this page serves as a hub of Gauche packages. Click [Edit] above to make changes, corrections and additions. AudioGauche-alDatabaseberkeley-dbGauche-dbd-mysqlGauche-dbd-pgGauche-dbd-sqliteGauche-cdbGauche-qdbmpgGauche-tokyocabinetGauche-kyotocabinetGauche-redisGauche-mongoGraphics, MediaGau
今まで手続き型プログラミングばかりをやってきた自分が、抽象化とかの話しから、関数型プログラミングって、何がそんなに違いがあるのかと思って、Gaucheを初めてみた。 今まで、Cとかのソースを読んでいて、ある変数の内容で分岐をするコードを調べたりする時に、変数の中身を設定しているところを探して、該当箇所が何箇所もあって、更にその設定している関数を呼び出しているところを検索してとかやっていると、それが普通のことだと思う反面、ウンザリすることが多々あったりする。 Cとかだとマクロの定義で変数とかの名前が直接見えなかったりする場合は、更に戦意喪失しそうになる。 なので、副作用を持たない関数ってどう言うものなのかについてとても興味がある。 因みに、長くやっていることもあって、今現在、C(C++)が最も好きな言語。簡単に捨てる気もないのだけど。 現状のGauche(Scheme)プログラマレベルは、1
LL Diverのプログラムは、昼の部・夜の部に分けて行います。 昼の部 (会場:日本科学未来館) パネルディスカッション 3本を予定 決まり次第お知らせします プレゼンテーション サイバー戦争2014年から未来へ。 HerokuでGauche (あるいは、好きな言語何でも) アプリケーションのIPv6対応のススメ (LL編) 〜LLのDeepなところにDiveする前に知ってほしいIPのこと〜 ほか、全10本前後を予定 発表を募集中です! ライトニングトーク 発表者/発表タイトル一覧 全10本前後を予定 発表を募集中です! 物販&見本誌展示 プログラミング関連書籍の販売と見本誌展示を行います 物販会場にてトークショー開催予定 LL QUIZ 2014 実行委員会から出題されたクイズを解くプログラムを作成し回答していただくものです ただいま課題作成中です 夜の部 (会場:東京カルチャーカルチ
2013-11-07 1ヶ月でgaucheより速くてポータブルなR7RS準拠のscheme処理系作ってみた タイトルは釣りです。 大学のC言語の授業()で暇を持て余した上級者向けに「C言語でscheme処理系を作れ」という楽しい課題が出たのでscheme処理系つくりました。 https://github.com/wasabiz/picrin さっきコンパイルラインに-O3のオプションつけてベンチマーク測ったらgaucheよりも微妙に速かったのでブログに書きました。多分機能つけてるうちに遅くなります。 scheme $ make tak bin/picrin etc/tak.scm 1.135064 gauche $ gosh etc/tak-gosh.scm ;(time (f)) ; real 1.223 ; user 1.190 ; sys 0.000 一応R7RS準拠(予定)の処理系
というわけで、最近周りの人にLisp(といってもSchemeだしGaucheだけど)を布教する機会が多くなってきたのと、ちょっとセットアップの仕方教えてよ!って要望があったので、Gaucheで遊ぶまでの道のりを優しく丁寧に書いてみる。 (元も子もないことを言えば、プログラミングGaucheあたりを読めば、綺麗に解説してあったりするんですけど、まぁココみれば全部分かるよ!くらいで書いてみたいと思う) 対象読者はMacとUbuntu使ってる人です。あしからず。*1 目次 Gaucheのインストール Emacsのインストール Emacsの設定 Gaucheリファレンスを読む準備 Gaucheのインストール ・UbuntuとかDebianな方 sudo apt-get install gauche ・Macな方 brew install gauche ・ソースからインストールしたい方 ダウンロード
(原文: R7RS support) 公式発表はまだですが、 R7RS が承認されているようです。 わーい! それの実現のために長くつらい仕事をしてくれたワーキンググループメンバーに多謝。 時間的制約が主因で R6RS でしたようにはたくさんの議論に参加できませんでしたが、もうひとつの理由は R6RS の開発中に感じたものと違ってドラフトにおおよそ満足していたからです。 私は R6RS を嫌いではありません。 いくつかは私の好きな部分 (例えば I/O 機構) もあり、 R7RS-large はそれらのようになることを期待しています。 R6RS は野心的過ぎたと思います。 私見ですが、早まって導入された部分の抜け穴を全て塞ぐことを懸命に試みていました。 R7RS-small は完璧ではありません。 でも、 R5RS の最大の欠点のいくつかを修正していて、充分な進歩です。 残りの欠陥を修正す
About On development of Gauche, and other topics related to Lisp/Scheme in general. More details. Author Shiro Kawai, shiro at acm dot org. Recent Entries Running prebuilt Gauche on GitHub workflowCaching formatter procedurePipeworksReal numerical functionsPretty print indentationSegmented completionHints for unbound variable error:immutable slot optionSource info propagation with macro expansionU
► 2022 (2) ► 10月 (1) ► 2月 (1) ► 2021 (51) ► 11月 (2) ► 10月 (2) ► 9月 (4) ► 8月 (4) ► 7月 (4) ► 6月 (4) ► 5月 (3) ► 4月 (10) ► 3月 (7) ► 2月 (4) ► 1月 (7) ► 2020 (155) ► 12月 (7) ► 11月 (10) ► 10月 (8) ► 9月 (8) ► 8月 (11) ► 7月 (21) ► 6月 (19) ► 5月 (14) ► 4月 (20) ► 3月 (13) ► 2月 (10) ► 1月 (14) ► 2019 (293) ► 12月 (11) ► 11月 (12) ► 10月 (24) ► 9月 (29) ► 8月 (27) ► 7月 (36) ► 6月 (40) ► 5月 (24) ► 4月 (35) ► 3月 (42) ► 2月 (6
ちょっとだけトリッキーなのはgame-readで、Common Lispのreadは 後続の空白文字(改行文字含む)を消費するので、 > (game-repl) とタイプしてRETを打った時、入力バッファは空で、game-read はすぐに ユーザの入力待ちになるのだけれど、Gaucheのreadは後続の空白文字を消費しない。 gosh> (game-repl) とタイプしてRETを打つと、REPLは閉じ括弧まで読んですぐに(RETを入力に残したまま) game-replを実行する。その中から読まれる game-read は最初に 残っていたRETを見るので、最初のread-line で空の文字列が帰ってくる。 移植版ではこのケースへの対応が入っている。 Shiro(2016/02/02 23:30:58 UTC): 現在の開発版Gaucheでは、REPLについては後続の空白を 読み飛ばす
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く