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
V8のコードベース
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
6
3.1k
Parsing Javascript
brn
14
9.5k
JSON & Object Tips
brn
1
570
CA 1Day Youth Bootcamp for Frontend LT
brn
0
1.1k
Modern TypeScript
brn
2
880
javascript - behind the scene
brn
3
810
tc39 proposals
brn
0
990
プロダクト開発とTypeScript
brn
7
3k
React-Springでリッチなアニメーション
brn
1
770
Other Decks in Programming
See All in Programming
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
3
470
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
160
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
540
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
180
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
220
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.6k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.7k
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
570
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
480
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
130
net-httpのHTTP/2対応について
naruse
0
480
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.1k
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Design in an AI World
tapps
1
240
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
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