Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Serialisp
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Niyarin
October 09, 2020
Programming
1
700
Serialisp
Serialize特化言語
Niyarin
October 09, 2020
Tweet
Share
More Decks by Niyarin
See All by Niyarin
Scheme用nREPLの開発(エラー出力の改善)
niyarin
0
170
bel lispの紹介
niyarin
0
780
nanopass-compiler-frameworkを使ってみました
niyarin
0
460
Gorgos-parser-combinator-written-in-scheme
niyarin
0
410
outputting-beautiful-s-expression
niyarin
0
410
Mongo DBとS式検索
niyarin
0
350
goodbye-python-repl
niyarin
0
390
SchemeのEphemeronとWeak Pairの説明
niyarin
0
1.1k
red-paren-scheme-rev-macro.pdf
niyarin
0
450
Other Decks in Programming
See All in Programming
PHPで TLSのプロトコルを実装してみる
higaki_program
0
390
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
880
Codex の「自走力」を高める
yorifuji
0
1.3k
CSC307 Lecture 15
javiergs
PRO
0
260
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
16
3.3k
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
230
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
290
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
550
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
550
How to stabilize UI tests using XCTest
akkeylab
0
140
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
410
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
320
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
200
Everyday Curiosity
cassininazir
0
170
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
92
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
We Are The Robots
honzajavorek
0
200
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
160
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
280
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
エンジニアに許された特別な時間の終わり
watany
106
240k
Transcript
Serializeに特化した言語 「Serialisp」 Niyarin
Serialisp(未完成)の前提 JSONで表現される [“list”, 1, 2, 3] ・ClojureのCheshireを用いて書きやすくした ・常に変更時にコピーして(COW)オブジェクトを共有しない オブジェクトの比較もequal?なものだけ 循環参照もできない
closureもJSONで表現される {“args”:[x], “code”:x, “bindings”:{}} ・ローカル変数の変更は許容しない
Continuation in Serialisp Serialispは継続のシリアライズができる ・CPS(継続渡しスタイル) + closureのシリアライズ ・”強い”Scheme処理系に搭載されるような機能 Gambitとか ・活用する場面
継続ベースのアプリケーション(Kahua)とか ※ 継続を動かすためには環境情報を一部送る必要がある
Serialize copy GC 1.グローバルと現在の継続をJSONにして 好きな記憶領域に置く 2.システムを落とす & 再起動 3.記憶領域からJSONを読み込む Serialispはゴミ集めが楽
Serialispと永続性 記憶領域をMongoDBにする ・PCが落ちても容易に再開できる ・適宜再起動すればゴミ集め完了 ・DBと連動するアプリケーションもDBを意識せずかける ・緩和してRAMとハイブリットなモデルにする予定
Serialispを活用しよう? せっかく作った(ている)ので、実用したい Serialispは汎用向けではない (FFIと相性が悪いので) 私の妄想 ・JSON系 NOSQLクエリ言語 関数定義もDBに入っていて自由に定義できると良い ・汎用言語に組み込む JSONなので、組み込みやすい
永続性や継続を使える ・IPLD等を使って、ブロックチェーンとしてキャッシュを持つ 人に話したら返ってきたコメントなので詳しくは知らない