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
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
600
CA 1Day Youth Bootcamp for Frontend LT
brn
0
1.2k
Modern TypeScript
brn
2
890
javascript - behind the scene
brn
3
830
tc39 proposals
brn
0
1k
プロダクト開発とTypeScript
brn
7
3k
React-Springでリッチなアニメーション
brn
1
790
Other Decks in Programming
See All in Programming
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
200
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
2
550
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
640
ActionController meets Protocol Buffers
sorah
0
520
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
460
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
220
Agents on Rails - Rails at Scale 2026
irinanazarova
0
560
すこし踏み込む CancellationToken
htkym
2
1.7k
npm との違いを手がかりにGo の依存管理を理解したい
optim
0
300
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
Featured
See All Featured
Navigating Team Friction
lara
192
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Bash Introduction
62gerente
615
220k
Producing Creativity
orderedlist
PRO
348
41k
Making the Leap to Tech Lead
cromwellryan
135
10k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Building AI with AI
inesmontani
PRO
1
1.3k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
550
Google's AI Overviews - The New Search
badams
0
1.6k
KATA
mclloyd
PRO
35
16k
Chasing Engaging Ingredients in Design
codingconduct
0
360
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
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