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.3k
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
新しいモバイルアプリ勉強会(仮)について
uetyo
1
240
Reactの歴史を振り返る
tutinoko
1
160
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
210
構造化・自動化・ガードレール - Vibe Coding実践記 -
tonegawa07
0
170
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
350
MCPで実現できる、Webサービス利用体験について
syumai
7
2.3k
kiroでゲームを作ってみた
iriikeita
0
130
[DevinMeetupTokyo2025] コード書かせないDevinの使い方
takumiyoshikawa
2
250
バイブスあるコーディングで ~PHP~ 便利ツールをつくるプラクティス
uzulla
1
320
PHPUnitの限界をPlaywrightで補完するテストアプローチ
yuzneri
0
370
副作用と戦う PHP リファクタリング ─ ドメインイベントでビジネスロジックを解きほぐす
kajitack
3
510
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
440
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Facilitating Awesome Meetings
lara
54
6.5k
Agile that works and the tools we love
rasmusluckow
329
21k
The Language of Interfaces
destraynor
158
25k
Adopting Sorbet at Scale
ufuk
77
9.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Writing Fast Ruby
sferik
628
62k
Faster Mobile Websites
deanohume
308
31k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
KATA
mclloyd
31
14k
The Cost Of JavaScript in 2023
addyosmani
51
8.7k
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