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
490
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
3.6k
ripgrep をライブラリとして使う
rhysd
0
410
port-monolith-to-wasm-for-chrome-extension
rhysd
0
450
Fuzzing Rust Text Editor
rhysd
1
2.9k
Vim compiled to WebAssembly
rhysd
5
2.1k
about-neovim-0.4.0-floating-window
rhysd
3
2.2k
reply.vim
rhysd
0
1.2k
Vim ported to WebAssembly (VimConf 2018)
rhysd
4
3.3k
go-selfupdate-github で ツールを自己アップデートする
rhysd
5
4.3k
Other Decks in Programming
See All in Programming
Refactor your code - refactor yourself
xosofox
1
260
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
複雑な仕様に立ち向かうアーキテクチャ
myohei
0
170
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
8
4.1k
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
650
ソフトウェアの振る舞いに着目し 複雑な要件の開発に立ち向かう
rickyban
0
890
Go の GC の不得意な部分を克服したい
taiyow
2
760
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
250
テストケースの名前はどうつけるべきか?
orgachem
PRO
0
130
103 Early Hints
sugi_0000
1
220
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
1
360
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
180
Featured
See All Featured
Designing for humans not robots
tammielis
250
25k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.2k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
KATA
mclloyd
29
14k
Navigating Team Friction
lara
183
15k
Speed Design
sergeychernyshev
25
670
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
RailsConf 2023
tenderlove
29
940
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