From: Luis Lavena Date: 2008-02-01T07:34:59+09:00 Subject: Re: Warning when running sqlite3 with Ruby on Windows On Jan 31, 11:56 am, Eli Bendersky wrote: > > and with -v (Verbose mode): > > D:\Users\Luis\Desktop>ruby -v test-sqlite3.rb > > ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32] > > C:/Ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1-x86-mswin32/lib/ > > sqlite3_api.so: warning: global variable ` > > $swig_runtime_data_type_pointer2' not initialized > > > Conclusion: > > The warning you're getting is because: > > You used -v command line option to run your script or > > You tweaked $VERBOSE and set it to true > > Luis, > > Thank you - this actually explains the problem. However, I am not > running with -v, but rather with -w. > > This script: > > require 'sqlite3' > puts $VERBOSE > db = SQLite3::Database.new( "test.db" ) > > When run simply as "ruby test.rb" prints "false". When run as "ruby -w > test.rb" prints "true" and the aforementioned warning. > > So, the next question is - doesn't everyone run ruby with -w ? If the > answer is positive, can I get rid of that warning anyway? Enabling warnings is a good practice doing testing. In that way you avoid introduce code that could break (due deprecations between versions of the language) or because changes introduced can lead to bugs hard to track. In this case it seems the SWIG'ed SQLite3 code check or try to access a undefined global variable. You can google about that variable name and also dig into the sqlite3- ruby C extension code to find the root of the problem and provide a patch. I haven't seen a good use of -w or -v outside the context I described. Hope this shed some light :-) Regards, -- Luis Lavena