Ruby 2.0.0p0 IRB warning: "DL is deprecated, please use Fiddle"

RubyWindows

Ruby Problem Overview


I just uninstalled my older versions of Ruby, removed all of my gems (including Rails), and installed Ruby 2.0. In other words, a totally clean re-install. Upon starting IRB, I received this message:

DL is deprecated, please use Fiddle

Note: I'm on a Windows machine.

What does this message mean?

Ruby Solutions


Solution 1 - Ruby

The message you received is common when you have ruby 2.0.0p0 (2013-02-24) on top of Windows.

The message "DL is deprecated, please use Fiddle" is not an error; it's only a warning.

The source is the Deprecation notice for DL introduced some time ago in dl.rb ( see revisions/37910 ).

On Windows the lib/ruby/site_ruby/2.0.0/readline.rb file still requires dl.rb so the warning message comes out when you require 'irb' ( because irb requires 'readline' ) or when anything else wants to require 'readline'.

You can open readline.rb with your favorite text editor and look up the code ( near line 4369 ):

    if RUBY_VERSION < '1.9.1'
      require 'Win32API'
    else
      require 'dl'
      class Win32API
        DLL = {}

We can always hope for an improvement to work out this deprecation in future releases of Ruby.

EDIT: For those wanting to go deeper about Fiddle vs DL, let it be said that their purpose is to dynamically link external libraries with Ruby; you can read on the ruby-doc website about DL or Fiddle.

Solution 2 - Ruby

You may want to comment out the DL is deprecated, please use Fiddle warning at

C:\Ruby200\lib\ruby\2.0.0\dl.rb

since it’s annoying and you are not the irb/pry or some other gems code owner

Solution 3 - Ruby

I got this resolution at openshift.com.

Resolution:

> This error occurs only on Windows machine with Ruby 2.0.0 version. > Until we officially support Ruby 2.0 please downgrade to Ruby 1.9. > > On Windows, you can install Ruby 1.9.3 alongside 2.0. Change your > %PATH% to c:\ruby193\ or whatever directory you installed to prior > to installing the gem.

Solution 4 - Ruby

The message "DL is deprecated, please use Fiddle" is not an error; it's only a warning.
Solution:
You can ignore this in 3 simple steps.
Step 1. Goto C:\RailsInstaller\Ruby2.1.0\lib\ruby\2.1.0
Step 2. Then find dl.rb and open the file with any online editors like Aptana,sublime text etc
Step 3. Comment the line 8 with '#' ie # warn "DL is deprecated, please use Fiddle" .
That's it, Thank you.

Solution 5 - Ruby

I ran into this myself when I wanted to make a thor command under Windows.

To avoid having that message output everytime I ran my thor application I temporarily muted warnings while loading thor:

begin
  original_verbose = $VERBOSE
  $VERBOSE = nil
  require "thor"
ensure
  $VERBOSE = original_verbose
end

That saved me from having to edit third party source files.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionfbonettiView Question on Stackoverflow
Solution 1 - RubyFranco RondiniView Answer on Stackoverflow
Solution 2 - RubyErwin KaddyView Answer on Stackoverflow
Solution 3 - RubyGauravView Answer on Stackoverflow
Solution 4 - RubyArun AtluriView Answer on Stackoverflow
Solution 5 - RubythomthomView Answer on Stackoverflow