File: Changelog.md

package info (click to toggle)
ruby-gir-ffi 0.14.1-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,824 kB
  • sloc: ruby: 20,895; makefile: 90; sh: 1
file content (600 lines) | stat: -rw-r--r-- 20,182 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
# Changelog

## 0.14.1 / 2018-09-27

* Add enum values as constants in the generated module.

## 0.14.0 / 2018-09-25

* Do not generate field accessors for Object types. Object data should normally
  not be accessed directly.

## 0.13.1 / 2018-09-24

* Silence some warnings.
* Allow overrides to be applied using `Module#prepend`, as an alternative to
  alias chaining.
* Make `ZeroTerminated` array work with enum elements.
* Various refactorings.
* Improve consistency of conversion between symbols and integers for enum
  types.

## 0.13.0 / 2018-09-08

* Drop support for Ruby 2.1
* Support GLib 2.58
* Add `setup_method!` and `setup_instance_method!`, that raise an error when
  the given method is not found.

## 0.12.1 / 2018-05-20

* Restore support for Ruby 2.1 and 2.2

## 0.12.0 / 2018-03-24

* Drop support for GLib::IConv, which is no longer introspectable in glib 2.56.
* Drop support for Ruby 2.1 and 2.2
* Add support for Ruby 2.5

## 0.11.4 / 2017-09-19

* Support glib 2.54 and gobject-introspection 1.54

## 0.11.3 / 2017-05-05

* Allow conversion to native Boolean from any Ruby value

## 0.11.2 / 2017-04-20

* Allow vfunc implementation using a regular method

## 0.11.1 / 2017-01-07

* Fix build on JRuby
* Allow clearing properties that take a GObject value
* Handle GLists requiring an Interface type

## 0.11.0 / 2016-10-16

* Internal test and code improvements. Some internal APIs have been removed or
  changed.
* Make `Strv#each` thread-safe.
* Drop support for CRuby 2.0.
* Move `::type_init` and base `Strv` implementation into `GObjectIntrospection`, making
  it stand-alone.
* Move `GLib::Boolean` to `GirFFI::Boolean`.
* Guard against instantiating abstract classes using the default constructor.
* Handle user-defined properties containing dashes
* Handle user-defined properties of a large number of types

## 0.10.2 / 2016-04-29

* Update `ffi-bit_masks` dependency and remove monkey-patch
* Support gobject-introspection version 1.48

## 0.10.1 / 2016-03-28

* Restore JRuby compatibility.
  - Introduce #owned to flag unions and structs for release at garbage collection time.
    In JRuby's implementation, FFI::Pointer does not implement #autorelease=
    and #autorelease?, so this different technique is used to free pointers
    allocated by GLib. It is in fact doubtful that setting autorelease had any
    actual effect even on CRuby.
  - Immediately free string pointers whose ownership is transfered. Again, the
    #autorelease technique doesn't work on JRuby.
  - Fix handling of callee-allocated out parameters in vfuncs. The put_pointer
    method was wrongly called, and JRuby is more picky about what types that
    method expects, exposing the bug.

## 0.10.0 / 2016-03-23

* Ensure ownership of created RubyClosure objects

## 0.10.0.pre1 / 2016-03-22

* Rework generated method code to use less indirection.
* Remove unused classes and methods
* Clearly distinguish boxed types from other structs
* Take ownership transfer into account in generated methods
* Properly free unions, structs and boxed types owned by GirFFI
* Block access to fields that have disguised types

## 0.9.5 / 2016-03-05

* Abort if modules were defined earlier, e.g., through the gems from the ruby-gnome family.
* Extend integration testing with GObjectIntrospection's test libraries.
* Find signals on user-defined types.
* Allow getting and setting of properties with a callback value.
* Handle pointer-like signal arguments such as GList.
* Handle static methods on interface modules.
* Free most self-allocated boxed types using `GObject.boxed_free`.
* Correctly assign length arguments for zero-terminated arguments

## 0.9.4 / 2016-02-22

