<?xml version="1.0" encoding="UTF-8"?>


<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Berita Ruby</title>
    <link>https://www.ruby-lang.org/id/feeds/news.rss</link>
    <language>id</language>
    <ttl>40</ttl>
    <description>Berita terhangat dari ruby-lang.org.</description>
    
    <item>
      <title>Ruby 3.3.0-preview3 Dirilis</title>
      <description>
&lt;p&gt;Kami dengan senang hati mengumumkan rilis dari Ruby 3.3.0-preview3.
Ruby 3.3 menambahkan sebuah &lt;em&gt;parser&lt;/em&gt; baru yang bernama Prism, menggunakan Lrama
sebagai &lt;em&gt;parser generator&lt;/em&gt;, menambahkan &lt;em&gt;pure-Ruby&lt;/em&gt; JIT &lt;em&gt;compiler&lt;/em&gt; baru
yang bernama RJIT, dan memperbaiki performa khususnya YJIT.&lt;/p&gt;

&lt;h2 id=&quot;prism&quot;&gt;Prism&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Memperkenalkan &lt;a href=&quot;https://github.com/ruby/prism&quot;&gt;the Prism parser&lt;/a&gt; sebagai &lt;em&gt;default gem&lt;/em&gt;
    &lt;ul&gt;
      &lt;li&gt;Prism adalah sebuah &lt;em&gt;parser&lt;/em&gt; yang &lt;em&gt;portable&lt;/em&gt;, &lt;em&gt;error tolerant&lt;/em&gt;, dan &lt;em&gt;maintainable recursive descent&lt;/em&gt; untuk Ruby&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Prism siap digunakan di &lt;em&gt;production&lt;/em&gt; dan aktif dirawat, Anda dapat menggunakannya sebagai pengganti Ripper
    &lt;ul&gt;
      &lt;li&gt;Ada &lt;a href=&quot;https://ruby.github.io/prism/&quot;&gt;extensive documentation&lt;/a&gt; untuk menggunakan Prism&lt;/li&gt;
      &lt;li&gt;Prism adalah sebuah pustaka bahasa C yang digunakan secara internal oleh CRuby dan sebuah Ruby &lt;em&gt;gem&lt;/em&gt; yang digunakan untuk mem-&lt;em&gt;parse&lt;/em&gt; kode Ruby&lt;/li&gt;
      &lt;li&gt;Beberapa &lt;em&gt;method&lt;/em&gt; penting pada Prism API:
        &lt;ul&gt;
          &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Prism.parse(source)&lt;/code&gt; yang mengembalikan AST sebagai bagian dari ParseResult&lt;/li&gt;
          &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Prism.dump(source)&lt;/code&gt; yang mengembalikan &lt;em&gt;serialized&lt;/em&gt; AST sebagai sebuah String&lt;/li&gt;
          &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Prism.parse_comments(source)&lt;/code&gt; yang mengembalikan komentar pada kode&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Anda dapat membuat &lt;em&gt;pull request&lt;/em&gt; atau melaporkan isu secara langsung pada &lt;a href=&quot;https://github.com/ruby/prism&quot;&gt;the Prism repository&lt;/a&gt; jika Anda tertarik untuk berkontribusi&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;menggunakan-lrama-ketimbang-bison&quot;&gt;Menggunakan Lrama ketimbang Bison&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Mengganti Bison dengan &lt;a href=&quot;https://github.com/yui-knk/lrama&quot;&gt;Lrama LALR parser generator&lt;/a&gt; &lt;a href=&quot;https://bugs.ruby-lang.org/issues/19637&quot;&gt;Feature #19637&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;Jika Anda tertarik, silakan lihat &lt;a href=&quot;https://rubykaigi.org/2023/presentations/spikeolaf.html&quot;&gt;The future vision of Ruby Parser&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;Internal &lt;em&gt;parser&lt;/em&gt; dari Lrama digantikan dengan LR yang dihasilkan oleh Racc untuk &lt;em&gt;maintainability&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Parameterizing Rule&lt;/em&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;(?, *, +)&lt;/code&gt; didukung, ini akan digunakan di Ruby parse.y&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;rjit&quot;&gt;RJIT&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Memperkenalkan sebuah &lt;em&gt;pure-Ruby&lt;/em&gt; JIT &lt;em&gt;compiler&lt;/em&gt; dan menggantikan MJIT.
    &lt;ul&gt;
      &lt;li&gt;RJIT hanya mendukung arsitektur x86-64 pada &lt;em&gt;platform Unix&lt;/em&gt;.&lt;/li&gt;
      &lt;li&gt;Berbeda dengan MJIT, RJIT tidak memerlukan sebuah &lt;em&gt;compiler&lt;/em&gt; C saat &lt;em&gt;runtime&lt;/em&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;RJIT ada hanya untuk tujuan eksperimen.
    &lt;ul&gt;
      &lt;li&gt;Anda seharusnya tetap menggunakan YJIT pada &lt;em&gt;production&lt;/em&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Jika Anda tertarik untuk mengembangkan JIT pada Ruby, silakan cek &lt;a href=&quot;https://rubykaigi.org/2023/presentations/k0kubun.html#day3&quot;&gt;k0kubun’s presentation on Day 3 of RubyKaigi&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;yjit&quot;&gt;YJIT&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Peningkatan performa yang signifikan dibanding Ruby 3.2
    &lt;ul&gt;
      &lt;li&gt;Dukungan &lt;em&gt;splat&lt;/em&gt; dan &lt;em&gt;rest argument&lt;/em&gt; telah ditingkatkan.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Register&lt;/em&gt; dialokasikan untuk operasi &lt;em&gt;stack&lt;/em&gt; dari &lt;em&gt;virtual machine&lt;/em&gt;.&lt;/li&gt;
      &lt;li&gt;Pemanggilan dengan &lt;em&gt;optional argument&lt;/em&gt; dikompilasi.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Exception handler&lt;/em&gt; juga dikompilasi.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Instant variable&lt;/em&gt; tidak lagi keluar ke &lt;em&gt;intepreter&lt;/em&gt; dengan &lt;em&gt;Object Shapes&lt;/em&gt;
yang sangat besar.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Call type&lt;/em&gt; yang tidak didukung tidak lagi keluar ke &lt;em&gt;interpreter&lt;/em&gt;.&lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Integer#!=&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;String#!=&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Kernel#block_given?&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Kernel#is_a?&lt;/code&gt;,
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Kernel#instance_of?&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Module#===&lt;/code&gt; dioptimisasi.&lt;/li&gt;
      &lt;li&gt;Sekarang 3x lebih cepat dibanding &lt;em&gt;interpreter&lt;/em&gt; pada optcarrot!&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Peningkatan penggunakan &lt;em&gt;memory&lt;/em&gt; secara signifikan
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;Metadata&lt;/em&gt; dari kode yang dikompilasi menggunakan &lt;em&gt;memory&lt;/em&gt; lebih sedikit.&lt;/li&gt;
      &lt;li&gt;Peningkatan &lt;em&gt;code generation&lt;/em&gt; pada ARM64&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Kecepatan kompilasi sedikit lebih cepat dibanding Ruby 3.2&lt;/li&gt;
  &lt;li&gt;Menambahkan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RubyVM::YJIT.enable&lt;/code&gt; untuk mengaktifkan YJIT saat &lt;em&gt;run-time&lt;/em&gt;
    &lt;ul&gt;
      &lt;li&gt;Anda dapat menjalankan YJIT tanpa memodifikasi argumen &lt;em&gt;command-line&lt;/em&gt; atau &lt;em&gt;environment variable&lt;/em&gt;&lt;/li&gt;
      &lt;li&gt;Ini dapat digunakan untuk mengaktifkan YJIT saat aplikasi Anda selesai &lt;em&gt;booting&lt;/em&gt;.
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--yjit-disable&lt;/code&gt; dapat digunakan jika Anda tidak ingin mengaktifkan YJIT
ketika aplikasi &lt;em&gt;booting&lt;/em&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Opsi untuk menonaktifkan kode GC dan memperlakukan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--yjit-exec-mem-size&lt;/code&gt; sebagai sebuah batas keras
    &lt;ul&gt;
      &lt;li&gt;Dapat menghasilkan perilaku &lt;em&gt;copy-on-write&lt;/em&gt; lebih baik pada &lt;em&gt;server&lt;/em&gt; yang menggunakan unicorn dan &lt;em&gt;forking&lt;/em&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ratio_in_yjit&lt;/code&gt; yang dihasilkan oleh &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--yjit-stats&lt;/code&gt; sekarang tersedia pada
rilis &lt;em&gt;build&lt;/em&gt;, data khusus atau dev &lt;em&gt;build&lt;/em&gt; tidak lagi diperlukan.&lt;/li&gt;
  &lt;li&gt;Opsi &lt;em&gt;exit tracing&lt;/em&gt; sekarang mendukung &lt;em&gt;sampling&lt;/em&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--trace-exits-sample-rate=N&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--yjit-perf&lt;/code&gt; ditambahkan untuk memfasilitasi &lt;em&gt;profiling&lt;/em&gt; dengan Linux perf.&lt;/li&gt;
  &lt;li&gt;Pengujian lebih saksama dan perbaikan beberapa &lt;em&gt;bug&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;mn-thread-scheduler&quot;&gt;M:N thread scheduler&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;M:N &lt;em&gt;thread scheduler&lt;/em&gt; diperkenalkan. &lt;a href=&quot;https://bugs.ruby-lang.org/issues/19842&quot;&gt;[Feature #19842]&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;M Ruby &lt;em&gt;thread&lt;/em&gt; diatur oleh N &lt;em&gt;native thread&lt;/em&gt; (OS &lt;em&gt;thread&lt;/em&gt;) sehingga pembuatan &lt;em&gt;thread&lt;/em&gt; dan
manajemen berkurang.&lt;/li&gt;
      &lt;li&gt;Ini dapat merusak kompatibilitas dengan C-&lt;em&gt;extension&lt;/em&gt; sehingga M:N &lt;em&gt;thread&lt;/em&gt; dinonaktifkan
