Commit graph

71 commits

Author SHA1 Message Date
naruse
b2ea6df3b5 * ext/dl/lib/dl/struct.rb: clean a warning: assigned but unused
variable. patched by Kouhei Yanagita. [ruby-dev:42722]

* ext/dl/lib/dl/import.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-08 13:29:25 +00:00
tenderlove
ff10d93563 * ext/dl/lib/dl/import.rb (handler): add a more helpful error message
when calling import_symbol or import_function without calling
  dlload.  Thanks nobu! [ruby-core:30996]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-05 23:38:35 +00:00
tarui
db4a0d42dd * ext/dl/lib/dl/func.rb (call): don't overwrite original arguments
to defend from GC.
	* test/dl/test_func.rb (test_string): add test for above.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-25 19:43:15 +00:00
naruse
75033ea16f * ext/dl/lib/dl.rb: don't require when already loaded.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-12 15:28:47 +00:00
tenderlove
230ca5ffe5 * ext/dl/lib/dl/cparser.rb (parse_ctype): add backwards compatibility
by supporting "uint" types in the c parser. [ruby-core:29750]
* test/dl/test_cparser.rb: adding a test for "uint" changes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-06-02 16:02:48 +00:00
tenderlove
4bada8b864 * ext/fiddle/*: Adding fiddle library to wrap libffi
* test/fiddle/*: testing fiddle extension
* ext/dl/lib/dl.rb: Requiring fiddle if it is available
* ext/dl/lib/dl/callback.rb: using Fiddle if it is available
* ext/dl/lib/dl/func.rb: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-06 06:59:24 +00:00
naruse
e41936441b Surpress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-06 03:01:52 +00:00
wanabe
7e2fa5adf4 * ext/dl/lib/dl/pack.rb (DL#pack): allow LLP64.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-19 16:20:56 +00:00
naruse
59e4e93ef7 * ext/dl: revert dl with libffi because it can't run on mswin now.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-25 22:49:20 +00:00
tenderlove
8f8947a260 * ext/dl/method.c: Adding DL::Method as a superclass for DL::Function
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-16 02:05:46 +00:00
tenderlove
b386fe21ec Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org>
* ext/dl/function.c: DL::Function now uses libffi

        * ext/dl/cfunc.c (rb_dl_set_last_error): set to non static so errors
          can be exposed.

        * ext/dl/closure.c: DL::Closure will now be used in place of
          ext/dl/callback/*.

        * ext/dl/dl.c: legacy callbacks removed in favor of libffi

        * ext/dl/dl_converions.(c,h): used for converting ruby types to FFI
          types.

        * ext/dl/callback/*: replaced by libffi callbacks.

        * ext/dl/lib/dl/callback.rb: Converting internal callbacks to use
          DL::Closure

        * ext/dl/lib/dl/closure.rb: Ruby parts of the new DL::Closure object

        * ext/dl/lib/dl/import.rb: More conversion to use DL::Closure object

        * ext/dl/lib/dl/value.rb (ruby2ffi): adding private method for
          DL::CPtr to ffi value conversion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-03 01:23:48 +00:00
nobu
96e6cfb835 * ext/dl/lib/dl/cparser.rb (DL::CParser#parse_struct_signature):
splitting with regexp source string is obsolete.  a patch from
  Minwoo Lee at [ruby-core:23494].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-23 09:53:15 +00:00
nobu
28e7beb54c * ext/dl/lib/dl/callback.rb (DL#remove_callback_internal): ignore
unbound function.  [ruby-dev:38474]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-16 08:57:41 +00:00
nobu
ab142b7274 * ext/dl/lib/dl/func.rb (DL::Function#bound?): returns if already
bound to a block.

* ext/dl/lib/dl/value.rb (DL::ValueUtil#wrap_arg): block must be
  given if arg is not bound.  [ruby-dev:38404]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-10 02:36:13 +00:00
nobu
e102f89472 * ext/dl/lib/dl/cparser.rb (DL::CParser#parse_signature): strips
spaces.  based on a patch from Takashi Tamura in [ruby-dev:38398].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-10 01:40:04 +00:00
nobu
287a34ae0d * {ext,lib,test}/**/*.rb: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-06 03:56:38 +00:00
usa
dba06de110 * ext/dl/win32/lib/win32/resolv.rb: get rid of warning.
* ext/dl/lib/dl/func.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-03 07:52:42 +00:00
usa
95189045d0 * ext/dl/lib/dl/func.rb (DL::Function.name): delegate to @cfunc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-03 06:54:00 +00:00
nobu
91dd419efb * ext/dl/lib/dl/cparser.rb (DL::CParser::parse_signature): fixed
variable name.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-03 06:09:14 +00:00
nobu
daa2217d48 * ext/dl/lib/dl/pack.rb (DL::PackInfo): reduced redundant
initialization.