* Pass nil user data as null pointer, and store a missing callback as nil. This
  avoids passing a null callback and a non-null user data value, which causes
  problems with `vte_terminal_spawn_sync()` and perhaps other functions.

## 0.9.3 / 2016-02-20

* Make allow-none arguments optional in Ruby
* Add Clutter example
* Clean up mainloop example
* Use bit masks for relevant functions in GObjectIntrospection

## 0.9.2 / 2016-02-05

* Do not create a property accessor when a corresponding getter method exists

## 0.9.1 / 2016-02-04

* Add field accessors for Object types for fields that don't have corresponding
  properties or getter methods
* Improve error handling for signals and properties that are not found
* Handle signals without GIR data
* Add interrupt handler to break out of main loops

## 0.9.0 / 2016-01-21

* Propagate exceptions from callbacks during event loops
* Make default object constructor take a hash of properties
* Fix implementation of `ObjectBase.object_class`
* Make object class struct types inherit from their parent structs. This makes
  parent methods and fields available.
* Use `ObjectBase.object_class` instead of old `Object#type_class` to find
  properties
* Remove `Object#type_class`
* Automatically unpack GValue return values
* Use a BitMask to handle flag values
* Handle callback arguments as Ruby block arguments
* Use user data and destroy notify arguments to automate callback cleanup. This
  means you can no longer supply your own user data and notifiers.
* Support CRuby 2.3 and Rubinius 3.x
* Drop support for JRuby 1.7 and Rubinius 2.x.

## 0.8.6 / 2015-12-09

* Change handling of initializers in subclasses
  * Subclasses with their own GType revert to the default GObject constructor
  * Subclasses cannot use their parent classes' non-default contructors
* Find signals in ancestor classes of unintrospectable types

## 0.8.5 / 2015-12-04

* Improve GObject::Value
  * Make `#wrap_ruby_value` work for object classes
  * Use non-deprecated methods for getting and setting char values
  * Make `set_value` and `get_value` work for interface types

## 0.8.4 / 2015-12-03

* Handle classes with lower-case names
* Make `ObjectBase` a `DataConverter` so FFI handles it natively
* Use more of gobject-introspection's test libraries for testing
* Simplify constructor overrides: Custom initializers will no longer be
  overwritten when setting up the corresponding constructor.
* Override `GObject::Object.new` to not require a GType argument

## 0.8.3 / 2015-11-13

* Fix handling of signal handler return values
* Do not create setters for properties that cannot be set

## 0.8.2 / 2015-10-10

* Use inherited constructor for boxed types
* Make `InOutPointer` work correctly for boxed types
  * Make `.for` work with boxed types
  * Make `#set_value` work with boxed types
* Make GObject::Value support nil type:
  * Make `.wrap_ruby_value(nil)` work
  * Make `#set_value` and `#get_value` work when the type is `TYPE_INVALID`
  * Make `.for_gtype` work with `TYPE_INVALID` and `TYPE_NONE`
  * Make `.from(nil)` return a `GObject::Value` instead of nil
  * Make `#set_ruby_value` private
* Make `GObject::Object.signal_emit` work with gobject-introspection 1.46
* Replace or remove all custom `.new` methods
* Make `setup_method` and `setup_instance_method` handle symbol arguments

## 0.8.1 / 2015-10-04

* Handle struct array fields with related length fields
* Update test library build process

## 0.8.0 / 2015-09-18

* Drop official support for CRuby 1.9.3
* Officially support JRuby 9.0.0.0
* Change handling of initializers in custom subclasses

## 0.7.10 / 2015-09-16

* Allow `ffi-gobject` and `ffi-glib` to be required directly
* Improve documentation
* Remove arbitrary refcount check from finalizer (by John Cupitt)

## 0.7.9 / 2015-05-05

* Unset GValues in finalizer
* Dereference GObjects in finalizer
* Increase refcount for ingoing :object arguments of functions with full
  ownership transfer
* Increase refcount for receiver arguments with full ownership transfer
* Increase refcount for ingoing :object arguments of vfuncs with no ownership
  transfer
* Increase refcount for :object return values of vfuncs with full transfer
* Increase refcount for outgoing :object arguments of vfuncs with full ownership
  transfer
