Mercurial > pub > dyncall > bindings
diff ruby/rbdc/README.txt @ 17:739c40f35a6a
- update READMEs
author | cslag |
---|---|
date | Sat, 26 Mar 2016 22:32:59 +0100 |
parents | 6493c9ed4b33 |
children | 02a455de2b40 |
line wrap: on
line diff
--- a/ruby/rbdc/README.txt Sat Mar 26 22:31:42 2016 +0100 +++ b/ruby/rbdc/README.txt Sat Mar 26 22:32:59 2016 +0100 @@ -3,7 +3,7 @@ BUILD/INSTALLATION ------------------- +================== 1) The extension isn't built here, but its code along with dyncall's source is bundled in a .gem file to then be built and installed on the target platform. @@ -13,14 +13,16 @@ do ./dyncall or create a symlink ./dyncall, that points to it. 2) Then, build this gem with: - gem build rbdc.gemspec + + gem build rbdc.gemspec 3) On the target platform, install the gem with: - gem install ../../../rbdc-*.gem + + gem install rbdc-*.gem API ---- +=== l = Dyncall::ExtLib.new l.load(libpath) @@ -32,48 +34,36 @@ SIGNATURE FORMAT ----------------- +================ format: "xxxxx)y" - x is positional parameter-type charcode - - 'B' C++: bool <- Ruby: TrueClass, FalseClass, NilClass, Fixnum - 'c' C: char <- Ruby: Fixnum - 'C' C: unsigned char <- Ruby: Fixnum - 's' C: short <- Ruby: Fixnum - 'S' C: unsigned short <- Ruby: Fixnum - 'i' C: int <- Ruby: Fixnum - 'I' C: unsigned int <- Ruby: Fixnum - 'j' C: long <- Ruby: Fixnum - 'J' C: unsigned long <- Ruby: Fixnum - 'l' C: long long <- Ruby: Fixnum - 'L' C: unsigned long long <- Ruby: Fixnum - 'f' C: float <- Ruby: Float - 'd' C: double <- Ruby: Float - 'p' C: void* <- Ruby: String (check if there are other pointer-convertible ruby types @@@) - 'Z' C: void* <- Ruby: String + x is positional parameter-type charcode, y is result-type charcode - y is result-type charcode - - 'v' C: void -> Ruby: NilClass - 'B' C: bool -> Ruby: TrueClass, FalseClass - 'c' C: char -> Ruby: Fixnum - 'C' C: unsigned char -> Ruby: Fixnum - 's' C: short -> Ruby: Fixnum - 'S' C: unsigned short -> Ruby: Fixnum - 'i' C: int -> Ruby: Fixnum - 'I' C: unsigned int -> Ruby: Fixnum - 'j' C: long -> Ruby: Fixnum - 'J' C: unsigned long -> Ruby: Fixnum - 'l' C: long long -> Ruby: Fixnum - 'L' C: unsigned long long -> Ruby: Fixnum - 'f' C: float -> Ruby: Float - 'd' C: double -> Ruby: Float - 'p' C: void* -> unsupported at the moment @@@ - 'Z' C: void* -> Ruby: String + SIG | FROM RUBY | C/C++ | TO RUBY + ----+-----------------------------------------+--------------------+----------------------------------- + 'v' | | void | NilClass + 'B' | TrueClass, FalseClass, NilClass, Fixnum | bool | TrueClass, FalseClass + 'c' | Fixnum | char | Fixnum + 'C' | Fixnum | unsigned char | Fixnum + 's' | Fixnum | short | Fixnum + 'S' | Fixnum | unsigned short | Fixnum + 'i' | Fixnum | int | Fixnum + 'I' | Fixnum | unsigned int | Fixnum + 'j' | Fixnum | long | Fixnum + 'J' | Fixnum | unsigned long | Fixnum + 'l' | Fixnum | long long | Fixnum + 'L' | Fixnum | unsigned long long | Fixnum + 'f' | Float | float | Float + 'd' | Float | double | Float + 'p' | String (other ruby types? @@@) | void* | unsupported at the moment @@@ + 'Z' | String | void* | String --> Note that signature suffixes used to indicate calling --> conventions, are not supported yet! @@@ +TODO +==== +- support signature suffixes used to indicate calling conventions, are not supported yet! +- C pointer -> ruby... array? +- callback support +