# \[Bug #1451\] dl in ruby-1.9 can't parse signatures correctly

**URL:** <https://www.ruby-forum.com/t/bug-1451-dl-in-ruby-1-9-cant-parse-signatures-correctly/167571>\
**Category:** Development\
**Created:** [May 9, 2009, 5:09pm UTC](https://www.ruby-forum.com/t/bug-1451-dl-in-ruby-1-9-cant-parse-signatures-correctly/167571 "2009-05-09T17:09:53Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Takashi\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/4af34b/32.png) [@Takashi\_T](https://www.ruby-forum.com/u/Takashi_T)\
**Post date:** [May 9, 2009, 5:09pm UTC](https://www.ruby-forum.com/t/bug-1451-dl-in-ruby-1-9-cant-parse-signatures-correctly/167571/1 "2009-05-09T17:09:53Z")

</div>

Bug #1451: dl in ruby-1.9 can’t parse signatures correctly.  
[http://redmine.ruby-lang.org/issues/show/1451](http://redmine.ruby-lang.org/issues/show/1451)

e$B5/I\<\<Te(B: Takashi T.  
e$B%9%F!\<%?%9e(B: Open, e$BM%@hEYe(B: Normal  
e$B%+%F%4%je(B: ext, Target version: 1.9.2  
ruby -v: ruby 1.9.2dev (2009-05-02 trunk 23326) [i686-linux]

1.9 e$B$Ne(B dl e$B$Ne(B cparser.rb  
e$B$,6uGr$,$"$k%7%0%M%A%c$r@5$7$/%Q!\<%9$G$-$^$;$s!#e(B

$ cat d7.rb  
require ‘dl/import’

module M  
extend DL::Importer  
dlload ‘libc.so.6’  
extern ‘void \* memmove(void \*, void \*, unsigned long  
)’  
end

$ ruby-1.9 -v d7.rb  
ruby 1.9.2dev (2009-05-02 trunk 23326) [i686-linux]  
/usr/local/pkg/ruby-1.9/lib/ruby/1.9.1/dl/cparser.rb:104:in  
`parse_ctype': unknown type: unsigned long (DL::DLError) from /usr/local/pkg/ruby-1.9/lib/ruby/1.9.1/dl/cparser.rb:53:in `block in parse\_signature’  
from /usr/local/pkg/ruby-1.9/lib/ruby/1.9.1/dl/cparser.rb:53:in  
`collect' from /usr/local/pkg/ruby-1.9/lib/ruby/1.9.1/dl/cparser.rb:53:in `parse\_signature’  
from /usr/local/pkg/ruby-1.9/lib/ruby/1.9.1/dl/import.rb:116:in  
`extern' from d7.rb:6:in `module:M’  
from d7.rb:3:in `’

e$B%Q%C%A$G$9!#e(B

# $ svn diff lib/dl/cparser.rb Index: lib/dl/cparser.rb

— lib/dl/cparser.rb (e$B%j%S%8%g%se(B 23328)  
+++ lib/dl/cparser.rb (e$B:n6H%3%T!\<e(B)  
@@ -41,7 +41,7 @@ module DL  
case signature  
when /^([\d\w@\*_\s]+)(([\d\w\*_\s,[]]\*))$/  
ret = $1

- 

```
   args = $2

```

- 

```
   args = $2.sub(/\A\s*/, '').sub(/\s*\z/, '')
   ret = ret.split(/\s+/)
   args = args.split(/\s*,\s*/)
   func = ret.pop

```

---

<div class="post-metadata">

**Author:** ![Takashi\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/4af34b/32.png) [@Takashi\_T](https://www.ruby-forum.com/u/Takashi_T)\
**Post date:** [May 10, 2009, 3:51am UTC](https://www.ruby-forum.com/t/bug-1451-dl-in-ruby-1-9-cant-parse-signatures-correctly/167571/2 "2009-05-10T03:51:09Z")

</div>

e$B%A%1%C%He(B #1451 e$B$,99?7$5$l$^$7$?!#e(B (by Nobuyoshi N.)

e$B%9%F!\<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B  
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B

## Applied in changeset r23382.

[http://redmine.ruby-lang.org/issues/show/1451](http://redmine.ruby-lang.org/issues/show/1451)