* Support Ruby 2.2
* Rename several methods. The old names are deprecated and will be removed in 0.8.0.

## 0.7.8 / 2014-12-09

* Support constants with a falsy value
* Support type aliases that resolve to a type that is not introspectable
* Support callback arguments with direction :inout
* Provide `GObject.signal_connect_after` and `GObject::Object.signal_connect_after`
* Handle setting GValues (and hence, properties) that have enum values
* Various refactorings & coding style cleanups

## 0.7.7 / 2014-10-21

* Handle introspecting boolean constants
* Provide `config.h` for versions of the test libs that need it
* Include gemspec in the gem
* Avoid needless casting from string to symbol by making `#setup_and_call` take a
  string
* Avoid argument list unpacking by making `#setup_and_call` take an array of
  arguments rather than a variable number of arguments
* Remove old example files
* Let rubygems know about required Ruby version
* Various clean-ups

## 0.7.6 / 2014-08-22

* Work around `respond_to?` behavior in JRuby 1.6.13
* Deprecate `setup_class` in favor of `load_class`
* Support GValue containing GArray
* Provide constant `TYPE_BYTE_ARRAY`
* Don't recurse looking for signals and properties
* Clean up generated code:
  * Avoid use of an ignored dummy argument
  * Clean up trailing whitespace
* Drop support for Ruby 1.9.2
* Allow data argument for `GObject::Object#signal_connect`
* Let Ruby threads run during GLib's main loop
* Make all dependencies versioned
* Various refactoring & code cleanup

## 0.7.5 / 2014-06-22

* Use closures as signal handlers, rather than callbacks
* Obtain reference to GVariant on creation
* Make struct arguments work in JRuby
* Various refactoring & code cleanup

## 0.7.4 / 2014-05-03

* Correctly handle closure data arguments originating from C
* Handle callee-allocated simple types for callbacks and functions
* Handle callback out parameters that are zero-terminated arrays
* Handle virtual functions with GError arguments
* Support the GBytes type
* Handle virtual functions returning GObjects
* Avoid overwriting methods with getters for properties with dashes in the name

## 0.7.3 / 2014-03-23

* Restore proper handling of enums in callback arguments
* Simplify Rake configuration
* Various small fixes
* Remove remaining Ruby 1.8 version checks

## 0.7.2 / 2014-01-18

* Officially drop Ruby 1.8 compatibility.
* Store GType of generated types in a constant, removing the need to generate a
  separate `get_gtype` method for each type.

## 0.7.1 / 2014-01-17

* Handle method setup for methods with unsafe names (i.e., `g_iconv()`)
* Add override for GLib::IConv.open

## 0.7.0 / 2014-01-11

* Type handling:
  * Handle c arrays with separate length argument for signals
  * Handle GHashTable values of type `:gint8` and `:guint32`
  * Handle signals with int64, Strv, uint64 arguments
  * Handle arrays of integers cast as pointers
  * Handle fields of callback type
  * Handle nested GHashTable
* Argument handling:
  * Refactor argument builder system
  * Improve handling of user data arguments
  * Handle signal and callback arguments with direction :out
  * Handle aliases of container types by making the element type optional
  * Handle signal and callback return values that need conversion
* User defined types:
  * Pass explicit receiver to initialization block for UserDefinedTypeInfo
  * Allow user defined types that are anonymous Ruby classes
  * Register defined properties in a subclass
  * Support setting virtual function implementations in a subclass
  * Support adding an interface to a subclass
  * Support implementing an interface's virtual functions in a subclass
* Use FFI's DataConvertor system to handle enums and callbacks
* Stop using deprecated GValueArray to construct argument array for `signal_emit`
* Make `ITypeInfo#g_type` return correct value for c arrays
* Make `get_property` and `set_property` less smart, moving conversion into the
  property accessor definitions
* Make `GObject::Value#get_value` handle enums and flags
* Clean up deprecated methods

## 0.6.7 / 2013-09-28

