Ruby 2.0.0p0 Предупреждение IRB: "DL устарел, используйте Fiddle"

Я только что удалил свои старые версии Ruby, удалил все мои драгоценные камни (включая Rails) и установлен Ruby 2.0. Другими словами, полностью чистая переустановка. После запуска IRB я получил это сообщение:

DL is deprecated, please use Fiddle

Примечание. Я нахожусь на компьютере с Windows.

Что означает это сообщение?

Ответ 1

Сообщение, которое вы получили, является общим, если у вас ruby 2.0.0p0 (2013-02-24) поверх Windows.

Сообщение "DL is deprecated, please use Fiddle" не является ошибкой; это только предупреждение.

Источником является Уведомление об изъятии для DL, введенное некоторое время назад в dl.rb (см. revisions/37910).

В Windows файл lib/ruby/site_ruby/2.0.0/readline.rb по-прежнему требует dl.rb, поэтому предупреждающее сообщение появляется, когда вы require 'irb' (потому что irb требует 'readline') или когда что-либо еще хочет require 'readline'.

Вы можете открыть readline.rb своим любимым текстовым редактором и посмотреть код (рядом с линией 4369):

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

Мы всегда можем надеяться на улучшение разработки этой устаревшей версии в будущих выпусках Ruby.

EDIT: Для тех, кто хочет углубиться в Fiddle vs DL, можно сказать, что их целью является динамическое связывание внешних библиотек с Ruby; вы можете прочитать на веб-сайте ruby-doc DL или Fiddle.

Ответ 2

Вы можете запросить предупреждение DL is deprecated, please use Fiddle в

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

так как его раздражает, и вы не являетесь владельцем кода irb/pry или какого-либо другого владельца драгоценных камней

Ответ 3

Я получил эту резолюцию в openshift.com.

Разрешение:

Эта ошибка возникает только на Windows-машине с версией Ruby 2.0.0. Пока мы официально не поддержим Ruby 2.0, пожалуйста, понизите рейтинг до Ruby 1.9.

В Windows вы можете установить Ruby 1.9.3 вместе с 2.0. Измените % PATH% до c:\ruby193\ или любой другой каталог, который вы установили ранее для установки драгоценного камня.

Ответ 4

Сообщение "DL устарело, используйте Fiddle", это не ошибка; это только предупреждение.
Решение:
Вы можете игнорировать это в 3 простых шага.
Шаг 1. Перейти к C:\RailsInstaller\Ruby2.1.0\lib\ruby ​​\ 2.1.0
Шаг 2. Затем найдите dl.rb и откройте файл с помощью любых онлайн-редакторов, таких как Aptana, возвышенный текст и т.д.
Шаг 3. Прокомментируйте строку 8 с помощью "#", то есть # warn "DL устарел, используйте Fiddle".
Это, спасибо.

Ответ 5

Я столкнулся с этим сам, когда захотел сделать команду под Windows под Windows.

Чтобы избежать появления этого сообщения каждый раз, когда я запускал мое приложение-приложение, я временно отключил предупреждения при загрузке тора:

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

Это избавило меня от необходимости редактировать исходные файлы сторонних разработчиков.