[MacRuby-devel] [MacRuby] #303: Method :open from 'open-uri' isn't working yet (multibyte problem) (was: Method :open from 'open-uri' gives 'stack level too deep')

MacRuby ruby-noreply at macosforge.org
Fri Aug 7 10:32:11 PDT 2009


#303: Method :open from 'open-uri' isn't working yet (multibyte problem)
----------------------------+-----------------------------------------------
 Reporter:  wijet@…         |       Owner:  lsansonetti@…        
     Type:  defect          |      Status:  new                  
 Priority:  major           |   Milestone:  MacRuby 0.5          
Component:  MacRuby         |    Keywords:  open-uri stdlib      
----------------------------+-----------------------------------------------
Changes (by mattaimonetti@…):

  * milestone:  MacRuby 0.4 => MacRuby 0.5


Old description:

> There seems to be a problem with method 'open' in open-uri lib.
> Following command:
> {{{
> macruby -r 'open-uri' -e 'open "http://ruby-lang.org"'
> }}}
>
> produces
>
> {{{
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
> `respond_to?': stack level too deep (SystemStackError)
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
> `respond_to?'
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
> `respond_to?'
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
> `respond_to?'
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
> `respond_to?'
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
> `respond_to?'
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
> `respond_to?'
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
> `respond_to?'
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
> `respond_to?'
>          ... 2922 levels...
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1
> /open-uri.rb:146:in `open_uri'
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1
> /open-uri.rb:669:in `open'
>         from
> /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1
> /open-uri.rb:33:in `open'
>         from -e:1:in `<main>'
>
> }}}

New description:

 MacRuby 0.5

 {{{
 $ macruby -r 'open-uri' -e 'open "http://ruby-lang.org"'
 too short escaped multibyte character: /(?:;(?-mix:[\r\n\t
 ]+)?(?-mix:[^\x00- ()<>@,;:\\"/\[\]?={}\x7f]+)(?-mix:[\r\n\t
 ]+)?=(?-mix:[\r\n\t ]+)?(?:(?-mix:[^\x00-
 ()<>@,;:\\"/\[\]?={}\x7f]+)|(?-mix:"(?:[\r\n\t
 !#-\[\]-~\x80-\xff]|\\[\x00-\x7f])*"))(?-mix:[\r\n\t
 ]+)?)*/d{2,}|-)-\d{2}-\d{2}|
               ([-+]?\d{2,})?-\d{3}|
               (\d{2}|\d{4})?-w\d{2}-\d|
               -w-\d)
         (t
         \d{2}:\d{2}(:\d{2}([,.]\d+)?)?
         (z|[-+]\d{2}(:?\d{2})?)?)?\s*\z (RegexpError)

 }}}


 MacRuby 0.4
 There seems to be a problem with method 'open' in open-uri lib.
 Following command:
 {{{
 macruby -r 'open-uri' -e 'open "http://ruby-lang.org"'
 }}}

 produces

 {{{
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
 `respond_to?': stack level too deep (SystemStackError)
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
 `respond_to?'
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
 `respond_to?'
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
 `respond_to?'
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
 `respond_to?'
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
 `respond_to?'
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
 `respond_to?'
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
 `respond_to?'
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/delegate.rb:150:in
 `respond_to?'
          ... 2922 levels...
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1
 /open-uri.rb:146:in `open_uri'
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1
 /open-uri.rb:669:in `open'
         from
 /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1
 /open-uri.rb:33:in `open'
         from -e:1:in `<main>'

 }}}

--

Comment:

 We are currently working on the std lib for MacRuby 0.5 and are getting
 pretty close to get open uri working (even though nobody worked on it
 really).


 {{{
 $ macruby -r 'open-uri' -e 'open "http://ruby-lang.org"'
 too short escaped multibyte character: /(?:;(?-mix:[\r\n\t
 ]+)?(?-mix:[^\x00- ()<>@,;:\\"/\[\]?={}\x7f]+)(?-mix:[\r\n\t
 ]+)?=(?-mix:[\r\n\t ]+)?(?:(?-mix:[^\x00-
 ()<>@,;:\\"/\[\]?={}\x7f]+)|(?-mix:"(?:[\r\n\t
 !#-\[\]-~\x80-\xff]|\\[\x00-\x7f])*"))(?-mix:[\r\n\t
 ]+)?)*/d{2,}|-)-\d{2}-\d{2}|
               ([-+]?\d{2,})?-\d{3}|
               (\d{2}|\d{4})?-w\d{2}-\d|
               -w-\d)
         (t
         \d{2}:\d{2}(:\d{2}([,.]\d+)?)?
         (z|[-+]\d{2}(:?\d{2})?)?)?\s*\z (RegexpError)

 }}}

 In the mean time, you might want to use a Cocoa method like NSURLRequest
 etc.. or check my http wrapper: http://github.com/mattetti/macruby-
 httpwrapper/tree/master

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/303#comment:1>
MacRuby <http://macruby.org/>



More information about the MacRuby-devel mailing list