mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
7d711b817e
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
166 lines
4.3 KiB
Text
166 lines
4.3 KiB
Text
1.0.2 -> 1.1.0
|
|
---------------
|
|
* Use inline assembler for gcc on ix86 as a default.
|
|
* Add DL::Importable module (defined in "dl/import.rb").
|
|
|
|
1.0.1 -> 1.0.2
|
|
--------------
|
|
* Fix an installation problem, thanks to Nakada.
|
|
* Handle#to_i, to_ptr is added.
|
|
* lib/dl/win32.rb is added for Win32API compatibility.
|
|
|
|
1.0 -> 1.0.1
|
|
-------------
|
|
* Fix PtrData#to_s.
|
|
* Add PtrData#to_str(size).
|
|
|
|
0.9 -> 1.0 (stable)
|
|
-------------------
|
|
* PtrData object keeps size data if possible.
|
|
* PtrData#size is added.
|
|
* LoadLibary(), FreeLibrary() and GetProcAddress() are used on
|
|
windows instead of dlopen(),dlclose() and dlsym().
|
|
|
|
0.8.1 -> 0.9
|
|
------------
|
|
* You can use inline assembler to constracting the function calls by
|
|
building the library using --with-asm options for extconf.rb.
|
|
But now this can work with GNU assembler on i386 machines. If you try
|
|
this mechanism, you can get rid of the limit of number of parameters.
|
|
|
|
0.8 -> 0.8.1
|
|
-------------
|
|
* rb_dlsym_call() calls xmalloc() or dlmalloc() instread of
|
|
alloca() because of portability.
|
|
|
|
* 'h2rb' get to parse the enumeration type.
|
|
|
|
0.7.1 -> 0.8
|
|
-------------
|
|
* If <type> of Symbol.new(addr, name = nil, type = nil) is nil,
|
|
it returns a DataPtr object.
|
|
|
|
* PtrData#[] returns the memory image, and PtrData#[]= is used
|
|
to copy the memory image to specified area.
|
|
|
|
* Handle#sym(symbol_name) returns a PtrData object, and
|
|
Handle#sym(symbol_name, type_spec) returns a Symbol object.
|
|
|
|
* We can use the number following a type specifier to represent the
|
|
length of an array. For example, if you'd like to represent the
|
|
following structure, we use 'C1024I' when using PtrData#struct! or
|
|
PtrData#union!.
|
|
|
|
struct {
|
|
char name[1024];
|
|
int age;
|
|
}
|
|
|
|
0.6 -> 0.7
|
|
-----------
|
|
* type `ANY_FUNC' is removed, it is because the method for
|
|
calling the function obtained by dlsym() was changed.
|
|
|
|
* `char', `short' and `float' types are supported, if you'd
|
|
like to use those type exactly and run extconf.rb with the
|
|
option `--with-type-{char,short,float}'.
|
|
|
|
* `DL.sizeof(type)' returns the size of the <type> with the
|
|
alignment. so `DL.sizeof("C") + DL.sizeof("L")' is not equal
|
|
to `DL.sizeof("CL")'. it is assumed that the latter returns
|
|
the enough size for the following structure:
|
|
struct foo { char x; long y; }
|
|
but it may not equal to `sizeof(struct foo)' of C.
|
|
|
|
* new methods:
|
|
- PtrData#define_data_type
|
|
- PtrData#struct!
|
|
- PtrData#union!
|
|
- PtrData#data_type
|
|
- PtrData#[]
|
|
- PtrData#[]=
|
|
- Symbol.new
|
|
|
|
0.5 -> 0.6
|
|
-----------
|
|
* DL.set_callback is changed.
|
|
- set_callback(type,num,proc) [old style]
|
|
- set_callback(type,num){...} [new style]
|
|
|
|
* the handle object don't call dlclose() at the time of GC.
|
|
if you need to call dlclose(), use Handle#enable_close.
|
|
|
|
* new methods:
|
|
- PtrData#{+,-}
|
|
- PtrData#{+@,-@} (= PtrData#{ptr,ref})
|
|
- DL.malloc
|
|
- DL.strdup
|
|
- MemorySpace.each
|
|
|
|
* some memory leaks are fixed.
|
|
|
|
0.4 -> 0.5
|
|
----------
|
|
* new methods:
|
|
- DL.dlopen (= DL::Handle.new)
|
|
- PtrData#ref
|
|
- PtrData#==
|
|
- PtrData#eql?
|
|
- String#to_ptr
|
|
- Handle#enable_close
|
|
- Handle#disable_close
|
|
|
|
* PtrData#ptr returns the pointed value (*ptr).
|
|
|
|
* PtrData#ref returns the reference (&ptr).
|
|
`ptr.ref.ptr == ptr' must be true.
|
|
|
|
(experiment)
|
|
* the callback function is supported.
|
|
|
|
* new methods:
|
|
- DL.set_callback
|
|
- DL.get_callback
|
|
|
|
|
|
0.3 -> 0.4
|
|
----------
|
|
* Symbol#call supports the mechanism for converting any object
|
|
to PtrData object automatically using 'to_ptr' method, if the
|
|
argument type is 'P' or 'p'.
|
|
|
|
* new methods are added.
|
|
- Array#to_ptr
|
|
- IO#to_ptr
|
|
- Symbol#to_ptr
|
|
- Symbol#[]
|
|
|
|
* new constant is added.
|
|
- DL::FREE is a symbol object for representing the function 'free'.
|
|
|
|
* the specification of PtrData#free was changed.
|
|
|
|
* new internal functions are added.
|
|
- rb_dlptr2cptr()
|
|
- rb_dlsym2csym()
|
|
- rb_dlsym_new()
|
|
|
|
* 'dl.h' is new file.
|
|
|
|
* 'extconf.rb' and 'depend' ware modified so that we can build
|
|
the library in a directory except 'srcdir' (by N. Nakada).
|
|
|
|
* (experimental) 'h2rb' is a new script which converts C header
|
|
files into ruby scripts.
|
|
|
|
0.2 -> 0.3
|
|
----------
|
|
* many useful functions ware added (by Akinori Musha).
|
|
|
|
* the type of 'long' was supported (by Akinori Musha).
|
|
|
|
* some methods of the PtrData ware added for handling pointer data.
|
|
|
|
* bug fix for mutable int and long.
|
|
|
|
* the type of array was supported.
|