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
Contributing to Crystal
Search
Linda_pp
January 21, 2016
Programming
0
510
Contributing to Crystal
Contributing to being-developed language is so fun!
Linda_pp
January 21, 2016
Tweet
Share
More Decks by Linda_pp
See All by Linda_pp
actionlint の Linter 設計
rhysd
6
5.9k
ripgrep をライブラリとして使う
rhysd
0
510
port-monolith-to-wasm-for-chrome-extension
rhysd
0
500
Fuzzing Rust Text Editor
rhysd
1
3k
Vim compiled to WebAssembly
rhysd
5
2.2k
about-neovim-0.4.0-floating-window
rhysd
3
2.3k
reply.vim
rhysd
0
1.3k
Vim ported to WebAssembly (VimConf 2018)
rhysd
4
3.4k
go-selfupdate-github で ツールを自己アップデートする
rhysd
5
4.4k
Other Decks in Programming
See All in Programming
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.5k
マッチングアプリにおけるフリックUIで苦労したこと
yuheiito
0
100
PipeCDのプラグイン化で目指すところ
warashi
1
290
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
850
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
1k
型で語るカタ
irof
0
630
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
2
680
ふつうの技術スタックでアート作品を作ってみる
akira888
1
1.2k
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
320
TypeScriptでDXを上げろ! Hono編
yusukebe
3
720
NEWT Backend Evolution
xpromx
1
120
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
930
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Docker and Python
trallard
45
3.5k
Thoughts on Productivity
jonyablonski
69
4.7k
The World Runs on Bad Software
bkeepers
PRO
69
11k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
108
19k
It's Worth the Effort
3n
185
28k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
282
13k
A Tale of Four Properties
chriscoyier
160
23k
Adopting Sorbet at Scale
ufuk
77
9.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
830
Transcript
Contributing to Crystal LT at ౦ژ Crystal ษڧձ #3 @Linda_pp
@rhysd
is:pr author:rhysd repo:manastech/crystal • Random::Mt19937 ࣮ • Array#transpose ࣮ •
ͦͷଞɼࡉ͔͍मਖ਼վળ • vim-crystal
Crystal ͱ… • ݱࡏ 0.10.2 Ͱ։ൃதͷݴޠ • ഁյతมߋ͕ೖΓ·͘Γɼ·ͩ production ready
Ͱͳ͍ʢ #1824 ʹͯ·ͨେ͖͍ม ߋ͕དྷͦ͏ʣ • ٯʹݴ͏ͱഁյతมߋΛ͏ఏҊͰൺֱ త؆୯ʹऔΓࠐ·ΕΔঢ়ଶ
ഁյతมߋͰൺֱత؆୯ʹ औΓࠐ·ΕΔ ޓੑʹनΘΕͣʹվળΛߟ͑ΒΕΔɽϓϧ ϦΫ࣌มߋͷྑ͠ѱ͠ʹूதͯٞ͠Ͱ͖ Δ ݴޠॲཧܥ͍͡Γ͍ͨʹͱָ͍ͬͯ͠ʂ
✌('ω'✌ )ࡾ✌('ω')✌ࡾ( ✌'ω')✌
গ͚ͩ͠ Crystal ͷίϯύΠϥʹ ͍ͭͯ • Crystal Ͱॻ͔Ε͍ͯΔʢself hostedʣ • AST
ͷఆٛʢ·ͣσʔλߏΛΔ͖ʣɹɹɹɹɹɹɹ crystal/src/compiler/crystal/semantic/ast.cr • LexerɼParser ͱͯૉͳ࣮ͰಡΈ͍͢ɽߏจΛՃɾ मਖ਼͍ͨ͠ͳΒ͜͜Λ͍͡Δɹɹɹɹɹɹɹɹɹɹɹɹɹ crystal/src/compiler/crystal/syntax • ίʔυੜ LLVM ͷ C binding Λݺͼग़͍ͯͬͯ͠Δ ʢLLVM IR Builder)ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ crystal/src/compiler/crystal/codegen
Crystal ʹ contribute ͢Δํ๏ • ҰൠతͳϦϙδτϦͱಉ͡ • खݩͰमਖ਼ͯ͠ spec Λ࣮ߦͯ͠ແ͍ࣄΛ
֬ೝ͢Δ • ϓϧϦΫΛॻ͘ • େମ @asterite ͞ΜͷҰଘͰϚʔδʢυΩϡϝ ϯτमਖ਼؆୯ͳमਖ਼ͳΒ @jhass ͞Μʣ
ҙʢmakeʣ • make (crystal/bin/crystal) ίϯύΠϧͨ͠ίϯύΠ ϥͰίϯύΠϧ͢Δ • ↓Ͳ͕͜·͍͔͔ͣΓ·͔͢ʁ 1. ίϯύΠϥͷίʔυΛ͍͡Δ
2. make ͰίϯύΠϧ 3. 1. ͷมߋ͕·͔ͣͬͨͷͰमਖ਼͢Δ 4. make ͰίϯύΠϧ
ҙʢmakeʣ 1. ίϯύΠϥͷίʔυΛ͍͡Δ 2. make ͰίϯύΠϧ ← ෆదͳίϯύΠϥAΛੜ ʣ 3.
1. ͷมߋ͕·͔ͣͬͨͷͰमਖ਼͢Δ 4. make ͰίϯύΠϧ ← ෆదͳίϯύΠϥ A Λ ͬͯ৽ͨʹίϯύΠϥ B Λੜ • ݁Ռͱͯ͠ग़དྷ্͕ͬͨίϯύΠϥ B ਖ਼͠ ͘ಈ͔ͳ͍Մೳੑ͕͋Δ
ͳΔ΄ͲΘ͔ΒΜ ϓϧϦΫϒϥϯνʹ push ͢Δલʹɼͻͱ· ͣ make clean ͔ͯ͠Β make ͯ͠ςετ͕
௨Δ͔֬ೝ͢Ε OK
·ͱΊ • ݴޠॲཧܥ͍͡Δͷָ͍͠ • Ͱ…ʢϋʔυϧ͕ʣ͓ߴ͍ΜͰ͠ΐ͏ʁ • Crystal ͳΒߴ͘ͳ͍ • Crystal
ͳΒഁյతมߋͰؾܰʹϓϧϦΫͰ͖Δ • ͪΖΜυΩϡϝϯτमਖ਼ͳͲܴ͞ΕΔ by ɹɹɹ@Linda_pp