* ext/dl/lib/dl/stack.rb (DL::Stack): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-03 06:07:24 +00:00
nobu
0cceff94ca * ext/dl/lib/dl/value.rb (DL::ValueUtil#wrap_arg): NULL for nil.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-03 06:05:21 +00:00
ko1
d0ed5a9378 * ext/dl/test/test_base.rb: add libc search logic.
this patch is written by Takehiro Kubo.
  [ruby-core:20963] [Bug #932]
* ext/dl/dl.h: Add ",..." as the last argument.
  this patch is written by Takehiro Kubo.
  Bug #633 [ruby-core:19289]
* ext/dl/lib/dl/stack.rb: add add_padding() to calculate
  alignment.  this patch is written by Takehiro Kubo.
  Bug #633 [ruby-core:19289]
* ext/dl/test/test_func.rb: atof()'s return value is double.
  this patch is written by Takehiro Kubo.
  Bug #633 [ruby-core:19289]
* ext/dl/test/test_import.rb:
  - atof()'s return value is double.
  - The types of qsort's second and third argument are size_t.
  - fprintf()'s return value is int.
  this patch is written by Takehiro Kubo.
  Bug #633 [ruby-core:19289]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-29 14:54:24 +00:00
yugui
f6cc65ae48 * ext/dl/lib/dl/import.rb (DL::Importer#sizeof): follows
a feature change in 1.9.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-28 12:13:32 +00:00
yugui
28001c849d * ext/dl/lib/dl/import.rb (DL::Importer#extern): adds filename and
line number to module_eval'ing for readability of backtrace.
  (DL::Importer#bind): ditto.

* ext/dl/lib/dl/struct.rb (DL::CStructBuilder#create): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-28 12:13:24 +00:00
ko1
a3e1b1ce7e * Merge YARV
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-12-31 15:02:22 +00:00
ttate
e587cf2730 fixed the alignment problems discussed in [ruby-dev:28667].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-06-30 18:05:40 +00:00
ttate
6ddd56a130 should compare SIZEOF_VOIDP with SIZEOF_LONG_LONG.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9518 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-11-08 13:50:38 +00:00
ttate
c2e1ef22b9 if dlload fail to load a library, it should raise an error.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-08 14:38:02 +00:00
ttate
597a64146f replaced the local variable 'entity' with an instance variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-09 14:38:44 +00:00
ttate
4187afceca use DL::CStructBuilder instead of CStructBuilder.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-08 18:56:23 +00:00
ttate
d7ff980375 CUnionEntity should inherit CStructEntity.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-10 23:05:52 +00:00
ttate
215cd35df9 minor bugfix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8122 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-08 10:50:23 +00:00
ttate
3977dbc576 Use define_method instead of module_eval.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-07 23:08:26 +00:00
ttate
7bcc135504 Improved DL::Handle#sym.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-07 09:45:02 +00:00
ttate
93711e5bd3 added DL::Importer.sizeof().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-06 06:54:12 +00:00
ttate
41cd3d868d added missing files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-04 14:01:22 +00:00
ttate
bda37095ca added new files.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-04 13:35:37 +00:00
ttate
4ae9132605 remove all files to replace ruby-dl with ruby-dl2.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7882 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-04 13:29:49 +00:00
ttate
e849cce8a0 bugfix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7873 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-03 14:38:31 +00:00
ttate
ba2fce1507 devided DL::Types#encode_type into three methods.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-14 12:42:42 +00:00
ttate
f7884c6beb bugfix for [ruby-talk:121309].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-25 08:39:31 +00:00
ttate
f7a5ee56d7 Use 'P' instead of 'p' in types.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-25 08:15:29 +00:00
ttate
733a3adc79 improved encode_type() in types.rb for [ruby-talk:121175].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-24 16:38:38 +00:00
ttate
f427cf9352 should use 'c' for 'unsigned char ref'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-21 12:47:48 +00:00
ttate
2ce5bb2594 added 'const char *' to use the type specifier 'S' instead of 'char *'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-09-16 15:22:20 +00:00
ttate
1ebcad550f bugfix for Importable.callback().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-20 18:22:03 +00:00
ttate
c863d62b6f Merged Nakada-san's patch [ruby-core:02916].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-05-23 08:11:36 +00:00
ttate
c103eb6793 Bugfix for DL::Types::encode_type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-11-08 14:38:15 +00:00
matz
8ef5da3be1 consistent parentheses in assignment RHS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4790 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-10-16 17:47:19 +00:00
eban
4a464c1fa2 * typo fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-01-20 10:22:04 +00:00