タグ

Prismに関するYassLabのブックマーク (6)

  • RubyKaigi2024に参加してきました⛱️

    2024年5月15〜17の3日間、沖縄県那覇市で開催されたRubyKaigi2024に参加してきました! 今年も楽しかったですね・・・! だいぶ間が空いてしまいましたが、聴講したトークや思ったことなど書いてみました。 トーク感想 Day1 The grand strategy of Ruby Parser by Yuichiro Kaneko 発表資料 Ruby3.3で導入されたパーサージェネレータであるLramaについて、どんなものなのか、それがなぜ選ばれたのか、そして現在のRubyのパーサ周りの開発がどのような状況かといった内容でした。 まずここでいうパーサとは、Rubyのコードを解釈してASTとして出力するためのものです。 出力されたASTは、主にLSPのような開発支援の外部ツール等で使われます。 Ruby3.3では、それまでのBisonに代わってLramaというRubyで書かれた新

    RubyKaigi2024に参加してきました⛱️
    YassLab
    YassLab 2024/06/04
    "2024年5月15〜17の3日間、沖縄県那覇市で開催されたRubyKaigi2024に参加してきました!今年も楽しかったですね・・・!だいぶ間が空いてしまいましたが、聴講したトークや思ったことなど書いてみました。"
  • Prism in 2024

    In Ruby 3.3.0, a new standard library was added to CRuby called Prism. Prism is a parser for the Ruby language, exposed as both a C library (optionally usable by CRuby) and a Ruby library (usable as a Ruby gem). The Prism project represents many person-years worth of effort, and is the result of a collaboration between Shopify, CRuby core contributors, other Ruby implementation authors, and Ruby t

    Prism in 2024
    YassLab
    YassLab 2024/04/30
    “LRama was a significant shift in the maintenance of the CRuby parser. Because the entire parser generation pipeline was now controlled by CRuby, it became possible to modify the grammar file in ways that were not previously possible with Bison. ”
  • Ruby のメソッド定義時に仮引数があるとき、それをカッコでくくらないのは私だけなの? - STORES Product Blog

    テクノロジー部門で Ruby インタプリタの開発をしている笹田です。RubyKaigi 2024 楽しみですね。 さて、Ruby のメソッドを定義するとき、仮引数がある場合、カッコを省略することができます。 def foo(x, y) end def bar x, y end bar の定義の方法ですね。私は好んでこの書き方をしてたんですが、同僚の遠藤さんに「そんな書き方をしているのは今時笹田だけだ」と言われてショックを受けたので、ちょっと調べてみました。 ちなみに、カッコがないと使えないメソッド定義の方法があるので、その時には涙を呑んでカッコをつけます。 def foo(kw:) # 必須キーワード引数 end def bar(&) # 無名ブロック引数 end 補足1:Ruby では「メソッド呼び出し時にカッコをつけるかどうか」にいろいろな論争がありますが、ここでは「メソッドを定義する

    Ruby のメソッド定義時に仮引数があるとき、それをカッコでくくらないのは私だけなの? - STORES Product Blog
    YassLab
    YassLab 2024/04/12
    "調査にはPrismを使ってみました。Prismいじってる遠藤さんに使い方を聞けたということもあるんですが、簡単に調査スクリプトが作れてよかったです。というかlparen_locメソッド (仮引数をくくるカッコの位置) とかすごいな"
  • JRuby Prism - A new parser for a new era

    JRuby Prism - A new parser for a new era Thomas E. Enebo - Feb 23, 2024 Introduction JRuby has added support for the new backend parser Prism via the gem: jruby-prism-parser. Installing this gem will give you access to enable Prism (export JRUBY_OPTS="-Xparser.prism"). At this stage jruby-prism-parser is at the technology preview stage but capable of running pretty much everything: Rake, RSpec, Ru

    YassLab
    YassLab 2024/03/01
    "Prism is a big step forward for the Ruby community. It has been a lot of work to initially support this new parser in JRuby but it will make development going forward much simpler. The performance gains and other potential will give us some new tricks to improve startup time even more."
  • Prism

    This deck presented the prism parser as Ruby World 2023.

    Prism
    YassLab
    YassLab 2024/01/28
    “This deck presented the prism parser as Ruby World 2023.”
  • 新しいRubyパーサーPrism利用時の開発体験の変化

    この記事で扱っていること 記事ではRuby 3.3で導入されたPrismという新しいパーサーについて扱っています Prismが持つ「パース時に問題が発生した場合でも可能な限り意味のある結果を返却する」という機能に着目して下記について話します Rubyを記述する際の開発者体験がどれくらい向上しているのか? 「可能な限り意味のある結果」をどうやって組み立てているのか? 最後に主テーマから外れますが、Prismの動かし方についても話しています はじめに こんにちはウォンテッドリーで推薦基盤の改善をやっているnasaです 去年の12/25にもRubyの最新バージョンがサンタさんから届きました。https://www.ruby-lang.org/ja/news/2023/12/25/ruby-3-3-0-released/ 最新バージョンのRuby 3.3.0ではPrismという新しいパーサーが導

    新しいRubyパーサーPrism利用時の開発体験の変化
    YassLab
    YassLab 2024/01/28
    “では、なぜ新しいパーサーが必要だったのでしょうか? Prismは下記の3つが開発のモチベーションとなっています: エラートレラント, ポータビリティ, メンテナンス性. それぞれ少し詳しく書いていきますね。”
  • 1