Radio and PodcastRadio and PodcastLive Radio & Podcasts
19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗) artwork
Technology

19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗)

Turing Complete FM by Rui Ueyama

May 21, 20181:42:25Technology

川合史朗さんが作っているScheme処理系Gaucheの実装について、特にメモリ管理やクロージャ、継続の実装などに焦点を当てて話をしました。最近のCPUでは単純にJITしても速くならない理由などについても話をしています。 出演者: 川合史朗 ( @anohana )、Rui Ueyama ( @rui314 ) ハッシュタグは です。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひ...

About This Episode

19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗) is an episode from Turing Complete FM by Rui Ueyama. 川合史朗さんが作っているScheme処理系Gaucheの実装について、特にメモリ管理やクロージャ、継続の実装などに焦点を当てて話をしました。最近のCPUでは単純にJITしても速くならない理由などについても話をしています。 出演者: 川合史朗 ( @anohana )、Rui Ueyama (...

Podcast

This episode belongs to Turing Complete FM.

Listen Online

Use the player on this page to stream the episode online.

Episode Details

Published May 21, 2018, 1:42:25 long, audio available.

Questions About This Episode

What is 19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗) about?

川合史朗さんが作っているScheme処理系Gaucheの実装について、特にメモリ管理やクロージャ、継続の実装などに焦点を当てて話をしました。最近のCPUでは単純にJITしても速くならない理由などについても話をしています。 出演者: 川合史朗 ( @anohana )、Rui Ueyama ( @rui314 ) ハッシュタグは です。 TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひ クリエイター支援サイトPatreon から登録してご協力ください。 イントロ (0:00) Schemeのストレージモデルではすべてが無限エクステント (1:06) 関数呼び出しのモデルとアクティベーションレコードのアロケーション (4:34) SPARCのレジスタウィンドウ (9:20) Alphaの速さの秘密 (12:41) 大コケしたIntel Itaniumプロセッサ (14:11) GoのGC停止時間の劇的な改善 (16:55) ページテーブルのダーティービットをユーザプログラムから使う話 (20:14) Goの分割スタック機能 (23:07) クロージャを作ったときに使ってない変数を不必要に掴んでしまう問題 (25:54) 32ビットハッシュ値を大量に作ると32ビットマシンで偽ポインタがたくさんできてしまう問題 (27:44) 決してreturnしないCプログラムにコンパイルするScheme処理系 (33:00) タグ付きポインタ (41:23) C言語の仕様を満たすためのBoehm GCの機能と、それを使いたくない理由 (46:10) 64ビット浮動小数点数をなるべくヒープにアロケートせずに扱いたい (50:30) 16ビット"Brain"浮動小数点フォーマット (55:27) Gaucheの正規表現エンジン (56:44) Scheme→C→Schemeという呼び出しをした先で継続を取得すると限定継続になる (1:00:19) Schemeスタックからヒープへのコピー (1:04:44) 末尾呼び出しはスタックを消費しないように手続きを呼び出す (1:05:50) Chez Schemeでは多値ありと多値なしの2つの継続を渡す (1:10:29) 最近のCPUの分岐予測の賢さとMeltdown & Spectre (1:13:16) Gaucheを単純にJIT化してもCPUの分岐予測が賢いのでそれだけでは速くならない (1:20:08) 社会的や経済的理由で速くなる言語 (1:25:05) リテラルで書けるオブジェクト (1:27:29) 正規表現リテラル (1:28:32) マップのリテラル (1:30:55) Gaucheのハッシュテーブルとハッシュ衝突攻撃 (1:36:41) TCFMの難易度 (1:39:24) Gauche Scheme ハッカーと画家(川合さんが翻訳した本) SISC Scheme メモリのローカリティ SPARC DEC Alpha Itanium (IA-64) VLIW命令セット HamajiさんによるGCフレンドリーなスタック塗りつぶしの話 Clojure(JVMで動くLisp) Chicken Scheme Azul Systems(並列Javaマシンを作っていた会社) Hans Boehmによる保守的GC安全なデータ構造についての論文 (PDF) Cheney on the M.T.A. History of T タグ付きポインタ 16ビット"Brain"浮動小数点フォーマット Russ CoxによるThompson NFAの解説 Anton Ertlらによるmemcpyを使ったJITの手法の論文 (PDF) 末尾呼び出し最適化 セキュアで速いハッシュとしてデザインされたHighwayHash 追記 CPythonはリファレンスカウンタを使っていますが、Pythonの言語仕様自体では必須とはされていません。

Where can I listen to 19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗)?

You can listen to 19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗) online on Radio and Podcast. Open the player on this page to stream the available audio.

Which podcast is 19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗) from?

19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗) is an episode from Turing Complete FM by Rui Ueyama.

How long is this episode?

This episode is 1:42:25 long.

When was this episode published?

This episode was published on May 21, 2018.

Can I save 19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗) for later?

Yes. Use the heart button on the episode page to add it to your favorite episodes list.

Are there related episodes from Turing Complete FM?

Yes. This page shows related episodes from Turing Complete FM when more episodes are available from the podcast feed.

Quick Answers About This Episode

Where can I listen to 19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗)?

You can listen to 19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗) on this page when the episode audio is available from the podcast feed.

Which podcast is this episode from?

19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗) is from Turing Complete FM by Rui Ueyama.

What are the episode details?

Published May 21, 2018 and 1:42:25 long