web-dev-qa-db-fra.com

Ruby 2.0.0p0 Avertissement: "DL est obsolète, veuillez utiliser Fiddle"

Je viens de désinstaller mes anciennes versions de Ruby, de supprimer toutes mes gemmes (y compris Rails) et d'installer Ruby 2.0. En d'autres termes, une réinstallation totalement propre. Au démarrage de l'IRB, j'ai reçu ce message:

 DL est obsolète, veuillez utiliser Fiddle 

Remarque: je suis sur une machine Windows.

Que signifie ce message?

196
fbonetti

Le message que vous avez reçu est commun lorsque vous avez Ruby 2.0.0p0 (2013-02-24) au-dessus de Windows .

Le message "DL is deprecated, please use Fiddle" n'est pas une erreur. c'est seulement un avertissement .

La source est avis de désapprobation de DL introduit il y a quelque temps dans dl.rb (voir révisions/3791 ).

Sous Windows, le fichier lib/Ruby/site_Ruby/2.0.0/readline.rb nécessite toujours dl.rb, de sorte que le message d’avertissement s’affiche lorsque vous require 'irb' (car irb nécessite 'readline') ou lorsque quelque chose d'autre veut require 'readline'.

Vous pouvez ouvrir readline.rb avec votre éditeur de texte préféré et rechercher le code (près de la ligne 4369):

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

Nous pouvons toujours espérer une amélioration pour résoudre cet inconvénient dans les prochaines versions de Ruby .

EDIT: Pour ceux qui veulent aller plus loin sur Fiddle vs DL , disons que leur but est de relier dynamiquement des bibliothèques externes avec Ruby; vous pouvez lire sur le site web Ruby-doc à propos de DL ou Fiddle .

208
Franco Rondini

Vous voudrez peut-être commenter l’avertissement DL is deprecated, please use Fiddle à

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

car c’est ennuyeux et que vous n’êtes pas le propriétaire irb/pry ou un autre code de gemmes

74
Erwin Kaddy

J'ai eu cette résolution à openshift.com .

Résolution:

Cette erreur se produit uniquement sur les ordinateurs Windows dotés de la version Ruby 2.0.0. Jusqu'à ce que nous supportions officiellement Ruby 2.0, veuillez rétrograder à Ruby 1.9.

Sous Windows, vous pouvez installer Ruby 1.9.3 aux côtés de 2.0. Changez votre% PATH% en c:\Ruby193\ ou n’importe quel répertoire que vous avez installé avant d’installer la gem.

3
Gaurav

Le message "DL est obsolète, veuillez utiliser Fiddle" n'est pas une erreur; ce n'est qu'un avertissement.
Solution:
Vous pouvez l'ignorer en 3 étapes simples.
Étape 1. Allez à C:\RailsInstaller\Ruby2.1.0\lib\Ruby\2.1.0
Étape 2. Recherchez ensuite dl.rb et ouvrez le fichier avec tous les éditeurs en ligne comme Aptana, sublime text, etc.
Étape 3. Commentez la ligne 8 avec '#', c.-à-d. # Avertissez "DL est obsolète, veuillez utiliser Fiddle".
C'est tout, merci.

3
Arun Atluri

Je me suis heurté à cela quand je voulais faire une commande thor sous Windows.

Pour éviter que ce message ne soit émis à chaque fois que j'exécutais mon application thor, j'ai temporairement désactivé les avertissements lors du chargement de thor:

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

Cela m'a évité d'avoir à modifier des fichiers sources tiers.

2
thomthom