Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
V8のコードベース
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Taketoshi Aono(青野健利 a.k.a brn)
March 14, 2018
Programming
340
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
V8のコードベース
V8のC++コードベースについてなど
Taketoshi Aono(青野健利 a.k.a brn)
March 14, 2018
More Decks by Taketoshi Aono(青野健利 a.k.a brn)
See All by Taketoshi Aono(青野健利 a.k.a brn)
document.write再考
brn
7
3.2k
Parsing Javascript
brn
14
9.6k
JSON & Object Tips
brn
1
590
CA 1Day Youth Bootcamp for Frontend LT
brn
0
1.1k
Modern TypeScript
brn
2
890
javascript - behind the scene
brn
3
820
tc39 proposals
brn
0
1k
プロダクト開発とTypeScript
brn
7
3k
React-Springでリッチなアニメーション
brn
1
780
Other Decks in Programming
See All in Programming
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
450
iOSDC2026登壇資料.pdf
riofujimon
0
150
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
160
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
140
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
200
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
170
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
110
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
510
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
230
アクセシビリティから考える情報設計
high_g_engineer
0
370
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
180
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
820
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
290
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
4 Signs Your Business is Dying
shpigford
187
23k
Raft: Consensus for Rubyists
vanstee
141
7.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Product Roadmaps are Hard
iamctodd
55
13k
Become a Pro
speakerdeck
PRO
31
6.2k
How to make the Groovebox
asonas
2
2.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Transcript
V8 Codebase
Name @brn (ꫬꅿ⨳ⵃ) Occupation ؿٗٝزؒٝسؒٝآص،٥ط؎ذ؍ـؒٝآص، Company Cyberagent ،سذؙأةآؔ AI Messenger
OSS Contributor of V8 About http://info.b6n.ch
Basic C++ code 倜ז؝٦سכC++14ד鷄⸇ׁגְկ 〢ְ؝٦سחC++03ךせ婍כ֮ךךlambdaהַכ穠圓⢪ג ְկ 遤侧כ882,616遤֮
Build tools GNהְֲًةؽٕسخ٦ٕⵃ欽׃גְկ 㹋ꥷךؽٕسכninja ؝ٝػ؎ٓכخ٦ٕثؑ٦ٝتؐٝٗ٦سׅ״ֲחזגְג clang7.0.0تؐٝٗ٦س׃גⵃ欽ׅ״ֲחזגְ
Lint ؝ىحزחcpplintָ饥גծؿؓ٦وحز麩ך؝٦سכ؝ىح زדֹזְ
Format clang-formatד✲חؿؓ٦وحز׃זְה؝ىحزדֹזְ
Problems - وָؙٗ㢳ְ٥זַזַ搀蘠 - ؝٦سك٦أָ㣐ְֹךדIDE禸כ㔿ת✲ָ㢳ְ - ؝٦سك٦أָ㣐ְֹךדؽٕسָ鹼ְ
Complicated Macros وָؙٗ醱꧟ وؙٗדؙٓأ㹀纏׃… Problems
#define IGNITION_HANDLER(Name, BaseAssembler) \! class Name##Assembler : public BaseAssembler {
\! public: \! explicit Name##Assembler(compiler::CodeAssemblerState* state, \! Bytecode bytecode, OperandScale scale) \! : BaseAssembler(state, bytecode, scale) {} \! static void Generate(compiler::CodeAssemblerState* state, \! OperandScale scale); \! \! private: \! void GenerateImpl(); \! DISALLOW_COPY_AND_ASSIGN(Name##Assembler); \! }; \! void Name##Assembler::Generate(compiler::CodeAssemblerState* state, \! OperandScale scale) { \! Name##Assembler assembler(state, Bytecode::k##Name, scale); \! state->SetInitialDebugInformation(#Name, __FILE__, __LINE__); \! assembler.GenerateImpl(); \! } \! void Name##Assembler::GenerateImpl()!
IGNITION_HANDLER(LdaZero, InterpreterAssembler) {! Node* zero_value = NumberConstant(0.0);! SetAccumulator(zero_value);! Dispatch();! }!
Reusable Enum member وؙٗדenumךًٝغⱄⵃ欽ׅ؛٦أָ㢳ְ Problems
#define BYTECODE_LIST(V) \! /* Extended width operands */ \! V(Wide,
AccumulatorUse::kNone) \! V(ExtraWide, AccumulatorUse::kNone) \! \! /* Loading the accumulator */ \! V(LdaZero, AccumulatorUse::kWrite) \! V(LdaSmi, AccumulatorUse::kWrite, OperandType::kImm) \! V(LdaUndefined, AccumulatorUse::kWrite) \! V(LdaNull, AccumulatorUse::kWrite) \! V(LdaTheHole, AccumulatorUse::kWrite) \! V(LdaTrue, AccumulatorUse::kWrite) \! .! .! .!
const OperandTypeInfo*! const Bytecodes::kOperandTypeInfos[] = {! #define ENTRY(Name, ...) BytecodeTraits<__VA_ARGS__>::kOperandTypeInfos,!
BYTECODE_LIST(ENTRY)! #undef ENTRY! };!
switch (bytecode) {! #define CASE(Name, ...) \! case Bytecode::k##Name: \!
return #Name;! BYTECODE_LIST(CASE)! #undef CASE! }!
IDE Frozen ⬁כEmacsזךדRtagsדְַֽאדׅ(^^) Problems
Slow Build EC2㤍秈׃גrsyncד؝٦س㢌刿ָ֮ןח鷏⥋ׅ״ֲח ׃ ؽٕسכEC2ךUbuntuדװ Problems
Watch overlookהְֲ،فٔ⢪ֲה؝٦س㢌刿嗚濼׃גءٕؑ٥؝ وٝس㹋遤דֹ v8/src湊鋔׃גrsyncׅ Problems