Ruby 2.0. 0p0 IRB advertencia: "DL está obsoleto, por favor use Fiddle"


Acabo de desinstalar mis versiones anteriores de Ruby, eliminé todas mis gemas (incluyendo Rails), y Ruby 2.0 instalado. En otras palabras, una reinstalación totalmente limpia. Al comenzar IRB, recibí este mensaje:

DL is deprecated, please use Fiddle

Nota: Estoy en una máquina Windows.

¿Qué significa este mensaje?

 196
Author: jwfearn, 2013-03-23

5 answers

El mensaje que recibiste es común cuando tienes ruby 2.0.0p0 (2013-02-24) en la parte superior de Ventanas .

El mensaje "DL is deprecated, please use Fiddle" no es un error, es solo una advertencia.

La fuente es el aviso de obsolescencia para DL introducido hace algún tiempo en dl.rb ( véase revisions/37910 ).

En Windows el archivo lib/ruby/site_ruby/2.0.0/readline.rb todavía requiere dl.rb por lo que el mensaje de advertencia sale cuando require 'irb' ( porque irb requiere 'readline') o cuando algo else quiere require 'readline'.

Puede abrir readline.rb con su editor de texto favorito y buscar el código (cerca de la línea 4369):

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

Siempre podemos esperar una mejora para resolver esta obsolescencia en futuras versiones de Ruby.

EDITAR: Para aquellos que quieran profundizar en Fiddle vs DL , digamos que su propósito es vincular dinámicamente bibliotecas externas con Ruby; puede leer en el sitio web de ruby-doc acerca de DL o Fiddle .

 208
Author: Franco Rondini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-31 00:22:18

Es posible que desee comentar la advertencia DL is deprecated, please use Fiddle en

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

Ya que es molesto y usted no es el irb/pry o algún otro propietario de código de gemas

 74
Author: Erwin Kaddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-28 01:23:14

Tengo esta resolución en openshift.com .

Resolución:

Este error solo ocurre en máquinas Windows con la versión Ruby 2.0.0. Hasta que oficialmente soportemos Ruby 2.0, por favor baje a Ruby 1.9.

En Windows, puede instalar Ruby 1.9.3 junto con 2.0. Cambiar su % PATH% to c:\ruby193\ o cualquier directorio en el que haya instalado anteriormente para instalar la gema.

 3
Author: Gaurav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-11 18:25:52

El mensaje "DL está obsoleto, por favor use Fiddle" no es un error; es solo una advertencia.
Solución:
Puede ignorar esto en 3 sencillos pasos.
Paso 1. Goto C:\RailsInstaller\Ruby2.1.0\lib\ruby\2.1.0
Paso 2. Entonces encuentra a Dl.rb y abrir el archivo con cualquier editor en línea como Aptana,sublime text etc
Paso 3. Comente la línea 8 con ' # 'ie # warn" DL is deprecated, please use Fiddle".
Eso es, gracias.

 3
Author: Arun Atluri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-07 02:12:46

Me encontré con esto yo mismo cuando quería hacer un comando thor bajo Windows.

Para evitar tener esa salida de mensaje cada vez que ejecutaba mi aplicación thor silencié temporalmente las advertencias mientras cargaba thor:

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

Eso me salvó de tener que editar archivos fuente de terceros.

 2
Author: thomthom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-19 14:08:29