diff options
Diffstat (limited to 'ext/dl/Changes')
-rw-r--r-- | ext/dl/Changes | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/ext/dl/Changes b/ext/dl/Changes new file mode 100644 index 0000000000..d02dd9ed42 --- /dev/null +++ b/ext/dl/Changes @@ -0,0 +1,166 @@ +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. |