1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/dl/Changes
ttate 7d711b817e Add ruby-dl
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2002-04-02 10:56:13 +00:00

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.