pada &lt;em&gt;main&lt;/em&gt; dari Ractor secara &lt;em&gt;default&lt;/em&gt;.
    * &lt;em&gt;Environment variable&lt;/em&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RUBY_MN_THREADS=1&lt;/code&gt; mengaktifkan M:N &lt;em&gt;thread&lt;/em&gt; pada &lt;em&gt;main&lt;/em&gt; dari Ractor.
    * M:N &lt;em&gt;thread&lt;/em&gt; diaktifkan pada selain &lt;em&gt;main&lt;/em&gt; dari Ractor.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Environment variable&lt;/em&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RUBY_MAX_CPU=n&lt;/code&gt; menetapkan jumlah maksimum dari &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;N&lt;/code&gt; (jumlah maksimum dari &lt;em&gt;native thread&lt;/em&gt;). Nilai &lt;em&gt;default&lt;/em&gt; adalah 8.
    * Karena hanya ada satu Ruby &lt;em&gt;thread&lt;/em&gt; untuk setiap Ractor yang dapat berjalan bersamaan,
      jumlah &lt;em&gt;native thread&lt;/em&gt; yang digunakan, yang mana lebih kecil dari jumlah yang dispesifikasikan pada
      &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RUBY_MAX_CPU&lt;/code&gt; dan jumlah dari Ractor yang sedang berjalan. Sehingga, aplikasi Ractor tunggal (mayoritas aplikasi)
      akan menggunakan satu &lt;em&gt;native thread&lt;/em&gt;.
    * Untuk mendukung operasi &lt;em&gt;blocking&lt;/em&gt;, lebih dari &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;N&lt;/code&gt; &lt;em&gt;native thread&lt;/em&gt; dapat digunakan.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fitur-penting-lainnya&quot;&gt;Fitur Penting Lainnya&lt;/h2&gt;

&lt;h3 id=&quot;bahasa&quot;&gt;Bahasa&lt;/h3&gt;

&lt;h2 id=&quot;perbaikan-performa&quot;&gt;Perbaikan performa&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;defined?(@ivar)&lt;/code&gt; dioptimisasi dengan &lt;em&gt;Object Shapes&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Name resolution&lt;/em&gt; seperti &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Socket.getaddrinfo&lt;/code&gt; sekarang dapat diinterupsi (pada &lt;em&gt;environment&lt;/em&gt; di mana pthread tersedia). &lt;a href=&quot;https://bugs.ruby-lang.org/issues/19965&quot;&gt;Feature #19965&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;Untuk tujuan ini, sebuah pthread sekarang dibuat setiap kali ada pemanggilan getaddrinfo atau getnameinfo.
Ini menimbulkan &lt;em&gt;overhead&lt;/em&gt; pada &lt;em&gt;name resolution&lt;/em&gt; (sekitar 2.5x pada eksperimen kami).
Kami tidak mengharapkan &lt;em&gt;overhead&lt;/em&gt; menjadi sebuah masalah pada kebanyakan aplikasi, namun jika Anda menemui atau
melihat hasil yang tidak diharapkan karena perubahan tersebut, mohon laporkan.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Environment variable&lt;/em&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RUBY_GC_HEAP_REMEMBERED_WB_UNPROTECTED_OBJECTS_LIMIT_RATIO&lt;/code&gt; telah ditambahkan. &lt;a href=&quot;https://bugs.ruby-lang.org/issues/19571&quot;&gt;Feature #19571&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Children&lt;/em&gt; dari &lt;em&gt;object&lt;/em&gt; lama tidak lagi dipromosikan ke generasi lama pada &lt;em&gt;garbage collector&lt;/em&gt;. &lt;a href=&quot;https://bugs.ruby-lang.org/issues/19678&quot;&gt;Feature #19678&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Dukungan untuk &lt;em&gt;weak reference&lt;/em&gt; telah ditambahkan pada &lt;em&gt;garbage collector&lt;/em&gt;. &lt;a href=&quot;https://bugs.ruby-lang.org/issues/19783&quot;&gt;Feature #19783&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;perubahan-penting-lainnya-sejak-32&quot;&gt;Perubahan penting lainnya sejak 3.2&lt;/h2&gt;

&lt;h3 id=&quot;irb&quot;&gt;IRB&lt;/h3&gt;

