Pro Yearly is on sale from $80 to $50! »

enlarged: extend your own programming language

enlarged: extend your own programming language

RubyKaigiから帰ってきてLT会のLT。RubyKaigi 2018のトークの増補版だよ!

40f4d1f2e77078955bd01e9fb4a503ba?s=128

seki at druby.org

June 14, 2018
Tweet

Transcript

  1. Extend your own programming language seki@ruby-lang.org -5Ͱ૿ิ

  2. ͠͹Β͓͘଴͍ͪͩ͘͞ ✓ ͝ཡͷεϙϯαʔͷఏڙ ʹΑΓ͓ૹΓ͠·͢

  3. slide sponsors " " ! !!! @moro @ tricknotes dRuby

    Web ( ) https://t.co/fLhzWll5gY @hisashim Rails 700 https://t.co/wAMLWDekJh?amp=1 @igaiga555 https://lambdanote.com @golden_lucky @vestige_
  4. slide sponsors 5 !! 6 2 Scratch Day in !!

    @mame iSeq iSeq @youchan Speee Ruby @koichiroo RubyKaigi 2018 2 @ktou RubyWorld Conference 2018 yancya @yancya
  5. slide sponsors seki @tsuboi @ogijun people.suzuri.jp hsbt tatsuosakurai kenchan june29

    zaimy tnmt umazura 4 -20 pixiv FANBOX halfmoon_0419 usa shimashima35 igaiga
  6. Extend your own programming language seki@ruby-lang.org -5Ͱ૿ิ

  7. RubyKaigi 2018 Ruby Ruby MinRuby dRuby

  8. RubyKaigi 2018 ...

  9. MinRuby Ruby Ruby MinRuby

  10. MinRubyͷίϯςΩετ AST - genv - lenv - Marshal.dump

  11. ঢ়ଶΛอଘʗ࠶ݱͰ͖Δ ...

  12. ετϨʔδʹอଘʗ࠶ݱ Ruby

  13. ωοτϫʔΫʹอଘʗ࠶ݱ HTTP dRuby TupleSpace / Linda

  14. TupleSpace Linda

  15. TupleSpaceαʔόΛ༻ҙ͢Δ drbunix:/tmp/my_ts URI

  16. ;ͭ͏͸ϑΝΠϧ͔Βىಈ parse AST genv, lenv evaluate

  17. TupleSpace͔Βͷىಈ TupleSpace AST, genv, lenv take evaluate

  18. ϓϩηεϚΠάϨʔγϣϯ TupleSpace

  19. ϫʔΧΛىಈ͢ΔτϦοΫ [:ts_eval, ...] take [:ts_call, ...] write [:ts_call, ...] AST,

    genv, lenv evaluate while true it = ts.take([:ts_eval, nil, nil, nil, nil]) it[0] = :ts_call ts.write(it) spawn_worker end
  20. TupleSpaceΛಉظ͢Δ࢓૊Έ TupleSpace Linda write take/read TS ͍͔ͭ͜ͷ࿩Λ͍ͨ͠

  21. ͭ·Γ TS TS MinRuby

  22. Docker, Rinda, Ring, MinRuby ෳ਺ͷίϯςφʹ഑ஔ͞Εͨ3JOEBͷλϓϧεϖʔεΛ3JOHΛ࢖ͬͯΦʔέε τϨʔγϣϯ ΍ઃఆͳ͠Ͱಉظͤ͞Δͱ͜Ζ·Ͱ͸࡞ͬͨɻݱࡏ͸ϝογϡ ঢ়ʹ઀ଓ͠߹͍ͬͯΔͷͰɺ"HFOUΛ࢖ͬͯ௨৴ΛݮΒͯ͠Έ͍ͨɻ