Artwork

コンテンツは Rui Ueyama によって提供されます。エピソード、グラフィック、ポッドキャストの説明を含むすべてのポッドキャスト コンテンツは、Rui Ueyama またはそのポッドキャスト プラットフォーム パートナーによって直接アップロードされ、提供されます。誰かがあなたの著作権で保護された作品をあなたの許可なく使用していると思われる場合は、ここで概説されているプロセスに従うことができますhttps://ja.player.fm/legal
Player FM -ポッドキャストアプリ
Player FMアプリでオフラインにしPlayer FMう!

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

1:42:25
 
シェア
 

アーカイブされたシリーズ ("無効なフィード" status)

When? This feed was archived on March 06, 2021 01:08 (3y ago). Last successful fetch was on July 22, 2020 21:07 (3+ y ago)

Why? 無効なフィード status. サーバーは持続期間に有効なポッドキャストのフィードを取得することができませんでした。

What now? You might be able to find a more up-to-date version using the search function. This series will no longer be checked for updates. If you believe this to be in error, please check if the publisher's feed link below is valid and contact support to request the feed be restored or if you have any other concerns about this.

Manage episode 206289468 series 2094967
コンテンツは Rui Ueyama によって提供されます。エピソード、グラフィック、ポッドキャストの説明を含むすべてのポッドキャスト コンテンツは、Rui Ueyama またはそのポッドキャスト プラットフォーム パートナーによって直接アップロードされ、提供されます。誰かがあなたの著作権で保護された作品をあなたの許可なく使用していると思われる場合は、ここで概説されているプロセスに従うことができますhttps://ja.player.fm/legal
川合史朗さんが作っている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の速さの秘密 (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)

追記

  • CPythonはリファレンスカウンタを使っていますが、Pythonの言語仕様自体では必須とはされていません。
  continue reading

31 つのエピソード

Artwork
iconシェア
 

アーカイブされたシリーズ ("無効なフィード" status)

When? This feed was archived on March 06, 2021 01:08 (3y ago). Last successful fetch was on July 22, 2020 21:07 (3+ y ago)

Why? 無効なフィード status. サーバーは持続期間に有効なポッドキャストのフィードを取得することができませんでした。

What now? You might be able to find a more up-to-date version using the search function. This series will no longer be checked for updates. If you believe this to be in error, please check if the publisher's feed link below is valid and contact support to request the feed be restored or if you have any other concerns about this.

Manage episode 206289468 series 2094967
コンテンツは Rui Ueyama によって提供されます。エピソード、グラフィック、ポッドキャストの説明を含むすべてのポッドキャスト コンテンツは、Rui Ueyama またはそのポッドキャスト プラットフォーム パートナーによって直接アップロードされ、提供されます。誰かがあなたの著作権で保護された作品をあなたの許可なく使用していると思われる場合は、ここで概説されているプロセスに従うことができますhttps://ja.player.fm/legal
川合史朗さんが作っている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の速さの秘密 (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)

追記

  • CPythonはリファレンスカウンタを使っていますが、Pythonの言語仕様自体では必須とはされていません。
  continue reading

31 つのエピソード

すべてのエピソード

×
 
Loading …

プレーヤーFMへようこそ!

Player FMは今からすぐに楽しめるために高品質のポッドキャストをウェブでスキャンしています。 これは最高のポッドキャストアプリで、Android、iPhone、そしてWebで動作します。 全ての端末で購読を同期するためにサインアップしてください。

 

クイックリファレンスガイド