&lt;p&gt;IRB mendapatkan beberapa peningkatan berikut, namun tidak terbatas pada:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Integrasi &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;irb:rdbg&lt;/code&gt; yang menyediakan pengalaman &lt;em&gt;deugging&lt;/em&gt; setara dengan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pry-byebug&lt;/code&gt; (&lt;a href=&quot;https://github.com/ruby/irb#debugging-with-irb&quot;&gt;doc&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;Dukungan &lt;em&gt;pager&lt;/em&gt; untuk perintah, seperti &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;show_source&lt;/code&gt;, dan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;show_cmds&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Menyediakan informasi yang lebih akurat dan membantu dengan perintah &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls&lt;/code&gt; dan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;show_source&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Eksperimen &lt;em&gt;autocompletion&lt;/em&gt; menggunakan &lt;em&gt;type analysis&lt;/em&gt; (&lt;a href=&quot;https://github.com/ruby/irb#type-based-completion&quot;&gt;doc&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;Sekarang memungkinkan untuk mengubah warna dan gaya &lt;em&gt;font&lt;/em&gt; pada &lt;em&gt;completion dialog&lt;/em&gt; dengan mengenalkan &lt;em&gt;class&lt;/em&gt; Reline::Face (&lt;a href=&quot;https://github.com/ruby/ruby/blob/master/doc/reline/face.md&quot;&gt;doc&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sebagai tambahan, IRB telah menjalani &lt;em&gt;refactoring&lt;/em&gt; yang ekstensif dan menerima
perbaikan &lt;em&gt;bug&lt;/em&gt; untuk memfasilitasi peningkatan ke depan dengan lebih mudah.&lt;/p&gt;

&lt;h2 id=&quot;isu-kompatibilitas&quot;&gt;Isu kompatibilitas&lt;/h2&gt;

&lt;p&gt;Catatan: Tidak termasuk perbaikan &lt;em&gt;bug&lt;/em&gt; dari fitur.&lt;/p&gt;

&lt;h3 id=&quot;constant-terhapus&quot;&gt;Constant terhapus&lt;/h3&gt;

&lt;p&gt;Berikut ini adalah &lt;em&gt;constant&lt;/em&gt; yang telah dihapus.&lt;/p&gt;

&lt;h3 id=&quot;method-terhapus&quot;&gt;Method terhapus&lt;/h3&gt;

&lt;p&gt;Berikut ini adalah &lt;em&gt;method&lt;/em&gt; yang telah dihapus.&lt;/p&gt;

&lt;h3 id=&quot;environment-variable-terhapus&quot;&gt;Environment variable terhapus&lt;/h3&gt;

&lt;p&gt;Berikut adalah &lt;em&gt;environment variable&lt;/em&gt; yang telah dihapus.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Environment variable&lt;/em&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RUBY_GC_HEAP_INIT_SLOTS&lt;/code&gt; tidak digunakan lagi. Mohon gunakan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RUBY_GC_HEAP_{0,1,2,3,4}_INIT_SLOTS&lt;/code&gt;. &lt;a href=&quot;https://bugs.ruby-lang.org/issues/19785&quot;&gt;Feature #19785&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;isu-kompatibilitas-stdlib&quot;&gt;Isu kompatibilitas Stdlib&lt;/h2&gt;

&lt;h3 id=&quot;extreadline-dipensiunkan&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt; dipensiunkan&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Kami memiliki &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reline&lt;/code&gt; yang merupakan implementasi Ruby murni dan kompatibel
dengan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt; API. Kami bergantung pada &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reline&lt;/code&gt; di masa depan. Jika
Anda perlu untuk menggunakan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt;, Anda dapat memasang &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt;
melalui rubygems.org dengan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gem install readline-ext&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Kami tidak lagi memasang pustaka, seperti &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;libreadline&lt;/code&gt; atau &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;libedit&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;pembaruan-c-api&quot;&gt;Pembaruan C API&lt;/h2&gt;

&lt;h3 id=&quot;c-api-diperbarui&quot;&gt;C API diperbarui&lt;/h3&gt;

&lt;p&gt;Berikut adalah API yang telah diperbarui.&lt;/p&gt;

&lt;h3 id=&quot;c-api-terhapus&quot;&gt;C API terhapus&lt;/h3&gt;

&lt;p&gt;Berikut adalah API yang telah dihapus.&lt;/p&gt;

&lt;h2 id=&quot;pembaruan-pustaka-standar&quot;&gt;Pembaruan pustaka standar&lt;/h2&gt;

&lt;p&gt;RubyGems dan Bundler memperingatkan jika pengguna membutuhkan &lt;em&gt;gem&lt;/em&gt; yang dijadwalkan
akan menjadi &lt;em&gt;bundled gem&lt;/em&gt; pada Ruby versi berikutnya.&lt;/p&gt;

&lt;p&gt;Pustaka yang ditargetkan:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;abbrev&lt;/li&gt;
  &lt;li&gt;base64&lt;/li&gt;
  &lt;li&gt;bigdecimal&lt;/li&gt;
  &lt;li&gt;csv&lt;/li&gt;
  &lt;li&gt;drb&lt;/li&gt;
  &lt;li&gt;getoptlong&lt;/li&gt;
  &lt;li&gt;mutex_m&lt;/li&gt;
  &lt;li&gt;nkf&lt;/li&gt;
  &lt;li&gt;observer&lt;/li&gt;
  &lt;li&gt;racc&lt;/li&gt;
  &lt;li&gt;resolv-replace&lt;/li&gt;
  &lt;li&gt;rinda&lt;/li&gt;
  &lt;li&gt;syslog&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Berikut adalah &lt;em&gt;default gem&lt;/em&gt; yang telah ditambahkan.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;prism 0.15.1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Berikut adalah &lt;em&gt;default gem&lt;/em&gt; yang telah diperbarui.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;RubyGems 3.5.0.dev&lt;/li&gt;
  &lt;li&gt;base64 0.2.0&lt;/li&gt;
  &lt;li&gt;benchmark 0.3.0&lt;/li&gt;
  &lt;li&gt;bigdecimal 3.1.5&lt;/li&gt;
  &lt;li&gt;bundler 2.5.0.dev&lt;/li&gt;
  &lt;li&gt;cgi 0.4.0&lt;/li&gt;
  &lt;li&gt;csv 3.2.8&lt;/li&gt;
  &lt;li&gt;date 3.3.4&lt;/li&gt;
  &lt;li&gt;delegate 0.3.1&lt;/li&gt;
  &lt;li&gt;drb 2.2.0&lt;/li&gt;
  &lt;li&gt;english 0.8.0&lt;/li&gt;
  &lt;li&gt;erb 4.0.3&lt;/li&gt;
  &lt;li&gt;etc 1.4.3.dev.1&lt;/li&gt;
  &lt;li&gt;fcntl 1.1.0&lt;/li&gt;
  &lt;li&gt;fiddle 1.1.2&lt;/li&gt;
  &lt;li&gt;fileutils 1.7.2&lt;/li&gt;
  &lt;li&gt;find 0.2.0&lt;/li&gt;
  &lt;li&gt;getoptlong 0.2.1&lt;/li&gt;
  &lt;li&gt;io-console 0.6.1.dev&lt;/li&gt;
  &lt;li&gt;irb 1.8.3&lt;/li&gt;
  &lt;li&gt;logger 1.6.0&lt;/li&gt;
  &lt;li&gt;mutex_m 0.2.0&lt;/li&gt;
  &lt;li&gt;net-http 0.4.0&lt;/li&gt;
  &lt;li&gt;net-protocol 0.2.2&lt;/li&gt;
  &lt;li&gt;nkf 0.1.3&lt;/li&gt;
  &lt;li&gt;observer 0.1.2&lt;/li&gt;
  &lt;li&gt;open-uri 0.4.0&lt;/li&gt;
  &lt;li&gt;open3 0.2.0&lt;/li&gt;
  &lt;li&gt;openssl 3.2.0&lt;/li&gt;
  &lt;li&gt;optparse 0.4.0&lt;/li&gt;
  &lt;li&gt;ostruct 0.6.0&lt;/li&gt;
  &lt;li&gt;pathname 0.3.0&lt;/li&gt;
  &lt;li&gt;pp 0.5.0&lt;/li&gt;
  &lt;li&gt;prettyprint 0.2.0&lt;/li&gt;
  &lt;li&gt;pstore 0.1.3&lt;/li&gt;
  &lt;li&gt;psych 5.1.1.1&lt;/li&gt;
  &lt;li&gt;rdoc 6.6.0&lt;/li&gt;
  &lt;li&gt;reline 0.3.9&lt;/li&gt;
  &lt;li&gt;rinda 0.2.0&lt;/li&gt;
  &lt;li&gt;securerandom 0.3.0&lt;/li&gt;
  &lt;li&gt;shellwords 0.2.0&lt;/li&gt;
  &lt;li&gt;singleton 0.2.0&lt;/li&gt;
  &lt;li&gt;stringio 3.0.9&lt;/li&gt;
  &lt;li&gt;strscan 3.0.7&lt;/li&gt;
  &lt;li&gt;syntax_suggest 1.1.0&lt;/li&gt;
  &lt;li&gt;tempfile 0.2.0&lt;/li&gt;
  &lt;li&gt;time 0.3.0&lt;/li&gt;
  &lt;li&gt;timeout 0.4.1&lt;/li&gt;
  &lt;li&gt;tmpdir 0.2.0&lt;/li&gt;
  &lt;li&gt;tsort 0.2.0&lt;/li&gt;
  &lt;li&gt;un 0.3.0&lt;/li&gt;
  &lt;li&gt;uri 0.13.0&lt;/li&gt;
  &lt;li&gt;weakref 0.1.3&lt;/li&gt;
  &lt;li&gt;win32ole 1.8.10&lt;/li&gt;
  &lt;li&gt;yaml 0.3.0&lt;/li&gt;
  &lt;li&gt;zlib 3.1.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Berikut adalah &lt;em&gt;bundled gem&lt;/em&gt; yang dipromosikan dari &lt;em&gt;default gem&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;racc 1.7.3&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Berikut adalah &lt;em&gt;bundled gem&lt;/em&gt; yang telah diperbarui.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;minitest 5.20.0&lt;/li&gt;
  &lt;li&gt;rake 13.1.0&lt;/li&gt;
  &lt;li&gt;test-unit 3.6.1&lt;/li&gt;
  &lt;li&gt;rexml 3.2.6&lt;/li&gt;
  &lt;li&gt;rss 0.3.0&lt;/li&gt;
  &lt;li&gt;net-imap 0.4.4&lt;/li&gt;
  &lt;li&gt;net-smtp 0.4.0&lt;/li&gt;
  &lt;li&gt;rbs 3.2.2&lt;/li&gt;
  &lt;li&gt;typeprof 0.21.8&lt;/li&gt;
  &lt;li&gt;debug 1.8.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lihat rilis GitHub, seperti &lt;a href=&quot;https://github.com/ruby/logger/releases&quot;&gt;Logger&lt;/a&gt;
atau &lt;em&gt;changelog&lt;/em&gt; untuk detail dari &lt;em&gt;default gem&lt;/em&gt; atau &lt;em&gt;bundled gem&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Lihat &lt;a href=&quot;https://github.com/ruby/ruby/blob/v3_3_0_preview3/NEWS.md&quot;&gt;NEWS&lt;/a&gt;
atau &lt;a href=&quot;https://github.com/ruby/ruby/compare/v3_2_0...v3_3_0_preview3&quot;&gt;commit logs&lt;/a&gt;
untuk lebih detail.&lt;/p&gt;

&lt;p&gt;Dengan perubahan tersebut, &lt;a href=&quot;https://github.com/ruby/ruby/compare/v3_2_0...v3_3_0_preview3#file_bucket&quot;&gt;5207 berkas berubah, 284820 sisipan(+), 174773 terhapus(-)&lt;/a&gt;
sejak Ruby 3.2.0!&lt;/p&gt;

&lt;h2 id=&quot;unduh&quot;&gt;Unduh&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview3.tar.gz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview3.tar.gz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 21550473
SHA1: 2811f191d66dffee0206771873bd990857ae4ed6
SHA256: 0969141be92e67e0edb84a8fb354acc98f01bd78e602a23a0f136045c82f4809
SHA512: 94db07a6958c09809b2e5b597fa55a121074e8bacb3bf588c83cf0d35b07a8b070172035a49d1abf0d8ee364a9ace824f34e677f7327ffe1acdbab0938ac49c4
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview3.tar.xz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview3.tar.xz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 15970144
SHA1: 496600612605f8ebeb955255e98bac73a4cbc045
SHA256: f79afcf122dc7d04fe26cfa4436b9c488b21766fc54b0d2dfb2ba41cd0cdd355
SHA512: d7ab0d703e7884efd31045933409cd68fac1d9941963537ccc8e309ca7c8bee8500a68182135acba22cbdbf4a8ae99f39bf7f0925273eb4fbc3728c0c1ba0c19
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview3.zip&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview3.zip&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 26618303
SHA1: 6a13e08c7e484d42037c1e2c87c5d0e220f893a0
SHA256: c35bf637a647c2f60148368ffb374db5c258570911794f46b6dfdb98ebfe95d9
SHA512: c4ef2cdcdadeb85ad1d42aedc97f9f3d609b3b01eea2319451cf92c81bd31ae8129b7c91fc68571469dd888c01ea0f48f73234b965db17f6a87404ca382f7794
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;apa-itu-ruby&quot;&gt;Apa itu Ruby&lt;/h2&gt;

&lt;p&gt;Ruby pertama kali dikembangkan oleh Matz (Yukihiro Matsumoto) pada 1993
dan sekarang dikembangkan sebagai &lt;em&gt;Open Source&lt;/em&gt;. Ruby berjalan pada berbagai
&lt;em&gt;platform&lt;/em&gt; dan digunakan di seluruh dunia, khususnya pengembangan &lt;em&gt;web&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Ditulis oleh &lt;strong&gt;naruse&lt;/strong&gt; tanggal 2023-11-12&lt;br /&gt;Diterjemahkan oleh meisyal&lt;/p&gt;</description>
      <pubDate>Sun, 12 Nov 2023 00:00:00 +0000</pubDate>
      <guid>https://www.ruby-lang.org/id/news/2023/11/12/ruby-3-3-0-preview3-released/</guid>
      <link>https://www.ruby-lang.org/id/news/2023/11/12/ruby-3-3-0-preview3-released/</link>
    </item>
    
    <item>
      <title>Ruby 3.3.0-preview2 Dirilis</title>
      <description>
&lt;p&gt;Kami dengan senang hati mengumumkan rilis dari Ruby 3.3.0-preview2.
Ruby 3.3 menambahkan sebuah &lt;em&gt;pure-Ruby&lt;/em&gt; JIT &lt;em&gt;compiler&lt;/em&gt; baru yang bernama RJIT,
menggunakan Lrama sebagai &lt;em&gt;parser generator&lt;/em&gt;, dan memperbaiki performa khususnya
YJIT.&lt;/p&gt;

&lt;h2 id=&quot;rjit&quot;&gt;RJIT&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Memperkenalkan sebuah &lt;em&gt;pure-Ruby&lt;/em&gt; JIT &lt;em&gt;compiler&lt;/em&gt; dan menggantikan MJIT.
    &lt;ul&gt;
      &lt;li&gt;RJIT hanya mendukung arsitektur x86_64 pada &lt;em&gt;platform Unix&lt;/em&gt;.&lt;/li&gt;
      &lt;li&gt;Berbeda dengan MJIT, RJIT tidak membutuhkan sebuah C &lt;em&gt;compiler&lt;/em&gt; saat &lt;em&gt;runtime&lt;/em&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;RJIT ada untuk tujuan eksperimen.
    &lt;ul&gt;
      &lt;li&gt;Anda harus tetap menggunakan YJIT pada &lt;em&gt;production&lt;/em&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Jika Anda tertarik untuk mengembangkan JIT pada Ruby, mohon cek
&lt;a href=&quot;https://rubykaigi.org/2023/presentations/k0kubun.html#day3&quot;&gt;k0kubun’s presentation on Day 3 of RubyKaigi&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;menggunakan-lrama-ketimbang-bison&quot;&gt;Menggunakan Lrama ketimbang Bison&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Mengganti Bison dengan &lt;a href=&quot;https://github.com/yui-knk/lrama&quot;&gt;Lrama LALR parser generator&lt;/a&gt; &lt;a href=&quot;https://bugs.ruby-lang.org/issues/19637&quot;&gt;Feature #19637&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;Jika Anda tertarik, silakan lihat &lt;a href=&quot;https://rubykaigi.org/2023/presentations/spikeolaf.html&quot;&gt;The future vision of Ruby Parser&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;yjit&quot;&gt;YJIT&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Peningkatan performa yang signifikan dibanding Ruby 3.2
    &lt;ul&gt;
      &lt;li&gt;Dukungan &lt;em&gt;splat&lt;/em&gt; dan &lt;em&gt;rest argument&lt;/em&gt; telah ditingkatkan.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Register&lt;/em&gt; dialokasikan untuk operasi &lt;em&gt;stack&lt;/em&gt; dari &lt;em&gt;virtual machine&lt;/em&gt;.&lt;/li&gt;
      &lt;li&gt;Pemanggilan dengan &lt;em&gt;optional argument&lt;/em&gt; dikompilasi.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Exception handler&lt;/em&gt; juga dikompilasi.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Instant variable&lt;/em&gt; tidak lagi keluar ke &lt;em&gt;intepreter&lt;/em&gt; dengan &lt;em&gt;Object Shapes&lt;/em&gt;
yang sangat besar.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Call type&lt;/em&gt; yang tidak didukung tidak lagi keluar ke &lt;em&gt;interpreter&lt;/em&gt;.&lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Integer#!=&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;String#!=&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Kernel#block_given?&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Kernel#is_a?&lt;/code&gt;,
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Kernel#instance_of?&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Module#===&lt;/code&gt; dioptimisasi.&lt;/li&gt;
      &lt;li&gt;Sekarang 3x lebih cepat dibanding &lt;em&gt;interpreter&lt;/em&gt; pada optcarrot!&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Metadata&lt;/em&gt; dari kode yang dikompilasi menggunakan &lt;em&gt;memory&lt;/em&gt; lebih sedikit.&lt;/li&gt;
  &lt;li&gt;Peningkatan &lt;em&gt;code generation&lt;/em&gt; pada ARM64&lt;/li&gt;
  &lt;li&gt;Opsi untuk menjalankan YJIT pada &lt;em&gt;paused mode&lt;/em&gt; dan mengaktifkan kembali secara manual
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--yjit-pause&lt;/code&gt; dan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RubyVM::YJIT.resume&lt;/code&gt;&lt;/li&gt;
      &lt;li&gt;Ini dapat digunakan untuk mengaktifkan YJIT ketika aplikasi Anda selesai &lt;em&gt;booting&lt;/em&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ratio_in_yjit&lt;/code&gt; yang dihasilkan oleh &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--yjit-stats&lt;/code&gt; sekarang tersedia pada
rilis &lt;em&gt;build&lt;/em&gt;, data khusus atau dev &lt;em&gt;build&lt;/em&gt; tidak lagi diperlukan.&lt;/li&gt;
  &lt;li&gt;Opsi &lt;em&gt;exit tracing&lt;/em&gt; sekarang mendukung &lt;em&gt;sampling&lt;/em&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--trace-exits-sample-rate=N&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Pengujian lebih saksama dan perbaikan beberapa &lt;em&gt;bug&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fitur-penting-lainnya&quot;&gt;Fitur Penting Lainnya&lt;/h2&gt;

&lt;h3 id=&quot;bahasa&quot;&gt;Bahasa&lt;/h3&gt;

&lt;h2 id=&quot;perbaikan-performa&quot;&gt;Perbaikan performa&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;defined?(@ivar)&lt;/code&gt; dioptimisasi dengan &lt;em&gt;Object Shapes&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;perubahan-penting-lainnya-sejak-32&quot;&gt;Perubahan penting lainnya sejak 3.2&lt;/h2&gt;

&lt;h3 id=&quot;irb&quot;&gt;IRB&lt;/h3&gt;

&lt;p&gt;IRB mendapatkan beberapa peningkatan berikut, namun tidak terbatas pada:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Integrasi &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;irb:rdbg&lt;/code&gt; yang menyediakan pengalaman &lt;em&gt;deugging&lt;/em&gt; setara dengan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pry-byebug&lt;/code&gt; (&lt;a href=&quot;https://github.com/ruby/irb#debugging-with-irb&quot;&gt;doc&lt;/a&gt;).&lt;/li&gt;
  &lt;li&gt;Dukungan &lt;em&gt;pager&lt;/em&gt; untuk perintah, seperti &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls&lt;/code&gt; dan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;show_cmds&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Menyediakan informasi yang lebih akurat dan membantu dengan perintah &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls&lt;/code&gt; dan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;show_source&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sebagai tambahan, IRB telah menjalani &lt;em&gt;refactoring&lt;/em&gt; yang ekstensif dan menerima
perbaikan &lt;em&gt;bug&lt;/em&gt; untuk memfasilitasi peningkatan ke depan dengan lebih mudah.&lt;/p&gt;

&lt;h2 id=&quot;isu-kompatibilitas&quot;&gt;Isu kompatibilitas&lt;/h2&gt;

&lt;p&gt;Catatan: Tidak termasuk perbaikan &lt;em&gt;bug&lt;/em&gt; dari fitur.&lt;/p&gt;

&lt;h3 id=&quot;constant-terhapus&quot;&gt;Constant terhapus&lt;/h3&gt;

&lt;p&gt;Berikut ini adalah &lt;em&gt;constant&lt;/em&gt; yang telah dihapus.&lt;/p&gt;

&lt;h3 id=&quot;method-terhapus&quot;&gt;Method terhapus&lt;/h3&gt;

&lt;p&gt;Berikut ini adalah &lt;em&gt;method&lt;/em&gt; yang telah dihapus.&lt;/p&gt;

&lt;h2 id=&quot;isu-kompatibilitas-stdlib&quot;&gt;Isu kompatibilitas Stdlib&lt;/h2&gt;

&lt;h3 id=&quot;extreadline-dipensiunkan&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt; dipensiunkan&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Kami memiliki &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reline&lt;/code&gt; yang merupakan implementasi Ruby murni dan kompatibel
dengan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt; API. Kami bergantung pada &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reline&lt;/code&gt; di masa depan. Jika
Anda perlu untuk menggunakan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt;, Anda dapat memasang &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt;
melalui rubygems.org dengan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gem install readline-ext&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Kami tidak lagi memasang pustaka, seperti &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;libreadline&lt;/code&gt; atau &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;libedit&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;pembaruan-c-api&quot;&gt;Pembaruan C API&lt;/h2&gt;

&lt;h3 id=&quot;c-api-diperbarui&quot;&gt;C API diperbarui&lt;/h3&gt;

&lt;p&gt;Berikut adalah API yang telah diperbarui.&lt;/p&gt;

&lt;h3 id=&quot;c-api-terhapus&quot;&gt;C API terhapus&lt;/h3&gt;

&lt;p&gt;Berikut adalah API yang telah dihapus.&lt;/p&gt;

&lt;h2 id=&quot;pembaruan-pustaka-standar&quot;&gt;Pembaruan pustaka standar&lt;/h2&gt;

&lt;p&gt;RubyGems dan Bundler memperingatkan jika pengguna membutuhkan &lt;em&gt;gem&lt;/em&gt; yang dijadwalkan
akan menjadi &lt;em&gt;bundled gem&lt;/em&gt; pada Ruby versi berikutnya.&lt;/p&gt;

&lt;p&gt;Berikut adalah &lt;em&gt;default gem&lt;/em&gt; yang telah diperbarui.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;RubyGems 3.5.0.dev&lt;/li&gt;
  &lt;li&gt;bigdecimal 3.1.4&lt;/li&gt;
  &lt;li&gt;bundler 2.5.0.dev&lt;/li&gt;
  &lt;li&gt;csv 3.2.8&lt;/li&gt;
  &lt;li&gt;erb 4.0.3&lt;/li&gt;
  &lt;li&gt;fiddle 1.1.2&lt;/li&gt;
  &lt;li&gt;fileutils 1.7.1&lt;/li&gt;
  &lt;li&gt;irb 1.7.4&lt;/li&gt;
  &lt;li&gt;nkf 0.1.3&lt;/li&gt;
  &lt;li&gt;optparse 0.4.0.pre.1&lt;/li&gt;
  &lt;li&gt;psych 5.1.0&lt;/li&gt;
  &lt;li&gt;reline 0.3.8&lt;/li&gt;
  &lt;li&gt;stringio 3.0.9&lt;/li&gt;
  &lt;li&gt;strscan 3.0.7&lt;/li&gt;
  &lt;li&gt;syntax_suggest 1.1.0&lt;/li&gt;
  &lt;li&gt;time 0.2.2&lt;/li&gt;
  &lt;li&gt;timeout 0.4.0&lt;/li&gt;
  &lt;li&gt;uri 0.12.2&lt;/li&gt;
  &lt;li&gt;yarp 0.9.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Berikut adalah &lt;em&gt;bundled gem&lt;/em&gt; yang telah diperbarui.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;minitest 5.19.0&lt;/li&gt;
  &lt;li&gt;test-unit 3.6.1&lt;/li&gt;
  &lt;li&gt;rexml 3.2.6&lt;/li&gt;
  &lt;li&gt;rss 0.3.0&lt;/li&gt;
  &lt;li&gt;net-imap 0.3.7&lt;/li&gt;
  &lt;li&gt;rbs 3.2.1&lt;/li&gt;
  &lt;li&gt;typeprof 0.21.8&lt;/li&gt;
  &lt;li&gt;debug 1.8.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Berikut adalah &lt;em&gt;default gem&lt;/em&gt; yang sekarang menjadi &lt;em&gt;bundled gem&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;racc 1.7.1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lihat rilis GitHub, seperti &lt;a href=&quot;https://github.com/ruby/logger/releases&quot;&gt;Logger&lt;/a&gt;
atau &lt;em&gt;changelog&lt;/em&gt; untuk detail dari &lt;em&gt;default gem&lt;/em&gt; atau &lt;em&gt;bundled gem&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Lihat &lt;a href=&quot;https://github.com/ruby/ruby/blob/v3_3_0_preview2/NEWS.md&quot;&gt;NEWS&lt;/a&gt;
atau &lt;a href=&quot;https://github.com/ruby/ruby/compare/v3_2_0...v3_3_0_preview2&quot;&gt;commit logs&lt;/a&gt;
untuk lebih detail.&lt;/p&gt;

&lt;p&gt;Dengan perubahan tersebut, &lt;a href=&quot;https://github.com/ruby/ruby/compare/v3_2_0...v3_3_0_preview2#file_bucket&quot;&gt;4970 berkas berubah, 239635 sisipan(+), 165275 terhapus(-)&lt;/a&gt;
sejak Ruby 3.2.0!&lt;/p&gt;

&lt;h2 id=&quot;unduh&quot;&gt;Unduh&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.gz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.gz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 21074209
SHA1: cf7329019235dc36b8e3f382a8b8b744922b1163
SHA256: 30ce8b0fe11b37b5ac088f5a5765744b935eac45bb89a9e381731533144f5991
SHA512: 1c5a13e519e8487fd40d932b96d14fa729521925c288e7841ab5eada628e506ceca2605bae36eea1aa505d9253383d53cd933b7a4bff96e6de5b1130c7c558e6
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.xz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.xz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 15600992
SHA1: 606d6423137a24eef4f6b07d167596b63c7aaa17
SHA256: 62b1c4f586c70bf1cb58f2d909d0d824506315782e835f9dd3fcc0b659a70fc1
SHA512: 5ff609a66b7359006df0d87477cf70e6e26c5f40ced81b8254f8154f4fc82c77fed297471b55706c1a4466f2a4257999e933b2ed085f695ace265757ab9500a2
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.zip&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.zip&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 26095651
SHA1: 4441cd0db23d133e6e2f7dea28f931a68dac6ca5
SHA256: c9771d24c9b1eab532c04ed076087285601693e4d1c63f131fd078c47c5c0cea
SHA512: bfeed21d011f891fe22510fe7242992c98f7fd2ce863d8be5740f56a34b726134cb3f5304e8b2dcd468fbc939648f10aae482eee15c1bf6c64b705484ed9e197
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;apa-itu-ruby&quot;&gt;Apa itu Ruby&lt;/h2&gt;

&lt;p&gt;Ruby pertama kali dikembangkan oleh Matz (Yukihiro Matsumoto) pada 1993
dan sekarang dikembangkan sebagai &lt;em&gt;Open Source&lt;/em&gt;. Ruby berjalan pada berbagai
&lt;em&gt;platform&lt;/em&gt; dan digunakan di seluruh dunia, khususnya pengembangan &lt;em&gt;web&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Ditulis oleh &lt;strong&gt;naruse&lt;/strong&gt; tanggal 2023-09-14&lt;br /&gt;Diterjemahkan oleh meisyal&lt;/p&gt;</description>
      <pubDate>Thu, 14 Sep 2023 00:00:00 +0000</pubDate>
      <guid>https://www.ruby-lang.org/id/news/2023/09/14/ruby-3-3-0-preview2-released/</guid>
      <link>https://www.ruby-lang.org/id/news/2023/09/14/ruby-3-3-0-preview2-released/</link>
    </item>
    
    <item>
      <title>CVE-2023-36617: Kerentanan ReDoS pada URI</title>
      <description>&lt;p&gt;Kami telah merilis versi &lt;em&gt;gem&lt;/em&gt; uri 0.12.2, 0.10.3 yang memiliki perbaikan
keamanan untuk kerentanan ReDoS.
Kerentanan ini telah ditetapkan dengan penanda CVE
&lt;a href=&quot;https://www.cve.org/CVERecord?id=CVE-2023-36617&quot;&gt;CVE-2023-36617&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;detail&quot;&gt;Detail&lt;/h2&gt;

&lt;p&gt;Sebuah isu ReDoS ditemukan pada komponen URI hingga versi 0.12.1. URI &lt;em&gt;parser&lt;/em&gt;
menangani URL yang tidak valid yang memiliki karakter tertentu secara tidak tepat.
Ini menyebabkan kenaikan waktu eksekusi untuk mem-&lt;em&gt;parse string&lt;/em&gt; ke objek URI
dengan rfc2396_parser.rb dan rfc3986_parser.rb.&lt;/p&gt;

&lt;p&gt;Catatan: isu ini ada karena perbaikan kurang sempurna pada
&lt;a href=&quot;https://www.ruby-lang.org/id/news/2023/03/28/redos-in-uri-cve-2023-28755/&quot;&gt;CVE-2023-28755&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Gem&lt;/em&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uri&lt;/code&gt; versi 0.12.1 dan semua versi sebelum 0.12.1 rentan terhadap isu ini.&lt;/p&gt;

&lt;h2 id=&quot;tindakan-yang-direkomendasikan&quot;&gt;Tindakan yang direkomendasikan&lt;/h2&gt;

&lt;p&gt;Kami merekomendasikan untuk memperbarui &lt;em&gt;gem&lt;/em&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uri&lt;/code&gt; ke 0.12.2. Untuk memastikan
kompatibilitas dengan versi yang dibundel pada rangkaian Ruby lama, Anda bisa
memperbarui dengan langkah berikut.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Untuk Ruby 3.0: Perbarui &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uri&lt;/code&gt; ke 0.10.3&lt;/li&gt;
  &lt;li&gt;Untuk Ruby 3.1 dan 3.2: Perbarui &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uri&lt;/code&gt; ke 0.12.2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anda dapat menggunakan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gem update uri&lt;/code&gt; untuk memperbarui. Jika Anda menggunakan
&lt;em&gt;bundler&lt;/em&gt;, mohon tambahkan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gem &quot;uri&quot;, &quot;&amp;gt;= 0.12.2&quot;&lt;/code&gt; (atau versi lain yang disebut
sebelumnya) pada &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Gemfile&lt;/code&gt; Anda.&lt;/p&gt;

&lt;h2 id=&quot;versi-terimbas&quot;&gt;Versi terimbas&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;Gem&lt;/em&gt; uri 0.12.1 atau sebelumnya&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;rujukan&quot;&gt;Rujukan&lt;/h2&gt;

&lt;p&gt;Terima kasih kepada &lt;a href=&quot;https://hackerone.com/ooooooo_q&quot;&gt;ooooooo_q&lt;/a&gt; yang telah
menemukan isu ini.&lt;/p&gt;

&lt;p&gt;Terima kasih kepada &lt;a href=&quot;https://github.com/nobu&quot;&gt;nobu&lt;/a&gt; yang telah memperbaiki isu
ini.&lt;/p&gt;

&lt;h2 id=&quot;riwayat&quot;&gt;Riwayat&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Semula dipublikasikan pada 2023-06-29 01:00:00 (UTC)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ditulis oleh &lt;strong&gt;hsbt&lt;/strong&gt; tanggal 2023-06-29&lt;br /&gt;Diterjemahkan oleh meisyal&lt;/p&gt;</description>
      <pubDate>Thu, 29 Jun 2023 01:00:00 +0000</pubDate>
      <guid>https://www.ruby-lang.org/id/news/2023/06/29/redos-in-uri-CVE-2023-36617/</guid>
      <link>https://www.ruby-lang.org/id/news/2023/06/29/redos-in-uri-CVE-2023-36617/</link>
    </item>
    
    <item>
      <title>Ruby 3.3.0-preview1 Dirilis</title>
      <description>
&lt;p&gt;Kami dengan senang hati mengumumkan rilis dari Ruby 3.3.0-preview1.
Ruby 3.3. menambahkan sebuah &lt;em&gt;pure-Ruby&lt;/em&gt; JIT &lt;em&gt;compiler&lt;/em&gt; baru yang bernama RJIT,
menggunakan Lrama sebagai &lt;em&gt;parser generator&lt;/em&gt;, dan memperbaiki performa khususnya
YJIT.&lt;/p&gt;

&lt;h2 id=&quot;rjit&quot;&gt;RJIT&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Memperkenalkan sebuah &lt;em&gt;pure-Ruby&lt;/em&gt; JIT &lt;em&gt;compiler&lt;/em&gt; dan menggantikan MJIT.
    &lt;ul&gt;
      &lt;li&gt;RJIT hanya mendukung arsitektur x86_64 pada &lt;em&gt;platform Unix&lt;/em&gt;.&lt;/li&gt;
      &lt;li&gt;Berbeda dengan MJIT, RJIT tidak membutuhkan sebuah C &lt;em&gt;compiler&lt;/em&gt; saat &lt;em&gt;runtime&lt;/em&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;RJIT ada untuk tujuan eksperimen.
    &lt;ul&gt;
      &lt;li&gt;Anda harus tetap menggunakan YJIT pada &lt;em&gt;production&lt;/em&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Jika Anda tertarik untuk mengembangkan JIT pada Ruby, mohon cek
&lt;a href=&quot;https://rubykaigi.org/2023/presentations/k0kubun.html#day3&quot;&gt;k0kubun’s presentation on Day 3 of RubyKaigi&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;menggunakan-lrama-ketimbang-bison&quot;&gt;Menggunakan Lrama ketimbang Bison&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Mengganti Bison dengan &lt;a href=&quot;https://github.com/yui-knk/lrama&quot;&gt;Lrama LALR parser generator&lt;/a&gt; &lt;a href=&quot;https://bugs.ruby-lang.org/issues/19637&quot;&gt;Feature #19637&lt;/a&gt;
    &lt;ul&gt;
      &lt;li&gt;Jika Anda tertarik, silakan lihat &lt;a href=&quot;https://rubykaigi.org/2023/presentations/spikeolaf.html&quot;&gt;The future vision of Ruby Parser&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;yjit&quot;&gt;YJIT&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Peningkatan performa yang signifikan dibanding Ruby 3.2
    &lt;ul&gt;
      &lt;li&gt;Dukungan &lt;em&gt;splat&lt;/em&gt; dan &lt;em&gt;rest argument&lt;/em&gt; telah ditingkatkan.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Register&lt;/em&gt; dialokasikan untuk operasi &lt;em&gt;stack&lt;/em&gt; dari &lt;em&gt;virtual machine&lt;/em&gt;.&lt;/li&gt;
      &lt;li&gt;Pemanggilan dengan &lt;em&gt;optional argument&lt;/em&gt; dikompilasi.&lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Integer#!=&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;String#!=&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Kernel#block_given?&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Kernel#is_a?&lt;/code&gt;,
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Kernel#instance_of?&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Module#===&lt;/code&gt; dioptimisasi.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;Instant variable&lt;/em&gt; tidak lagi keluar ke &lt;em&gt;intepreter&lt;/em&gt; dengan &lt;em&gt;Object Shapes&lt;/em&gt;
yang sangat besar.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Metadata&lt;/em&gt; dari kode yang dikompilasi menggunakan &lt;em&gt;memory&lt;/em&gt; lebih sedikit.&lt;/li&gt;
  &lt;li&gt;Peningkatan &lt;em&gt;code generation&lt;/em&gt; pada ARM64&lt;/li&gt;
  &lt;li&gt;Opsi untuk menjalankan YJIT pada &lt;em&gt;paused mode&lt;/em&gt; dan mengaktifkan kembali secara manual
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--yjit-pause&lt;/code&gt; dan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RubyVM::YJIT.resume&lt;/code&gt;&lt;/li&gt;
      &lt;li&gt;Ini dapat digunakan untuk mengaktifkan YJIT ketika aplikasi Anda selesai &lt;em&gt;booting&lt;/em&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Opsi &lt;em&gt;exit tracing&lt;/em&gt; sekarang mendukung &lt;em&gt;sampling&lt;/em&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--trace-exits-sample-rate=N&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Perbaikan beberapa &lt;em&gt;bug&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;fitur-penting-lainnya&quot;&gt;Fitur Penting Lainnya&lt;/h2&gt;

&lt;h3 id=&quot;bahasa&quot;&gt;Bahasa&lt;/h3&gt;

&lt;h2 id=&quot;perbaikan-performa&quot;&gt;Perbaikan performa&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;defined?(@ivar)&lt;/code&gt; dioptimisasi dengan &lt;em&gt;Object Shapes&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;perubahan-penting-lainnya-sejak-32&quot;&gt;Perubahan penting lainnya sejak 3.2&lt;/h2&gt;

&lt;h2 id=&quot;isu-kompatibilitas&quot;&gt;Isu kompatibilitas&lt;/h2&gt;

&lt;p&gt;Catatan: Tidak termasuk perbaikan &lt;em&gt;bug&lt;/em&gt; dari fitur.&lt;/p&gt;

&lt;h3 id=&quot;constant-terhapus&quot;&gt;Constant terhapus&lt;/h3&gt;

&lt;p&gt;Berikut ini adalah &lt;em&gt;constant&lt;/em&gt; yang telah dihapus.&lt;/p&gt;

&lt;h3 id=&quot;method-terhapus&quot;&gt;Method terhapus&lt;/h3&gt;

&lt;p&gt;Berikut ini adalah &lt;em&gt;method&lt;/em&gt; yang telah dihapus.&lt;/p&gt;

&lt;h2 id=&quot;isu-kompatibilitas-stdlib&quot;&gt;Isu kompatibilitas Stdlib&lt;/h2&gt;

&lt;h3 id=&quot;extreadline-dipensiunkan&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt; dipensiunkan&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Kami memiliki &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reline&lt;/code&gt; yang merupakan implementasi Ruby murni dan kompatibel
dengan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt; API. Kami bergantung pada &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;reline&lt;/code&gt; di masa depan. Jika
Anda perlu untuk menggunakan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt;, Anda dapat memasang &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ext/readline&lt;/code&gt;
melalui rubygems.org dengan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gem install readline-ext&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Kami tidak lagi memasang pustaka, seperti &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;libreadline&lt;/code&gt; atau &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;libedit&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;pembaruan-c-api&quot;&gt;Pembaruan C API&lt;/h2&gt;

&lt;h3 id=&quot;c-api-diperbarui&quot;&gt;C API diperbarui&lt;/h3&gt;

&lt;p&gt;Berikut adalah API yang telah diperbarui.&lt;/p&gt;

&lt;h3 id=&quot;c-api-terhapus&quot;&gt;C API terhapus&lt;/h3&gt;

&lt;p&gt;Berikut adalah API yang telah dihapus.&lt;/p&gt;

&lt;h2 id=&quot;pembaruan-pustaka-standar&quot;&gt;Pembaruan pustaka standar&lt;/h2&gt;

&lt;p&gt;Berikut adalah &lt;em&gt;default gem&lt;/em&gt; yang telah diperbarui.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;RubyGems 3.5.0.dev&lt;/li&gt;
  &lt;li&gt;bigdecimal 3.1.4&lt;/li&gt;
  &lt;li&gt;bundler 2.5.0.dev&lt;/li&gt;
  &lt;li&gt;csv 3.2.7&lt;/li&gt;
  &lt;li&gt;fiddle 1.1.2&lt;/li&gt;
  &lt;li&gt;fileutils 1.7.1&lt;/li&gt;
  &lt;li&gt;irb 1.6.4&lt;/li&gt;
  &lt;li&gt;optparse 0.4.0.pre.1&lt;/li&gt;
  &lt;li&gt;psych 5.1.0&lt;/li&gt;
  &lt;li&gt;reline 0.3.3&lt;/li&gt;
  &lt;li&gt;stringio 3.0.7&lt;/li&gt;
  &lt;li&gt;strscan 3.0.7&lt;/li&gt;
  &lt;li&gt;syntax_suggest 1.0.4&lt;/li&gt;
  &lt;li&gt;time 0.2.2&lt;/li&gt;
  &lt;li&gt;timeout 0.3.2&lt;/li&gt;
  &lt;li&gt;uri 0.12.1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Berikut adalah &lt;em&gt;bundled gem&lt;/em&gt; yang telah diperbarui.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;minitest 5.18.0&lt;/li&gt;
  &lt;li&gt;rbs 3.1.0&lt;/li&gt;
  &lt;li&gt;typeprof 0.21.7&lt;/li&gt;
  &lt;li&gt;debug 1.8.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lihat rilis GitHub, seperti &lt;a href=&quot;https://github.com/ruby/logger/releases&quot;&gt;Logger&lt;/a&gt;
atau &lt;em&gt;changelog&lt;/em&gt; untuk detail dari &lt;em&gt;default gem&lt;/em&gt; atau &lt;em&gt;bundled gem&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Lihat &lt;a href=&quot;https://github.com/ruby/ruby/blob/v3_3_0_preview1/NEWS.md&quot;&gt;NEWS&lt;/a&gt;
atau &lt;a href=&quot;https://github.com/ruby/ruby/compare/v3_2_0...v3_3_0_preview1&quot;&gt;commit logs&lt;/a&gt;
untuk lebih detail.&lt;/p&gt;

&lt;p&gt;Dengan perubahan tersebut, &lt;a href=&quot;https://github.com/ruby/ruby/compare/v3_2_0...v3_3_0_preview1#file_bucket&quot;&gt;1922 berkas berubah, 75283 sisipan(+), 44896 terhapus(-)&lt;/a&gt;
sejak Ruby 3.2.0!&lt;/p&gt;

&lt;h2 id=&quot;unduh&quot;&gt;Unduh&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.gz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.gz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 20428213
SHA1: 5445eec1cd9ddb44e03e74568cac94209c91b42d
SHA256: c3454a911779b8d747ab0ea87041030d002d533edacb2485fe558b7084da25ed
SHA512: 0f891f140ddc6372aa7c4459f8784126e0c341db7b80e72c51e441c5153c43c2d7b965f7807c076862ac84b9b8b0c6a66bbf66fc341746016151397bb21c782a
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.xz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.tar.xz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 15074600
SHA1: 4c22ebca287c87811e1050bf4d59b7d32255b212
SHA256: ae300b49e06c13087dd163b97eddd38db895dc8e0c9904284119795d75303fbb
SHA512: 46c1134dba5810847f7f6b4298900a91f5225679d7873548b271f4ef2ad1dc168722562a2e468a2ccf136314176ee613d8c7792fd4411a3f7a44c80b93b417ee
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.zip&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview1.zip&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 24846962
SHA1: 31774fa653c54107b6afc30adda3a0350d8f41d2
SHA256: 6ecafecf83f2cacf446b2326012f2b6ee1a0614d8dd29bb1fb3f105c27e2c553
SHA512: 794bef847fefbbdbbdced85975a00c9289ef6464810408af3f0f2055052d6b5ef5576dbd41e0d87bb73f1ad276d8e27c36018610f8e2b9936828c0e692f611f0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;apa-itu-ruby&quot;&gt;Apa itu Ruby&lt;/h2&gt;

&lt;p&gt;Ruby pertama kali dikembangkan oleh Matz (Yukihiro Matsumoto) pada 1993
dan sekarang dikembangkan sebagai &lt;em&gt;Open Source&lt;/em&gt;. Ruby berjalan pada berbagai
&lt;em&gt;platform&lt;/em&gt; dan digunakan di seluruh dunia, khususnya pengembangan &lt;em&gt;web&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Ditulis oleh &lt;strong&gt;naruse&lt;/strong&gt; tanggal 2023-05-12&lt;br /&gt;Diterjemahkan oleh meisyal&lt;/p&gt;</description>
      <pubDate>Fri, 12 May 2023 00:00:00 +0000</pubDate>
      <guid>https://www.ruby-lang.org/id/news/2023/05/12/ruby-3-3-0-preview1-released/</guid>
      <link>https://www.ruby-lang.org/id/news/2023/05/12/ruby-3-3-0-preview1-released/</link>
    </item>
    
    <item>
      <title>Ruby 3.2.2 Dirilis</title>
      <description>&lt;p&gt;Ruby 3.2.2 telah dirilis.&lt;/p&gt;

&lt;p&gt;Rilis ini mencakup perbaikan keamanan.
Mohon cek topik-topik di bawah ini untuk detail.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/id/news/2023/03/28/redos-in-uri-cve-2023-28755/&quot;&gt;CVE-2023-28755: Kerentanan ReDoS pada URI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/id/news/2023/03/30/redos-in-time-cve-2023-28756/&quot;&gt;CVE-2023-28756: Kerentanan ReDoS pada Time&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lihat &lt;a href=&quot;https://github.com/ruby/ruby/releases/tag/v3_2_2&quot;&gt;GitHub releases&lt;/a&gt; untuk
lebih detail.&lt;/p&gt;

&lt;h2 id=&quot;unduh&quot;&gt;Unduh&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 20467023
SHA1: 670fce00d83771a1349b116e56a8a3b0ad323769
SHA256: 96c57558871a6748de5bc9f274e93f4b5aad06cd8f37befa0e8d94e7b8a423bc
SHA512: bcc68f3f24c1c8987d9c80b57332e5791f25b935ba38daf5addf60dbfe3a05f9dcaf21909681b88e862c67c6ed103150f73259c6e35c564f13a00f432e3c1e46
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.xz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.xz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 15118856
SHA1: 087af286b70b0e17f88c9c4469b471eca2010161
SHA256: 4b352d0f7ec384e332e3e44cdbfdcd5ff2d594af3c8296b5636c710975149e23
SHA512: a29f24cd80f563f6368952d06d6273f7241a409fa9ab2f60e03dde2ac58ca06bee1750715b6134caebf4c061d3503446dc37a6059e19860bb0010eef34951935
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.zip&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.zip&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 24615317
SHA1: a1b6d57019d41dca269b4b16a80784755d34b81d
SHA256: cc216ecb4f49064d8f44e10ecf9218cfd7b28cf4168bb79ecdf171e321db4af1
SHA512: 569a68d89cc9a646cd0319d7cb8d57df3a55c0ac2c64f1f61607cc9c06b3aa8415eb8d38f7893ab3dbf072da9e919fbc454a9338e924c20a6a5110a1fa301d52
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;komentar-rilis&quot;&gt;Komentar Rilis&lt;/h2&gt;

&lt;p&gt;Banyak &lt;em&gt;committer&lt;/em&gt;, pengembang, dan pengguna yang telah menyediakan laporan &lt;em&gt;bug&lt;/em&gt;
membantu kami untuk membuat rilis ini. Terima kasih atas kontribusinya.&lt;/p&gt;

&lt;p&gt;Ditulis oleh &lt;strong&gt;naruse&lt;/strong&gt; tanggal 2023-03-30&lt;br /&gt;Diterjemahkan oleh meisyal&lt;/p&gt;</description>
      <pubDate>Thu, 30 Mar 2023 12:00:00 +0000</pubDate>
      <guid>https://www.ruby-lang.org/id/news/2023/03/30/ruby-3-2-2-released/</guid>
      <link>https://www.ruby-lang.org/id/news/2023/03/30/ruby-3-2-2-released/</link>
    </item>
    
    <item>
      <title>Ruby 3.1.4 Dirilis</title>
      <description>&lt;p&gt;Ruby 3.1.4 telah dirilis.&lt;/p&gt;

&lt;p&gt;Rilis ini mencakup perbaikan keamanan.
Mohon cek topik-topik di bawah ini untuk detail.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/id/news/2023/03/28/redos-in-uri-cve-2023-28755/&quot;&gt;CVE-2023-28755: Kerentanan ReDoS pada URI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/id/news/2023/03/30/redos-in-time-cve-2023-28756/&quot;&gt;CVE-2023-28756: Kerentanan ReDoS pada Time&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lihat &lt;a href=&quot;https://github.com/ruby/ruby/releases/tag/v3_1_4&quot;&gt;GitHub releases&lt;/a&gt; untuk
lebih detail.&lt;/p&gt;

&lt;h2 id=&quot;unduh&quot;&gt;Unduh&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.gz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.gz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 20917933
SHA1: 38eddfc5a7536b6c8133183563009a4ed9bbe6db
SHA256: a3d55879a0dfab1d7141fdf10d22a07dbf8e5cdc4415da1bde06127d5cc3c7b6
SHA512: 41cf1561dd7eb249bb2c2f5ea958884880648cc1d11da9315f14158a2d0ff94b2c5c7d75291a67e57e1813d2ec7b618e5372a9f18ee93be6ed306f47b0d3199a
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.xz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.tar.xz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 15316604
SHA1: 2e2fbf43b7db6f24280548a3544912535bed8212
SHA256: 1b6d6010e76036c937b9671f4752f065aeca800a6c664f71f6c9a699453af94f
SHA512: a627bb629a10750b8b2081ad451a41faea0fc85d95aa1e267e3d2a0f56a35bb58195d4a8d13bbdbd82f4197a96dae22b1cee1dfc83861ec33a67ece07aef5633
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.zip&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.4.zip&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 25241255
SHA1: 1061632623caa82a68a04a35777ed8f1797a9f8f
SHA256: 1fce1ab3d61d10a857dc821dab6e77fa41d0663c5dbbfaa5d9b9c2bdec5ce303
SHA512: 3a334302df97c2c7fec3c2d05d19a40b1ec6f95fef52c85d397196ce62fac4834f96783f0ac7fcba6e2a670f004bcc275db6f1810ace6c68a594e7d2fd9b297b
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;komentar-rilis&quot;&gt;Komentar Rilis&lt;/h2&gt;

&lt;p&gt;Banyak &lt;em&gt;committer&lt;/em&gt;, pengembang, dan pengguna yang telah menyediakan laporan &lt;em&gt;bug&lt;/em&gt;
membantu kami untuk membuat rilis ini. Terima kasih atas kontribusinya.&lt;/p&gt;

&lt;p&gt;Ditulis oleh &lt;strong&gt;nagachika&lt;/strong&gt; tanggal 2023-03-30&lt;br /&gt;Diterjemahkan oleh meisyal&lt;/p&gt;</description>
      <pubDate>Thu, 30 Mar 2023 12:00:00 +0000</pubDate>
      <guid>https://www.ruby-lang.org/id/news/2023/03/30/ruby-3-1-4-released/</guid>
      <link>https://www.ruby-lang.org/id/news/2023/03/30/ruby-3-1-4-released/</link>
    </item>
    
    <item>
      <title>Ruby 3.0.6 Dirilis</title>
      <description>&lt;p&gt;Ruby 3.0.6 telah dirilis.&lt;/p&gt;

&lt;p&gt;Rilis ini mencakup perbaikan keamanan.
Mohon cek topik-topik di bawah ini untuk detail.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/id/news/2023/03/28/redos-in-uri-cve-2023-28755/&quot;&gt;CVE-2023-28755: Kerentanan ReDoS pada URI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/id/news/2023/03/30/redos-in-time-cve-2023-28756/&quot;&gt;CVE-2023-28756: Kerentanan ReDoS pada Time&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rilis ini juga mencakup beberapa perbaikan &lt;em&gt;bug&lt;/em&gt;.
Lihat &lt;a href=&quot;https://github.com/ruby/ruby/releases/tag/v3_0_6&quot;&gt;GitHub releases&lt;/a&gt; untuk
lebih detail.&lt;/p&gt;

&lt;p&gt;Setelah rilis ini, kami akan mengakhiri fase perawatan normal dari Ruby 3.0 dan
Ruby 3.0 akan memasuki fase perawatan keamanan.
Ini artinya kami tidak akan melakukan &lt;em&gt;backport&lt;/em&gt; perbaikan &lt;em&gt;bug&lt;/em&gt; apa pun, kecuali
perbaikan keamanan.&lt;/p&gt;

&lt;p&gt;Ketentuan dari fase perawatan keamanan dijadwalkan selama satu tahun.
Ruby 3.0 akan mencapai EOL dan dukungan resmi berakhir pada akhir dari fase
perawatan keamanan.
Oleh sebab itu, kami merekomendasikan Anda untuk mulai memperbarui Ruby ke
3.1 atau 3.2.&lt;/p&gt;

&lt;h2 id=&quot;unduh&quot;&gt;Unduh&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.gz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.gz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 21315725
SHA1: 1052441f0abbb0302fb9f1481d2db99dfb4d4c29
SHA256: 6e6cbd490030d7910c0ff20edefab4294dfcd1046f0f8f47f78b597987ac683e
SHA512: d596bfd374ae777717379b409afe8ee1655ade0c0539ada7a10af4780b818efe25a28aa50a2a7226741d1776d744e10ad916641f9d12fb31c7444b0a01d0e0cc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.xz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.tar.xz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 15864560
SHA1: 7880c34d7193224e967163b12f33bf7aaf7304f6
SHA256: b5cbee93e62d85cfb2a408c49fa30a74231ae8409c2b3858e5f5ea254d7ddbd1
SHA512: abbf883cd9f3ddbd171df8f8c3cd35d930623c4c01a5e01387de0aee9811cca7604b82163e18e04f809773bf1ca5a450f13f62f3db14f191f610e116ae4fa6f8
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.zip&quot;&gt;https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.6.zip&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 25694359
SHA1: e75d1bc14dd89c176145dc3968774e30f3a17652
SHA256: 428d518d12f09df4146fc31dbed47c8d7e10fcccd2426948e5c0862d9321480d
SHA512: 576d11c668acac57cf4952228b148d17f16ab1dc491145355a4f2068b15f6cab8a4007a84d9d1eda4c1b62837675c82be99ebe6379c314f46c6ebbbf89677b5e
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;komentar-rilis&quot;&gt;Komentar Rilis&lt;/h2&gt;

&lt;p&gt;Banyak &lt;em&gt;committer&lt;/em&gt;, pengembang, dan pengguna yang telah menyediakan laporan
&lt;em&gt;bug&lt;/em&gt; membantu kami untuk membuat rilis ini. Terima kasih atas kontribusinya.&lt;/p&gt;

&lt;p&gt;Perawatan Ruby 3.0, termasuk rilis ini, didasarkan pada
“Agreement for the Ruby stable version” dari Ruby Association.&lt;/p&gt;

&lt;p&gt;Ditulis oleh &lt;strong&gt;usa&lt;/strong&gt; tanggal 2023-03-30&lt;br /&gt;Diterjemahkan oleh meisyal&lt;/p&gt;</description>
      <pubDate>Thu, 30 Mar 2023 12:00:00 +0000</pubDate>
      <guid>https://www.ruby-lang.org/id/news/2023/03/30/ruby-3-0-6-released/</guid>
      <link>https://www.ruby-lang.org/id/news/2023/03/30/ruby-3-0-6-released/</link>
    </item>
    
    <item>
      <title>Ruby 2.7.8 Dirilis</title>
      <description>&lt;p&gt;Ruby 2.7.8 telah dirilis.&lt;/p&gt;

&lt;p&gt;Rilis ini mencakup perbaikan keamanan.
Mohon cek topik-topik di bawah ini untuk detail.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;/id/news/2023/03/28/redos-in-uri-cve-2023-28755/&quot;&gt;CVE-2023-28755: Kerentanan ReDoS pada URI&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;/id/news/2023/03/30/redos-in-time-cve-2023-28756/&quot;&gt;CVE-2023-28756: Kerentanan ReDoS pada Time&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rilis ini juga mencakup beberapa perbaikan pada &lt;em&gt;build&lt;/em&gt;.
Lihat &lt;a href=&quot;https://github.com/ruby/ruby/releases/tag/v2_7_8&quot;&gt;GitHub releases&lt;/a&gt; untuk
lebih detail.&lt;/p&gt;

&lt;p&gt;Setelah rilis ini, Ruby 2.7 akan mencapai EOL. Dengan kata lain, ini akan menjadi
rilis terakhir dari rangkaian Ruby 2.7.
Kami tidak akan merilis Ruby 2.7.9 walaupun ada kerentanan keamanan ditemukan
(tetapi, kami mungkin merilis jika sebuah regresi signifikan ditemukan).
Kami merekomendasikan semua pengguna Ruby 2.7 untuk mulai migrasi ke Ruby 3.2,
3.1, atau 3.0 segera.&lt;/p&gt;

&lt;h2 id=&quot;unduh&quot;&gt;Unduh&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.bz2&quot;&gt;https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.bz2&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 14851891
SHA1: 3e1c6a7bac0b7ea6becb94a1a8e8630173903387
SHA256: 09ccf12051d86e5b3877c9e9db8b7eb6495bea180cab88a1fc99851434137c67
SHA512: 3a9db8d9e79318f869417f2ebf3365907febc0d1428116eabf3253c51d8420f255782b32fa30a54802b9f5f4187fad80dab0611cc80436feec84db87b0456ec6
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.gz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.gz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 16950365
SHA1: 8779ab7cd912697d78dee62ea9f976acdf600c54
SHA256: c2dab63cbc8f2a05526108ad419efa63a67ed4074dbbcf9fc2b1ca664cb45ba0
SHA512: 23195d29cec81f54061db14fbc9d0d75aca71ca4de35da3d5712eb08d71fbe27a3f0f2594b58692cf20225188334879e413ac078d10d7b635af0200d02f25ecb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.xz&quot;&gt;https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.tar.xz&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 12105320
SHA1: 9e7c7b790652d6c81ce1157b18eab5f8b11b0a27
SHA256: f22f662da504d49ce2080e446e4bea7008cee11d5ec4858fc69000d0e5b1d7fb
SHA512: 4b49dff3e1c2e79d914e10418e4c03026f5d4c137dc337f5c720fe26cb9fcdcf4afc6b7c967356cf5fbe04cc5ef431174c48a035becf3e2322c2c45d3c9b2f59
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.zip&quot;&gt;https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.8.zip&lt;/a&gt;&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;SIZE: 20732352
SHA1: c38d38d03d840599e152a2ec62567075cb6ca253
SHA256: 9567ed0e9015f238ff6bbd5e4fd4ee9df39174eb7a29762beb8920788068661c
SHA512: e7ad3380cc81ecfebccb39acad7364a20bc5ebf9ce74ca5d82225fe0dea76e2ee46aa97e49b975dd9a00c7ff60d94907d9a27acdbb5c5a48b88a3c58e0a998be
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;komentar-rilis&quot;&gt;Komentar rilis&lt;/h2&gt;

&lt;p&gt;Banyak &lt;em&gt;committer&lt;/em&gt;, pengembang, dan pengguna yang telah menyediakan laporan
&lt;em&gt;bug&lt;/em&gt; membantu kami untuk membuat rilis ini. Terima kasih atas kontribusinya.&lt;/p&gt;

&lt;p&gt;Ditulis oleh &lt;strong&gt;usa&lt;/strong&gt; tanggal 2023-03-30&lt;br /&gt;Diterjemahkan oleh meisyal&lt;/p&gt;</description>
      <pubDate>Thu, 30 Mar 2023 12:00:00 +0000</pubDate>
      <guid>https://www.ruby-lang.org/id/news/2023/03/30/ruby-2-7-8-released/</guid>
      <link>https://www.ruby-lang.org/id/news/2023/03/30/ruby-2-7-8-released/</link>
    </item>
    
    <item>
      <title>CVE-2023-28756: Kerentanan ReDoS pada Time</title>
      <description>&lt;p&gt;Kami telah merilis versi &lt;em&gt;gem&lt;/em&gt; time 0.1.1 dan 0.2.2 yang mengandung perbaikan
keamanan untuk kerentanan ReDoS. Kerentanan ini telah ditetapkan dengan penanda
CVE &lt;a href=&quot;https://www.cve.org/CVERecord?id=CVE-2023-28756&quot;&gt;CVE-2023-28756&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;detail&quot;&gt;Detail&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Parser&lt;/em&gt; dari Time menangani &lt;em&gt;string&lt;/em&gt; yang tidak valid yang memiliki karakter
tertentu dengan tidak benar. Ini menyebabkan peningkatan waktu eksekusi untuk
mem-&lt;em&gt;parsing&lt;/em&gt; &lt;em&gt;string&lt;/em&gt; menjadi objek Time.&lt;/p&gt;

&lt;p&gt;Isu ini ditemukan pada versi &lt;em&gt;gem&lt;/em&gt; Time 0.1.0 dan 0.2.1 serta pustaka Time dari
Ruby 2.7.7.&lt;/p&gt;

&lt;h2 id=&quot;rekomendasi-tindakan&quot;&gt;Rekomendasi tindakan&lt;/h2&gt;

&lt;p&gt;Kami merekomendasikan untuk memperbarui &lt;em&gt;gem&lt;/em&gt; time ke 0.2.2 atau setelahnya.
Untuk memastikan kompatibilitas dengan versi yang dibundel pada rangkaian
Ruby lama, Anda bisa memperbarui dengan langkah berikut:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Untuk pengguna Ruby 3.0: Perbarui &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;time&lt;/code&gt; ke 0.1.1&lt;/li&gt;
  &lt;li&gt;Untuk pengguna Ruby 3.1/3.2: Perbarui &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;time&lt;/code&gt; ke 0.2.2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anda dapat menggunakan perintah &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gem update time&lt;/code&gt;. Jika Anda menggunakan &lt;em&gt;bundler&lt;/em&gt;,
mohon tambahkan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gem &quot;time&quot;, &quot;&amp;gt;= 0.2.2&quot;&lt;/code&gt; pada &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Gemfile&lt;/code&gt; Anda.&lt;/p&gt;

&lt;p&gt;Sayangnya, &lt;em&gt;gem&lt;/em&gt; time hanya berjalan pada Ruby 3.0 atau setelahnya. Jika Anda
sedang menggunakan Ruby 2.7, mohon gunakan versi Ruby terbaru.&lt;/p&gt;

&lt;h2 id=&quot;versi-terimbas&quot;&gt;Versi terimbas&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Ruby 2.7.7 atau sebelumnya&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;gem&lt;/em&gt; time 0.1.0&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;gem&lt;/em&gt; time 0.2.1&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;rujukan&quot;&gt;Rujukan&lt;/h2&gt;

&lt;p&gt;Terima kasih kepada &lt;a href=&quot;https://hackerone.com/ooooooo_q?type=user&quot;&gt;ooooooo_q&lt;/a&gt;
yang telah menemukan isu ini.&lt;/p&gt;

&lt;h2 id=&quot;riwayat&quot;&gt;Riwayat&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Semula dipublikasikan pada 2023-03-30 11:00:00 (UTC)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ditulis oleh &lt;strong&gt;hsbt&lt;/strong&gt; tanggal 2023-03-30&lt;br /&gt;Diterjemahkan oleh meisyal&lt;/p&gt;</description>
      <pubDate>Thu, 30 Mar 2023 11:00:00 +0000</pubDate>
      <guid>https://www.ruby-lang.org/id/news/2023/03/30/redos-in-time-cve-2023-28756/</guid>
      <link>https://www.ruby-lang.org/id/news/2023/03/30/redos-in-time-cve-2023-28756/</link>
    </item>
    
    <item>
      <title>CVE-2023-28755: Kerentanan ReDoS pada URI</title>
      <description>&lt;p&gt;Kami telah merilis versi &lt;em&gt;gem&lt;/em&gt; uri 0.12.1, 0.11.1, 0.10.2, dan 0.10.0.1 yang
mengandung perbaikan keamanan untuk kerentanan ReDoS.
Kerentanan ini telah ditetapkan dengan penanda CVE
&lt;a href=&quot;https://www.cve.org/CVERecord?id=CVE-2023-28755&quot;&gt;CVE-2023-28755&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;detail&quot;&gt;Detail&lt;/h2&gt;

&lt;p&gt;Isu ReDoS ditemukan pada komponen URI. &lt;em&gt;Parser&lt;/em&gt; dari URI menangani URL yang
tidak valid yang memiliki karakter tertentu dengan tidak benar. Ini menyebabkan
peningkatan waktu eksekusi untuk mem-&lt;em&gt;parsing&lt;/em&gt; &lt;em&gt;string&lt;/em&gt; dari objek URI.&lt;/p&gt;

&lt;p&gt;Versi &lt;em&gt;gem&lt;/em&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uri&lt;/code&gt; 0.12.0, 0.11.0, 0.10.0, dan semua versi sebelum 0.10.0 rentan
terhadap isu ini.&lt;/p&gt;

&lt;h2 id=&quot;rekomendasi-tindakan&quot;&gt;Rekomendasi tindakan&lt;/h2&gt;

&lt;p&gt;Kami merekomendasikan untuk memperbarui &lt;em&gt;gem&lt;/em&gt; &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uri&lt;/code&gt; ke 0.12.1. Untuk memastikan
kompatibilitas dengan versi yang dibundel pada rangkaian Ruby lama, Anda bisa
memperbarui dengan langkah berikut:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Untuk Ruby 2.7: Perbarui &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uri&lt;/code&gt; ke 0.10.0.1&lt;/li&gt;
  &lt;li&gt;Untuk Ruby 3.0: Perbarui &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uri&lt;/code&gt; ke 0.10.2&lt;/li&gt;
  &lt;li&gt;Untuk Ruby 3.1: Perbarui &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uri&lt;/code&gt; ke 0.11.1&lt;/li&gt;
  &lt;li&gt;Untuk Ruby 3.2: Perbarui &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uri&lt;/code&gt; ke 0.12.1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Anda dapat menggunakan perintah &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gem update uri&lt;/code&gt;. Jika Anda menggunakan &lt;em&gt;bundler&lt;/em&gt;,
mohon tambahkan &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;gem &quot;uri&quot;, &quot;&amp;gt;= 0.12.1&quot;&lt;/code&gt; (atau versi yang telah disebut sebelumnya)
pada &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Gemfile&lt;/code&gt; Anda.&lt;/p&gt;

&lt;h2 id=&quot;versi-terimbas&quot;&gt;Versi terimbas&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;gem&lt;/em&gt; uri 0.12.0&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;gem&lt;/em&gt; uri 0.11.0&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;gem&lt;/em&gt; uri 0.10.1&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;gem&lt;/em&gt; uri 0.10.0 atau sebelumnya&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;rujukan&quot;&gt;Rujukan&lt;/h2&gt;

&lt;p&gt;Terima kasih kepada &lt;a href=&quot;https://hackerone.com/dee-see?type=user&quot;&gt;Dominic Couture&lt;/a&gt;
yang telah menemukan isu ini.&lt;/p&gt;

&lt;h2 id=&quot;riwayat&quot;&gt;Riwayat&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Semula dipublikasikan pada 2023-03-28 01:00:00 (UTC)&lt;/li&gt;
  &lt;li&gt;Memperbarui versi terimbas pada 2023-03-28 02:00:00 (UTC)&lt;/li&gt;
  &lt;li&gt;Memperbarui URL penanda CVE pada 2023-03-28 04:00:00 (UTC)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ditulis oleh &lt;strong&gt;hsbt&lt;/strong&gt; tanggal 2023-03-28&lt;br /&gt;Diterjemahkan oleh meisyal&lt;/p&gt;</description>
      <pubDate>Tue, 28 Mar 2023 01:00:00 +0000</pubDate>
      <guid>https://www.ruby-lang.org/id/news/2023/03/28/redos-in-uri-cve-2023-28755/</guid>
      <link>https://www.ruby-lang.org/id/news/2023/03/28/redos-in-uri-cve-2023-28755/</link>
    </item>
    
  </channel>
</rss>