* Uniform handling of callback, signal and method arguments
* Automatically convert array elements to GValue
* Support inline array fields
* Support struct fields
* Improved field setters and getters
* Support many more types of properties
* Support skipped arguments and return values
* Fix refcount for the result of IBaseInfo#container
* Check bounds in GLib::PtrArray#index and GLib::Array#index
* Deprecate several methods
* Lots of refactoring

## 0.6.6 / 2013-08-05

* Handle GArrays of booleans and structs
* Improve handling of gbooleans

## 0.6.5 / 2013-08-03

* Handle inline arrays of structs
* Implement equality operator for container types
* Fix element size calculation for GArray

## 0.6.4 / 2013-06-30

* Represent enum types by modules wrapping `FFI::Enum`
* Support functions on enums
* Handle zero-terminated arrays of types other than int32
* Add override for `GLib::Variant#get_string`
* Handle non-throwing arguments and return values of type GError
* Handle arguments and return values of type GPtrArray
* Handle caller-allocated arguments of type GArray
* Deprecate `GObject::Value#ruby_value`, replacing it with `#get_value`

## 0.6.3 / 2013-06-15

* Make use of enums as element type for GHashTable and other containers
  work

## 0.6.2 / 2013-06-14

* Handle introspectable types with introspectable parent types

## 0.6.1 / 2013-06-09

* Handle SizedArray containing enums

## 0.6.0 / 2013-06-07

* Support Rubinius
* Lots of refactoring

## 0.5.2 / 2013-04-23

* Handle signal details in `GObject.signal_connect` and `.signal_emit`
* Make `GValue#set_value` check object GType compatibility
* Eliminate GObject::Helper module
* Handle more argument types
* Support Ruby 2.0.0

## 0.5.1 / 2013-02-01

* Properly handle zero-terminated arrays of `:filename`
* Loosen dependencies on ffi and minitest

## 0.5.0 / 2013-01-19

* Update ffi dependency
* Add finalizer to release memory for IBaseInfo and descendents
* Remove deprecated methods
* Remove pretty-printing functionality
* Refactor argument handling

## 0.4.3 / 2012-11-02

* Remove gobject-introspection version check
* Make tests pass with gobject-introspection 1.34
* Ongoing refactoring

## 0.4.2 / 2012-09-22

* Make objects and interfaces wrap poiners in the class that matches
their GType.

## 0.4.1 / 2012-09-18

* Remove workarounds for older versions of gobject-introspection
* Mark certain methods as deprecated. These will be removed in 0.5.0
* Handle :filename type arguments in InPointer
* Refactoring

## 0.4.0 / 2012-08-24

* Move Gtk+ bindings to their own gem (`gir_ffi-gtk`).

## 0.3.2 / 2012-08-24

* Correctly set FFI return type when callbacks that return GObjects have
incomplete type specification.

## 0.3.1 / 2012-05-13

* Correctly map Interface types in callbacks.

## 0.3.0 / 2012-04-09

* Improve process of defining initializers in derived classes.
* Make interfaces know their GType.
* Make classes created by the Unintrospectable builder know their GType.
* Create property accessors instead of field accessors for GObjects.
* Add Ruby-style getter and setter methods (by Antonio Terceiro).
* Add `#signal_connect` instance method (by Antonio Terceiro).
* Make GirFFI's tests pass with gobject-introspection 0.10.
* Improve unintrospectable type handling.
* Bug fixes and refactorings.
* Start implementing `#define_type`, for creating descendent types that
  the GObject system knows about.

## 0.2.3 / 2011-12-31

* Fix issue #7: methods that take GValues will autoconvert other values.
* Fix method lookup when include'ing a module that is an Interface.
* Various refactorings.

## 0.2.2 / 2011-12-07

* Fix issue #19: Check if a GLib::PtrArray.add method was generated
before attempting to remove it.
* Fix two issues with pretty printing that made output for GLib have syntax
errors.

## 0.2.1 / 2011-11-20

* Fix handling of output parameters that are arrays of pointers to
structures (i.e., of type `Foo***`).

## 0.2.0 / 2011-11-19

* Add support for properties, with `#get_property` and `#set_property`.
* Add support for fields.
  - Create field accessor methods.
  - Get rid of `#[]` and `#[]=`.
* Explicitely load `libgirepository` with ABI version 1.
* Improve implementation of GLib container classes (GList etc.):
- Real constructors.
- `#append` and friends are instance methods now.
- Conversion methods to cast Ruby containers to GLib containers.
* Start implementing pretty printing.
* Various refactorings.

## 0.1.0 / 2011-10-28

* Put bindings for GObjectIntrospection in their own namespace.
* `GirFFI.setup` no longer loads overrides.
* Add `ffi-gtk2` and `ffi-gtk3` files for loading Gtk+ overrides.

## 0.0.14 / 2011-10-28

* Support GObject Introspection version 1.30:
- Add support for layouts with fixed-length arrays.
- Handle type names starting with underscores.
- Call `g_signal_emitv` directly to avoid conflict in introspection info
  with earlier versions of GObject Introspection.

## 0.0.13 / 2011-09-09

* Remove IErrorDomain related code. This functinality was removed from
  GObject Introspection in version 1.29.17

## 0.0.12 / 2011-09-04

* No longer use `_id2ref` to locate objects past as user data pointers.
* Fix failing tests on JRuby.

## 0.0.11 / 2011-08-22

* Change interface to the underlying builder in generated modules and
  classes.
* Handle string, enum, union, flags signal arguments.
* Handle string arguments in `GObject.signal_emit`.
* Handle enum signal arguments.
* Fix finding signals in non-introspectable types.
* Fix method setup in non-introspectable types.
* Refactoring.

## 0.0.10 / 2011-05-18

* Handle GObject interfaces properly.
* Create types only defined by the GType system.
* Support GType array return values.

## 0.0.9 / 2011-05-02

* More complete support for the basic types.
* Improved support for GList, GSList, GStrv, and GValue.
* Add support for GHashTable, GVariant, GByteArray, and GArray.
* Generate constants.
* When setting up a module, set up its dependencies as well.
* Test against the GIMarshallingTests test namespace.
* Use minitest/spec for testing.
* Various bug fixes and internal improvements.

## 0.0.8 / 2011-04-08

* Generate modules with names starting with a lowercase letter (like
  `cairo`).
* Allow specifying the typelib version on setup.
* Rename methods `#methods` and `#type` of the introspection classes to avoid
  clashing with standard Ruby methods.
* Refactoring.

## 0.0.7 / 2011-04-01

* Support gobject-introspection 0.10, drop support for earlier versions.
  - Use Regress, not Everything, for testing.
  - Deal with functions that are no longer introspectable.
* Correctly handle constructors that declare their return type different
  from their class.
* Implement `RubyClosure`, a `GObject::Closure` for handling ruby callbacks.
* Handle GLib's singly and doubly linked lists.
* Handle callback types defined in-place (like `Closure`'s `marshal`).
* Refactoring.

## 0.0.6 / 2011-03-01

* Cast returned GObjects to their actual type.
* Properly cast callback arguments.
* Handle the case where functions formally return interfaces.
* Make sure Gtk::Window has the correct number of references after creation.
* Refactoring and some small fixes.

## 0.0.5 / 2010-12-30

* Don't create instance methods out of functions and vice versa.
* Find signals on interfaces, too.
* Implement tests for most of Everything.
* Correctly handle array + size arguments.
* Handle most other argument types.
* Various internal changes and other fixes.

## 0.0.4 / 2010-12-14

* Lots of changes to the internals.
* Handle out-only arguments.
* Make use of callbacks from other namespaces work.
* Handle virtual methods where the invoker method has a different name.
* Implement usable `signal_connect` and `signal_emit`.
* Sink floating references when creating a GObject.
* Implement Union type.
* Many small bug fixes.

## 0.0.3 / 2010-11-19

* Update to restore Ruby 1.9 support.
* Handle functions with the 'throws' property set.
* Handle classes without specified fields.

## 0.0.2 / 2010-11-14

* Several fixes to method creation.

## 0.0.1 / 2010-10-25

* Initial release.